summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
16 hoursfeat(fuzzel): change border color to theme blue for visibilityCraig Jennings
Border was gold/goldenrod (same as selection and match highlight), making the menu hard to spot. Changed to theme blue (dupre: #67809c, hudson: #81a2be) for contrast. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
16 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>
16 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>
16 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>
16 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>
16 hoursfix(topgrade): disable lensfun database updateCraig Jennings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
16 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>
24 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>
25 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>
25 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.
26 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.
26 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.
26 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).
26 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.
26 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".
26 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.
26 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.
27 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.
27 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.
27 hourschore(todo): reorganize Hyprland task headingsCraig Jennings
27 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.
27 hourschore: move arch-distrobox and wipedisk to scriptsCraig Jennings
27 hourschore: move spec.org to assetsCraig Jennings
27 hoursfix(scripts): update wireguard config path after renameCraig Jennings
27 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.
27 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.
36 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
39 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>
39 hoursdocs: update session context with Makefile targetsCraig Jennings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
39 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>
39 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>
39 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>
39 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>
39 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>
39 hourschore(scripts): remove resetmimetypes scriptCraig Jennings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
39 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>
39 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>
40 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>
40 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>
40 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>
40 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>
40 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>
40 hoursdocs: update session context with script reorganizationCraig Jennings
40 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>
41 hourschore: update config files and todoCraig Jennings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
41 hoursrefactor(shell): reorganize shell config for proper separationCraig Jennings
Restructure shell configuration to follow standard conventions: - .profile: Environment variables only (POSIX compatible) - .bash_profile: NEW - sources .profile and .bashrc for login shells - .bashrc: Bash-specific settings, sources .bashrc.d/ - .zshrc: Zsh-specific settings, sources .zshrc.d/ New modular directories: - .bashrc.d/: aliases, emacs, fzf, git, media, utilities - .zshrc.d/: same as bashrc.d plus arch-downgrade (zsh-only) - .profile.d/: reduced to env-only files (display, framework, auto-tmux) Fixes: - Remove duplicate .profile sourcing in .bashrc - Remove broken XDG_CURRENT_DESKTOP=GNOME line from display.sh - Move aliases/functions from .profile to appropriate .d/ directories - Shell-specific init (zoxide, fzf) now in .bashrc/.zshrc directly - FreeBSD bindkey fix now in .zshrc directly Also adds CLAUDE.md session context file. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
41 hoursfeat(themes): add Qt theming and font packagesCraig Jennings
- Configure Qt5/Qt6 to use Adwaita-Dark style via adwaita-qt - Add qt6ct.conf with matching settings to qt5ct - Set QT_STYLE_OVERRIDE for consistent dark theme - Add XCURSOR_THEME to hyprland.conf - Update pinentry-dmenu to use BerkeleyMono Nerd Font - Add font packages to archsetup: cantarell-fonts, ttf-caladea, ttf-carlito, ttf-croscore Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
41 hoursrefactor(mimetypes): clean up resetmimetypes scriptCraig Jennings
- Add shebang - Fix nsxiv → feh for images - Fix typo in image/jpeg MIME type - Fix Transmission desktop file name - Change web handler from Firefox to Chrome - Remove commented cruft (296 → 124 lines) - Trim redundant LibreOffice/VLC MIME types Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
42 hoursfeat(hyprland): prune app menu and switch to Nautilus file managerCraig Jennings
- Add 90 desktop file overrides (NoDisplay=true) to hide unwanted apps - Switch file manager from Thunar to Nautilus in hyprland.conf and sxhkdrc - Update resetmimetypes script to use Nautilus for directories - Remove Thunar config (accels.scm, uca.xml) - Remove unused torrent.desktop - Add hyprland.sh profile with Wayland environment overrides - Rename calibre-ebook-viewer to "Calibre E-book Viewer" in menu - Update gammastep to gammastep-indicator for tray control Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
43 hoursfeat(hyprland): add hyprctl kill binding (Ctrl+Alt+Super+K)Craig Jennings
Wayland equivalent of xkill - click any window to force kill it. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>