summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* prune(archsetup): remove unused packagesCraig Jennings2026-01-231-5/+0
| | | | | | | | 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)
* fix(archsetup): add btrfs detection, don't assume non-ZFS is btrfsCraig Jennings2026-01-231-2/+11
| | | | | | - Add is_btrfs_root() function - Only install timeshift-autosnap and grub-btrfs on btrfs systems - Skip snapshot tools on ext4/other filesystems
* feat(archsetup): add config file support for unattended installsCraig Jennings2026-01-232-4/+72
| | | | | | | | | - 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.
* chore: add stignore and reference docsCraig Jennings2026-01-233-0/+143
| | | | | - .stignore for syncthing - Reference notes for ZFS scripts removal and console display issues
* refactor(archsetup): remove --skip-slow-packages flagCraig Jennings2026-01-231-13/+2
| | | | | texlive-meta was replaced with smaller texlive packages, and topgrade should always be installed. The flag is no longer needed.
* fix(archsetup): improve error reporting and desktop database setupCraig Jennings2026-01-231-19/+8
| | | | | | - 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
* fix(archsetup): add PAM config for gnome-keyring auto-unlockCraig Jennings2026-01-232-0/+12
| | | | | Configure /etc/pam.d/login to pass login password to gnome-keyring-daemon, enabling automatic keyring unlock on console login + startx workflow.
* feat(archsetup): add additional gstreamer codec packagesCraig Jennings2026-01-231-1/+4
| | | | | Add gst-plugins-bad, gst-plugins-ugly, and gst-libav for broader multimedia format support including AAC, MP3, x264, and FFmpeg codecs.
* refactor(archsetup): remove jdk, racket, and foliate packagesCraig Jennings2026-01-231-6/+0
| | | | | | | Remove unused packages: - jdk-openjdk and openjdk-doc (Java) - racket (Scheme) - foliate (epub reader)
* refactor(archsetup): replace texlive-meta with minimal package setCraig Jennings2026-01-231-3/+8
| | | | | | 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.
* fix(archsetup): enable syncthing user service via symlinkCraig Jennings2026-01-231-1/+7
| | | | | | 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.
* fix(archsetup): fix dbus-broker race condition with sysusersCraig Jennings2026-01-231-0/+8
| | | | | | 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.
* fix(archsetup): enable ufw firewall with ufw enable commandCraig Jennings2026-01-231-3/+3
| | | | | | | 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.
* fix(archsetup): use modalias for GPU detection instead of lspciCraig Jennings2026-01-231-10/+44
| | | | | | | 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.
* fix(archsetup): add system config improvements and gnome-keyring setupCraig Jennings2026-01-227-1/+96
| | | | | | | | | | - 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)
* docs(todo): add weekly topgrade reminder for kernel upgradeCraig Jennings2026-01-221-0/+5
| | | | | | 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.
* fix(archsetup): run update-desktop-database after stowCraig Jennings2026-01-212-2/+10
| | | | | Register custom .desktop files in desktop database after stow links them into place.
* fix(archsetup): add firewall validation with critical warningCraig Jennings2026-01-212-1/+25
| | | | | | - Verify ufw is active after setup completes - Display critical security warning in outro if firewall not active - Include manual fix commands in warning message
* fix(archsetup): add locale configurationCraig Jennings2026-01-212-1/+14
| | | | | | Configure en_US.UTF-8 locale early in Environment Configuration section to prevent "cannot change locale" errors during package installs.
* chore: rename TODO.org to todo.orgCraig Jennings2026-01-211-14/+41
|
* fix(dotfiles): update for ratio desktopCraig Jennings2026-01-213-6/+4
| | | | | - Set Xresources DPI to 109 for ultrawide monitor - Remove deno environment setup (no longer using)
* fix(archsetup): replace ntp with chrony and add packagesCraig Jennings2026-01-211-6/+9
| | | | | | | | | - 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)
* fix(claude-code): use native installer instead of npm-globalCraig Jennings2026-01-211-3/+3
| | | | Native install to ~/.local/bin allows auto-updates without sudo.
* fix(archsetup): increase GRUB timeout and switch syncthing to user serviceCraig Jennings2026-01-215-5/+90
| | | | | | | - 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
* docs(TODO): add completed ZFS boot fixes and validation testsCraig Jennings2026-01-211-25/+34
| | | | | | | 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
* fix(archsetup): prevent ZFS boot failures and add validation testsCraig Jennings2026-01-202-4/+95
| | | | | | | | | | | | | - 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
* feat(testing): add bare metal ZFS test script + fix scrub timer checkCraig Jennings2026-01-202-1/+324
| | | | | | | | | | | | 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>
* fix(testing): add emacs config permission checkCraig Jennings2026-01-201-0/+10
| | | | | | | Verify .emacs.d directory is readable by user cjennings, not just that it exists. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(testing): fix validation script bugs causing false failuresCraig Jennings2026-01-201-10/+24
| | | | | | | | | | - 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>
* feat(testing): add comprehensive validation library for archsetupCraig Jennings2026-01-202-53/+906
| | | | | | | | | | | | | | | | | | | | | 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>
* fix(archsetup): remove unnecessary firewall portsCraig Jennings2026-01-201-22/+11
| | | | | | | | | 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.
* feat(archsetup): skip avahi if already runningCraig Jennings2026-01-191-3/+7
| | | | | Detect if avahi-daemon.service is active and skip install/config. Supports archzfs installs that pre-configure avahi for mDNS on first boot.
* fix(archsetup): remove root account lockingCraig Jennings2026-01-191-16/+2
| | | | | Locking root prevents console access after reboot, making recovery impossible without reinstalling.
* fix(archsetup): redirect git clone output to logfileCraig Jennings2026-01-191-2/+2
| | | | | Move redirect outside subshell so mkdir and git clone output goes to logfile instead of stdout.
* fix(archsetup): fix npm global install and add wireless-regdbCraig Jennings2026-01-191-3/+4
| | | | | - Run npm install -g as root (global install requires root perms) - Add wireless-regdb to prerequisites (prevents kernel regulatory warnings)
* fix(archsetup): start systemd-resolved before creating DNS symlinkCraig Jennings2026-01-191-0/+3
| | | | The stub-resolv.conf file only exists when systemd-resolved is running.
* feat(archsetup): configure Docker to use ZFS storage driver on ZFS systemsCraig Jennings2026-01-191-0/+9
| | | | | | | | 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>
* feat(archsetup): add claude-code AI coding assistantCraig Jennings2026-01-191-0/+5
| | | | | | Installs @anthropic-ai/claude-code via npm after npm is installed. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(archsetup): use official repo packages for tailscale and torbrowserCraig Jennings2026-01-191-2/+2
| | | | | | | | - 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>
* fix(archsetup): fix ZFS scrub timer and emacs cloneCraig Jennings2026-01-191-3/+11
| | | | | - 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
* fix(archsetup): move STARTTIME outside intro() for resume supportCraig Jennings2026-01-191-1/+1
|
* feat(archsetup): add --no-root-lock flag for testingCraig Jennings2026-01-191-5/+16
|
* fix(archsetup): add harfbuzz dependency for st terminalCraig Jennings2026-01-191-1/+1
|
* fix(archsetup): fix DNS and git safe.directory for curl|bashCraig Jennings2026-01-191-2/+9
| | | | | - Bootstrap DNS symlink in create_user() before AUR/git operations - Add git safe.directory config before git restore (root on user repo)
* fix(archsetup): clone repo instead of copying for curl|bash supportCraig Jennings2026-01-191-6/+6
| | | | | When run via curl|bash, archsetup_dir resolves to /root with no files. Now clones from git.cjennings.net instead of copying local files.
* fix(archsetup): chown tmpfs mount point instead of parent dirCraig Jennings2026-01-193-295/+1
| | | | | - Fixed permission bug where source_dir tmpfs was owned by root - Remove zfssnapshot and zfsrollback (now in archzfs ISO)
* Update ZFS scripts for archzfs compatibilityCraig Jennings2026-01-182-7/+32
| | | | | | | | | | | | | | | 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>
* fix(zfsrollback): sort snapshots with newest firstCraig Jennings2026-01-181-3/+4
|
* feat(dotfiles): add zfssnapshot and zfsrollback utilitiesCraig Jennings2026-01-182-0/+268
| | | | | | - 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
* feat(archsetup): add automatic console login for encrypted systemsCraig Jennings2026-01-181-8/+87
| | | | | | | - 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