2026-08-11 15:12:06 -04:00
|
|
|
# Font Configuration
|
2026-10-08 11:29:07 -04:00
|
|
|
font-size = 11
|
|
|
|
|
font-family = IoskeleyMonoTerm Nerd Font Mono
|
|
|
|
|
adjust-cell-height = 15%
|
2026-08-11 15:12:06 -04:00
|
|
|
background-blur = true
|
|
|
|
|
|
|
|
|
|
# Window Configuration
|
|
|
|
|
window-decoration = false
|
2026-10-07 12:45:23 -04:00
|
|
|
window-padding-x = 0
|
|
|
|
|
window-padding-y = 0
|
2026-08-11 15:12:06 -04:00
|
|
|
background-opacity = 0.9
|
|
|
|
|
|
|
|
|
|
# Cursor Configuration
|
|
|
|
|
cursor-style = underline
|
|
|
|
|
cursor-style-blink = true
|
|
|
|
|
|
|
|
|
|
# Scrollback
|
|
|
|
|
scrollback-limit = 3023
|
|
|
|
|
|
|
|
|
|
# Terminal features
|
|
|
|
|
mouse-hide-while-typing = true
|
|
|
|
|
copy-on-select = false
|
|
|
|
|
confirm-close-surface = false
|
|
|
|
|
|
|
|
|
|
# Disable annoying copied to clipboard
|
|
|
|
|
app-notifications = no-clipboard-copy,no-config-reload
|
|
|
|
|
|
2026-10-08 11:29:07 -04:00
|
|
|
# Ghostty is only a tmux client: tmux owns tabs (windows), splits (panes),
|
|
|
|
|
# sessions and persistence. `clear` drops every Ghostty default (tabs,
|
|
|
|
|
# splits, alt+N goto_tab, ctrl+alt+arrow goto_split) so those chords reach
|
|
|
|
|
# tmux; the ctrl+shift chords below drive tmux through its prefix2
|
|
|
|
|
# (\x02 = ctrl+b). Keep `clear` above every other keybind line.
|
|
|
|
|
keybind = clear
|
|
|
|
|
keybind = ctrl+shift+c=copy_to_clipboard
|
|
|
|
|
keybind = ctrl+shift+v=paste_from_clipboard
|
2026-08-11 15:12:06 -04:00
|
|
|
keybind = ctrl+plus=increase_font_size:1
|
|
|
|
|
keybind = ctrl+minus=decrease_font_size:1
|
|
|
|
|
keybind = ctrl+zero=reset_font_size
|
2026-10-08 11:29:07 -04:00
|
|
|
keybind = ctrl+shift+period=reload_config
|
|
|
|
|
keybind = shift+enter=text:\n
|
|
|
|
|
|
2026-10-08 11:41:47 -04:00
|
|
|
# command palette: ctrl+space is tmux's root-table C-Space (tmux-palette);
|
|
|
|
|
# sent explicitly as NUL so no keyboard-protocol mode can turn it into a CSI
|
|
|
|
|
keybind = ctrl+space=text:\x00
|
2026-10-08 11:46:49 -04:00
|
|
|
# project tasks palette (pj): tmux prefix t
|
|
|
|
|
keybind = ctrl+shift+space=text:\x02t
|
2026-10-08 11:41:47 -04:00
|
|
|
|
2026-10-08 11:29:07 -04:00
|
|
|
# tabs → tmux windows
|
|
|
|
|
keybind = ctrl+shift+t=text:\x02c
|
|
|
|
|
keybind = ctrl+shift+w=text:\x02k
|
|
|
|
|
keybind = ctrl+shift+r=text:\x02r
|
|
|
|
|
keybind = ctrl+tab=text:\x02n
|
|
|
|
|
keybind = ctrl+shift+tab=text:\x02p
|
|
|
|
|
keybind = ctrl+page_down=text:\x02n
|
|
|
|
|
keybind = ctrl+page_up=text:\x02p
|
|
|
|
|
keybind = ctrl+shift+arrow_right=text:\x02n
|
|
|
|
|
keybind = ctrl+shift+arrow_left=text:\x02p
|
|
|
|
|
keybind = ctrl+shift+k=text:\x02n
|
|
|
|
|
keybind = ctrl+shift+h=text:\x02p
|
|
|
|
|
|
|
|
|
|
# splits → tmux panes
|
|
|
|
|
keybind = ctrl+shift+l=text:\x02v
|
|
|
|
|
keybind = ctrl+shift+e=text:\x02h
|
|
|
|
|
keybind = ctrl+shift+j=text:\x02h
|
|
|
|
|
keybind = ctrl+shift+x=text:\x02x
|
|
|
|
|
|
|
|
|
|
# session picker: tmux-sessionx on prefix o
|
|
|
|
|
keybind = ctrl+shift+o=text:\x02o
|
|
|
|
|
keybind = ctrl+shift+enter=text:\x02z
|
|
|
|
|
keybind = ctrl+shift+z=text:\x02z
|
|
|
|
|
|
|
|
|
|
# scrollback, prompt, help
|
|
|
|
|
keybind = ctrl+shift+f=text:\x02/
|
|
|
|
|
keybind = ctrl+shift+page_up=text:\x02[
|
|
|
|
|
keybind = ctrl+shift+p=text:\x02:
|
|
|
|
|
keybind = ctrl+shift+slash=text:\x02?
|
|
|
|
|
keybind = ctrl+shift+alt+,=text:\x02q
|
|
|
|
|
|
|
|
|
|
# sessions: quitting Ghostty detaches; the session lives on in tmux
|
|
|
|
|
keybind = ctrl+shift+n=text:\x02C
|
|
|
|
|
keybind = ctrl+shift+s=text:\x02s
|
|
|
|
|
keybind = ctrl+shift+q=text:\x02d
|
2026-08-11 15:12:06 -04:00
|
|
|
|
|
|
|
|
# Tab configuration
|
|
|
|
|
gtk-titlebar = false
|
|
|
|
|
|
|
|
|
|
quit-after-last-window-closed = false
|
|
|
|
|
quit-after-last-window-closed-delay = 5m
|
2026-10-08 11:29:07 -04:00
|
|
|
# Every window gets its own tmux session (~/.local/bin/ghostty-tmux): it
|
|
|
|
|
# reclaims the oldest detached session or starts a new one. The first window
|
|
|
|
|
# after boot starts the tmux server, and tmux-continuum restores the last
|
|
|
|
|
# saved sessions, so closing Ghostty (or rebooting) never loses the shells.
|
|
|
|
|
command = shell:$HOME/.local/bin/ghostty-tmux
|
2026-10-07 12:45:23 -04:00
|
|
|
|
2026-08-11 15:12:06 -04:00
|
|
|
# Shell integration
|
|
|
|
|
shell-integration = detect
|
|
|
|
|
shell-integration-features = cursor,sudo,title,no-cursor
|
|
|
|
|
|
|
|
|
|
# Rando stuff
|
|
|
|
|
gtk-single-instance = true
|