summaryrefslogtreecommitdiff
path: root/CLAUDE.md
blob: d99cb74ed6b4bbea011bf1df902b44e9b90aa0fa (plain)
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
86
# 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 with functions for packages, configs, services
- `dotfiles/common/` - Shared dotfiles for all desktop environments (stowed to ~)
- `dotfiles/dwm/` - DWM/X11-specific dotfiles (8 scripts)
- `dotfiles/hyprland/` - Hyprland-specific dotfiles (7 scripts)
- `docs/` - Documentation and package lists
- `reference-repos/` - External dotfile references

## Script Organization (Jan 2026 Refactor)
```
dotfiles/common/.local/bin/    → Universal scripts (44) - work on X11 & Wayland
dotfiles/dwm/.local/bin/       → X11/DWM-only scripts (8)
dotfiles/hyprland/.local/bin/  → Hyprland-only scripts (7)
```

### DWM Scripts (8)
Scripts bound in ~/code/dwm/config.def.h:
- brightness (XF86 keys), toggle-touchpad (Mod+F9), dmenuexitmenu (Mod+Shift+Q)
- Plus: airplanemodetoggle, colorpick, dmenuunicode, screenshotmenu, wallsearch

### Hyprland Scripts (7)
All actively used in configs:
- cycle-layout, layout-navigate, pinentry-fuzzel, set-theme
- toggle-scratchpad, waybar-layout, waybar-netspeed

## Shell Configuration (Jan 2026 Refactor)
```
~/.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)
```

## Current Theme (Dupre)
- **GTK**: Adwaita-dark
- **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

## Key Configuration Files
- `dotfiles/hyprland/.config/hypr/hyprland.conf` - Main Hyprland config
- `dotfiles/hyprland/.config/themes/dupre/` - Dupre theme files
- `dotfiles/common/.profile.d/` - Shell environment scripts
- `dotfiles/common/.config/qt5ct/qt5ct.conf` - Qt5 theming
- `dotfiles/common/.config/qt6ct/qt6ct.conf` - Qt6 theming
- `dotfiles/common/.local/bin/resetmimetypes` - MIME associations script

## Stowing Dotfiles
- DWM installs: `stow --target=$HOME common && stow --target=$HOME dwm`
- Hyprland installs: `stow --target=$HOME common && stow --target=$HOME hyprland`

## Pending Work
- Review common/.local/bin/ scripts (44) - decide which to keep
- Review common/.config/ directories (27) for unused app configs
- Task #6: Add Makefile targets for foolproof stowing
- Task #4: Evaluate Euphonica MPD client (May 2026)

## Recent Changes (Jan 2026)
- Renamed dotfiles/system/ to dotfiles/common/ for clarity
- Deleted unused configs: ghostty, lf, mopidy, nitrogen, pychess, JetBrains, youtube-dl, sublime-merge
- Added yt-dlp config (replaces youtube-dl)
- Cleaned up DWM scripts: 26 → 8 (removed 17 unreferenced + 24 statusbar scripts)
- Cleaned up Hyprland scripts: 8 → 7 (removed power-menu, using wlogout)
- Removed lf scripts from common (lfrun, lfub)
- Refactored shell configs: proper .profile/.bashrc/.zshrc separation
- Created .bashrc.d/ and .zshrc.d/ for modular configs
- 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

## Notes
- Desktop file overrides go in `dotfiles/hyprland/.local/share/applications/`
- Stow conflicts require manual symlinks: `ln -sf source target`
- MPD is configured but mpv handles audio file associations
- BerkeleyMono Nerd Font is the primary monospace font
- DWM keybindings defined in ~/code/dwm/config.def.h on velox