My personal terminal setup: tmux + Ghostty on macOS.
tmux/tmux.conf tmux config (Ctrl-a prefix, vim keys, sensible defaults)
ghostty/config Ghostty terminal config
bin/tmux-sessionizer fzf-based project/session picker
install.sh Symlinks everything into place + installs tpm
git clone git@github.com:tomaszdurka/dotfiles.git
cd dotfiles
./install.shClone wherever you like — install.sh resolves the repo's location from its
own path, and the symlinks it creates point back to that location. Existing
files at the destinations are backed up with a timestamp before being
replaced.
Dependencies: tmux, fzf, git. Install with brew install tmux fzf git.
- Start (or reload) tmux:
tmux - Install plugins: press
Ctrl-a + I(capital I) inside tmux — tpm will pulltmux-sensible,tmux-resurrect,tmux-continuum,tmux-yank. - Session picker:
Ctrl-a + fopens fzf inside a tmux popup listing directories under~/projects/(editSEARCH_PATHSinbin/tmux-sessionizerto add more). Selecting one creates (or switches to) a session named after that directory.
| Key | Action |
|---|---|
Ctrl-a |
Prefix (replaces default Ctrl-b) |
prefix + r |
Reload tmux.conf |
prefix + | |
Split pane horizontally (in cwd) |
prefix + - |
Split pane vertically (in cwd) |
prefix + h/j/k/l |
Move between panes (vim-style) |
prefix + H/J/K/L |
Resize pane (repeatable) |
prefix + f |
Session picker (fzf popup) |
prefix + s |
List sessions (tmux default) |
prefix + w |
List windows across sessions (tmux default) |
v / y (copy) |
Vim selection / yank to macOS clipboard |
Ghostty passes truecolor and OSC 52 through natively. tmux.conf sets
terminal-overrides for both xterm-256color and xterm-ghostty so colors
render correctly, and allow-passthrough on lets nested apps use OSC
sequences (image protocols, clipboard).
Symlinks live at:
~/.config/tmux/tmux.conf~/.config/ghostty/config~/.local/bin/tmux-sessionizer
Remove them by hand; the .backup.<timestamp> files created on first install
hold whatever was there before.