aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-21 20:43:41 -0400
committerCraig Jennings <c@cjennings.net>2026-05-21 20:43:41 -0400
commita4fd2b872add9e76eb288243da62e265f93b1217 (patch)
treede9793724bd4cfb51cafe4c0b47e24eb399f886b
parente0c1dc30f094c8c248316d53ae07b27fb089474e (diff)
downloadarchsetup-a4fd2b872add9e76eb288243da62e265f93b1217.tar.gz
archsetup-a4fd2b872add9e76eb288243da62e265f93b1217.zip
chore: tag sub-30-minute tasks with :quick:
I walked the open work and tagged 18 tasks finishable in 30 minutes or less — CSS spacing tweaks, single-file archsetup edits, gitignore-and-untrack cleanups, and config-flag gates. The tag filters the agenda down to quick wins.
-rw-r--r--todo.org36
1 files changed, 18 insertions, 18 deletions
diff --git a/todo.org b/todo.org
index 7af5395..ba6b329 100644
--- a/todo.org
+++ b/todo.org
@@ -13,19 +13,19 @@ Four levels, matching the Emacs config (=org-highest-priority ?A=, =org-lowest-p
Rule of thumb: A = dated-and-must; B = the active backlog; C = parking lot; D = untriaged. Fixing the undated A/B tasks means either dating them or demoting to C.
* Archsetup Open Work
-** TODO [#C] Waybar indicators unevenly spaced
+** TODO [#C] Waybar indicators unevenly spaced :quick:
:PROPERTIES:
:LAST_REVIEWED: 2026-05-21
:END:
The right-side module icons don't sit at even intervals — spacing reads as inconsistent across the group. Tune the per-module margin/padding in =dotfiles/hyprland/.config/waybar/style.css= so the icons are evenly distributed. Noticed 2026-05-21 after adding the airplane indicator.
-** TODO [#C] Airplane-mode toggle robustness follow-ups
+** TODO [#C] Airplane-mode toggle robustness follow-ups :quick:
:PROPERTIES:
:LAST_REVIEWED: 2026-05-21
:END:
Two minor robustness gaps in =dotfiles/hyprland/.local/bin/airplane-mode= surfaced when the feature shipped (2026-05-21). Neither is a live bug — both are defense-in-depth.
- No laptop guard on the toggle itself. The =waybar-airplane= indicator hides on battery-less machines, but =airplane-mode= would still run if invoked directly (e.g. a future keybind on a desktop). Mirror the =is_laptop= check at the top of the toggle so it no-ops off a laptop.
- Brightness-restore edge. If =brightnessctl get= returns empty at engage time, disengage skips the restore (guarded by =[ -n "$bright_was" ]=) and the screen stays at 35%. Fall back to a sane brightness (e.g. 100%) when no prior value was recorded.
-** TODO [#C] Wlogout exit-menu buttons are rectangular, not square
+** TODO [#C] Wlogout exit-menu buttons are rectangular, not square :quick:
:PROPERTIES:
:LAST_REVIEWED: 2026-05-21
:END:
@@ -90,7 +90,7 @@ Checked each subtask below against the source / git state. Bottom line: almost n
- *Standardize boolean comparison style* — NOT DONE. Mixed: =[ "$var" = "true" ]= at =archsetup:542,544,569= vs bare =if $var;= form ~7 places elsewhere.
- *Replace eval with safer alternatives* — NOT DONE. =archsetup:442= still =if eval "$cmd" >> "$logfile" 2>&1;= in =retry_install=.
-*** TODO [#A] Remove credentials and secrets from dotfiles
+*** TODO [#A] Remove credentials and secrets from dotfiles :quick:
- =.config/.tidal-dl.token.json= — active Tidal API token with userId
- =.config/calibre/smtp.py.json= — hex-encoded relay password, personal email mappings (family Kindle accounts)
- =.config/transmission/settings.json= — bcrypt-hashed RPC password
@@ -127,7 +127,7 @@ Even after removing files, secrets remain in git history.
Options: =git filter-repo= to rewrite history, or start a fresh repo for the GitHub remote.
Recommend: fresh repo for GitHub (keep cjennings.net remote with full history).
-*** TODO [#A] Remove device-specific configuration
+*** TODO [#A] Remove device-specific configuration :quick:
=archsetup= lines 1458-1463: Logitech BRIO webcam udev rule — move to optional/configurable section.
*** DOING [#A] Add README.md for GitHub
@@ -141,15 +141,15 @@ Drafted =README.md= at repo root, modeled on =~/code/chime/README.org=. First pa
*** 2026-05-19 Tue @ 01:54:29 -0500 Added GPL-3 LICENSE file at repo root
GPL-3 chosen. Canonical GPLv3 text landed at =LICENSE= on 2026-05-11 (commit =f80e664=). README already links to it. SPDX/license headers across source files (or a NOTICE file) split out as a new sub-task below for the eventual public release.
-*** TODO [#A] Add SPDX/license headers to source files
+*** TODO [#A] Add SPDX/license headers to source files :quick:
For a real GPL-3 release on GitHub, every source file should carry an SPDX-License-Identifier header (or the repo should ship a NOTICE file naming the license + contributors). Not blocking — the =LICENSE= file at root is what GitHub needs. Worth doing once the credentials-cleanup work for open-sourcing actually ships. Light lift: pick a header template, sweep the install script + scripts/ + dotfile scripts.
-*** TODO [#A] Remove binary font files from repo
+*** TODO [#A] Remove binary font files from repo :quick:
PragmataPro and Apple Color Emoji fonts in =dotfiles/common/.local/share/fonts/=.
Add to =.gitignore=, document font installation separately.
May have licensing issues for redistribution.
-*** TODO [#A] Make claude-code installation optional
+*** TODO [#A] Make claude-code installation optional :quick:
Line 1781: =curl | sh= from claude.ai — should be behind a config flag.
Not all users want AI tooling; curl-pipe-bash is a red flag for reviewers.
@@ -164,7 +164,7 @@ Added two pre-flight validators to =archsetup= (right after =load_config=, befor
- =validate_config()= — runs whenever =--config-file= is used: rejects unknown =DESKTOP_ENV= (must be dwm/hyprland/none) early instead of dying in step 7-9; rejects =AUTOLOGIN=/=NO_GPU_DRIVERS= values that aren't =yes=/=no= (currently silently ignored); basic shape check on =LOCALE=; and a scheme + no-whitespace/no-leading-dash check on the six =*_REPO= URLs that get passed to =git clone= (rejects e.g. =--upload-pack=…= injection). Plain =echo …>&2; exit 1= (the logging helpers aren't defined that early). =$source_dir= needs no separate check — it's =/home/$username/.local/src=, derived from the now-always-validated =$username=.
Not a security boundary (=load_config= sources the config as bash; a hostile config can already run anything) — it's typo-catching. Verified with =bash -n= and a smoke-test matrix of good/bad inputs through both functions. The next =make test= run confirms valid configs still install. Leaving as DOING for review.
-*** TODO [#A] Move battery out of waybar sysmonitor group
+*** TODO [#A] Move battery out of waybar sysmonitor group :quick:
Battery module is inside =group/sysmonitor= which bundles cpu, temp, memory, disk, and battery together. Battery should be a standalone module in =modules-right= so it's visible on laptops without the full sysmonitor group.
*** TODO [#A] Resolution-adaptive scratchpad sizing
@@ -199,10 +199,10 @@ Sites converted (the line numbers in the original task body were stale — actua
The helper is defined before the top-level =--fresh= handler (which runs at load time, before the logging helpers exist), so it carries no =error_warn= dependency and reports refusals to stderr itself. The two in-function sites keep their existing =|| error_warn= / =|| error_fatal= handling.
Tests: =tests/safe-rm-rf/test_safe_rm_rf.py= sources the real function out of the script and exercises Normal/Boundary/Error cases (13 tests) against real temp dirs. =make test-unit= green (61 tests), =bash -n= clean, no new shellcheck warnings.
-*** TODO [#A] Standardize boolean comparison style
+*** TODO [#A] Standardize boolean comparison style :quick:
Mixed =[ "$var" = "true" ]= vs =$var= evaluation — pick one pattern.
-*** TODO [#A] Replace eval with safer alternatives
+*** TODO [#A] Replace eval with safer alternatives :quick:
Line 434: =eval "$cmd"= — use arrays or direct execution.
** TODO [#B] Review post-archsetup laptop setup steps (velox 2026-04-10)
@@ -382,7 +382,7 @@ Removed conflicting setxkbmap statements, gdm, and keyd configs - still didn't w
:END:
Currently just reports errors without guidance on how to fix them
-** TODO [#B] Enable TLP power management for laptops
+** TODO [#B] Enable TLP power management for laptops :quick:
:PROPERTIES:
:LAST_REVIEWED: 2026-05-21
:END:
@@ -484,7 +484,7 @@ Parse package warnings and repo metadata to catch upcoming deprecations proactiv
*** TODO [#B] Check dotfiles for uninstalled packages - remove orphaned configs
*** TODO [#B] Verify all stowed files are actually used
-** TODO [#B] Remove unnecessary linux-firmware packages (velox only)
+** TODO [#B] Remove unnecessary linux-firmware packages (velox only) :quick:
:PROPERTIES:
:LAST_REVIEWED: 2026-05-21
:END:
@@ -574,7 +574,7 @@ Establish clear process for tool evaluation decisions
:END:
Ensure new tools integrate with DWM environment and don't break workflow
-** TODO [#B] Add Rust installation via rustup instead of pacman package
+** TODO [#B] Add Rust installation via rustup instead of pacman package :quick:
:PROPERTIES:
:LAST_REVIEWED: 2026-05-21
:END:
@@ -637,7 +637,7 @@ error-prone — changes must be made in both places. Consider:
- Same situation applies to fuzzel.ini
The goal is a single place to edit each config, not two.
-** TODO [#C] Create Chrome theme with dupre colors
+** TODO [#C] Create Chrome theme with dupre colors :quick:
:PROPERTIES:
:LAST_REVIEWED: 2026-05-21
:END:
@@ -715,7 +715,7 @@ Keep ranger for DWM/X11 where ueberzug works fine.
:END:
Once-yearly systematic inventory of known deficiencies and friction points in current toolset
-** TODO [#C] Install Zoxide integration into Ranger
+** TODO [#C] Install Zoxide integration into Ranger :quick:
:PROPERTIES:
:LAST_REVIEWED: 2026-05-21
:END:
@@ -754,10 +754,10 @@ Parse yay errors and provide specific, actionable fixes instead of generic error
** TODO [#D] Improve progress indicators throughout install
Enhance existing indicators to show what's happening in real-time
-** TODO [#D] Add retry logic to git_install function
+** TODO [#D] Add retry logic to git_install function :quick:
pacman_install and aur_install have retry logic, but git_install doesn't
-** TODO [#D] Add cpupower installation and enabling to archsetup
+** TODO [#D] Add cpupower installation and enabling to archsetup :quick:
cpupower service configures the default CPU scheduler (powersave or performance)
Install cpupower, configure /etc/default/cpupower, enable service: ~systemctl enable --now cpupower.service~