Repository navigation
Terminal and desktop
Every Ghostty window runs inside tmux, and Ghostty's ⌘ shortcuts are tmux keys: ⌘T a tab, ⌘D / ⌘⇧D a split, ⌘O open a repo as a session, ⌘G lazygit, ⌘K sofka, ⌘J a scratch terminal, ⌘⇧C copy the last command's output. ⌘⇧H lists them all and runs the one you pick.
- The first window attaches the persistent
mainsession (it survives closing Ghostty); further windows get throwaway sessions. - When tmux starts, the last tmux-resurrect save comes back, then the repos in
~/.config/tmux/sessions.localare preloaded. - A split in a pane that is in
ssh hostopens the same ssh.
Reference: tmux README (every shortcut, copying), Ghostty README. Reload Ghostty with ⌘⇧, (a changed keybind may need ⌘Q); tmux reloads with C-b r or dotfiles-sync.
The Rex terminal gets the same ⌘ shortcuts, bound to its own tabs, panes and sessions (.config/rex/init.lua); ⌘O is its sessionizer and ⌘K opens sofka on the pane's kube context. Its Settings (theme, tabs, panes) are code: settings.py export > settings.json after changing them in the app, and install.sh applies them on every machine (⌘Q Rex to load them).
Tiling window manager. Option (⌥) + a letter goes to a workspace (⌥c code, ⌥b browser, ⌥m messages, …), ⌥⇧ + a letter sends the window there, ⌥h/j/k/l moves focus. ⌥i shows the cheat sheet (CHEATSHEET.md). With fewer monitors, workspaces fall back to the remaining ones.
The status bar, at the bottom: workspaces, the focused app, Spotify, Slack / Discord badges, the kube context (red on production), connectivity checks, Colima, PRs / MRs waiting for review, AWS / GCP sessions, CPU, RAM, weather and outdated brew packages. Reference: SketchyBar README.
- The kube item asks
kube-guard context(~3 ms, the same "production" as the guard) instead of runningkubectltwice every 5 s. - CPU updates every 5 s, RAM every 15 s.
- Per machine:
~/.config/sketchybar/aws_profilesandchecks(seechecks.example).
.config/ssh/controlmaster.conf: ssh defaults (ControlMaster: a second connection to a host reuses the first). The playbook adds Include ~/.config/ssh/*.conf at the top of ~/.ssh/config; the rest of that file stays per machine.
JankyBorders draws the focused window's border (.config/borders/bordersrc); dotfiles-sync restarts it.