summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
25 hoursdocs(todo): add pywal theming and waybar issuesCraig Jennings
25 hoursfix(hyprland): use movetoworkspacesilent to stay on current workspaceCraig Jennings
25 hoursfeat(waybar): implement Hyprland-Rice inspired configCraig Jennings
Clean minimal design with DWM color scheme: - Transparent bar with solid module groups - Golden accent border (#daa520) - Group/sysmonitor for cpu, memory, disk - Wireplumber audio with click/scroll controls - Hover transitions, box shadows - Berkeley Mono font
26 hourschore: add reference-repos to gitignoreCraig Jennings
26 hoursfix(hyprland): rewrite scratchpads with on-created-emptyCraig Jennings
- Use workspace rules with on-created-empty for auto-launch - Single keybind per scratchpad (no more pgrep hacks) - Use --app-id for reliable class matching - Update to Hyprland 0.53+ windowrule syntax (match:class) - Fix size rules to use expressions: (monitor_w*0.6) (monitor_h*0.6)
26 hoursfeat(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)
26 hoursdocs(todo): add Hyprland config issues taskCraig Jennings
Track outstanding issues: scratchpads, wofi dismiss, wallpaper
26 hoursfeat(hyprland): add foot terminal configurationCraig Jennings
Berkeley Mono size 14, DWM-inspired color scheme, 10k scrollback
27 hoursfix(hyprland): update windowrule syntax and keybindingsCraig Jennings
- Convert deprecated windowrulev2 to new windowrule syntax with match: prefix - Fix $mod+h/l to use splitratio instead of resizeactive for master sizing - Add missing DWM layout keybindings (bstack, deck, centeredmaster) - Fix scratchpad st commands to use -t for title matching - Update window class matching to st-256color
28 hoursfix(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.
45 hoursfix(testing): remove obsolete --skip-slow-packages optionCraig Jennings
This flag was removed from archsetup but remained in test scripts.
45 hoursfeat(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
46 hoursdocs(todo): add Hyprland planning tasksCraig Jennings
- Add NVIDIA preflight check task - Add DESKTOP_ENV default validation task - Add dotfile repos review task
2 daysfix(testing): relax UFW tests for VM environmentCraig Jennings
VM lacks iptables kernel modules so UFW cannot activate. Tests now only verify UFW is enabled rather than active.
2 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
2 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.
3 daysprune(archsetup): remove valent packageCraig Jennings
Build time too long for limited utility. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3 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>
3 daysprune(archsetup): remove podman, use docker for distroboxCraig Jennings
3 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)
3 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)
3 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
3 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.
3 dayschore: add stignore and reference docsCraig Jennings
- .stignore for syncthing - Reference notes for ZFS scripts removal and console display issues
3 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.
3 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
3 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.
3 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.
3 daysrefactor(archsetup): remove jdk, racket, and foliate packagesCraig Jennings
Remove unused packages: - jdk-openjdk and openjdk-doc (Java) - racket (Scheme) - foliate (epub reader)
4 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.
4 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.
4 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.
4 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.
4 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.
4 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)
5 daysdocs(todo): add weekly topgrade reminder for kernel upgradeCraig Jennings
Track linux-lts upgrade to 6.18+ which contains fix for AMD Strix Halo VPE power gating bug causing system freezes. Workaround in place until kernel upgrade.
5 daysfix(archsetup): run update-desktop-database after stowCraig Jennings
Register custom .desktop files in desktop database after stow links them into place.
5 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
5 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.
5 dayschore: rename TODO.org to todo.orgCraig Jennings
5 daysfix(dotfiles): update for ratio desktopCraig Jennings
- Set Xresources DPI to 109 for ultrawide monitor - Remove deno environment setup (no longer using)
5 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)
5 daysfix(claude-code): use native installer instead of npm-globalCraig Jennings
Native install to ~/.local/bin allows auto-updates without sudo.
5 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
6 daysdocs(TODO): add completed ZFS boot fixes and validation testsCraig Jennings
Document completed work from 2026-01-20/21 session: - Method 1: ZFS boot fixes (udev hook, nvme MODULES, random.trust_cpu) - Method 2: Boot configuration validation tests added to validation.sh - Reorganize URGENT section tasks into appropriate V2MOM methods
6 daysfix(archsetup): prevent ZFS boot failures and add validation testsCraig Jennings
- Skip udev→systemd hook change on ZFS systems (ZFS hook is busybox-based) - Add nvme to MODULES for NVMe systems (ensures devices ready for ZFS import) - Add random.trust_cpu=off to suppress AMD RDSEED warnings - Add has_nvme_drives() detection function New validation tests: - validate_terminus_font: check package installed via pacman - validate_mkinitcpio_hooks: verify ZFS uses udev not systemd - validate_initramfs_consolefont: check font in initramfs - validate_nvme_module: check nvme in MODULES for NVMe systems
6 daysfeat(testing): add bare metal ZFS test script + fix scrub timer checkCraig Jennings
Add run-test-baremetal.sh for testing on physical ZFS systems: - SSH to target host and run archsetup - Support for ZFS genesis snapshot rollback - Validate-only mode for existing installs - Same validation checks as VM tests Fix grep -c multi-line output issue in ZFS scrub timer check. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
6 daysfix(testing): add emacs config permission checkCraig Jennings
Verify .emacs.d directory is readable by user cjennings, not just that it exists. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
6 daysfix(testing): fix validation script bugs causing false failuresCraig Jennings
- Add || true to arithmetic increments (set -e exits on ((0++))) - Fix grep -c multi-file output parsing with tr and defaults - Add fallback UFW check via systemctl when ufw status fails - Add dbus-broker timing error to benign patterns (geoclue) - Use grep -h | wc -l for error counting across multiple log files Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7 daysfeat(testing): add comprehensive validation library for archsetupCraig Jennings
Add validation.sh library with 25+ automated validation checks: - User creation, shell, and group membership (15 groups) - Dotfiles: symlink validity, target location, and readability - Package managers: yay and pacman functional tests - Suckless tools: dwm, st, dmenu, slock - Services: firewall, DNS-over-TLS, avahi (with mDNS ping test), fail2ban, NetworkManager - Developer tools: emacs, git, python, node, npm, go, rustc - Filesystem-specific: ZFS (sanoid, scrub) and btrfs (grub-btrfsd) - Archsetup-specific: log errors, state markers Also includes: - Pre/post install log capture and diff analysis - Error categorization (benign vs real) - Issue attribution (archsetup vs base install) - archzfs inbox integration for base install issues Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>