summaryrefslogtreecommitdiff
path: root/archsetup
AgeCommit message (Collapse)Author
8 daysfeat(archsetup): configure journald retention to 500MBCraig Jennings
8 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.
8 daysfeat(archsetup): enable weekly ZFS scrub timerCraig Jennings
8 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
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>
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-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-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-15refactor(archsetup): streamline packages and update configurationsCraig Jennings
Package removals: - Remove MPD/ncmpcpp/Mopidy music players (no longer needed) - Remove obs-studio, obsidian, VS Code - Remove VirtualBox and related packages (use Docker/gnome-boxes instead) - Remove rust package (will use rustup instead) Package additions: - Add difftastic, eza (modern CLI tools) - Add gimp, audacity, vlc (media applications) - Add insync, protonmail-bridge (sync/communication) - Add multimarkdown, proselint (text processing) Package updates: - Update man → man-db (current package name) - Update pandoc → pandoc-cli (current package name) Configuration updates: - Enable topgrade git repo updates for ~/code/ only - Add inbox/ directory to .gitignore - Add TODO for rustup-based Rust installation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14fix(archsetup): prevent yay-debug package installation during yay buildCraig Jennings
Add --nodebug flag to makepkg command when building yay from source to prevent creation and installation of yay-debug package. This completes the --nodebug implementation started in the previous commit. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-13fix(archsetup): implement critical bug fixes and test improvementsCraig Jennings
This commit addresses several high-priority bugs and enhances the testing infrastructure: **Bug Fixes:** 1. Add root permission check at script start to fail fast with clear error message 2. Disable debug package installation by adding --nodebug flag to all yay calls 3. Replace unsafe `git pull --force` with safe rm + fresh clone to prevent data loss 4. Add geoclue package with correct systemd service configuration for geolocation 5. Add completion marker for reliable automated test detection **Testing Infrastructure:** - Add comprehensive VM-based testing framework in scripts/testing/ - Fix test script pgrep infinite loop using grep bracket self-exclusion pattern - Add network diagnostics and pre-flight checks - Support snapshot-based testing for reproducible test runs **Package Management:** - Remove anki (build hangs 98+ minutes) - Remove adwaita-color-schemes (CMake build issues) Test Results: 0 errors, 1,363 packages installed in 40 minutes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10fix(archsetup): disable problematic slow packagesCraig Jennings
Temporarily disable anki and tageditor packages that cause excessive build times and failures during testing: - anki: hangs for 98+ minutes, missing .gitconfig during cargo build - tageditor: hangs indefinitely building qt5-webengine dependency These packages need to be fixed or replaced before re-enabling. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08fix(archsetup): correct invalid sudo syntax in yay installationCraig Jennings
Fixed critical bug at line 336 that blocked all AUR package installations. Changed invalid 'sudo -u $username -D $build_dir' to proper 'cd $build_dir && sudo -u $username' pattern. Also updated TODO.org: - Marked yay bug task as DONE - Created "Resolved Tasks" section - Moved completed task to archive with resolution notes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08feat: add zoxide smart directory navigationCraig Jennings
Add zoxide installation and configuration to archsetup: - Install zoxide via pacman in Developer Workstation section - Create .profile.d/zoxide.sh with zsh initialization - Alias cd to z for smart directory jumping based on usage patterns This enables automatic directory navigation learning across all fresh Arch installs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09adding rofi to installCraig Jennings
2025-06-09removing vimix icons and gtk themes (unused)Craig Jennings
2025-06-07added install and firewall rules for warpinatorCraig Jennings
2025-06-03fix dark theme; disallow vt switch & xorg zap; remove gdmCraig Jennings
2025-05-29add xorg-xeyes and xorg-xhost (info w/in)Craig Jennings
- the eyes roll only when over processes displayed by xorg, not wayland. - xhost allows explicit condition for root to display using current display.
2025-05-26remove keyd as it locks up the trackpad on launchCraig Jennings
2025-05-26adding system-config-printerCraig Jennings
2025-05-26adding keyd install and configCraig Jennings
2025-05-26integrated redshift into archsetup (blue light filter)Craig Jennings
2025-05-26changing colorpicker to xcolorCraig Jennings
2025-05-26changing color picker to git versionCraig Jennings
2025-05-26xautolock installed by yayCraig Jennings
2025-05-26replacing xscreensaver for slockCraig Jennings
2025-05-25adding redshift and getting geoclue to workCraig Jennings
2025-05-24add additional dependencies for emacsCraig Jennings
2025-05-24task-spooler's name changed to task-spooler-cpuCraig Jennings
2025-05-23stow dotfiles from subdirectoryCraig Jennings
2025-05-22adding thunar file managerCraig Jennings
2025-05-19removing neofetch; adding fastfetchCraig Jennings
2025-05-09adding dotpac utilityCraig Jennings
2025-04-11adding tickrs and flameshotCraig Jennings
2025-01-08adding touchpad-indicstorCraig Jennings
2024-12-27adding ankiCraig Jennings
2024-12-27adding back boot_ux issues (disabled accidentally)Craig Jennings
2024-12-05adding items for protonmail-bridgeCraig Jennings
- adding pass and seahorse - added script to build protonmail-bridge and init pass to work with it
2024-11-30adding telegram-desktopCraig Jennings