| Age | Commit message (Collapse) | Author |
|
- 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
|
|
- Add NVIDIA preflight check task
- Add DESKTOP_ENV default validation task
- Add dotfile repos review task
|
|
VM lacks iptables kernel modules so UFW cannot activate. Tests now only
verify UFW is enabled rather than active.
|
|
- 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
|
|
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.
|
|
Build time too long for limited utility.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
- 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>
|
|
|
|
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)
|
|
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)
|
|
- Add is_btrfs_root() function
- Only install timeshift-autosnap and grub-btrfs on btrfs systems
- Skip snapshot tools on ext4/other filesystems
|
|
- 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.
|
|
- .stignore for syncthing
- Reference notes for ZFS scripts removal and console display issues
|
|
texlive-meta was replaced with smaller texlive packages, and topgrade
should always be installed. The flag is no longer needed.
|
|
- 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
|
|
Configure /etc/pam.d/login to pass login password to gnome-keyring-daemon,
enabling automatic keyring unlock on console login + startx workflow.
|
|
Add gst-plugins-bad, gst-plugins-ugly, and gst-libav for broader
multimedia format support including AAC, MP3, x264, and FFmpeg codecs.
|
|
Remove unused packages:
- jdk-openjdk and openjdk-doc (Java)
- racket (Scheme)
- foliate (epub reader)
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
- 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)
|
|
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.
|
|
Register custom .desktop files in desktop database after stow links
them into place.
|
|
- Verify ufw is active after setup completes
- Display critical security warning in outro if firewall not active
- Include manual fix commands in warning message
|
|
Configure en_US.UTF-8 locale early in Environment Configuration
section to prevent "cannot change locale" errors during package
installs.
|
|
|
|
- Set Xresources DPI to 109 for ultrawide monitor
- Remove deno environment setup (no longer using)
|
|
- 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)
|
|
Native install to ~/.local/bin allows auto-updates without sudo.
|
|
- 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
|
|
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
|
|
- 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
|
|
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>
|
|
Verify .emacs.d directory is readable by user cjennings,
not just that it exists.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
- 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>
|
|
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>
|
|
Remove ports for services not installed:
- 80,443,8080/tcp (no web server)
- 9040,9050,9051,9053,9119/tcp (Tor relay - only client installed)
- 443/tcp limit (no HTTPS service)
Add inline comments documenting each port's purpose.
|
|
Detect if avahi-daemon.service is active and skip install/config.
Supports archzfs installs that pre-configure avahi for mDNS on first boot.
|
|
Locking root prevents console access after reboot, making recovery
impossible without reinstalling.
|
|
Move redirect outside subshell so mkdir and git clone output
goes to logfile instead of stdout.
|
|
- Run npm install -g as root (global install requires root perms)
- Add wireless-regdb to prerequisites (prevents kernel regulatory warnings)
|
|
The stub-resolv.conf file only exists when systemd-resolved is running.
|
|
Creates /etc/docker/daemon.json with storage-driver: zfs when running
on a ZFS root filesystem. This provides better performance and enables
Docker to leverage ZFS snapshots.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
Installs @anthropic-ai/claude-code via npm after npm is installed.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
- tailscale-bin no longer exists in AUR; tailscale is now in official repos
- torbrowser-launcher (official repo) is more reliable than tor-browser-bin
(AUR) which has GPG key verification issues
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
- ZFS scrub timer: use template unit with pool name (zfs-scrub-weekly@pool.timer)
- Emacs config: handle existing .emacs.d dir with git pull instead of failing
|
|
|