π§ Navigation Hub Window Management β’ Terminal Environment β’ Development Tools β’ Input Management β’ System Integration
This document provides comprehensive documentation for all 15+ components in the dotfiles repository, organized by functional category with detailed configuration references and integration points.
Repository Structure: Each component follows GNU Stow conventions with configurations in component/.config/tool/ format for automatic symlinking.
Purpose: macOS tiling window manager with native keybindings Status: β Active (PRIMARY) Dependencies: None (self-contained)
Key Files:
aerospace/.config/aerospace/aerospace.toml- Complete configuration
Configuration Highlights:
# Tiles layout
default-root-container-layout = 'tiles'
# Auto-start on login
start-at-login = true
# SketchyBar integration
exec-on-workspace-change = ['/bin/bash', '-c',
"sketchybar --trigger aerospace_workspace_change FOCUSED_WORKSPACE=$AEROSPACE_FOCUSED_WORKSPACE"
]
# Chrome auto-routing to workspace 5
[[on-window-detected]]
if.app-id = 'com.google.Chrome'
run = 'move-node-to-workspace 5'
# Gaps configuration
[gaps]
inner.horizontal = 20
inner.vertical = 20
outer.top = 52 # SketchyBar paddingIntegration Points:
- SketchyBar: Direct workspace callbacks + window change events for instant updates
- JankyBorders: Auto-started via
after-startup-command - Native Keybindings: All hotkeys defined in aerospace.toml (no external daemon)
- Automatic: Launches at login, validates config on startup
Key Features:
- Tiles/Accordion Layouts: Standard tiling window layouts
- Smart Resize: Context-aware window resizing
- Service Mode: Advanced operations mode (
shift+alt+cmd+r) - Normalization: Automatic container flattening and orientation handling
- CLI:
aerospacecommand
Service Management:
open -a AeroSpace # Start
killall AeroSpace && open -a AeroSpace # Restart
aerospace reload-config # Reload config only
aerospace list-workspaces --focused # Check focused workspaceCommon Operations: See KEYBINDS.md - Window Management
Purpose: Lightweight window border system for visual clarity Status: β Active Dependencies: None
Key Files:
borders/.config/borders/bordersrc- Configuration script
Configuration:
options=(
style=round
width=5.0
hidpi=on
active_color=0xff00ff00 # Bright green for active window
inactive_color=0xff494d64 # Muted gray for inactive windows
)
borders "${options[@]}"Integration Points:
- Aerospace: Auto-started via
after-startup-command - Visual: Provides clear window boundaries
Service Management:
borders # Start
killall borders && borders & # Restart
pgrep -l borders # Check if runningPurpose: Customizable macOS menu bar with system information Status: β Active Dependencies: Aerospace for workspace information, various system tools
Key Files:
sketchybar/.config/sketchybar/sketchybarrc- Main configurationsketchybar/.config/sketchybar/plugins/- 40 plugin scripts (39 .sh + 1 .py)sketchybar/.config/sketchybar/items/- 31 item configurationssketchybar/.config/sketchybar/helper/- C helper binary
Plugin Architecture (40 plugins total):
plugins/
βββ aerospace.sh # Aerospace workspace management (PRIMARY)
βββ create_workspace.sh # Workspace creation handler
βββ space_window_count.sh # Window count per workspace
βββ space.sh # Space display (click to switch)
βββ brew.sh # Package updates
βββ calendar.sh # Date/time display
βββ cpu.sh # System monitoring (via helper binary)
βββ memory.sh # RAM usage
βββ disk.sh # Disk usage
βββ battery.sh # Battery status
βββ front_app.sh # Active application
βββ git.sh # Git repository status
βββ github.sh # GitHub notifications
βββ docker.sh # Container monitoring
βββ dev_servers.sh # Dev server port monitoring
βββ temperature.sh # CPU temperature (M4-aware, uses smctemp)
βββ volume.sh # Audio control
βββ audio_output.sh # Audio device indicator
βββ wifi.sh # WiFi status
βββ network.sh # Network speed
βββ ssh.sh # SSH session indicator
βββ tmux.sh # Tmux session indicator
βββ memory_graph.sh # Memory usage graph
βββ memory_ring.sh # Memory usage ring display
βββ ... (18+ more plugins)
Temperature Monitoring (M4 Mac):
The temperature plugin uses smctemp to read heatsink temperature (TH0x sensor) instead of die hotspot sensors. This provides meaningful temperature readings on M4 Macs where die sensors report 90Β°C+ even at idle.
- Dependency:
brew tap narugit/tap && brew install narugit/tap/smctemp - Fallback: Uses macmon if smctemp unavailable (less accurate on M4)
- Cache:
/tmp/sketchybar_temp_cache
Styling:
- Position: Top bar, 35px height
- Font: MonaspiceKr Nerd Font
- Theme: Green/orange color scheme with blur effects
- Interaction: Click handlers for space switching
Testing & Validation:
~/.config/sketchybar/test_sketchybar.sh- Plugin testing~/.config/sketchybar/debug_sketchybar.sh- Debugging tools~/.config/sketchybar/plugin_health_monitor.sh- Health monitoring
Purpose: Modern GPU-accelerated terminal with extensive customization Status: β Active (Primary Terminal) Dependencies: MonaspiceNe Nerd Font
Key Files:
ghostty/.config/ghostty/config- Main configuration
Core Configuration:
# Font & Appearance
font-family = "MonaspiceNe Nerd Font"
font-size = 11
theme = "Monokai Remastered"
# macOS Integration
macos-titlebar-style = hidden
macos-option-as-alt = true
window-decoration = false
# Performance
renderer = openglVisual Effects Library:
shaders/
βββ matrix-hallway.glsl # Matrix digital rain
βββ starfield.glsl # Animated starfield
βββ crt.glsl # CRT monitor effect
βββ galaxy.glsl # Galaxy spiral
βββ nordic-aurora.glsl # Aurora borealis
βββ ... (51+ more effects)
Integration:
- Works with Tmux for color passthrough
- Optimized for macOS with proper input handling
Purpose: Advanced terminal session management with plugin ecosystem Status: β Active Dependencies: TPM (plugin manager), various utilities
Key Files:
tmux/.tmux.conf- Main configuration (249 lines)- Plugin configurations embedded
Core Features:
# Prefix key: Ctrl+A (not default Ctrl+B)
set-option -g prefix C-a
# Vi-style navigation
setw -g mode-keys vi
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -RPlugin Ecosystem (10+ plugins):
tmux-plugins/tmux-yank- System clipboard integrationchristoomey/vim-tmux-navigator- Neovim integrationtmux-plugins/tmux-resurrect- Session persistencesainnhe/tmux-fzf- FZF integrationomerxx/tmux-floax- Floating terminalsniksingh710/minimal-tmux-status- Clean status barwfxr/tmux-fzf-url- URL openingjoshmedeski/tmux-nerd-font-window-name- Nerd font icons
Session Management:
- Sesh Integration:
C-a Tfor advanced session switcher - Quick Operations:
C-a N(new),C-a R(rename),C-a X(kill)
Integration Points:
- Neovim: Seamless pane navigation via vim-tmux-navigator
- Sesh: Session management and templates
- FZF: Fuzzy finding for sessions and files
- Ghostty: Color and terminal capability passthrough
Session Scripts:
Location: sesh/.config/sesh/scripts/
Structure:
core/- Core session logic (sesh_switcher.sh, sesh_list.sh, sesh_preview.sh, sesh_clean_selection.sh)lib/- Shared libraries (sesh_colors.sh, sesh_common.sh, sesh_icons.sh, sesh_preview_common.sh)utils/- Utility scripts (docker_session.sh, sesh_create_new.sh, sesh_edit.sh, sesh_kill.sh, sesh_session_helper.sh, sesh_smart_start.sh)
Integration:
- Called from tmux keybindings:
M-e(Alt+e - session switcher viacore/sesh_switcher.sh) - Used by FZF session switcher for previews
- Referenced in
sesh.tomlfor preview_command - Provide enhanced display with icons and contextual information
Purpose: Modern shell with extensive enhancements and aliases Status: β Active (Default Shell) Dependencies: Homebrew packages for various tools
Key Files:
zsh/.zshrc- Main configuration (361 lines)
Enhancement Categories:
Terminal Integration:
# Ghostty + Tmux detection
if [ -n "$TMUX" ]; then
export TERM="tmux-256color"
elif [ "$TERM_PROGRAM" = "ghostty" ]; then
export TERM="xterm-ghostty"
fiFZF Integration:
# Enhanced preview and completion
export FZF_ALT_C_OPTS="--preview 'eza --tree --color=always --icons --level=3 {} | head -200'"
export FZF_CTRL_T_OPTS="--preview 'bat -n --color=always --line-range :500 {}'"
# Custom functions
fcd() { cd "$(find . -type d -not -path '*/.*' | fzf)" && l; }
fv() { nvim "$(find . -type f -not -path '*/.*' | fzf)" }Alias Categories (70+ aliases):
- Git:
gc,gp,gs,glog, etc. (full list) - Docker:
dock,dco,dps,dx, etc. - Kubernetes:
k,kg,kd,kl, etc. - Navigation:
..,...,C(Code),conf(dotfiles) - File Operations:
ls(eza),lt(tree),l(clean listing)
Plugin Integration:
zsh-fast-syntax-highlighting- Real-time syntax highlightingzsh-autosuggestions- Intelligent completionsfzf-tab- FZF-powered tab completion
Purpose: Highly customizable shell prompt with multiple themes Status: β Active Dependencies: Nerd fonts for icons
Key Files:
starship/.config/starship/starship.toml- Active configurationstarship/.config/starship/starship-*.toml- 5 theme variants
Available Themes (5 total):
starship/
βββ starship.toml # Default (Gruvbox Dark Neon)
βββ starship-gruvbox-rainbow.toml # Colorful variant
βββ starship-jetpack.toml # Minimal modern
βββ starship-gruvbox-dark-neon.toml # High contrast
βββ starship-tokyo-night.toml # Tokyo Night variant
Theme Switching:
# In zsh/.zshrc, change the export line:
export STARSHIP_CONFIG=~/.config/starship/starship-gruvbox-rainbow.tomlFeatures:
- Git integration with branch/status indicators
- Language detection (Python, Node, Rust, etc.)
- Performance metrics and timing
- Tmux-aware prompt handling
Purpose: Comprehensive development environment based on kickstart.nvim Status: β Active Dependencies: LSP servers, various CLI tools
Key Files:
nvim/.config/nvim/init.lua- Entry pointnvim/.config/nvim/lua/keymaps.lua- Core keybindings (detailed guide)nvim/.config/nvim/lua/custom/plugins/- 38 plugin configurations
Core Architecture:
nvim/
βββ init.lua # Main entry point
βββ lua/
β βββ keymaps.lua # Core keybindings
β βββ options.lua # Editor settings
β βββ autocmds.lua # Auto commands
β βββ lazy-plugins.lua # Plugin management
β βββ custom/plugins/ # Plugin configurations
β βββ telescope.lua # Fuzzy finding
β βββ lspconfig.lua # Language servers
β βββ codecompanion.lua # AI assistance
β βββ obsidian.lua # Note-taking
β βββ ... (25+ more)
Key Plugin Categories:
- Language Support: LSP, completion, debugging
- File Management: Telescope, mini.files, oil, yazi
- Git Integration: Neogit, fugitive, gitsigns
- AI Assistance: CodeCompanion, Claude integration
- Note-taking: Obsidian integration with 15+ commands
Integration Points:
- Tmux:
vim-tmux-navigatorfor seamless pane navigation - System Clipboard:
<leader>ybindings - File Managers: Multiple options (telescope, oil, yazi, mini.files)
- Git Workflows: Terminal aliases + Neovim GUI operations
Purpose: Modern session management with fuzzy finding and templates Status: β Active Dependencies: Tmux, FZF
Key Files:
sesh/.config/sesh/sesh.toml- Session definitionssesh/.config/sesh/scripts/- Session management scripts
Session Templates:
[[session]]
name = "βοΈ Dotfiles"
path = "~/dotfiles"
startup_command = "nvim"
[[session]]
name = "π» Claude Dev"
path = "~/.local/share/nvim/lazy/claudecode.nvim"
startup_script = "~/.config/sesh/scripts/claude_dev.sh"Enhanced Workflow:
- Quick Access:
sd(fuzzy connect),sl(list),sc(connect) - Status Monitoring:
sesh-dashboard,sesh-current,sesh-info - Integration: Works with tmux for complete session management
Validation: Manual validation via sesh list (validation script removed Oct 2025)
Purpose: Sophisticated keyboard remapping with home row modifiers Status: β Active (PRIMARY) Dependencies: Karabiner-DriverKit-VirtualHIDDevice (for input interception)
Key Files:
kanata/.config/kanata/kanata.kbd- Layer definitions/Library/LaunchDaemons/com.example.kanata.plist- Auto-start daemon
Binary Path: /opt/homebrew/bin/kanata (Homebrew symlink)
Homebrew Symlink Strategy: The LaunchDaemon references the stable Homebrew symlink at /opt/homebrew/bin/kanata rather than the versioned Cellar path. This is critical because macOS TCC (Transparency, Consent, and Control) grants Input Monitoring permissions to a specific binary path. When brew upgrade kanata replaces the binary in the Cellar, the old path in the TCC database becomes invalid. The Homebrew symlink at /opt/homebrew/bin/kanata survives upgrades, so Input Monitoring permissions persist without needing to re-grant them.
LaunchDaemon Details:
- Uses a bash wrapper script with a 5-second startup delay to allow the Karabiner DriverKit VirtualHID daemons to initialize first
- KeepAlive:
true(unconditional restart on crash or exit)
Active Remappings:
- Caps Lock: Escape on tap, Ctrl on hold
- Home Row Mods: a/s/d/f β Cmd/Alt/Shift/Ctrl, j/k/l/; β Ctrl/Shift/Alt/Cmd
- Right Shift: Backspace
- Tab: Tab on tap, Hyper (Cmd+Alt+Shift+Ctrl) on hold
- Apostrophe ('): ' on tap, Numbers layer on hold
- Forward slash (/): Regular / key (no layer)
- Right Cmd: Toggle home row mods on/off (tap to switch baseβvanilla layers)
- Timing: 200ms tap, 230ms hold thresholds
Service Management:
sudo launchctl print system/com.example.kanata # Check status
sudo launchctl kickstart -k system/com.example.kanata # Restart
ps aux | grep kanata | grep -v grep # Verify running binary pathPurpose: Alternative keyboard modifier (currently unused)
Status:
Key Files:
karabiner/.config/karabiner/karabiner.json- Configuration
Current State: simple_modifications is empty - no active remappings.
Kanata is the primary keyboard remapper.
File Validation Scripts:
sesh list- Sesh session validation (manual)~/.config/sketchybar/test_sketchybar.sh- SketchyBar plugin testing~/.config/sketchybar/debug_sketchybar.sh- SketchyBar debugging
BrewIntegration (in zsh/.zshrc:45-53):
function brew() {
command brew "$@"
if [[ $* =~ "upgrade|update|install|uninstall" ]]; then
sketchybar --trigger brew_update
fi
}Cross-Tool Integration Points:
- Window Management: Aerospace β JankyBorders β SketchyBar
- Terminal Stack: Ghostty β Tmux β Zsh β Starship
- Session Management: Sesh β Tmux β FZF
- Development: Neovim β Tmux β Git β File Managers
- Input: Karabiner/Kanata β All Applications
Stow Management: All components use GNU Stow for deployment:
# Deploy all components
stow */
# Deploy individual components
stow ghostty aerospace sketchybar # etc.
# Remove components
stow -D component_name| Component | Status | Dependencies | Integration Level |
|---|---|---|---|
| Aerospace | β Active | None | Core (Window Management) |
| JankyBorders | β Active | Aerospace | Medium (Visual Enhancement) |
| SketchyBar | β Active | Aerospace, System Tools | High (System Info) |
| Ghostty | β Active | Fonts | Core (Terminal) |
| Tmux | β Active | Plugins | High (Session Management) |
| Zsh | β Active | Many CLI Tools | High (Shell Environment) |
| Starship | β Active | Nerd Fonts | Medium (Prompt) |
| Neovim | β Active | LSP Servers | High (Development) |
| Sesh | β Active | Tmux, FZF | High (Session Management) |
| Kanata | β Active | Karabiner-DriverKit | High (Input Remapping) |
| Karabiner | None | Installed but unused |
- Keybinds Reference - Complete keybindings across all tools
- Neovim Keybinds - Detailed Neovim mappings
- Workflow Guides - Cross-tool integration workflows
- Multi-LLM Workflow - Claude Code + CodeCompanion orchestration
- Maintenance Guide - Validation and troubleshooting
- Main Repository - Installation and overview
- Claude Documentation - Claude Code specific guidance
This documentation provides complete coverage of all 15+ components in the dotfiles repository with cross-references and integration details for both human users and AI agents.
cyperx - GitHub Profile
For issues or contributions, visit the dotfiles repository.