aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* chore(todo): reorganize Hyprland task headingsCraig Jennings2026-01-271-156/+174
|
* docs(CLAUDE.md): update project structure and remove stale contentCraig Jennings2026-01-271-38/+34
| | | | | | Reflect current directory layout (assets/, scripts/, inbox/), add theme system section, remove changelog and pending work that belong in NOTES.org.
* chore: move arch-distrobox and wipedisk to scriptsCraig Jennings2026-01-272-0/+0
|
* chore: move spec.org to assetsCraig Jennings2026-01-271-0/+0
|
* fix(scripts): update wireguard config path after renameCraig Jennings2026-01-271-1/+1
|
* feat(assets): add dupre color theme reference and palette generatorCraig Jennings2026-01-275-0/+595
| | | | | Add color-themes/ with dupre palette org doc, PNG swatch image, and ImageMagick generation script. Move old docs to outbox.
* chore(assets): reorganize into outbox and wireguard-configCraig Jennings2026-01-2716-11/+0
| | | | | Move processed inbox files to assets/outbox/, rename assets/wireguard to assets/wireguard-config, delete unused dwm.desktop.
* fix(archsetup): add gammastep geoclue config, remove RDSEED workaroundCraig Jennings2026-01-269-152/+130
| | | | | | | | | | - 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
* fix: move X11-specific configs from common to dwmCraig Jennings2026-01-2614-0/+0
| | | | | | | | | | | | 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>
* docs: update session context with Makefile targetsCraig Jennings2026-01-261-21/+24
| | | | Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(makefile): allow import to common, dwm, or hyprlandCraig Jennings2026-01-261-26/+40
| | | | | | | | | | | 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>
* fix(makefile): include top-level dotdirs in import selectionCraig Jennings2026-01-261-0/+1
| | | | | | | | | | | 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>
* feat(makefile): add import target, rename adopt to resetCraig Jennings2026-01-261-7/+39
| | | | | | | | | | | | | | | | 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>
* feat: add Makefile for GNU Stow dotfile managementCraig Jennings2026-01-261-0/+76
| | | | | | | | | | | | | | | | | 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>
* feat(scripts): add org-protocol-setup for Emacs captureCraig Jennings2026-01-261-0/+9
| | | | | | | Minimal script to register org-protocol:// scheme handler. Extracted from resetmimetypes script. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(scripts): remove resetmimetypes scriptCraig Jennings2026-01-261-123/+0
| | | | Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>