Skip to content

Commit fb20979

Browse files
committed
docs: update CLAUDE.md with tmux, AeroSpace, and theming info
- Add Tmux Session Management section (sessionx, tmuxinator) - Add AeroSpace Window Management section with critical rule patterns - Add Terminal & UI Theming section (Ghostty, Neovim, Catppuccin) - Document AeroSpace command ordering requirement - Add tmux layout string pitfall and capture method
1 parent 9e78461 commit fb20979

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

CLAUDE.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,46 @@ Located in `common/claude-code/`, this provides:
219219
- **Prompt**: Oh My Posh with custom theme
220220
- **Completions**: Carapace for 300+ CLI tools
221221

222+
### Tmux Session Management
223+
224+
Located in `common/tmux/` and `common/tmuxinator/`:
225+
226+
- **Tmux Plugin Manager (TPM)**: Manages plugins (resurrect, continuum, sessionx)
227+
- **tmux-sessionx**: fzf-powered session switcher with zoxide integration
228+
- Keybinding: `prefix + o` opens fuzzy session picker
229+
- Integrated with zoxide for smart directory matching
230+
- Shows tmux sessions + zoxide directories + tmuxinator configs
231+
- **Tmuxinator**: Project session manager with predefined layouts
232+
- Default session: config, homelab, kubestronaut windows
233+
- Pricelytics session: app and infra windows (separate session)
234+
- Layout: nvim left (70%), claude + terminal right stacked (60/40)
235+
- Aliases: `mux`, `muxn`, `muxs`, `muxl`
236+
- Start with: `muxs default` or `muxs pricelytics`
237+
238+
### AeroSpace Window Management (macOS)
239+
240+
Located in `systems/aarch64-darwin/aerospace/`:
241+
242+
- **Tiling window manager** for macOS with workspace management
243+
- **Sketchybar integration**: Clickable workspace buttons with opacity
244+
- **Window rules**: Auto-assignment to workspaces via `on-window-detected`
245+
- **Important rule patterns**:
246+
- Multiple commands: `move-node-to-workspace` must be LAST (AeroSpace requirement)
247+
- Correct: `run = ["layout floating", "move-node-to-workspace 5"]`
248+
- Incorrect: `run = ["move-node-to-workspace 5", "layout floating"]` (will error)
249+
- Match by title: `if.window-title-regex-substring = "— 1Password$"`
250+
- Match by bundle ID: `if.app-id = "com.1password.1password"`
251+
- System dialogs: `if.app-id = "com.apple.LocalAuthentication.UIAgent"` for Touch ID
252+
- **Sketchybar workspace buttons**: Clickable via `click_script="aerospace workspace $sid"`
253+
254+
### Terminal & UI Theming
255+
256+
- **Ghostty terminal**: 0.85 opacity for subtle transparency
257+
- **Neovim**: Catppuccin Mocha theme with `transparent_background = true`
258+
- **Tmux**: Catppuccin Mocha status bar, custom 2-pane layout support
259+
- **Sketchybar**: Catppuccin colors, dimmed inactive workspace indicators (`WHITE_DIMMED = 0x80ffffff`)
260+
- **Consistent theme**: Catppuccin Mocha across all tools (terminal, editor, tmux, fzf)
261+
222262
### Version Management
223263

224264
- **Terraform**: Managed as regular nixpkgs in Linux configurations
@@ -489,3 +529,9 @@ The codebase implements defensive configuration:
489529
- ✅ Use `xdg.configFile` which resolves correctly on both platforms
490530
- macOS: `~/Library/Application Support/app/config.yml`
491531
- Linux: `~/.config/app/config.yml`
532+
533+
7. **Tmux layout strings**
534+
- Tmux layout strings are terminal-size specific (e.g., `362x77`)
535+
- To capture current layout: `tmux display-message -p '#{window_layout}'`
536+
- Layouts will adapt to different terminal sizes but proportions may vary
537+
- For tmuxinator, use captured layout strings from actual working layouts

0 commit comments

Comments
 (0)