Kitty (terminal emulator)
kitty
is designed for power keyboard users. To that end all its controls work with the keyboard (although it fully supports mouse interactions as well). Its configuration is a simple, human editable, single file for easy reproducibility (I like to store configuration in source control).The code in kitty is designed to be simple, modular and hackable. It is written in a mix of C (for performance sensitive parts) and Python (for easy hackability of the UI). It does not depend on any large and complex UI toolkit, using only OpenGL for rendering everything (NOTE: not perfect with specific fonts).
Finally, kitty is designed from the ground up to support all modern terminal features, such as Unicode, true color, bold/italic fonts, text formatting, etc. It even extends existing text formatting escape codes, to add support for features not available elsewhere, such as colored and styled (curly) underlines. One of the design goals of kitty is to be easily extensible, so that new features can be added in the future with relatively little effort.
— kitty
Personally, I just switched to Wezterm and not use kitty right now.
Shortcuts
Kitty support any operation with keyboard (which is cool) and also supports all shortcuts customization.
Mod
key in my configuration is Ctrl+Shift
.
Scrolling
These shortcuts are working only in terminal mode (not in any TUI/Full screen console application).
Line up / Line down::Mod+k
/ Mod+j
Page up / Page down::Mod+u
/ Mod+d
Top / Bottom::Mod+\
/ Mod+/
Previous / Next shell prompt vertical position::Mod+z
/ Mod+x
Browse scrollback in less::Mod+h
Browse last cmd output::Mod+g
Tabs
New tab::Mod-t
Close tab::Mod-q
Next tab / Previous tab::C-<tab>
/ C-S-<tab>
Switch layout::Mod-l
Go to specific tab::C-M-<tab number>
Close current tab::Mod-q
Move tab forward / backward::Mod-.
/ Mod-,
Set tab title::C-S-M-t
Windows
New window::Mod-RET
New OS window::M-S-RET
, it’s my custom shortcut
Close window::s-S-c
, it’s my custom shortcut
Resize window::Mod-r
Next window / Previous window::Mod+]
/ Mod+[
* TODO: need rebind
Move window forward::Mod+f
Move window backward::Mod+b
Move window to top `Mod+“
Visually focus window (with number)::Mod+F7
Visually swap window (with number)::Mod+F8
Focus specific window::Mod+<window number>
(1-9)
TODO: check other window shortcuts
Other
Increase font size::Mod-equal
Decrease font size::Mod-minus
Restore font size::Mod-backspace
Open URL in web browser::Mod-e
Edit kitty.conf::Mod-F2
Reload kitty.conf::Mod-F5
Show help::Mod-F1
Copy to clipboard::Mod-c
Paste from clipboard::Mod-v
Paste from selection::Mod-s
Pass selection to program::Mod-o
?
Toggle full-screen::Mod-F11
Input Unicode character::C-M-u
, customized
Reset the terminal::Mod-delete
?
Edit kitty.conf::Mod-f2
Reload kitty.conf::Mod-f5
Debug kitty.conf::Mod-f6
Open a kitty shell::Mod-escape
Custom shortcuts
Switch project using sessionizer::C-space
Switch project using sessionizer and ignore duplicate tabs::C-S-space
Find tab::C-M-F
Start keyboard-driven text selection as a kitten, using kitty_grab::C-M-c