1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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
|