aboutsummaryrefslogtreecommitdiff
path: root/CLAUDE.md
diff options
context:
space:
mode:
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md130
1 files changed, 0 insertions, 130 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
deleted file mode 100644
index a35c2e9..0000000
--- a/CLAUDE.md
+++ /dev/null
@@ -1,130 +0,0 @@
-# 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 VM integration testing + project dependencies
-todo.org Active task list
-
-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
-.ai/ Claude tooling: 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 deps # Install VM-testing dependencies
-make test-unit # Run fast unit tests for installer helpers (no VM)
-make test # Run full VM integration test (creates base VM if needed)
-make test-keep # Run test and keep the VM up for manual poking
-make test-vm-base # Create the base VM only
-```
-Dotfile stow operations live in the dotfiles repo's own Makefile, not here.
-Run them from `~/.dotfiles`:
-```
-cd ~/.dotfiles && make stow hyprland # common + hyprland + host tier
-cd ~/.dotfiles && make restow hyprland # refresh links after git pull
-cd ~/.dotfiles && make reset hyprland # fix conflicts, keep repo version
-cd ~/.dotfiles && make unstow hyprland # remove symlinks
-cd ~/.dotfiles && make import common # fzf select → import to common/
-cd ~/.dotfiles && make test # run the dotfile-script unit suites
-```
-Per-host overrides live in a stow tier named after the machine (`ratio/`,
-`velox/`), auto-included by every stow target when the directory exists
-(`HOST=<name>` overrides detection; hostname binary is absent — `uname -n`).
-The tier holds only files no shared package owns: hypr `conf.d/local.conf`
-(velox: HiDPI scale + XWayland toolkit env), `pypr/config.toml`, and foot's
-`host.ini` (the shared foot.ini sets no font — it's per-host via include).
-
-## Dotfiles Repository
-
-Dotfiles live in their own repo at `git.cjennings.net/dotfiles.git`
-(read: `https://git.cjennings.net/dotfiles.git`, push: `git@cjennings.net:dotfiles.git`).
-A fresh `archsetup` install clones it to `~/.dotfiles` and stows per `DESKTOP_ENV`:
-
-```
-dwm → common/ + dwm/
-hyprland → common/ + hyprland/
-none → minimal/ (standalone headless tree, not common/)
-```
-
-Config keys (in `archsetup.conf`, all optional — defaults shown):
-```
-DOTFILES_REPO=https://git.cjennings.net/dotfiles.git
-DOTFILES_BRANCH=main
-DOTFILES_DIR= # defaults to the target user's ~/.dotfiles
-```
-
-Pull dotfile changes after install:
-```
-cd ~/.dotfiles && git pull
-cd ~/.dotfiles && make restow hyprland
-```
-
-Setting up a new machine by hand (outside the installer):
-```
-git clone https://git.cjennings.net/dotfiles.git ~/.dotfiles
-cd ~/.dotfiles && make stow hyprland
-```
-**Quit Hyprland before an unstow/restow.** Unstowing while Hyprland runs makes
-it write a stub `hyprland.conf` into the gap, which then blocks the restow. Do
-it from a TTY, or with the session stopped.
-
-## Dotfile Script Counts
-The scripts live in the dotfiles repo (`~/.dotfiles`), not here:
-```
-~/.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**: Bibata-Modern-Ice (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
-- Firewall is ufw (configured in `archsetup`, default-deny incoming, explicit allow list). Tailscale traffic **does** traverse ufw on ratio — a probe from a tailnet IP is still blocked unless a rule covers the port. Don't assume tailnet-only services bypass the firewall; they need an explicit ufw rule like any other.
-- Never assume which machine this is — always run `uname -n` to find the hostname (the `hostname` binary is absent, so `uname -n` is the source of truth; `uname -r` is the kernel release, not the host). The fleet is **ratio** (workstation) and **velox** (laptop), both Hyprland (Wayland). archsetup still supports dwm/X11, but no current machine uses it.
-- Remote repository on cjennings.net
-- .ai/ is gitignored; living project context is in .ai/notes.org