diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-20 14:48:49 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-20 14:48:49 -0400 |
| commit | c6c7a48b81e5592e1f37947a5532dc202ab701e3 (patch) | |
| tree | c7a0f9c57aecd21e06f6a4f9f22b35ff0652dbf0 | |
| parent | 5426f03ebea6f71366e4855eeaf1dea1c5918937 (diff) | |
| download | archsetup-c6c7a48b81e5592e1f37947a5532dc202ab701e3.tar.gz archsetup-c6c7a48b81e5592e1f37947a5532dc202ab701e3.zip | |
chore: clean dead todo.org doc-links and file three docs to outbox
I removed three dead `file:` links in todo.org. They pointed at docs that were never written: testing-strategy.org, firmware-cleanup.org, and PLAN-browser-themes.org. Each task body already carries that content inline, so the links were dead weight. I also reworded the Testinfra task's lead-in that claimed the testing-strategy doc exists.
I filed three resolved reference docs into assets/outbox/: the calendar-sync scrub note, the tmux copy-mode handoff, and the 2026-05-19 lint follow-up report.
| -rw-r--r-- | assets/outbox/2026-05-13-calendar-sync-local-into-dotfiles.txt | 80 | ||||
| -rw-r--r-- | assets/outbox/2026-05-18-handoff-from-dotemacs-tmux-copy-mode-keys.org | 59 | ||||
| -rw-r--r-- | assets/outbox/2026-05-19-lint-followups.org | 49 | ||||
| -rw-r--r-- | todo.org | 8 |
4 files changed, 190 insertions, 6 deletions
diff --git a/assets/outbox/2026-05-13-calendar-sync-local-into-dotfiles.txt b/assets/outbox/2026-05-13-calendar-sync-local-into-dotfiles.txt new file mode 100644 index 0000000..a167e77 --- /dev/null +++ b/assets/outbox/2026-05-13-calendar-sync-local-into-dotfiles.txt @@ -0,0 +1,80 @@ +calendar-sync.local.el into common/.emacs.d/ +============================================= + +Date: 2026-05-13 +Machine: laptop (this one) + +What was done +------------- + +Added dotfiles/common/.emacs.d/calendar-sync.local.el. The real +file lives under common/ and is symlinked back into ~/.emacs.d/ +on this machine: + + ~/.emacs.d/calendar-sync.local.el + -> ~/code/archsetup/dotfiles/common/.emacs.d/calendar-sync.local.el + +A matching template, calendar-sync.local.el.example, was checked +into the dotemacs repo so future setups know what shape the file +needs to take. The .example file is tracked in dotemacs; +calendar-sync.local.el itself is gitignored in dotemacs (entry +already present at .gitignore:54). + +Why +--- + +On 2026-05-04, commit cc594fd ("Make calendar sync startup safe +without config") in the dotemacs repo refactored +modules/calendar-sync.el to stop hard-coding the calendar feed +URLs inline. The new design loads them from a private file at +~/.emacs.d/calendar-sync.local.el. That file is gitignored in +dotemacs, so it never propagates across machines via the dotemacs +checkout. + +This laptop never got the file created. M-x calendar-sync-now +failed with "calendar-sync: No calendars configured". State file +(data/calendar-sync-state.el) showed last successful sync at +2026-05-01 16:57, three days before the refactor landed -- +confirming the gap. + +Putting the file under common/ in archsetup means GNU Stow +distributes it the same way every other dotfile is distributed: +make stow links it into $HOME on each machine. + +Heads-up for archsetup +---------------------- + +The file contains real private .ics feed URLs (Google personal, +Proton, Google work). It is currently TRACKED in archsetup -- +.gitignore was not modified to exclude it, because the whole +point of putting it under common/ is for it to flow to other +machines via git pull + make restow. + +The archsetup remote is git@cjennings.net:archsetup.git only -- +your private server, no public mirror -- so exposure is bounded +to that host. Same URLs are already in dotemacs git history on +both cjennings.net and the github.com mirror anyway (from +cc594fd^). The dotemacs URLs were left in place by choice. + +If you ever change your mind on tracking, the move is: + 1. Regenerate the .ics secret addresses in each calendar's UI. + 2. Add dotfiles/common/.emacs.d/calendar-sync.local.el to + archsetup/.gitignore. + 3. Distribute the file out-of-band (manual copy, age-encrypted, + pass, whatever). + +While here: inbox/ was root-owned (since 2026-04-10) and +unwritable as cjennings, blocking note creation. Ran: + sudo chown -R cjennings:cjennings ~/code/archsetup/inbox/ +to normalize. No idea what set it to root originally -- probably +a sudo-driven install step. Worth flagging if it returns. + +Action items +------------ + +- Decide whether to commit common/.emacs.d/calendar-sync.local.el + in archsetup (recommended) or pull it into a separate private + channel. +- On every other machine: pull archsetup, run `make restow + <de>`, restart Emacs. The symlink should appear and the next + M-x calendar-sync-now will work. diff --git a/assets/outbox/2026-05-18-handoff-from-dotemacs-tmux-copy-mode-keys.org b/assets/outbox/2026-05-18-handoff-from-dotemacs-tmux-copy-mode-keys.org new file mode 100644 index 0000000..c3e46b4 --- /dev/null +++ b/assets/outbox/2026-05-18-handoff-from-dotemacs-tmux-copy-mode-keys.org @@ -0,0 +1,59 @@ +#+TITLE: tmux copy-mode keys aligned with Emacs vterm-copy-mode +#+DATE: 2026-05-18 + +* Source + +Authored from a =~/.emacs.d= session. Edit lives in this repo because +=~/.tmux.conf= is the stowed symlink target. + +* Change + +Added a copy-mode key block to =dotfiles/common/.tmux.conf= (just below +=set -g status-keys emacs=) to mirror the Emacs +=cj/vterm-tmux-history= / =vterm-copy-mode= ergonomics in +=~/.emacs.d/modules/vterm-config.el=: + +#+begin_src tmux +bind-key -T copy-mode M-w send-keys -X copy-selection +bind-key -T copy-mode C-g send-keys -X cancel +unbind-key -T copy-mode Enter +#+end_src + +Behavior: + +- =M-w= copies the selection and stays in copy-mode, so multiple + selections can be grabbed in a row. tmux's default copied and then + exited via =copy-selection-and-cancel=. +- =C-g= now exits copy-mode (tmux's default was =clear-selection=). +- =Enter= is unbound so RET has no "copy and exit" shortcut. The + Emacs side removes RET from =vterm-copy-mode-map= for the same + reason — one consistent way to leave the buffer. + +Defaults retained: +- =q= and =Escape= already cancel. +- =Space= still begins selection. + +* Why + +The Emacs side already aligned =vterm-copy-mode= and +=cj/vterm-tmux-history= on one key story (commentary block at the top +of =modules/vterm-config.el=). When tmux runs inside vterm, the user +also lands in tmux's copy-mode (via the auto-enter on mouse wheel-up, +line 10), so without this change the third surface had a different +key story — Enter exits, M-w exits, C-g clears rather than cancels. + +* Activation + +After pulling and re-stowing on each machine: + +#+begin_src bash +tmux source-file ~/.tmux.conf +#+end_src + +Or in a live tmux session: =prefix r= (configured at line 53 of the +conf). + +* Status + +Edited and saved. Not yet committed in =archsetup=. Craig confirms +the keys work, then commits at his discretion. diff --git a/assets/outbox/2026-05-19-lint-followups.org b/assets/outbox/2026-05-19-lint-followups.org new file mode 100644 index 0000000..69df424 --- /dev/null +++ b/assets/outbox/2026-05-19-lint-followups.org @@ -0,0 +1,49 @@ + +* 2026-05-19 lint-org follow-ups — todo.org +** TODO line 471 — link-to-local-file — Link to non-existent local file "docs/PLAN-browser-themes.org" +** TODO line 381 — link-to-local-file — Link to non-existent local file "docs/firmware-cleanup.org" +** TODO line 313 — link-to-local-file — Link to non-existent local file "docs/testing-strategy.org" +** TODO line 218 — misplaced-heading — Possibly misplaced heading line + +* 2026-05-19 Tue — Date coverage: [#A] / [#B] tasks without DEADLINE or SCHEDULED +Review each: add a date, drop the priority, or confirm 'no-date by intent' inline. +- 6: ** DOING [#A] Separate dotfiles from archsetup +- 35: ** DOING [#A] Prepare for GitHub open-source release +- 153: ** TODO [#A] Review post-archsetup laptop setup steps (velox 2026-04-10) +- 212: ** TODO [#A] Ensure sleep/suspend works on laptops +- 219: ** TODO [#A] Build CI/CD pipeline that runs archsetup on every commit +- 222: ** TODO [#B] Fix install errors surfaced by the 2026-05-11 VM test run +- 266: ** TODO [#A] Generate recovery scripts from test failures +- 269: ** TODO [#A] Create package inventory system +- 274: ** TODO [#A] Establish monthly review workflow +- 279: ** TODO [#A] Automate the inventory comparison +- 282: ** TODO [#A] Complete security education within 3 months +- 285: ** TODO [#A] Prevent X termination and VT switching (security risk) +- 292: ** TODO [#B] All error messages should be actionable with recovery steps +- 295: ** TODO [#B] Enable TLP power management for laptops +- 300: ** TODO [#B] Improve logging consistency +- 305: ** TODO [#B] Add backup before system file modifications +- 310: ** TODO [#B] Implement Testinfra test suite for archsetup +- 331: ** TODO [#B] Set up automated test schedule +- 334: ** TODO [#B] Implement manual test trigger capability +- 337: ** TODO [#B] Create test results dashboard/reporting +- 340: ** TODO [#B] Block merges to main if tests fail +- 343: ** TODO [#B] Add network failure testing to test suite +- 346: ** TODO [#B] Keep container base images up to date +- 349: ** TODO [#B] Persist test logs for historical analysis +- 352: ** TODO [#B] Implement automated deprecation detection +- 355: ** TODO [#B] Audit dotfiles/common directory +- 360: ** TODO [#B] Remove unnecessary linux-firmware packages (velox only) +- 385: ** TODO [#B] Identify and replace packages no longer in repos +- 388: ** TODO [#B] Verify package origin for all packages +- 391: ** TODO [#B] Automate script usage tracking +- 394: ** TODO [#B] Automate dotfile validation +- 397: ** TODO [#B] Test security + functionality together +- 400: ** TODO [#B] Security audit tooling +- 405: ** TODO [#B] Document threat model and mitigations within 6 months +- 408: ** TODO [#B] Verify package signature verification not bypassed by --noconfirm +- 413: ** TODO [#B] Document evaluation criteria and trade-offs +- 416: ** TODO [#B] Test each modernization thoroughly before replacing +- 419: ** TODO [#B] Add Rust installation via rustup instead of pacman package +- 429: ** TODO [#B] Add NVIDIA preflight check for Hyprland +- 435: ** TODO [#B] Add org-capture popup frame on keyboard shortcut @@ -323,8 +323,6 @@ If modifications fail or are incorrect, difficult to recover - should backup fil ** TODO [#B] Implement Testinfra test suite for archsetup Create comprehensive integration tests using Testinfra (Python + pytest) to validate archsetup installations -See complete documentation: [[file:docs/testing-strategy.org::*Test Automation Framework][Testing Strategy - Test Automation Framework]] - Tests should cover: - Smoke tests: user created, key packages installed, dotfiles present - Integration tests: services running, configs valid, X11 starts, apps launch @@ -335,7 +333,7 @@ Location: scripts/testing/tests/ directory Integration: Run via pytest against test VMs after archsetup completes Benefits: Expressive Python tests, excellent reporting, can test interactive scenarios -The testing-strategy.org document includes: +A design doc (not yet written) should cover: - Complete example test suite (test_integration.py) - Tiered testing strategy (smoke/integration/end-to-end) - How to run tests and integrate with run-test.sh @@ -391,8 +389,6 @@ Can remove: Disk space savings: ~600 MB -See [[file:docs/firmware-cleanup.org][docs/firmware-cleanup.org]] for full analysis and removal commands. - After removal, update archsetup script to install only needed firmware packages. ** TODO [#B] Identify and replace packages no longer in repos @@ -481,7 +477,7 @@ error-prone — changes must be made in both places. Consider: The goal is a single place to edit each config, not two. ** TODO [#C] Create Chrome theme with dupre colors -Create a Chrome browser theme using the dupre color palette. Plan saved in [[file:docs/PLAN-browser-themes.org][docs/PLAN-browser-themes.org]]. +Create a Chrome browser theme using the dupre color palette. ** TODO [#C] Monitor and optimize test execution time Keep test runs performant as installs and post-install tests grow (target < 2 hours) |
