1KITTY(1) kitty KITTY(1)
2
3
4
6 kitty - kitty Documentation
7
8 kitty [options] [program-to-run ...]
9
10 Run the kitty terminal emulator. You can also specify the program to
11 run inside kitty as normal arguments following the options. For exam‐
12 ple: kitty --hold sh -c "echo hello, world"
13
14 For comprehensive documentation for kitty, please see:
15 https://sw.kovidgoyal.net/kitty/
16
18 --class <CLS>
19 Set the class part of the WM_CLASS window property. On Wayland,
20 it sets the app id. Default: kitty
21
22 --name <NAME>
23 Set the name part of the WM_CLASS property. Defaults to using
24 the value from kitty --class.
25
26 --title <TITLE>, -T <TITLE>
27 Set the OS window title. This will override any title set by the
28 program running inside kitty, permanently fixing the OS window's
29 title. So only use this if you are running a program that does
30 not set titles.
31
32 --config <CONFIG>, -c <CONFIG>
33 Specify a path to the configuration file(s) to use. All configu‐
34 ration files are merged onto the builtin kitty.conf, overriding
35 the builtin values. This option can be specified multiple times
36 to read multiple configuration files in sequence, which are
37 merged. Use the special value NONE to not load any config file.
38
39 If this option is not specified, config files are searched for
40 in the order: $XDG_CONFIG_HOME/kitty/kitty.conf, ~/.con‐
41 fig/kitty/kitty.conf, $XDG_CONFIG_DIRS/kitty/kitty.conf. The
42 first one that exists is used as the config file.
43
44 If the environment variable KITTY_CONFIG_DIRECTORY is specified,
45 that directory is always used and the above searching does not
46 happen.
47
48 If /etc/xdg/kitty/kitty.conf exists, it is merged before (i.e.
49 with lower priority) than any user config files. It can be used
50 to specify system-wide defaults for all users. You can use ei‐
51 ther - or /dev/stdin to read the config from STDIN.
52
53 --override <OVERRIDE>, -o <OVERRIDE>
54 Override individual configuration options, can be specified mul‐
55 tiple times. Syntax: name=value. For example: kitty -o
56 font_size=20
57
58 --directory <DIRECTORY>, --working-directory <DIRECTORY>, -d <DIREC‐
59 TORY>
60 Change to the specified directory when launching. Default: .
61
62 --detach
63 Detach from the controlling terminal, if any.
64
65 --session <SESSION>
66 Path to a file containing the startup session (tabs, windows,
67 layout, programs). Use - to read from STDIN. See the README file
68 for details and an example. Environment variables are expanded,
69 relative paths are resolved relative to the kitty configuration
70 directory.
71
72 --hold Remain open after child process exits. Note that this only af‐
73 fects the first window. You can quit by either using the close
74 window shortcut or pressing any key.
75
76 --single-instance, -1
77 If specified only a single instance of kitty will run. New invo‐
78 cations will instead create a new top-level window in the exist‐
79 ing kitty instance. This allows kitty to share a single sprite
80 cache on the GPU and also reduces startup time. You can also
81 have separate groups of kitty instances by using the kitty --in‐
82 stance-group option.
83
84 --instance-group <INSTANCE_GROUP>
85 Used in combination with the kitty --single-instance option. All
86 kitty invocations with the same kitty --instance-group will re‐
87 sult in new windows being created in the first kitty instance
88 within that group.
89
90 --wait-for-single-instance-window-close
91 Normally, when using kitty --single-instance, kitty will open a
92 new window in an existing instance and quit immediately. With
93 this option, it will not quit till the newly opened window is
94 closed. Note that if no previous instance is found, then kitty
95 will wait anyway, regardless of this option.
96
97 --listen-on <LISTEN_ON>
98 Listen on the specified socket address for control messages. For
99 example, kitty --listen-on=unix:/tmp/mykitty or kitty --lis‐
100 ten-on=tcp:localhost:12345. On Linux systems, you can also use
101 abstract UNIX sockets, not associated with a file, like this:
102 kitty --listen-on=unix:@mykitty. Environment variables are ex‐
103 panded and relative paths are resolved with respect to the tem‐
104 porary directory. To control kitty, you can send commands to it
105 with kitty @ using the kitty @ --to option to specify this ad‐
106 dress. Note that if you run kitty @ within a kitty window, there
107 is no need to specify the kitty @ --to option as it will auto‐
108 matically read from the environment. Note that this will be ig‐
109 nored unless allow_remote_control is set to either: yes, socket
110 or socket-only. For UNIX sockets, this can also be specified in
111 kitty.conf.
112
113 --start-as <START_AS>
114 Control how the initial kitty window is created. Default: nor‐
115 mal Choices: fullscreen, maximized, minimized, normal
116
117 Debugging options
118 --version, -v
119 The current kitty version.
120
121 --dump-commands
122 Output commands received from child process to STDOUT.
123
124 --replay-commands <REPLAY_COMMANDS>
125 Replay previously dumped commands. Specify the path to a dump
126 file previously created by kitty --dump-commands. You can open a
127 new kitty window to replay the commands with:
128
129 kitty sh -c "kitty --replay-commands /path/to/dump/file; read"
130
131 --dump-bytes <DUMP_BYTES>
132 Path to file in which to store the raw bytes received from the
133 child process.
134
135 --debug-gl, --debug-rendering
136 Debug rendering commands. This will cause all OpenGL calls to
137 check for errors instead of ignoring them. Also prints out mis‐
138 cellaneous debug information. Useful when debugging rendering
139 problems.
140
141 --debug-input, --debug-keyboard
142 Print out key and mouse events as they are received.
143
144 --debug-font-fallback
145 Print out information about the selection of fallback fonts for
146 characters not present in the main font.
147
148 --watcher <WATCHER>
149 This option is deprecated in favor of the watcher option in
150 kitty.conf and should not be used.
151
153 kitty is capable of running multiple programs organized into tabs and
154 windows. The top level of organization is the OS window. Each OS win‐
155 dow consists of one or more tabs. Each tab consists of one or more
156 kitty windows. The kitty windows can be arranged in multiple different
157 layouts, like windows are organized in a tiling window manager. The
158 keyboard controls (which are all customizable) for tabs and windows
159 are:
160
161 Scrolling
162 ┌──────────────────────────┬────────────────────────────┐
163 │Action │ Shortcut │
164 ├──────────────────────────┼────────────────────────────┤
165 │Line up │ ctrl+shift+up (also ⌥+⌘+⇞ │
166 │ │ and ⌘+↑ on macOS) │
167 ├──────────────────────────┼────────────────────────────┤
168 │Line down │ ctrl+shift+down (also │
169 │ │ ⌥+⌘+⇟ and ⌘+↓ on macOS) │
170 ├──────────────────────────┼────────────────────────────┤
171 │Page up │ ctrl+shift+page_up (also │
172 │ │ ⌘+⇞ on macOS) │
173 ├──────────────────────────┼────────────────────────────┤
174 │Page down │ ctrl+shift+page_down (also │
175 │ │ ⌘+⇟ on macOS) │
176 ├──────────────────────────┼────────────────────────────┤
177 │Top │ ctrl+shift+home (also ⌘+↖ │
178 │ │ on macOS) │
179 ├──────────────────────────┼────────────────────────────┤
180 │Bottom │ ctrl+shift+end (also ⌘+↘ │
181 │ │ on macOS) │
182 ├──────────────────────────┼────────────────────────────┤
183 │Previous shell prompt │ ctrl+shift+z (see Shell │
184 │ │ integration) │
185 ├──────────────────────────┼────────────────────────────┤
186 │Next shell prompt │ ctrl+shift+x (see Shell │
187 │ │ integration) │
188 ├──────────────────────────┼────────────────────────────┤
189 │Browse scrollback in less │ ctrl+shift+h │
190 ├──────────────────────────┼────────────────────────────┤
191 │Browse last cmd output │ ctrl+shift+g (see Shell │
192 │ │ integration) │
193 └──────────────────────────┴────────────────────────────┘
194
195 Tabs
196 ┌──────────────────┬────────────────────────────┐
197 │Action │ Shortcut │
198 └──────────────────┴────────────────────────────┘
199
200
201
202 │New tab │ ctrl+shift+t (also ⌘+t on │
203 │ │ macOS) │
204 ├──────────────────┼────────────────────────────┤
205 │Close tab │ ctrl+shift+q (also ⌘+w on │
206 │ │ macOS) │
207 ├──────────────────┼────────────────────────────┤
208 │Next tab │ ctrl+shift+right (also ⌃+⇥ │
209 │ │ and ⇧+⌘+] on macOS) │
210 ├──────────────────┼────────────────────────────┤
211 │Previous tab │ ctrl+shift+left (also │
212 │ │ ⇧+⌃+⇥ and ⇧+⌘+[ on macOS) │
213 ├──────────────────┼────────────────────────────┤
214 │Next layout │ ctrl+shift+l │
215 ├──────────────────┼────────────────────────────┤
216 │Move tab forward │ ctrl+shift+. │
217 ├──────────────────┼────────────────────────────┤
218 │Move tab backward │ ctrl+shift+, │
219 ├──────────────────┼────────────────────────────┤
220 │Set tab title │ ctrl+shift+alt+t (also │
221 │ │ ⇧+⌘+i on macOS) │
222 └──────────────────┴────────────────────────────┘
223
224 Windows
225 ┌──────────────────────┬────────────────────────────┐
226 │Action │ Shortcut │
227 ├──────────────────────┼────────────────────────────┤
228 │New window │ ctrl+shift+enter (also ⌘+↩ │
229 │ │ on macOS) │
230 ├──────────────────────┼────────────────────────────┤
231 │New OS window │ ctrl+shift+n (also ⌘+n on │
232 │ │ macOS) │
233 ├──────────────────────┼────────────────────────────┤
234 │Close window │ ctrl+shift+w (also ⇧+⌘+d │
235 │ │ on macOS) │
236 ├──────────────────────┼────────────────────────────┤
237 │Next window │ ctrl+shift+] │
238 ├──────────────────────┼────────────────────────────┤
239 │Previous window │ ctrl+shift+[ │
240 ├──────────────────────┼────────────────────────────┤
241 │Move window forward │ ctrl+shift+f │
242 ├──────────────────────┼────────────────────────────┤
243 │Move window backward │ ctrl+shift+b │
244 ├──────────────────────┼────────────────────────────┤
245 │Move window to top │ ctrl+shift+` │
246 ├──────────────────────┼────────────────────────────┤
247 │Visually focus window │ ctrl+shift+f7 │
248 ├──────────────────────┼────────────────────────────┤
249 │Visually swap window │ ctrl+shift+f8 │
250 ├──────────────────────┼────────────────────────────┤
251 │Focus specific window │ ctrl+shift+1, ctrl+shift+2 │
252 │ │ ... ctrl+shift+0 (also │
253 │ │ ⌘+1, ⌘+2 ... ⌘+9 on macOS) │
254 │ │ (clockwise from the │
255 │ │ top-left) │
256 └──────────────────────┴────────────────────────────┘
257
258 Additionally, you can define shortcuts in kitty.conf to focus neighbor‐
259 ing windows and move windows around (similar to window movement in
260 vim):
261
262 map ctrl+left neighboring_window left
263 map shift+left move_window right
264 map ctrl+down neighboring_window down
265 map shift+down move_window up
266 ...
267
268 You can also define a shortcut to switch to the previously active win‐
269 dow:
270
271 map ctrl+p nth_window -1
272
273 nth_window will focus the nth window for positive numbers (starting
274 from zero) and the previously active windows for negative numbers.
275
276 To switch to the nth OS window, you can define nth_os_window. Only pos‐
277 itive numbers are accepted, starting from one.
278
279 You can define shortcuts to detach the current window and move it to
280 another tab or another OS window:
281
282 # moves the window into a new OS window
283 map ctrl+f2 detach_window
284 # moves the window into a new tab
285 map ctrl+f3 detach_window new-tab
286 # moves the window into the previously active tab
287 map ctrl+f3 detach_window tab-prev
288 # moves the window into the tab at the left of the active tab
289 map ctrl+f3 detach_window tab-left
290 # asks which tab to move the window into
291 map ctrl+f4 detach_window ask
292
293 Similarly, you can detach the current tab, with:
294
295 # moves the tab into a new OS window
296 map ctrl+f2 detach_tab
297 # asks which OS Window to move the tab into
298 map ctrl+f4 detach_tab ask
299
300 Finally, you can define a shortcut to close all windows in a tab other
301 than the currently active window:
302
303 map f9 close_other_windows_in_tab
304
306 The full list of actions that can be mapped to key presses is available
307 here.
308
309 ┌───────────────────────────┬────────────────────────────┐
310 │Action │ Shortcut │
311 ├───────────────────────────┼────────────────────────────┤
312 │Show this help │ ctrl+shift+f1 │
313 ├───────────────────────────┼────────────────────────────┤
314 │Copy to clipboard │ ctrl+shift+c (also ⌘+c on │
315 │ │ macOS) │
316 ├───────────────────────────┼────────────────────────────┤
317 │Paste from clipboard │ ctrl+shift+v (also ⌘+v on │
318 │ │ macOS) │
319 ├───────────────────────────┼────────────────────────────┤
320 │Paste from selection │ ctrl+shift+s │
321 ├───────────────────────────┼────────────────────────────┤
322 │Pass selection to program │ ctrl+shift+o │
323 ├───────────────────────────┼────────────────────────────┤
324 │Increase font size │ ctrl+shift+equal (also ⌘++ │
325 │ │ on macOS) │
326 ├───────────────────────────┼────────────────────────────┤
327 │Decrease font size │ ctrl+shift+minus (also ⌘+- │
328 │ │ on macOS) │
329 ├───────────────────────────┼────────────────────────────┤
330 │Restore font size │ ctrl+shift+backspace (also │
331 │ │ ⌘+0 on macOS) │
332 └───────────────────────────┴────────────────────────────┘
333
334
335
336 │Toggle fullscreen │ ctrl+shift+f11 (also ⌃+⌘+f │
337 │ │ on macOS) │
338 ├───────────────────────────┼────────────────────────────┤
339 │Toggle maximized │ ctrl+shift+f10 │
340 ├───────────────────────────┼────────────────────────────┤
341 │Input Unicode character │ ctrl+shift+u (also │
342 │ │ ⌃+⌘+space on macOS) │
343 ├───────────────────────────┼────────────────────────────┤
344 │Open URL in web browser │ ctrl+shift+e │
345 ├───────────────────────────┼────────────────────────────┤
346 │Reset the terminal │ ctrl+shift+delete (also │
347 │ │ ⌥+⌘+r on macOS) │
348 ├───────────────────────────┼────────────────────────────┤
349 │Edit kitty.conf │ ctrl+shift+f2 (also ⌘+, on │
350 │ │ macOS) │
351 ├───────────────────────────┼────────────────────────────┤
352 │Reload kitty.conf │ ctrl+shift+f5 (also ⌃+⌘+, │
353 │ │ on macOS) │
354 ├───────────────────────────┼────────────────────────────┤
355 │Debug kitty.conf │ ctrl+shift+f6 (also ⌥+⌘+, │
356 │ │ on macOS) │
357 ├───────────────────────────┼────────────────────────────┤
358 │Open a kitty shell │ ctrl+shift+escape │
359 ├───────────────────────────┼────────────────────────────┤
360 │Increase background opac‐ │ ctrl+shift+a>m │
361 │ity │ │
362 ├───────────────────────────┼────────────────────────────┤
363 │Decrease background opac‐ │ ctrl+shift+a>l │
364 │ity │ │
365 ├───────────────────────────┼────────────────────────────┤
366 │Full background opacity │ ctrl+shift+a>1 │
367 ├───────────────────────────┼────────────────────────────┤
368 │Reset background opacity │ ctrl+shift+a>d │
369 └───────────────────────────┴────────────────────────────┘
370
372 See kitty.conf(5)
373
375 Kovid Goyal
376
378 2022, Kovid Goyal
379
380
381
382
3830.26.5 Nov 07, 2022 KITTY(1)