Skip to content

ttys3/my-kitty-config

Repository files navigation

my-kitty-config

the kitty config for tmux users

the shortcuts (key bindings) is heavily inspired by Oh my tmux!

mainly used under Linux

usage

# backup your config first
# mv ~/.config/kitty  ~/.config/kitty.bak

git clone https://github.com/ttys3/my-kitty-config.git ~/.config/kitty

suggested shell alias

alias icat="kitten icat"
alias s="kitten ssh"
alias d="kitten diff"

Shortcuts

key name see https://github.com/xkbcommon/libxkbcommon/blob/master/include/xkbcommon/xkbcommon-keysyms.h

or using kitty --debug-input to detect keysyms

config

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

session

key description
ctrl+a>s save current layout to session file

tab

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

os window

key description
ctrl+q quit kitty
f11 toggle fullscreen

window

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

font

key description
ctrl+= font size +
ctrl+- font size -
ctrl+0 font size reset

misc

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)

session restore

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

kitty docs

Keyboard shortcuts https://sw.kovidgoyal.net/kitty/conf/#keyboard-shortcuts

The launch command syntax reference https://sw.kovidgoyal.net/kitty/launch/#syntax-reference

troubleshooting

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