Session management
Colour-coded workspace sessions with Ghostty, tmux theming and launcher scripts. Each project opens in its own window, in its own colour, with its name in the title.
Everyday
Session launchers9
- Launch Ghostty + tmux for titan-api (blue)
- Launch Ghostty + tmux for yaklab (green)
- Launch Ghostty + tmux for scratch (mauve)
- Dashboard: btop, bandwhich, iftop, gping in 2×2 grid (red)
- Remote: SSH to zeus, sync tmux config, tmux in ~/Development/yaklab (pink)
- Launch Ghostty + tmux for any named session
- Remote: SSH to host, sync tmux config+plugins, create split layout
- List all available session configs
- Launch all configured sessions at once
Fish abbreviations4
- tt titan-api
- tt yaklab
- tt scratch
- tt-all
macOS window switching6
- App switcher, now shows session names in titles
- Cycle between windows of the same app (Ghostty)
- Mission Control, see all windows with titles
- Switch between macOS Spaces
- Jump to Space by number (enable in System Settings)
- Show Desktop
Configure
Ghostty7
- Set Ghostty window title on launch
- Load per-session color overrides
- Execute command in new Ghostty window
- Show native window decorations
- Use macOS tab-style title bar
- Per-session cursor color override
- Per-session selection color override
tmux session theming6
- Auto-applies accent colors on session create/attach
- Trigger theme on new session
- Trigger theme on session switch
- Colored border for active pane
- Colored tab for active window
- tmux user variable storing current accent hex
Dynamic window titles5
- Enable terminal title propagation
- #{session_name} · #{b:pane_current_path} · #{pane_current_command}
- Example: how titles appear in Cmd-Tab
- Example: project context at a glance
- Example: Claude session title
Config files8
- Base Ghostty configuration
- Per-session Ghostty color overrides
- tmux config (theme hooks + titles added)
- Per-session accent color script
- Session launcher (local + remote)
- All sessions launcher script
- SSH host config (zeus: IdentityFile + IdentitiesOnly)
- Claude Code launcher (synced to zeus via rsync)
Reference
Colour scheme6
- Blue, #89b4fa (Catppuccin Mocha blue)
- Green, #a6e3a1 (Catppuccin Mocha green)
- Mauve, #cba6f7 (Catppuccin Mocha mauve)
- Pink, #f5c2e7 (Catppuccin Mocha pink, remote)
- Red, #f47067 (monitoring dashboard)
- Pink, #f5c2e7 (Catppuccin Mocha pink)
Remote sessions7
- tt auto-syncs ~/.config/tmux/ to remote before attach
- tt auto-syncs ~/.tmux/plugins/ to remote before attach
- Session name ending triggers remote mode (e.g. yaklab-zeus)
- Remote working directory (derived from session name)
- Remote tmux creation wrapped in bash (zeus default shell is fish)
- Remote layout matches local: Claude Code + file listing
- Mac Studio M2 Ultra, tmux 3.6a, fish, claude installed
Monitor dashboard6
- TL pane, system overview (CPU, RAM, disk, network, processes)
- TR pane, per-process bandwidth usage (Rust, /opt/homebrew/bin/)
- BL pane, real-time interface traffic by connection
- BR pane, live ping graph (Cloudflare, Google, homelab, Yaklab)
- 4 panes via split-window -h then two split-window -v
- bandwhich and iftop need root for packet capture