# Archsetup Project Context ## Overview Arch Linux installation and configuration scripts with dotfiles managed via GNU Stow. Supports both X11 (DWM) and Wayland (Hyprland) setups. ## Project Structure ``` archsetup Main installation script archsetup.conf.example Configuration template init Bootstrap script for live ISO Makefile GNU Stow operations for dotfile management todo.org Active task list dotfiles/common/ Shared dotfiles for all desktop environments (stowed to ~) dotfiles/dwm/ DWM/X11-specific dotfiles dotfiles/hyprland/ Hyprland-specific dotfiles scripts/ Utility scripts (wireguard, post-install, wipedisk, etc.) assets/ Reference documents and archived files color-themes/ Theme palettes, generation scripts outbox/ Processed inbox items wireguard-config/ Proton VPN configs docs/ Session docs, workflows, protocols (gitignored) inbox/ Unprocessed documents for session review reference-repos/ External dotfile references scripts/testing/ VM-based integration test framework test-results/ Test run output vm-images/ VM disk images for testing ``` ## Makefile Targets ``` make stow dwm # Fresh install (common + dwm) make stow hyprland # Fresh install (common + hyprland) make restow dwm # Refresh links after git pull make reset hyprland # Fix conflicts, keep repo version make unstow dwm # Remove all symlinks make import common # fzf select → import to common/ make import dwm # fzf select → import to dwm/ make import hyprland # fzf select → import to hyprland/ ``` ## Dotfile Script Counts ``` dotfiles/common/.local/bin/ → 33 universal scripts dotfiles/dwm/.local/bin/ → 8 X11/DWM scripts dotfiles/hyprland/.local/bin/ → 7 Hyprland scripts ``` ## Shell Configuration ``` ~/.profile → Environment variables only (POSIX compatible) ~/.bash_profile → Sources .profile + .bashrc for login shells ~/.bashrc → Bash-specific settings, sources .bashrc.d/ ~/.zshrc → Zsh-specific settings, sources .zshrc.d/ ~/.profile.d/ → Modular env vars (display, framework, auto-tmux, hyprland) ~/.bashrc.d/ → Modular bash configs (aliases, fzf, git, media, utilities, emacs) ~/.zshrc.d/ → Modular zsh configs (same + arch-downgrade) ``` ## Theme System Two themes available: dupre (default) and hudson. Switched via `set-theme` script. Full palette reference: `assets/color-themes/dupre/dupre-palette.org` - **GTK**: Adwaita-dark - **Qt**: Adwaita-Dark (via adwaita-qt5/qt6, QT_STYLE_OVERRIDE) - **Icons**: Papirus-Dark - **Cursors**: capitaine-cursors-light (size 24) - **Font**: BerkeleyMono Nerd Font (13pt terminal, 14px waybar) - **Theme configs**: `dotfiles/hyprland/.config/themes/dupre/` ## Key Configuration Files - `dotfiles/hyprland/.config/hypr/hyprland.conf` - Main Hyprland config - `dotfiles/hyprland/.config/themes/dupre/` - Dupre theme files (foot, fuzzel, waybar, dunst, hyprlock, Xresources) - `dotfiles/common/.profile.d/` - Shell environment scripts - `dotfiles/common/.config/qt5ct/qt5ct.conf` - Qt5 theming - `dotfiles/common/.config/qt6ct/qt6ct.conf` - Qt6 theming ## Notes - Desktop file overrides go in `dotfiles/hyprland/.local/share/applications/` - MPD is configured but mpv handles audio file associations - DWM keybindings defined in ~/code/dwm/config.def.h on velox - Remote repository on cjennings.net - docs/ is gitignored; living project context is in docs/NOTES.org