summaryrefslogtreecommitdiff
path: root/CLAUDE.md
diff options
context:
space:
mode:
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md85
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