diff options
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..f0c3f2a --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,85 @@ +# 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 |
