summaryrefslogtreecommitdiff
path: root/CLAUDE.md
diff options
context:
space:
mode:
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md102
1 files changed, 70 insertions, 32 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 4ab478e..f0c3f2a 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -4,44 +4,82 @@
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 with functions for packages, configs, services
-- `dotfiles/system/` - Shared dotfiles (stowed to ~)
-- `dotfiles/hyprland/` - Hyprland-specific dotfiles (stowed to ~)
-- `dotfiles/dwm/` - DWM/X11-specific dotfiles
-- `docs/` - Documentation and package lists
-- `reference-repos/` - External dotfile references
-
-## Current Theme (Dupre)
+```
+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**: Adwaita-Dark (via adwaita-qt5/qt6, QT_STYLE_OVERRIDE)
- **Icons**: Papirus-Dark
- **Cursors**: capitaine-cursors-light (size 24)
-- **Color palette**: bg #151311, gold #d7af5f, steel #969385, blue #67809c
+- **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
-- `dotfiles/system/.profile.d/` - Shell environment scripts
-- `dotfiles/system/.config/qt5ct/qt5ct.conf` - Qt5 theming
-- `dotfiles/system/.config/qt6ct/qt6ct.conf` - Qt6 theming
-- `dotfiles/system/.local/bin/resetmimetypes` - MIME associations script
-
-## Pending Tasks
-1. Review shell config files for Wayland compatibility
-3. Theme Nautilus to match Hyprland/dupre theme (low priority - Adwaita-dark works)
-4. Evaluate Euphonica MPD client (May 2026)
-
-## Recent Changes (Jan 2026)
-- Added Qt theming with adwaita-qt5/qt6
-- Added font packages: cantarell-fonts, ttf-caladea, ttf-carlito, ttf-croscore
-- Pruned ~90 desktop files from app menu with NoDisplay=true overrides
-- Switched file manager from Thunar to Nautilus
-- Cleaned up resetmimetypes script (296 -> 124 lines)
-- Added satty screenshot annotation and hyprpicker
-- Configured wlogout exit menu with dupre theme
+- `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/`
-- Stow conflicts require manual symlinks: `ln -sf source target`
-- MPD is used for music; mpv handles audio file associations
-- BerkeleyMono Nerd Font is the primary monospace font
+- 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