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