| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
I added cpupower earlier this session, VM-verified it, then realized it's the wrong tool here. Both my machines run active-mode pstate drivers (the desktop on amd-pstate-epp, the laptop on intel_pstate), where the only governors are performance and powersave and the driver scales frequency itself via EPP. Both already sit on powersave, which is the recommended adaptive mode, not "slow."
cpupower's governor-forcing only helps older acpi-cpufreq systems, which I don't run. Forcing performance would pin max clocks: worse battery on the laptop, pointless heat on the desktop. So I dropped the cpupower step rather than ship a backwards default. The cpufreq drivers self-manage with no help from us.
|
| |
|
|
| |
Three task additions from this session: provision Eask in archsetup (linear-emacs handoff), add signal-cli to the standard install (.emacs.d handoff), and investigate dimming inactive Hyprland windows.
|
| |
|
|
| |
Both were stale. The eval task pointed at a line-434 eval that no longer exists. The only eval left is in retry_install, and it's the deliberate one that captures the exit code directly, so there's nothing to replace. The rustup task was already implemented (rustup install plus rustup default stable in the languages section). It just predated that work.
|
| |
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
The priority scheme requires an [#A] to carry a date. Six were undated aspirational backlog with no active work — the CI/CD pipeline, recovery-script generation, the package-inventory trio (inventory system, monthly review, automated comparison), and security education — so I dropped them to [#B].
I cancelled "Prevent X termination and VT switching." Its whole approach is xorg.conf.d with DontVTSwitch and DontZap, dead now that these machines run pure Wayland with no XWayland.
I also recorded today's review date on the open tasks I walked.
|
| |
|
|
| |
I logged three follow-ups: uneven waybar indicator spacing, airplane-mode toggle hardening (a laptop guard and a brightness fallback), and rectangular wlogout exit-menu buttons. I also moved the finished touchpad and airplane-mode entries into the resolved section, and added a gitignore rule so dated .bak backups stay on disk but out of git.
|
| |
|
|
|
|
|
|
| |
I added a laptop-only waybar button that drops the machine into a low-power state and restores it on a second click. Engaging turns wifi off, sets the CPU energy-performance preference to power, dims the backlight to 35%, and stops network-only services (tailscale, proton-vpn, avahi, cups, wsdd, geoclue, sshd, fail2ban, syncthing). Bluetooth is left alone so earbuds keep working.
Disengaging replays the state recorded when airplane mode was engaged rather than writing hardcoded defaults. A lever already in its low-power position is left untouched: wifi that was already off stays off, and a service that was already stopped isn't restarted.
The indicator hides itself on machines with no battery, so desktops never show the button. State lives in $XDG_RUNTIME_DIR/airplane-state, and the bar refreshes the moment the toggle fires via a realtime signal.
|
| |
|
|
|
|
| |
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.
|