| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
I added an A/B/C/D priority scheme to the task list: what each level means, the assignment criteria, and the rule that an [#A] task needs a scheduled or deadline date so priorities stay grounded in time.
I also closed two finished tasks: the rm -rf path guard (done, with a pointer to the safe_rm_rf helper and its tests) and the touchpad toggle indicator (spec, implementation, and deploy record).
|
| |
|
|
|
|
| |
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.
|
| |
|
|
| |
Recorded the git-history scrub of the private calendar config and added a follow-up to rotate the three exposed feed URLs once I'm at ratio's GUI. Also closed the testing-docs and shellcheck tasks that shipped this round.
|
| |
|
|
|
|
| |
Two updates in todo.org. I marked the two dconf entries in the `[#B] Fix install errors` parent body as RESOLVED in `dc06895`, since the system-wide dconf db migration verified clean in last night's VM run.
I converted the `*** TODO [#B] AUR exit-0 logged as error` sub-task into a dated event-log entry. The root cause was a bash if-compound semantics trap in `retry_install` (the if-compound exits 0 when no condition tested true, overwriting the eval's actual exit code that `last_exit_code=$?` was trying to capture). Today's VM run verified the fix: `mkinitcpio-firmware` and `tidaler` now report `error code: 1` instead of the misleading `error code: 0`.
|
| |
|
|
|
|
| |
Two updates in todo.org. I closed the LICENSE-file subtask as a dated event-log entry. The canonical GPL-3 text landed at `LICENSE` in 028f144 on 2026-05-11. The SPDX/NOTICE-headers follow-up splits into its own subtask for the eventual public release.
I also logged the 7cd7392 emacs-stow fix verification under `[#B] Fix install errors`. The 2026-05-18 `make test` exercised the new three-branch path (git init + fetch + checkout -B main against a stow-populated `~/.emacs.d`) and the exit-128 error is gone from the Error Summary.
|
| |
|
|
|
|
| |
Lint flagged the **NOTE:** marker as a possibly-misplaced heading
(double-asterisk at start of line). Switching to single-asterisk
italic keeps the visual emphasis without the heading collision.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The 2026-05-16 VM run surfaced `setting up emacs configuration files
(error code: 128)` with `fatal: not a git repository`. Root cause:
`dotfiles/common/.emacs.d/calendar-sync.local.el` lives in the stow
tree, so by the time the dotemacs clone step runs, `~/.emacs.d/`
already exists with a stowed symlink inside. The previous two-branch
check `[ -d "$emacs_dir" ]` then took the `git pull` path and failed
because the dir isn't a git checkout.
I replaced the check with three branches:
- `.git` exists → `git pull --recurse-submodules` (the existing
upgrade path).
- Dir missing or empty → `git clone --recurse-submodules` (the fresh
install path).
- Dir exists with content but no `.git` (the stow case, today's bug)
→ `git init` + `remote add origin` + `fetch --recurse-submodules` +
`checkout -B main origin/main` + `submodule update --init
--recursive`. This pulls the tree in on top of the stowed file
without losing it.
The one-line `[ -d ]` → `[ -d .git ]` fix wouldn't have been enough on
its own: the clone branch would still fail because `git clone` refuses
a non-empty target.
`bash -n archsetup` is clean. The VM test run that surfaced the bug
exercised the old two-branch path. The new third branch wants a fresh
`make test` to verify before this lands on a real machine.
todo.org picks up two things this commit touches. The stale
gitrepos.sh reference under "Remove/template personal info from
scripts" comes out. A new sub-TODO under `[#B] Fix install errors`
expands the existing tidaler item: the same "AUR exit 0 logged as
error" pattern now hits six packages instead of one (tidaler,
mkinitcpio-firmware, speedtest-go-bin, rar, masterpdfeditor,
zsh-fast-syntax-highlighting-git). The recommendation points at
`aur_install` and the error-summary aggregator as trace targets.
|
| | |
|
| | |
|
| |
|
|
| |
Covers extracting dotfiles/ into a standalone repo, adding a minimal/ stow target for headless installs, and a three-phase plan with commit boundaries. todo.org tracks the review as a sub-task.
|
| |
|
|
| |
I added a [#C] task with one child per validation warning from the 18:36 VM test, each with the check it comes from and a recommendation. Most are headless-VM or QEMU-slirp false positives the test harness should skip. The lingering and Docker ones have a small real angle: logind health in the VM, and "systemctl enable docker" vs "enable --now".
|
| | |
|
| |
|
|
|
|
|
|
| |
A new `validate_config()` runs whenever `--config-file` is used and rejects bad values up front instead of letting the install run partway and die: `DESKTOP_ENV` must be dwm/hyprland/none (previously only caught in the display-server step), `AUTOLOGIN`/`NO_GPU_DRIVERS` must be yes/no (previously silently ignored), `LOCALE` gets a basic shape check, and the six `*_REPO` URLs get a scheme plus no-whitespace/no-leading-dash check before they reach `git clone`.
I also pulled the username regex and reserved-names check out of `preflight_checks()` into a `validate_username()` helper, and call it from both `preflight_checks()` and `validate_config()`. That closes a gap: the old inline check only ran when the username was prompted, so a config-supplied `USERNAME=root` went through unchecked.
This is not a security boundary: `load_config` sources the config as bash, so a hostile config can already do anything. It is about catching typos with a clear message. Verified with `bash -n` and a smoke-test matrix. The next `make test` run confirms valid configs still install.
|
| |
|
|
|
|
| |
I added a TODO for the 7 errors logged during the run. A few look real: fc-cache and dconf hit exit 127, and gamemode failed for the user. A couple look like VM/nf_tables artifacts I want to confirm on bare metal.
I moved the rlwrap-not-installed investigation to Resolved (DONE). rlwrap installs cleanly in a fresh VM, so the ratio glitch does not reproduce. The test-infra fix from the previous commit is also logged as DONE in Resolved.
|
| |
|
|
| |
Moved 13 completed tasks into the Resolved section. Recorded the open-source-release source audit and the dotfile-separation plan as dated subheaders under their tasks.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When focus is inside a special workspace (e.g. special:stash),
layoutmsg cyclenext/cycleprev only operates within that workspace,
trapping $mod+J inside the scratchpad overlay.
Detect workspace name starting with "special:" on focus navigation
(not move), toggle the overlay off first, re-read active window
state, then fall through to the normal layout/floating branches.
Add unit tests with a fake hyprctl harness in
tests/layout-navigate/. ```
|
| |
|
|
|
|
| |
Fixed multilib, adwaita-qt, webkit2gtk, touchpad-indicator, tidaler,
pocketbook URL. Added post-archsetup review tasks for laptop setup.
Updated mbsyncrc for STARTTLS and waypaper config.
|
| |
|
|
|
|
|
|
| |
Ran archsetup on velox, fixed 7 package failures, enabled multilib,
added dconf settings for fast portal-gtk startup. Introduced
hyprland conf.d pattern for machine-local overrides. Cloned all
repos, configured HiDPI scaling, gaps, and scratchpad sizing for
laptop. Added resolution-adaptive config tasks to todo.
|
| |
|
|
|
| |
Monocle layout now native in Hyprland 0.54. linux-lts at 6.18.16,
amdgpu workaround already removed.
|
| |
|
|
|
| |
Dim at 5min, lock at 7min, remove DPMS off and suspend. Update calibre
sort history and window geometry.
|
| |
|
|
|
|
|
|
| |
Add deepsat GitHub Enterprise host to ssh config, reorganize todo.org
with GitHub release prep tasks, add Berkeley Mono Nerd Font woff/woff2
variants, and move podman notes to outbox.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
| |
|
|
|
|
| |
Move select-window after sort_windows so the first new project gets
focus via stable window ID. Also restructure todo.org into flat task
list (V2MOM preserved in docs/v2mom.org).
|
| |
|
|
|
|
|
|
|
| |
Add package-inventory script that compares archsetup-declared packages
against the live system. Fix awk for-loop parser and dependency
filtering. Add 10 missing packages to archsetup (hyprpaper, wev, socat,
sshpass, flatpak, solaar, ttf-dejavu, atomicparsley, freetube,
tidal-dl-ng). Fix pipx_install function name bug. Change Hyprland
follow_mouse to 0 to fix swap focus issue.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Mark DONE: set-theme overwriting, plugin notifications, FZF verification
- Mark DONE: testing infrastructure (VM-based, 90 validation functions)
- Mark DONE: disk encryption, UFW firewall (handled in archangel)
- Mark DONE: SSH and Proton Mail Bridge verification
- Cancel: hy3 tab bar theming (plugin disabled due to crashes)
- Add: Chrome theme with dupre colors [#C]
- Reschedule: linux-lts check to 2026-02-23 (+3w)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
| |
Add hyprctl dismissnotify after hyprpm update to clear hardcoded
plugin initialization messages. Also document set-theme and plugin
notification issues in todo.org.
|
| |
|
|
| |
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
| |
- Remove yazi, lazygit, ouch from archsetup (theming issues)
- Update ranger comment to note X11/ueberzug dependency
- Update todo with yazi trial notes, lower priority
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
| |
The dunst/fuzzel configs exist in both dotfiles/common (stowed) and
dotfiles/hyprland/.config/themes/ (templates), requiring edits in
multiple places. Needs a cleaner single-source-of-truth approach.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
|
| |
Add static plugin { hy3 { tabs { ... } } } block with full color set
including border, focused, and darkened inactive tab colors. Eliminates
default cyan borders. Update set-theme with matching colors for both
dupre and hudson themes. Add exec-once set-theme to reapply theme on boot.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
| |
Add --border-color=d47c59ff (dupre red) and widen from 25 to 35
characters in pinentry-fuzzel so the password dialog stands out
from normal fuzzel usage and accommodates longer passwords.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
| |
Set frame_width to 0 (no border) and font size from 13 to 14 in both
dupre and hudson theme dunstrc files, matching waybar's 14px text size.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
| |
Removed the foot-files ranger scratchpad (workspace rule, keybinding,
window rules) and the redundant CTRL+ALT+F nautilus binding. mod-F now
launches nautilus directly as a regular window.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
| |
Add nautilus keybinding, monocle tab-group theming, dunst text sizing,
and bump fuzzel/dunst tasks to priority B.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
| |
Mark done: temperature/storage waybar thresholds, dotfiles cleanup,
dotfiles reorganization. Cancel rofi-wayland (chose fuzzel). Add new
tasks for dunst border removal and fuzzel border visibility.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
| |
Temperature turns yellow at 70°C, red at 80°C using built-in waybar
states. Disk replaced with custom script that turns yellow at 80% full,
red at 90%, working across ZFS/btrfs/ext4. Colors themed per dupre/hudson.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
| |
Replaced Vimix/Capitaine cursors with Bibata-Modern-Ice across all
config locations: hyprland.conf, dupre/hudson Xresources, GTK settings,
and archsetup package list. Standardized cursor size to 24.
|
| |
|
|
|
|
| |
Replaced inline grim/satty keybindings with screenshot script that
captures to file then presents fuzzel menu: Copy Path, Copy Image,
or Annotate. Bindings: $mod+S (region), $mod+Print (fullscreen).
|
| |
|
|
|
| |
Added focus_on_activate = true to misc section so new windows
spawning as master receive keyboard focus immediately.
|
| |
|
|
|
| |
Added themed disconnected color to netspeed module CSS across base,
dupre, and hudson styles. Changed disconnected label to "Offline".
|
| |
|
|
|
| |
Removed #wireplumber.muted color darkening from base, dupre, and
hudson waybar CSS. Icon change and "Muted" text are sufficient cues.
|
| |
|
|
|
| |
Changed master layout new_status from slave to master so new
windows spawn as master with focus, matching DWM default behavior.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
- Add gammastep to geoclue whitelist (fixes "unable to obtain geoclue
client path" error on Hyprland launch)
- Remove is_amd_zen5() detection and Hardware Workarounds section
(clearcpuid=rdseed doesn't suppress the kernel warning)
- Add dismissnotify after hyprpm reload to suppress plugin notifications
- Update theme configs from Dupre to Hudson
- Update todo.org with RDSEED task resolution
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename dotfiles/system to dotfiles/common for clarity - indicates
shared dotfiles used across all desktop environments (DWM, Hyprland).
Removed config directories for uninstalled applications:
- ghostty (using different terminal)
- lf (using ranger instead)
- mopidy (using mpd instead)
- nitrogen (X11-only, obsolete for Wayland)
- pychess (not installed)
- JetBrains (not installed via archsetup)
- youtube-dl (using yt-dlp with different config location)
Kept audacious config for potential future use.
Updated all references in archsetup, CLAUDE.md, todo.org, and
validation.sh.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move X11/DWM-specific scripts to dotfiles/dwm/.local/bin/:
- All dmenu* scripts (7)
- All statusbar/sb-* scripts (24)
- Display scripts: brightness, displayselect, monitor, colorpick
- Input scripts: remaps, toggle-touchpad, samedir
- Menu scripts: exitmenu, prompt, airplanemodetoggle, audioselect
- Media scripts: screenshotmenu, recordnow, setbg, wallsearch, bookfind
- Misc: battery_monitor, td-toggle
Delete obsolete scripts:
- build.emacs.aur.sh (redundant with build-emacs.sh)
- bsdnet_bounce (FreeBSD only)
- calibre-install (just curls installer)
- debugemacs (hardcoded paths)
- gruv (duplicate of alias)
- reset-auth (unclear purpose)
- touchpad-indicator-start (obsolete daemon)
- starth (unused Hyprland starter)
Universal scripts remain in dotfiles/system/.local/bin/ for both
X11 and Wayland installs.
Also update todo.org: cancel pywal and waybar netspeed tasks,
mark desktop file pruning done.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
| |
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
| |
|
|
| |
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|