summaryrefslogtreecommitdiff
path: root/archsetup
AgeCommit message (Collapse)Author
20 hoursfix(archsetup): code cleanup and style fixesCraig Jennings
- 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
21 hoursfix(archsetup): bug fixes, locale support, and code improvementsCraig Jennings
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.
44 hoursprune(archsetup): remove valent packageCraig Jennings
Build time too long for limited utility. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
47 hoursrefactor(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)
3 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
5 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.
5 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)
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