summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
10 hoursfeat(hyprland): add focus-restore script to preserve master on mod+shift+oCraig Jennings
The xtra-dispatchers bringallfrom dispatcher doesn't preserve window positions, displacing the focused window from master. The new script captures the focused window address, brings all windows back, then swaps the original window back to master. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
10 hoursfix(mbsync): update cmail password file pathCraig Jennings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
11 hoursfeat(hyprland): speed up animations from 3 to 2Craig Jennings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
13 hoursdocs(todo): add task to review theme config architectureCraig Jennings
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>
13 hoursfeat(hyprland): add hy3 tab bar theme colors and boot-time theme applyCraig Jennings
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>
13 hoursfeat(fuzzel): use dupre red border on pinentry password promptCraig Jennings
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>
13 hoursfeat(dunst): remove border and set font to 10pt to match waybarCraig Jennings
Set frame_width to 0 and font size to 10pt (≈13.3px) across all three dunstrc files (common, dupre theme, hudson theme) to visually match waybar's 14px CSS font size. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
14 hoursfeat(dunst): remove border and match font size to waybarCraig Jennings
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>
14 hoursfeat(hyprland): bind mod-f to nautilus instead of ranger scratchpadCraig Jennings
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>
14 hoursdocs(todo): add Hyprland UI tasks, update prioritiesCraig Jennings
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>
14 hoursfix(topgrade): disable lensfun database updateCraig Jennings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
14 hoursfeat(testing): rewrite test infrastructure from libvirt to direct QEMUCraig Jennings
Replace the never-fully-operational libvirt-based VM test infrastructure with direct QEMU management and archangel ISO for fully automated, unattended base VM creation. Key changes: - vm-utils.sh: complete rewrite — QEMU process mgmt via PID file, monitor socket for graceful shutdown, qemu-img snapshots, SSH port forwarding (localhost:2222) - create-base-vm.sh: boots archangel ISO, SSHs in, runs unattended install via config file, verifies, creates clean-install snapshot - run-test.sh: snapshot revert, git bundle transfer, detached archsetup execution with setsid, polling, validation, and report generation - debug-vm.sh: CoW overlay disk, GTK display, auto-cleanup on close - setup-testing-env.sh: reduced deps to qemu-full/sshpass/edk2-ovmf/socat - cleanup-tests.sh: PID-based process management, orphan detection - validation.sh: port-based SSH (backward compatible), fuzzel/foot for Hyprland, corrected package list paths - network-diagnostics.sh: getent/curl instead of nslookup/ping (SLIRP) New files: - archsetup-test.conf: archangel config for base VM (btrfs, no encrypt) - archsetup-vm.conf: archsetup config for unattended test execution - assets/archangel.conf.example: reference archangel config Deleted: - finalize-base-vm.sh: merged into create-base-vm.sh - archinstall-config.json: replaced by archangel .conf format Tested: full end-to-end run — 51 validations passed, 0 failures. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
22 hoursdocs(todo): mark completed tasks, add dunst/fuzzel UI tasksCraig Jennings
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>
22 hoursfeat(waybar): add warning/critical color thresholds for temperature and diskCraig Jennings
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>
23 hoursfeat(theme): switch cursor to Bibata Modern IceCraig Jennings
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.
23 hoursfix(screenshot): use ISO 8601 date format in filenamesCraig Jennings
Changed from 2026.01.27-HHMMSS to 2026-01-27_HHMMSS for standard date formatting and clean date/time separation.
23 hoursfix(screenshot): explicit mime types for wl-copyCraig Jennings
Added --type text/plain for path copy and --type image/png for image copy to prevent wl-copy from misinterpreting content.
23 hoursfeat(hyprland): screenshot script with fuzzel menuCraig Jennings
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).
24 hoursfix(hyprland): focus new windows when they openCraig Jennings
Added focus_on_activate = true to misc section so new windows spawning as master receive keyboard focus immediately.
24 hoursfix(waybar): show red network icon when disconnectedCraig Jennings
Added themed disconnected color to netspeed module CSS across base, dupre, and hudson styles. Changed disconnected label to "Offline".
24 hoursfix(waybar): keep volume text readable when mutedCraig Jennings
Removed #wireplumber.muted color darkening from base, dupre, and hudson waybar CSS. Icon change and "Muted" text are sufficient cues.
24 hoursfix(hyprland): open new windows in master areaCraig Jennings
Changed master layout new_status from slave to master so new windows spawn as master with focus, matching DWM default behavior.
24 hoursfix(archsetup): enable BeaconDB for geoclue location serviceCraig Jennings
Default Mozilla Location Service (Ichnaea) API is defunct (returns 404). Uncomment BeaconDB community replacement URL in geoclue.conf.
24 hoursfix(hyprland): fix gammastep geoclue integrationCraig Jennings
Use [general] section header (not [gammastep]), switch to geoclue2 location provider, and start geoclue demo agent in hyprland.conf.
25 hourschore(todo): reorganize Hyprland task headingsCraig Jennings
25 hoursdocs(CLAUDE.md): update project structure and remove stale contentCraig Jennings
Reflect current directory layout (assets/, scripts/, inbox/), add theme system section, remove changelog and pending work that belong in NOTES.org.
25 hourschore: move arch-distrobox and wipedisk to scriptsCraig Jennings
25 hourschore: move spec.org to assetsCraig Jennings
25 hoursfix(scripts): update wireguard config path after renameCraig Jennings
25 hoursfeat(assets): add dupre color theme reference and palette generatorCraig Jennings
Add color-themes/ with dupre palette org doc, PNG swatch image, and ImageMagick generation script. Move old docs to outbox.
25 hourschore(assets): reorganize into outbox and wireguard-configCraig Jennings
Move processed inbox files to assets/outbox/, rename assets/wireguard to assets/wireguard-config, delete unused dwm.desktop.
33 hoursfix(archsetup): add gammastep geoclue config, remove RDSEED workaroundCraig Jennings
- 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
36 hoursfix: move X11-specific configs from common to dwmCraig Jennings
Move files that are specific to DWM/X11 setups: - gpg-agent.conf (uses pinentry-dmenu) - pinentry-dmenu.conf - Desktop files using X11 tools (st, slock, sxiv, etc.) These conflict with hyprland equivalents and should only be stowed on DWM systems. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
36 hoursdocs: update session context with Makefile targetsCraig Jennings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 hoursfeat(makefile): allow import to common, dwm, or hyprlandCraig Jennings
Import now requires destination: make import common # Import to shared configs make import dwm # Import to DWM-specific make import hyprland # Import to Hyprland-specific Prompt and header now show destination. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 hoursfix(makefile): include top-level dotdirs in import selectionCraig Jennings
Import now searches: - ~/.* (top-level dotdirs like .emacs.d, .ssh) - ~/.config/* - ~/.local/* Excludes .cache, .local, .config from top-level (they're handled separately). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 hoursfeat(makefile): add import target, rename adopt to resetCraig Jennings
New targets: - import: Use fzf to select ~/.config and ~/.local dirs to import into dotfiles/common/, then restow to create symlinks - reset: Renamed from adopt - clearer name for "resolve conflicts, keep repo version" Import workflow: 1. fzf multi-select from ~/.config and ~/.local 2. Move selected dirs to dotfiles/common/ 3. Restow common to create symlinks 4. Reminder to git commit Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 hoursfeat: add Makefile for GNU Stow dotfile managementCraig Jennings
Targets: - stow: Create symlinks (fresh install) - restow: Refresh symlinks after git pull - adopt: Pull system files, reset to repo version - unstow: Remove all symlinks Usage: make <target> <de> make stow dwm make restow hyprland make adopt dwm Shows help if DE argument missing. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 hoursfeat(scripts): add org-protocol-setup for Emacs captureCraig Jennings
Minimal script to register org-protocol:// scheme handler. Extracted from resetmimetypes script. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 hourschore(scripts): remove resetmimetypes scriptCraig Jennings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 hourschore(scripts): remove 11 unused scripts, fix yt-dlp aliasesCraig Jennings
Removed scripts: - dotfiles_pushall, lsbak, project, protonvpn, steam - sudo-update-grub, sysupdate, transadd, update-backup-repositories - virtstart, ytp (duplicate of alias) Updated yt-dlp aliases in media.sh: - --add-metadata -> --embed-metadata (deprecated option) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 hourschore(hyprland): remove unused power-menu scriptCraig Jennings
Using wlogout for power/session management instead. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 hourschore(dwm): remove 17 unused X11 scriptsCraig Jennings
Keep only scripts actually used or useful for DWM: - airplanemodetoggle - toggle WiFi/Bluetooth - brightness - backlight control (bound to XF86 keys) - colorpick - X11 color picker - dmenuexitmenu - logout/shutdown menu (Mod+Shift+Q) - dmenuunicode - emoji picker - screenshotmenu - screenshot tool - toggle-touchpad - touchpad toggle (Mod+F9) - wallsearch - wallpaper search/download Removed scripts not referenced in DWM config.def.h or sxhkdrc: audioselect, battery_monitor, bookfind, displayselect, dmenuhandler, dmenumount, dmenumountcifs, dmenurecord, dmenuumount, exitmenu, monitor, prompt, recordnow, remaps, samedir, setbg, td-toggle Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 hourschore(dwm): remove unused dwmblocks statusbar scriptsCraig Jennings
Delete 24 sb-* scripts in statusbar/ directory - dwmblocks is not installed or used. Also removes sublime-merge config (manual install, not in archsetup). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
37 hourschore(scripts): remove lf scripts, update yt-dlp optionCraig Jennings
- Remove lfrun and lfub (lf file manager not installed, using ranger) - Update ytp script: --add-metadata -> --embed-metadata Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
38 hoursfeat(dotfiles): add yt-dlp config with modern optionsCraig Jennings
Replaces old youtube-dl config with yt-dlp equivalent using updated option names: - --add-metadata -> --embed-metadata - --format best -> --format bestvideo+bestaudio/best Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
38 hoursrefactor(dotfiles): rename system/ to common/ and remove unused configsCraig Jennings
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>
38 hoursdocs: update session context with script reorganizationCraig Jennings
38 hoursrefactor(scripts): reorganize scripts by desktop environmentCraig Jennings
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>
38 hourschore: update config files and todoCraig Jennings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>