the kitty config for tmux users
the shortcuts (key bindings) is heavily inspired by Oh my tmux!
mainly used under Linux
# backup your config first
# mv ~/.config/kitty ~/.config/kitty.bak
git clone https://github.com/ttys3/my-kitty-config.git ~/.config/kitty
alias icat="kitten icat"
alias s="kitten ssh"
alias d="kitten diff"
key name see https://github.com/xkbcommon/libxkbcommon/blob/master/include/xkbcommon/xkbcommon-keysyms.h
or using kitty --debug-input
to detect keysyms
keybindings explain:
ctrl+a>R means:
press ctrl
+ a
in the same time, release and then, press R (shift
+r
)
key | description |
---|---|
ctrl+a>R | reload config |
ctrl+a>E | edit config |
ctrl+a>D | debug config |
key | description |
---|---|
ctrl+a>s | save current layout to session file |
key | description |
---|---|
ctrl+shift+← | goto previous tab |
ctrl+shift+→ | goto next tab |
ctrl+shift+, | move tab backward |
ctrl+shift+. | move tab forward |
ctrl+a>, | change tab title |
ctrl+a>c | create new tab |
ctrl+a>x | close window / tab |
key | description |
---|---|
ctrl+q | quit kitty |
f11 | toggle fullscreen |
key | description |
---|---|
ctrl+a>- | horizontal split with cwd |
ctrl+a>shift+- | horizontal split |
ctrl+a>\ | vertial split with cwd |
ctrl+a>shift+\ | vertial split |
ctrl+a>x | close window |
ctrl+a>z | zoom (maxmize) window |
ctrl+shift+r | resize window |
ctrl+← | goto left window |
ctrl+→ | goto right window |
ctrl+↑ | goto up window |
ctrl+↓ | goto down window |
ctrl+a>h | goto left window |
ctrl+a>l | goto right window |
ctrl+a>k | goto up window |
ctrl+a>j | goto down window |
shift+← | move current window to left |
shift+→ | move current window to right |
shift+↑ | move current window to up |
shift+↓ | move current window to down |
alt+n | resize window narrower |
alt+w | resize window wider |
alt+u | resize window taller |
alt+d | resize window shorter |
ctrl+home | resize window reset |
key | description |
---|---|
ctrl+= | font size + |
ctrl+- | font size - |
ctrl+0 | font size reset |
key | description |
---|---|
ctrl+a>t | kitten themes |
ctrl+a>space | copy pasting with hints like tmux-thumbs |
ctrl+a>ctrl+a | send real ctrl+a (emacs shortcut Home) |
if you have used ctrl+a>s generate the session, you do not need this.
you can create your session file under ~/.config/kitty
, let's say the filename is session.conf
change startup_session none
to startup_session session.conf
create session.conf
like this:
new_tab home
layout splits
cd ~
launch zsh
focus
new_tab work
cd ~/work
launch zsh
new_tab nvim
cd ~/.config/nvim
launch zsh
new_tab go
cd ~/repo/go
launch zsh
new_tab rust
cd ~/repo/rust
launch zsh
Keyboard shortcuts https://sw.kovidgoyal.net/kitty/conf/#keyboard-shortcuts
The launch command syntax reference https://sw.kovidgoyal.net/kitty/launch/#syntax-reference
the behavior of listen_on
differs from the behavior of --listen-on
cli flag.
the cli one is exactly the same.
the config file one will append a random postfix to the socket name, this is strange logic.
start kitty:
kitty -o allow_remote_control=yes --listen-on unix:/run/user/1000/kitty.sock
on other terminal:
kitty @ --to unix:/run/user/1000/kitty.sock launch --type=tab --cwd "/tmp" --tab-title "My Tab" --keep-focus bash