aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-26 14:05:40 -0500
committerCraig Jennings <c@cjennings.net>2026-05-26 14:05:40 -0500
commit5d3c5525f4b8bf742448d3a4be160f8c9ecdf4ec (patch)
tree9b138f2aae691d2bd7994de95b061805c3caae92 /todo.org
parent70e89e946cbdff307284d11a46558161f713607c (diff)
downloadarchsetup-5d3c5525f4b8bf742448d3a4be160f8c9ecdf4ec.tar.gz
archsetup-5d3c5525f4b8bf742448d3a4be160f8c9ecdf4ec.zip
docs: add per-host override spec and backlog tasks
I added a spec for a per-machine override mechanism (docs/PLAN-per-host-overrides.org). It proposes per-host stow tiers keyed on hostname, with the existing conf.d glob as the first tenant, so HiDPI scaling can differ between ratio and velox without per-app patches. It's gated on review. I also updated the task list: added a pocketbook development backlog and a waybar timer module task, fleshed out the per-host task with a spec link, and rewrote the stale velox "pocketbook not installed" review item as a dated entry now that nothing installs it.
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org47
1 files changed, 43 insertions, 4 deletions
diff --git a/todo.org b/todo.org
index 2810577..ad9cfd7 100644
--- a/todo.org
+++ b/todo.org
@@ -46,6 +46,42 @@ The =protonmail-bridge= package ships an enabled systemd user service (=/usr/lib
Fix applied per-machine 2026-05-22: =systemctl --user disable --now protonmail-bridge.service=, leaving the Hyprland exec-once GUI as the sole bridge (tray icon returns, served cert matches, =mbsync -a= clean). A fresh install re-enables the package service, so make it durable: mask/disable =protonmail-bridge.service= during install (likely in =scripts/cmail-setup-finish.sh=) and document that the Hyprland exec-once is the intended launcher — never run both. Source: handoff from .emacs.d 2026-05-22.
+** TODO [#C] Pocketbook development backlog :pocketbook:
+:PROPERTIES:
+:LAST_REVIEWED: 2026-05-26
+:END:
+Pocketbook (GTK4 layer-shell notes panel, toggled via waybar) was pulled from publication 2026-05-26 — github repo + cjennings.net repo deleted, mirror hook removed — and folded into this repo at =pocketbook/= until it's ready to spin back out. Src-layout Python package with pytest tests and a Makefile. Develop it in-tree; the backing modules are =store/note/panel/layer_shell/app/note_widget= + =style.css=.
+
+Backlog (unordered; promote items to their own dated tasks as they're picked up):
+
+- Configurable options, possibly a dedicated configuration panel.
+- Lose-focus hides pocketbook — configurable on/off.
+- Configurable display order: chronological by creation date (asc/desc), manual, alphabetical (asc/desc).
+- Search / filter notes.
+- Global toggle keybind (Hyprland =bind=) alongside the waybar click; document the waybar integration.
+- Note CRUD polish (create/edit/delete) + optional markdown rendering.
+- Pin / favorite notes.
+- Tags or notebooks / categories.
+- Persistence: confirm store format + =~/.local/share/pocketbook/= location, add versioning/migration, decide a backup/sync story.
+- Theming: track the dupre/hudson theme system so =style.css= follows =set-theme=.
+- Layer-shell geometry config (anchor edge, width, margins) + HiDPI / multi-monitor behavior — ties into [[file:docs/PLAN-per-host-overrides.org][per-host overrides]] scaling work.
+- Config file format (toml) + reload-without-restart.
+- Expand test coverage (TDD per testing standards; =tests/= already exists).
+- Release prep for the eventual spin-back-out: pyproject metadata, version, license.
+- Re-wire the archsetup install (gtk4-layer-shell dep + install step + post-install clone) when pocketbook ships. Removed 2026-05-26 — see git history of =archsetup= / =scripts/post-install.sh=.
+
+** TODO [#B] Waybar timer module :waybar:
+:PROPERTIES:
+:LAST_REVIEWED: 2026-05-26
+:END:
+A custom waybar module providing three time-keeping functions, surfaced in the bar with click/scroll controls and dunst notifications on completion.
+
+- *Alarm* — fire a notification at a wall-clock time (e.g. 2:00pm). Builds on the existing =notify= + =at= pattern from protocols.org.
+- *Timer* — count down a duration (e.g. 25m) and notify when it elapses.
+- *Pomodoro* — alternating work/break cycles (default 25/5, long break after 4) with the bar showing phase + remaining time.
+
+Implementation notes (to flesh out when picked up): waybar =custom= module(s) with =exec= polling or a persistent =exec= script emitting JSON; click actions to start/pause/reset; a small state file under =~/.local/state= or =~/.local/var=. Lives in the hyprland tier (=dotfiles/hyprland/.config/waybar/= + a backing script in =hyprland/.local/bin/=). TDD the backing script per testing.md.
+
** DOING [#A] Separate dotfiles from archsetup
SCHEDULED: <2026-05-21 Thu>
:PROPERTIES:
@@ -97,6 +133,11 @@ Now unblocked (ratio + velox both migrated). Remove =dotfiles/= from the archset
*** TODO [#B] Cleaner per-machine override mechanism for the dotfiles repo
velox keeps laptop-specific configs (foot font, pypr scratchpad sizing for 2256x1504, waybar battery) as local REAL files shadowing the stow symlinks. That's fragile: any =make restow= on velox re-conflicts (hit exactly this during the 2026-05-22 migration — stow aborts on the real files). The =~/.dotfiles= model needs a real per-machine override story (a =minimal/=-style per-host package, a documented local-override convention with =.stow-local-ignore=, or host-conditional includes) so overrides survive restows without manual backup/restore.
+Spec: [[file:docs/PLAN-per-host-overrides.org][docs/PLAN-per-host-overrides.org]] — gated on review before implementation.
+
+**** 2026-05-26 Tue @ 10:21:08 -0500 AI Response: Spec written, gated on review
+Surfaced by a HiDPI scaling failure: a per-app =QT_SCALE_FACTOR=1.5= in the shared =Zoom.desktop= (meant for velox) made Zoom open enormous on ratio. Reverted that patch to plain =/usr/bin/zoom %U=; the durable fix is this mechanism. Proposed approach: a per-host stow tier (=ratio/=, =velox/=) stowed as =common + hyprland + $(uname -n)=, with the existing =conf.d/*.conf= glob as the first clean tenant — move =local.conf= out of the shared =hyprland/= tier into per-host tiers so each machine gets its own (HiDPI monitor scale + =env = QT_SCALE_FACTOR/GDK_SCALE= on velox, minimal on ratio). XWayland apps don't scale via the compositor (=force_zero_scaling=true=), so toolkit env vars set in =conf.d= are the right layer — kills per-app =.desktop= hacks. Open question in the spec: whole-file configs with no include directive (waybar JSON, pypr toml) need a separate strategy. Full design + 5 open questions for Craig in the spec.
+
*** TODO [#A] Verify Phase 2 in the VM (hyprland + none) — pending clean run
Phase 2 shipped without a full VM integration pass: four runs hit env issues (pacman timeout, an SSH drop at 60 min, then a port-2222 collision with an active archangel VM). The fixed clone code was exercised by run 3 and run 4 ran 60 min past it, but the stow-per-DESKTOP_ENV paths — especially =none=/minimal, which no run reached — are unverified end-to-end. Close the gap: =make test= (hyprland) and a =DESKTOP_ENV=none= run, once port 2222 is free.
@@ -289,10 +330,8 @@ Paired Logi M650 via ~bluetoothctl scan on~, ~pair~, ~trust~.
This is inherently interactive (scan, select device, pair, trust).
Consider: document as post-install step. No automation possible.
-*** TODO Review: pocketbook not installed
-Custom Python package from ~/code/pocketbook needed ~pip install --user -e .~
-Data in ~/.local/share/pocketbook/ needed to be copied from ratio.
-Consider: document in post-install steps (not automatable in archsetup).
+*** 2026-05-26 Tue @ 13:32:31 -0500 pocketbook install concern moot — pulled from publication, folded in-tree
+Resolved by removing pocketbook from archsetup's provisioning entirely. It's nowhere near ready, so the github mirror + cjennings.net repo were deleted and the project was folded into the archsetup tree at =pocketbook/=. Dropped the =gtk4-layer-shell= dep + =pip_install= from =archsetup= and the clone from =scripts/post-install.sh=. No fresh install pulls pocketbook now, so "not installed on velox" no longer applies. Re-wiring the install is tracked in the new pocketbook development backlog.
*** TODO Review: Tailscale needs login after install
~tailscaled~ service was enabled but needed ~tailscale up~ for interactive auth.