summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fix(hyprland): simplify monitor scratchpad to btop onlyv0.5Craig Jennings2026-01-291-36/+2
| | | | | | | Remove tmux session and other monitoring tools (s-tui, nvtop, duf, bandwhich, wavemon, powertop). Just run btop directly. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(dotfiles): update authinfo credentialsCraig Jennings2026-01-291-0/+0
| | | | Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(theme): apply Dupre palette to all configsCraig Jennings2026-01-295-75/+75
| | | | | | | | | | | | | Update theme colors from Hudson to Dupre across: - dunstrc (notifications) - foot.ini (terminal) - fuzzel.ini (launcher) - hyprlock.conf (lock screen) - waybar/style.css (status bar) Colors now match dupre-palette.org specification. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(hyprland): only reload hyprpm if plugins are installedCraig Jennings2026-01-291-1/+1
| | | | | | | Check if hyprpm list has output before running reload. Prevents "headers are not up-to-date" error on fresh installs. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(hyprland): remove easyeffects auto-launchCraig Jennings2026-01-292-6/+0
| | | | | | | | | | Remove easyeffects from exec-once - user can configure autostart themselves via easyeffects settings. Also remove easyeffects config from dotfiles as it gets overwritten by the app when user changes settings. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(dotfiles): add mimeapps.list with default associationsCraig Jennings2026-01-292-0/+45
| | | | | | | | | | | Move mimeapps.list to ~/.config/ location (takes precedence) and set default applications: - Browser: google-chrome - Documents: zathura (pdf, epub, mobi, cbz, cbr) - Images: feh - Video/Audio: mpv Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(keyring,hyprpm): use template keyring, fix hyprpm warningCraig Jennings2026-01-295-63/+10
| | | | | | | | | | | | | | Keyring: - Add empty-password login.keyring template to dotfiles - Remove init-keyring script (secretstorage API requires prompting) - Remove python-secretstorage dependency - Remove PAM gnome-keyring config (not needed with template approach) Hyprpm: - Only run hyprpm reload if plugins are installed - Prevents "Failed to load plugins" warning on fresh installs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(hyprland): resolve autologin startup issuesCraig Jennings2026-01-295-10/+56
| | | | | | | | | | | | - Use start-hyprland wrapper instead of Hyprland directly (fixes "started without start-hyprland" warning) - Add init-keyring script to create empty-password keyring (fixes keyring password prompt with autologin) - Add easyeffects config with noWindowAfterStarting=true (starts minimized instead of fullscreen) - Install python-secretstorage for init-keyring script Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(test): use local repo for archsetup instead of remoteCraig Jennings2026-01-291-0/+3
| | | | | | | | Set ARCHSETUP_REPO=/tmp/archsetup-test in VM config so archsetup uses the bundled test repo instead of cloning from remote server. This ensures tests use the current local changes. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(test): use PROJECT_ROOT for git bundle creationCraig Jennings2026-01-291-1/+1
| | | | | | | The git bundle command was running from current directory instead of PROJECT_ROOT, causing it to bundle from wrong repo. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(archsetup): remount /.snapshots after snapper configCraig Jennings2026-01-291-0/+6
| | | | | | | | Archangel creates @snapshots subvolume and adds it to fstab. Archsetup unmounts it for snapper create-config, but never remounted it, causing snap-pac errors during package installs. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(test,hyprland): improve test infrastructure and fix easyeffectsCraig Jennings2026-01-295-14/+38
| | | | | | | | | | | | | | | | | | | | Test Infrastructure: - Add make test-keep target to keep VM running after test - Add make test-vm-base target for creating base VM only - Update make test to auto-create VM if missing - Remove manual user creation from create-base-vm.sh (archsetup handles it) - Remove unused USERNAME/USER_PASSWORD from archsetup-test.conf Archsetup: - Add snapper-gui-git for btrfs snapshot GUI - Add SYNC_ACL=yes for snapper permissions - Add setfacl for wheel group access to /.snapshots Hyprland: - Remove easyeffects scratchpad (keep auto-launch) - Remove ecosystem permissions (caused too many popups) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(dotfiles): add easyeffects UI configCraig Jennings2026-01-281-0/+2
|
* fix(dotfiles): move easyeffects presets to correct locationCraig Jennings2026-01-283-0/+0
| | | | | EasyEffects stores presets in ~/.local/share/easyeffects/output/, not ~/.config/easyeffects/output/. Moved presets to correct path.
* feat(dotfiles): add btop, wavemon, waypaper configsCraig Jennings2026-01-283-0/+312
| | | | | | - btop: resource monitor configuration - wavemon: wifi signal monitor configuration - waypaper: wallpaper picker configuration (Hyprland)
* feat(hyprland): add monitor-dashboard, remove htop scratchpadCraig Jennings2026-01-282-8/+38
| | | | | | - Monitor scratchpad now launches monitor-dashboard (tmux session with btop, s-tui, nvtop, duf, bandwhich, wavemon, powertop) - Remove htop scratchpad ($mod+Shift+H now free)
* fix(dotfiles): remove vim=nvim aliasCraig Jennings2026-01-282-2/+0
| | | | Use vim directly instead of aliasing to neovim.
* feat(archsetup): add packages and fix vi->vimCraig Jennings2026-01-281-6/+9
| | | | | | | | | | | | | | | | | | | Hyprland utilities: - Add waypaper (wallpaper GUI, swww frontend) - Add wlogout-git (logout menu) Monitoring tools: - Add btop, nvtop, s-tui, wavemon, bandwhich - Remove gotop-bin (replaced by btop) Qt theming: - Add adwaita-qt5, adwaita-qt6 for consistent Qt/GTK appearance Btrfs snapshots: - Add snap-pac for automatic snapshots on pacman transactions Fix: - Change vi to vim (vi package doesn't exist in repos)
* feat(Makefile): add deps target for project dependenciesCraig Jennings2026-01-281-1/+16
| | | | | Installs stow, fzf for Makefile targets and qemu-full, virt-manager, libguestfs, bridge-utils, dnsmasq, archiso, sshpass, socat for VM testing.
* fix(archsetup): remove thunar in favor of nautilusCraig Jennings2026-01-281-2/+1
| | | | | Nautilus was added as the file manager. Thunar was redundant and caused D-Bus duplicate name warnings for org.freedesktop.FileManager1.
* feat(hyprland): add TTY1 auto-start with crash recoveryCraig Jennings2026-01-281-0/+26
| | | | | | | Auto-starts Hyprland on TTY1 login while preserving console access if Hyprland crashes. Uses no exec so shell stays alive as parent process. Skip with touch ~/.skip-hyprland. Silent launch with logging to ~/.local/var/log/.
* fix(hyprland): resolve waybar 25s startup delay and separate X11 dotfilesCraig Jennings2026-01-2810-8/+25
| | | | | | | | - Add portals.conf with Settings=none to prevent D-Bus timeout - Reorder exec-once: portal/dbus first, then services, then apps - Move X11-specific dotfiles from common/ to dwm/ (Xresources, xinitrc, picom, redshift, conky, flameshot, touchpad-indicator) - Delete obsolete xdg-desktop-portal-gtk drop-in from common/
* feat(hyprland): add easyeffects EQ presets and autostartCraig Jennings2026-01-286-0/+748
| | | | | | - Add Harman EQ presets for DT770, PXC 550-II, and Pixel Buds Pro 2 - Start easyeffects minimized on Hyprland startup - Move preset docs and install script to assets/
* fix(hyprland): add persistent logging and fix waybar/script issuesCraig Jennings2026-01-288-16/+50
| | | | | | | | | | - Add persistent logging for waybar, dunst, hypridle, gammastep to ~/.local/var/log/ - Create start-hyprland wrapper script for Hyprland logging - Fix waybar-layout and toggle-scratchpad to auto-detect Hyprland socket - Add swap-icon-label: false to waybar group, remove height setting - Fix GTK CSS margin units (1 → 1px) to silence deprecation warning - Add battery detection in archsetup to exclude module on desktops - Update cursor theme to Bibata-Modern-Ice size 24
* feat(archsetup): add easyeffects, nautilus extensions, and WS-DiscoveryCraig Jennings2026-01-282-1/+17
| | | | | | Add easyeffects to audio section, nautilus/sushi/nautilus-open-any-terminal to hyprland section, wsdd and gvfs-wsdd for SMB network discovery. Add easyeffects scratchpad on mod+shift+a in hyprland config.
* feat(testing): add make test target and display report on completionCraig Jennings2026-01-272-1/+11
| | | | | Add 'make test' Makefile target to run full VM integration test suite. Print test report to terminal after generation for immediate visibility.
* feat(hyprland): add focus-restore script to preserve master on mod+shift+oCraig Jennings2026-01-272-1/+10
| | | | | | | | | 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>
* fix(mbsync): update cmail password file pathCraig Jennings2026-01-271-1/+1
| | | | Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(hyprland): speed up animations from 3 to 2Craig Jennings2026-01-271-5/+5
| | | | Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs(todo): add task to review theme config architectureCraig Jennings2026-01-271-0/+11
| | | | | | | | 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>
* feat(hyprland): add hy3 tab bar theme colors and boot-time theme applyCraig Jennings2026-01-273-5/+37
| | | | | | | | | 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>
* feat(fuzzel): use dupre red border on pinentry password promptCraig Jennings2026-01-272-2/+2
| | | | | | | | 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>
* feat(dunst): remove border and set font to 10pt to match waybarCraig Jennings2026-01-273-4/+4
| | | | | | | | 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>
* feat(dunst): remove border and match font size to waybarCraig Jennings2026-01-273-5/+5
| | | | | | | 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>
* feat(hyprland): bind mod-f to nautilus instead of ranger scratchpadCraig Jennings2026-01-272-9/+2
| | | | | | | | 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>
* docs(todo): add Hyprland UI tasks, update prioritiesCraig Jennings2026-01-271-2/+10
| | | | | | | 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>
* fix(topgrade): disable lensfun database updateCraig Jennings2026-01-271-1/+1
| | | | Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(testing): rewrite test infrastructure from libvirt to direct QEMUCraig Jennings2026-01-2714-1111/+816
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* docs(todo): mark completed tasks, add dunst/fuzzel UI tasksCraig Jennings2026-01-271-30/+23
| | | | | | | | 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>
* feat(waybar): add warning/critical color thresholds for temperature and diskCraig Jennings2026-01-276-13/+72
| | | | | | | | 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>
* feat(theme): switch cursor to Bibata Modern IceCraig Jennings2026-01-276-23/+24
| | | | | | 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.
* fix(screenshot): use ISO 8601 date format in filenamesCraig Jennings2026-01-271-1/+1
| | | | | Changed from 2026.01.27-HHMMSS to 2026-01-27_HHMMSS for standard date formatting and clean date/time separation.
* fix(screenshot): explicit mime types for wl-copyCraig Jennings2026-01-271-2/+2
| | | | | Added --type text/plain for path copy and --type image/png for image copy to prevent wl-copy from misinterpreting content.
* feat(hyprland): screenshot script with fuzzel menuCraig Jennings2026-01-273-5/+32
| | | | | | 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).
* fix(hyprland): focus new windows when they openCraig Jennings2026-01-272-2/+4
| | | | | Added focus_on_activate = true to misc section so new windows spawning as master receive keyboard focus immediately.
* fix(waybar): show red network icon when disconnectedCraig Jennings2026-01-275-21/+41
| | | | | Added themed disconnected color to netspeed module CSS across base, dupre, and hudson styles. Changed disconnected label to "Offline".
* fix(waybar): keep volume text readable when mutedCraig Jennings2026-01-274-14/+4
| | | | | Removed #wireplumber.muted color darkening from base, dupre, and hudson waybar CSS. Icon change and "Muted" text are sufficient cues.
* fix(hyprland): open new windows in master areaCraig Jennings2026-01-272-3/+4
| | | | | Changed master layout new_status from slave to master so new windows spawn as master with focus, matching DWM default behavior.
* fix(archsetup): enable BeaconDB for geoclue location serviceCraig Jennings2026-01-271-0/+6
| | | | | Default Mozilla Location Service (Ichnaea) API is defunct (returns 404). Uncomment BeaconDB community replacement URL in geoclue.conf.
* fix(hyprland): fix gammastep geoclue integrationCraig Jennings2026-01-273-21/+5
| | | | | Use [general] section header (not [gammastep]), switch to geoclue2 location provider, and start geoclue demo agent in hyprland.conf.