summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
6 daysfix(archsetup): move STARTTIME outside intro() for resume supportCraig Jennings
6 daysfeat(archsetup): add --no-root-lock flag for testingCraig Jennings
6 daysfix(archsetup): add harfbuzz dependency for st terminalCraig Jennings
6 daysfix(archsetup): fix DNS and git safe.directory for curl|bashCraig Jennings
- Bootstrap DNS symlink in create_user() before AUR/git operations - Add git safe.directory config before git restore (root on user repo)
6 daysfix(archsetup): clone repo instead of copying for curl|bash supportCraig Jennings
When run via curl|bash, archsetup_dir resolves to /root with no files. Now clones from git.cjennings.net instead of copying local files.
6 daysfix(archsetup): chown tmpfs mount point instead of parent dirCraig Jennings
- Fixed permission bug where source_dir tmpfs was owned by root - Remove zfssnapshot and zfsrollback (now in archzfs ISO)
7 daysUpdate ZFS scripts for archzfs compatibilityCraig Jennings
zfssnapshot: - Change date format to YYYY-MM-DD_HH-MM-SS_description (matches pre-pacman snapshot format for consistent sorting) - Convert spaces to underscores instead of hyphens - Add GRUB menu regeneration after snapshot creation zfsrollback: - Add special warning for genesis rollback - Add GRUB menu regeneration after successful rollback (removes destroyed snapshots from boot menu) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7 daysfix(zfsrollback): sort snapshots with newest firstCraig Jennings
7 daysfeat(dotfiles): add zfssnapshot and zfsrollback utilitiesCraig Jennings
- zfssnapshot: create dated snapshots across all pools with description - zfsrollback: fzf-based snapshot selection with multi-dataset rollback - Both require root and validate input/show appropriate warnings
7 daysfeat(archsetup): add automatic console login for encrypted systemsCraig Jennings
- Add --autologin and --no-autologin CLI flags - Add is_encrypted_root() to detect LUKS and ZFS encryption - Prompt user on encrypted systems (default yes) - Configure getty@tty1 drop-in for passwordless login after decryption
7 daysfeat(archsetup): add wireguard-tools and tailscaleCraig Jennings
- wireguard-tools from pacman (dotfiles have helper functions ready) - tailscale-bin from AUR (prebuilt, fast install) - Enable tailscaled service (run 'tailscale up' to authenticate)
7 daysdocs(archsetup): note potential Docker DNS issue with systemd-resolvedCraig Jennings
7 daysprivacy(archsetup): add encrypted DNS (DNS over TLS)Craig Jennings
- Configure systemd-resolved with DoT using Cloudflare + Quad9 - Enable DNSSEC validation - Integrate with NetworkManager - Fix conflict: keep systemd-resolved for DNS, avahi for mDNS
7 daysprivacy(archsetup): add WiFi MAC address randomizationCraig Jennings
7 daysfeat(archsetup): add lynis security auditing toolCraig Jennings
7 daysfeat(archsetup): configure journald retention to 500MBCraig Jennings
7 dayssecurity(archsetup): lock root account at end of scriptCraig Jennings
Root is locked last so it remains available for recovery if script fails earlier. Users must use sudo for privileged operations after successful install.
7 daysfeat(archsetup): enable weekly ZFS scrub timerCraig Jennings
7 daysfeat(archsetup): add fail2ban for SSH brute force protectionCraig Jennings
- Install and configure fail2ban with ufw integration - SSH jail: 3 attempts, 1 hour ban - Default jail: 5 attempts, 10 minute ban - Also file security recommendations to assets/
8 daysdocs: add script URL to headerCraig Jennings
8 daysfix(archsetup): add cleanup trap to unmount tmpfs on exitCraig Jennings
8 daysfeat(archsetup): add GPU driver detection and installationCraig Jennings
- Detect Intel, AMD, and NVIDIA GPUs via lspci - Install appropriate drivers and hardware video acceleration - Support multiple GPUs (e.g., hybrid Intel+NVIDIA laptops) - Add --no-gpu-drivers flag to skip (useful for VMs) - Use nvidia-dkms for better kernel compatibility - Add fallback to mesa+vesa for unknown hardware
8 daysfix(archsetup): misc bug fixes and improvementsCraig Jennings
- Add missing error codes to error() calls - Remove useless mkdir pipe to tee - Remove duplicate 5353/udp firewall rule - Replace deprecated exfat-utils with exfatprogs - Quote all variable expansions for safety - Use pipx instead of pip for isolated environments
8 daysfeat(archsetup): add error summary at end of scriptCraig Jennings
8 daysfeat(archsetup): ZFS/sanoid support, gvfs-smb, bug fixesCraig Jennings
- Add ZFS detection with sanoid/syncoid for snapshot management - Add gvfs-smb for Thunar SMB network browsing - Fix shell quoting throughout script - Fix stale $action variables in error handlers - Fix display() return values (was returning 1) - Fix mkinitcpio.conf sed pattern to be flexible - Fix vconsole.conf duplicate entries on re-run - Fix systemd unit overrides using drop-in files - Fix ufw port typo (55353 -> 5353) - Fix GRUB_RECORDFAIL_TIMEOUT undefined variable - Enable NetworkManager service - Move thunar, libvips, isync to pacman (now in official repos) - Clean up reflector config with heredoc - Remove unnecessary sudo when already root - Convert shebang from sh to bash
8 daysdotfiles: update hey alias, add phenom RAG functionCraig Jennings
8 daysdotfiles: ai-assistants prompt and formatting improvementsCraig Jennings
8 daysdotfiles: qalculate expression history updateCraig Jennings
8 daysdotfiles: calibre scheduler state updateCraig Jennings
12 dayschore: remove docs/NOTES.org from git trackingCraig Jennings
File remains local but is now covered by .gitignore
12 daysdotfiles: caffeine-ng fix, redshift improvements, ai-assistants updateCraig Jennings
- xinitrc: replace caffeine/caffeine-indicator with caffeine start - redshift: improve night settings (4500K, no dimming), add comments - ai-assistants: read protocols.org before NOTES.org - thunar/calibre: minor auto-generated config updates
2026-01-10session: fix ai-assistants tilde expansion for tmux -c optionCraig Jennings
tmux's -c option doesn't expand ~ so windows were starting in $HOME instead of project directories. Expand tilde to $HOME before passing to tmux. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10session: fix dotfiles symlink accessibility issueCraig Jennings
Diagnosed and fixed bug where stow created symlinks to inaccessible locations. Added test to verify dotfiles are readable by user. Full test passed in 42m 57s.
2026-01-10fix(archsetup): copy archsetup to user directory before stowCraig Jennings
Previously, stow created dotfile symlinks pointing to wherever archsetup was run from (e.g., /root/archsetup or /tmp). If run from a location inaccessible to the user, zsh would fail to read its config on first login and prompt for new user setup. The fix copies archsetup to ~/code/archsetup before running stow, ensuring symlinks always point to a user-accessible location. Also adds a test to verify dotfiles are readable by the user (not just root). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09session: add ai-assistants tmux launcher scriptCraig Jennings
Created script to launch tmux session with Claude assistants for multiple projects. Synced dotfile changes including calibre, audacious, and shell configs.
2025-12-01session: rofi standardization, feh migration, pre-flight checks, state trackingCraig Jennings
2025-12-01fix(archsetup): remove duplicate multimarkdown and proselint entriesCraig Jennings
These AUR packages were incorrectly duplicated as pacman_install calls, causing false errors during installation. The correct aur_install entries remain in the emacs utilities section. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01feat(archsetup): implement state tracking for resume capabilityCraig Jennings
Enables resuming from where the script left off if interrupted: - State stored in /var/lib/archsetup/state/ as marker files - run_step() wrapper tracks completion, skips completed steps - --status flag shows installation progress - --fresh flag clears state for clean restart - --help flag documents all options - 12 major steps tracked (intro through boot_ux) Example: archsetup --status # check progress archsetup # resume from last step archsetup --fresh # start over 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01feat(archsetup): add pre-flight checks before installationCraig Jennings
Validates system requirements before starting: - Disk space (minimum 20GB free on /) - Network connectivity (ping archlinux.org) - pacman available - Running on Arch Linux (/etc/arch-release) Provides clear error messages with recovery hints if checks fail. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01docs(TODO): mark root check and git pull fixes as verified completeCraig Jennings
Both fixes were already implemented: - Root check exists at archsetup:23-27 - git_install and yay installer use safe rm + fresh clone (no git pull --force) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01docs(TODO): mark -debug packages task as verified completeCraig Jennings
Verified on current system: 0 -debug packages installed, yay-debug not present. Fix was implemented via --nodebug flags in archsetup. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01docs(TODO): mark completed tasks from today's sessionCraig Jennings
- nitrogen → feh migration (commit 0601d39) - rofi integration and dunst-matched theme (commit 590aa02) - adwaita-color-schemes disabled (CMake build failure confirmed) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01feat(wallpaper): replace nitrogen with fehCraig Jennings
nitrogen was removed from Arch repos. Migrate to feh: - Add feh to archsetup pacman installs - Update .xinitrc, lf, ranger, and monitor script - feh auto-creates ~/.fehbg for wallpaper restore 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01feat(rofi): standardize rofi configuration with dunst-matched themeCraig Jennings
- Add self-contained config.rasi and theme in ~/.config/rofi/ - Remove external ~/code/rofi-themes-collection/ dependency - Match rofi theme colors, font, and border-radius to dunst notifications - Simplify sxhkd keybindings (settings now in config.rasi) - Remove phantom rofi/scripts PATH entry from .profile 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21session: fix GPG/pinentry auth by restarting gpg-agent in xinitrcCraig Jennings
Previous fix (disabling emacs.service) did not resolve the issue. Added reset-auth call to .xinitrc after DISPLAY export so gpg-agent inherits correct environment before apps start.
2025-11-21session: dotfiles sync and GPG/Emacs auth debuggingCraig Jennings
Synced various dotfile configs (calibre, audacious, profile.d, xinitrc). Diagnosed and fixed Emacs/GPG auth issue by disabling systemd emacs.service which lacked DISPLAY environment for pinentry-dmenu.
2025-11-18fix(archsetup): properly disable debug packages system-wideCraig Jennings
Replace invalid --nodebug flags with proper makepkg.conf configuration: 1. Configure makepkg.conf OPTIONS to disable debug packages (line 237-238) - Set OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug) - This prevents ALL packages from building debug versions 2. Remove invalid --nodebug flags from yay commands: - Remove from aur_install function (lines 169, 171, 173) - Remove from python-lyricsgenius install (line 957) - --nodebug is not a valid yay/makepkg option in test VM Previous issue: 169 "invalid option 'nodebug'" errors in test logs Expected result: Clean test execution with no debug package warnings 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18fix(archsetup): remove invalid --nodebug flag and add redshift configurationCraig Jennings
Critical fix: - Remove --nodebug flag from yay makepkg command (archsetup:375) * Flag is not supported in makepkg version on test VM * Was causing yay installation to fail with error code 3 Redshift configuration improvements: - Add redshift package installation (archsetup:645) - Fix redshift.conf dimness issues: * Increase gamma from 0.6 to 1.0 (neutral) * Increase brightness-day from 0.9 to 1.0 (full) * Increase brightness-night from 0.7 to 0.8 (less aggressive) - Add redshift to .xinitrc startup services (line 62) - Expand .xinitrc from minimal to full DWM session configuration Additional cleanup: - Remove obsolete startdwm script (replaced by full .xinitrc) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15feat(archsetup): add firmware management and console font configurationCraig Jennings
- Install mkinitcpio-firmware to silence firmware warnings during upgrades - Configure lat0-16 console font for better TTY readability - Add firmware cleanup task to TODO.org (Method 3: System Hygiene) - Remove old archsetup log file Changes: - archsetup:589 - Add mkinitcpio-firmware AUR package installation - archsetup:963-964 - Configure console font in boot_ux function - TODO.org:419-441 - Add task to remove unnecessary firmware (~600MB savings) Technical details: - Framework laptop only needs intel and atheros firmware packages - mkinitcpio-firmware provides enterprise hardware firmware - lat0-16 font chosen for 2256x1504 high-res display - Eliminates firmware and consolefont warnings during mkinitcpio 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15docs(todo): add dotfiles reorganization taskCraig Jennings
Add TODO [#C] to review and reorganize dotfiles for unused applications. Options: - Move unused configs to dotfiles/unused/ directory - Design better restowing mechanism with Makefile for selective stowing Identified during package cleanup session - many configs remain for removed applications (mpd, ncmpcpp, mopidy, obs-studio, obsidian). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>