summaryrefslogtreecommitdiff
path: root/archsetup
AgeCommit message (Collapse)Author
47 hoursprune(archsetup): remove valent packageCraig Jennings
Build time too long for limited utility. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2 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>
2 daysprune(archsetup): remove podman, use docker for distroboxCraig Jennings
2 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)
2 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)
2 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
2 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.
2 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.
2 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
2 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.
2 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.
2 daysrefactor(archsetup): remove jdk, racket, and foliate packagesCraig Jennings
Remove unused packages: - jdk-openjdk and openjdk-doc (Java) - racket (Scheme) - foliate (epub reader)
2 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.
2 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.
2 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.
2 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.
2 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.
3 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)
4 daysfix(archsetup): run update-desktop-database after stowCraig Jennings
Register custom .desktop files in desktop database after stow links them into place.
4 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
4 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.
4 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)
4 daysfix(claude-code): use native installer instead of npm-globalCraig Jennings
Native install to ~/.local/bin allows auto-updates without sudo.
4 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
5 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 daysfix(archsetup): remove unnecessary firewall portsCraig Jennings
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.
6 daysfeat(archsetup): skip avahi if already runningCraig Jennings
Detect if avahi-daemon.service is active and skip install/config. Supports archzfs installs that pre-configure avahi for mDNS on first boot.
6 daysfix(archsetup): remove root account lockingCraig Jennings
Locking root prevents console access after reboot, making recovery impossible without reinstalling.
6 daysfix(archsetup): redirect git clone output to logfileCraig Jennings
Move redirect outside subshell so mkdir and git clone output goes to logfile instead of stdout.
6 daysfix(archsetup): fix npm global install and add wireless-regdbCraig Jennings
- Run npm install -g as root (global install requires root perms) - Add wireless-regdb to prerequisites (prevents kernel regulatory warnings)
6 daysfix(archsetup): start systemd-resolved before creating DNS symlinkCraig Jennings
The stub-resolv.conf file only exists when systemd-resolved is running.
6 daysfeat(archsetup): configure Docker to use ZFS storage driver on ZFS systemsCraig Jennings
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>
6 daysfeat(archsetup): add claude-code AI coding assistantCraig Jennings
Installs @anthropic-ai/claude-code via npm after npm is installed. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
6 daysfix(archsetup): use official repo packages for tailscale and torbrowserCraig Jennings
- 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>
6 daysfix(archsetup): fix ZFS scrub timer and emacs cloneCraig Jennings
- 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
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)
8 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
8 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)
8 daysdocs(archsetup): note potential Docker DNS issue with systemd-resolvedCraig Jennings
8 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
8 daysprivacy(archsetup): add WiFi MAC address randomizationCraig Jennings
8 daysfeat(archsetup): add lynis security auditing toolCraig Jennings
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