summaryrefslogtreecommitdiff
path: root/archsetup
AgeCommit message (Collapse)Author
9 hoursfeat(hyprland): add pyprland for scratchpads, magnify, and window stashingCraig Jennings
Replace native special workspace scratchpads with pyprland to fix issue where new windows were captured by visible scratchpads. Add magnify on mod+Z and window stash scripts (mod+O to stash, mod+Alt+O stash others, mod+Shift+O restore).
20 hoursfix(keyring,hyprpm): use template keyring, fix hyprpm warningCraig Jennings
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>
22 hoursfix(hyprland): resolve autologin startup issuesCraig Jennings
- 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>
25 hoursfix(archsetup): remount /.snapshots after snapper configCraig Jennings
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>
25 hoursfeat(test,hyprland): improve test infrastructure and fix easyeffectsCraig Jennings
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>
43 hoursfeat(archsetup): add packages and fix vi->vimCraig Jennings
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)
45 hoursfix(archsetup): remove thunar in favor of nautilusCraig Jennings
Nautilus was added as the file manager. Thunar was redundant and caused D-Bus duplicate name warnings for org.freedesktop.FileManager1.
2 daysfix(hyprland): add persistent logging and fix waybar/script issuesCraig Jennings
- 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
2 daysfeat(archsetup): add easyeffects, nautilus extensions, and WS-DiscoveryCraig Jennings
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.
3 daysfeat(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.
3 daysfix(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.
3 daysfix(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.
3 daysfix(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
4 daysrefactor(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>
4 daysfeat(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>
4 daysfeat(archsetup): add mpd, mpc, and ncmpcppCraig Jennings
Music player daemon and ncurses client for music playback.
4 daysfeat(archsetup): add btrfs snapshots and Zen 5 workaroundCraig Jennings
- Add snapper, grub-btrfs, inotify-tools for btrfs systems - Configure snapper with conservative retention policy - Add is_amd_zen5() detection for CPU family 26 - Add Hardware Workarounds section with RDSEED32 fix (CVE-2025-62626)
4 daysfeat(themes): standardize fonts and add hy3 tab bar themingCraig Jennings
- Standardize font to BerkeleyMono Nerd Font size 13pt across configs - Add unit comments (points vs pixels) to font settings - Add hy3 tab bar colors to set-theme for dupre and hudson themes - Add GTK file chooser sort-directories-first to archsetup - Update todo.org with completed tasks and new test task
4 daysfeat(hyprland): add satty screenshot annotation and hyprpickerCraig Jennings
Replace direct grim saves with satty annotation workflow for screenshots. Add hyprpicker color picker on mod+C (freed from duplicate qalculate binding). Add both packages to archsetup.
4 daysfeat(hyprland): add plugins and simplify layoutsCraig Jennings
Plugins installed via hyprpm: - hy3: i3-style manual tiling with tab groups (monocle) - hyprscrolling: PaperWM-style horizontal scrolling - xtra-dispatchers: throwunfocused, bringallfrom, closeunfocused Layout system simplified to 4 modes: - Master (tile) - default DWM-style - Tab group (monocle) - via hy3 plugin - Scrolling - horizontal columns - Floating New scripts: - layout-navigate: layout-aware j/k navigation - Updated cycle-layout: cycles through 4 layouts - Updated waybar-layout: icons for new layouts Other changes: - Add hyprpm reload to startup - Add cpio and fc-cache to archsetup - Remove SSH fuzzel picker (conflicted with scrolling keybind) - Add slidevert animation for scratchpads - Update todo.org with plugin evaluation notes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
5 daysfeat(hyprland): add fuzzel launcher and pinentry-fuzzelCraig Jennings
- Replace wofi with fuzzel in archsetup - Add fuzzel config with waybar-matching theme - Add pinentry-fuzzel script for GPG passphrase prompts - Add Hyprland-specific gpg-agent.conf using pinentry-fuzzel
5 daysfeat(archsetup): add interactive username/password promptsCraig Jennings
Replace hardcoded "welcome" password with interactive prompts during preflight checks. Fixes gnome-keyring password mismatch issue. - Username validation (lowercase, starts with letter, alphanumeric) - Password confirmation (enter twice, must match) - Remove forced password change on first login (chage -d 0)
5 daysfix(archsetup): remove btrfs snapshot tools and ZFS scriptsCraig Jennings
Remove timeshift-autosnap and grub-btrfs from btrfs installation path. Delete lkg and lkg_rollback ZFS utility scripts from dotfiles.
6 daysfeat(archsetup): add Hyprland/Wayland desktop environment supportCraig Jennings
- Add DESKTOP_ENV config variable (dwm/hyprland/none, default: hyprland) - Create wayland() and hyprland() installation functions - Add display_server/window_manager conditional step wrappers - Create dotfiles/hyprland/ with full config suite: - hyprland.conf with keybindings translated from DWM + sxhkd - waybar config matching conky status bar - hypridle/hyprlock for screen locking - wofi config matching rofi theme - gammastep config for Wayland (replaces redshift) - Add Hyprland validation tests to validation.sh - Update archsetup.conf.example with DESKTOP_ENV option
6 daysfix(archsetup): code cleanup and style fixesCraig Jennings
- Remove commented-out reflector code (timer handles updates) - Fix arithmetic expressions (remove unnecessary inner $) - Simplify file truncation (: > instead of cat /dev/null >) - Fix Xorg heredoc indentation - Add shellcheck bulk cleanup as priority D task
6 daysfix(archsetup): bug fixes, locale support, and code improvementsCraig Jennings
Bug fixes: - Initialize errors_encountered at script start (not in intro) - Capture correct exit code in retry_install loop - Add missing error_fatal parameters - Fix unclosed quote in error message - Quote variables in pacman_install/aur_install commands - Standardize done statements (remove trailing semicolons) New features: - Locale selection prompt with 8 common options + custom entry - Auto-derive wireless region from locale - Extract zfs-replicate to separate script file - Make archsetup repo URL configurable - Add MulticastDNS=no to avoid avahi conflict Code improvements: - Single STEPS array for show_status and main execution loop - Document security note for config file sourcing - Add explanatory comment for UFW VM behavior - Silence update-desktop-database warnings Config updates: - Add LOCALE and ARCHSETUP_REPO to example config Also adds Wayland/Hyprland desktop alternative to V2MOM roadmap.
7 daysprune(archsetup): remove valent packageCraig Jennings
Build time too long for limited utility. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7 daysrefactor(archsetup): improve code architecture and error handlingCraig Jennings
- Split error() into error_warn() and error_fatal() for clarity - Add retry_install() helper to eliminate DRY violation - Make repo URLs configurable via config file - Add section headers for better code organization: - Output & Logging, Installation Helpers, System Detection, System Configuration - Standardize function definition style (no space before parens) - Clean up display() function (remove semicolons, fix spacing) - Remove legacy error() wrapper Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7 daysprune(archsetup): remove podman, use docker for distroboxCraig Jennings
7 daysprune(archsetup): remove redundant and unused packagesCraig Jennings
Remove overlapping/unused packages: - librewolf-bin (commented out) - the_silver_searcher (ripgrep is faster) - dfc (duf is better) - p7zip (7zip is newer) - neovim (use emacs) - boxbuddy (just GUI for distrobox) - tageditor (commented out, build issues)
7 daysprune(archsetup): remove unused packagesCraig Jennings
Remove packages that aren't actively used: - pycharm-community-edition (use emacs for Python) - mcomix (comic book reader) - figlet, figlet-fonts (ASCII art text) - ledger (CLI accounting)
7 daysfix(archsetup): add btrfs detection, don't assume non-ZFS is btrfsCraig Jennings
- Add is_btrfs_root() function - Only install timeshift-autosnap and grub-btrfs on btrfs systems - Skip snapshot tools on ext4/other filesystems
7 daysfeat(archsetup): add config file support for unattended installsCraig Jennings
- Add --config-file PATH CLI flag - Add load_config() function to source config variables - Support USERNAME, PASSWORD, AUTOLOGIN, NO_GPU_DRIVERS config options - Create archsetup.conf.example with documented options Follows same pattern as archzfs project for consistency.
7 daysrefactor(archsetup): remove --skip-slow-packages flagCraig Jennings
texlive-meta was replaced with smaller texlive packages, and topgrade should always be installed. The flag is no longer needed.
7 daysfix(archsetup): improve error reporting and desktop database setupCraig Jennings
- Install desktop-file-utils before calling update-desktop-database - Simplify firewall warning to terse message in error summary - Clean up package failure messages to show just package name and source
7 daysfix(archsetup): add PAM config for gnome-keyring auto-unlockCraig Jennings
Configure /etc/pam.d/login to pass login password to gnome-keyring-daemon, enabling automatic keyring unlock on console login + startx workflow.
7 daysfeat(archsetup): add additional gstreamer codec packagesCraig Jennings
Add gst-plugins-bad, gst-plugins-ugly, and gst-libav for broader multimedia format support including AAC, MP3, x264, and FFmpeg codecs.
7 daysrefactor(archsetup): remove jdk, racket, and foliate packagesCraig Jennings
Remove unused packages: - jdk-openjdk and openjdk-doc (Java) - racket (Scheme) - foliate (epub reader)
7 daysrefactor(archsetup): replace texlive-meta with minimal package setCraig Jennings
texlive-meta installs 2GB of packages including games, music notation, and humanities packages that aren't needed. Replace with minimal set (~335MB) that provides core LaTeX, latexmk, and standard fonts.
7 daysfix(archsetup): enable syncthing user service via symlinkCraig Jennings
systemctl --user requires an active D-Bus user session bus, which doesn't exist during installation. Create the enable symlink directly in ~/.config/systemd/user/default.target.wants/ instead.
7 daysfix(archsetup): fix dbus-broker race condition with sysusersCraig Jennings
dbus-broker can start before systemd-sysusers completes, causing it to fail user validation when parsing service files that reference system users like geoclue. Add a drop-in to ensure sysusers runs first.
7 daysfix(archsetup): enable ufw firewall with ufw enable commandCraig Jennings
systemctl start ufw.service only runs ufw-init which checks if ENABLED=yes in /etc/ufw/ufw.conf. Without running 'ufw enable' first, the firewall remains inactive. Added 'ufw --force enable' to actually activate the firewall rules.
7 daysfix(archsetup): use modalias for GPU detection instead of lspciCraig Jennings
lspci parsing missed GPUs that report as "Display controller" instead of "VGA" (e.g., AMD Strix Halo). Modalias-based detection checks vendor IDs directly from /sys, which is more reliable and matches how the kernel itself identifies hardware.
8 daysfix(archsetup): add system config improvements and gnome-keyring setupCraig Jennings
- Enable chrony service and create /etc/sysconfig/chronyd to suppress warning - Configure wireless regulatory domain (US) for full WiFi capabilities - Configure paccache to retain 3 package versions - Pre-create gnome-keyring with 'login' default (auto-unlocks at login) - Add rtkit package for pipewire realtime scheduling - Add validation test for gnome-keyring setup - Add system action .desktop files (logout, shutdown, reboot, suspend, lock)
8 daysfix(archsetup): run update-desktop-database after stowCraig Jennings
Register custom .desktop files in desktop database after stow links them into place.
9 daysfix(archsetup): add firewall validation with critical warningCraig Jennings
- Verify ufw is active after setup completes - Display critical security warning in outro if firewall not active - Include manual fix commands in warning message
9 daysfix(archsetup): add locale configurationCraig Jennings
Configure en_US.UTF-8 locale early in Environment Configuration section to prevent "cannot change locale" errors during package installs.
9 daysfix(archsetup): replace ntp with chrony and add packagesCraig Jennings
- Replace deprecated ntp with chrony for time sync - Add opus codec (all music in opus format) - Add iperf3 and net-tools for network diagnostics - Add lexend-fonts-git font - Fix rmmod pcspkr error when module not loaded - Remove duplicate mediainfo entry (kept in Emacs section)
9 daysfix(claude-code): use native installer instead of npm-globalCraig Jennings
Native install to ~/.local/bin allows auto-updates without sudo.
9 daysfix(archsetup): increase GRUB timeout and switch syncthing to user serviceCraig Jennings
- GRUB_TIMEOUT 0→2 seconds for menu access - Syncthing: system service → user service with lingering to prevent lock conflicts - Update airplanemodetoggle for user service - Update validation to check lingering instead of system service