1KITTY(1)                             kitty                            KITTY(1)
2
3
4

NAME

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

OPTIONS

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 kitty @ using the kitty @ --to option to specify  this  ad‐
109              dress. Note that if you run kitty @ within a kitty window, there
110              is no need to specify the kitty @ --to option as it  will  auto‐
111              matically  read from the environment. Note that this will be ig‐
112              nored unless allow_remote_control is set to either: yes,  socket
113              or socket-only.  For UNIX sockets, this can also be specified in
114              kitty.conf.
115
116       --start-as <START_AS>
117              Control how the initial kitty window is created.  Default:  nor‐
118              mal Choices: fullscreen, maximized, minimized, normal
119
120   Debugging options
121       --version, -v
122              The current kitty version.
123
124       --dump-commands
125              Output commands received from child process to STDOUT.
126
127       --replay-commands <REPLAY_COMMANDS>
128              Replay  previously  dumped  commands. Specify the path to a dump
129              file previously created by kitty --dump-commands. You can open a
130              new kitty window to replay the commands with:
131
132                 kitty sh -c "kitty --replay-commands /path/to/dump/file; read"
133
134       --dump-bytes <DUMP_BYTES>
135              Path  to  file in which to store the raw bytes received from the
136              child process.
137
138       --debug-gl, --debug-rendering
139              Debug rendering commands. This will cause all  OpenGL  calls  to
140              check  for errors instead of ignoring them. Also prints out mis‐
141              cellaneous debug information. Useful  when  debugging  rendering
142              problems.
143
144       --debug-input, --debug-keyboard
145              Print out key and mouse events as they are received.
146
147       --debug-font-fallback
148              Print  out information about the selection of fallback fonts for
149              characters not present in the main font.
150
151       --watcher <WATCHER>
152              This option is deprecated in favor  of  the  watcher  option  in
153              kitty.conf and should not be used.
154

TABS AND WINDOWS

156       kitty  is  capable of running multiple programs organized into tabs and
157       windows.  The top level of organization is the OS window. Each OS  win‐
158       dow  consists  of  one  or  more tabs. Each tab consists of one or more
159       kitty windows. The kitty windows can be arranged in multiple  different
160       layouts,  like  windows  are  organized in a tiling window manager. The
161       keyboard controls (which are all customizable)  for  tabs  and  windows
162       are:
163
164   Scrolling
165              ┌──────────────────────────┬────────────────────────────┐
166              │Action                    │ Shortcut                   │
167              ├──────────────────────────┼────────────────────────────┤
168              │Line up                   │ ctrl+shift+up  (also ⌥+⌘+⇞ 
169              │                          │ and ⌘+↑ on macOS)          │
170              ├──────────────────────────┼────────────────────────────┤
171              │Line down                 │ ctrl+shift+down      (also │
172              │                          │ ⌥+⌘+⇟ and ⌘+↓ on macOS)    │
173              ├──────────────────────────┼────────────────────────────┤
174              │Page up                   │ ctrl+shift+page_up   (also │
175              │                          │ ⌘+⇞ on macOS)              │
176              ├──────────────────────────┼────────────────────────────┤
177              │Page down                 │ ctrl+shift+page_down (also │
178              │                          │ ⌘+⇟ on macOS)              │
179              ├──────────────────────────┼────────────────────────────┤
180              │Top                       │ ctrl+shift+home  (also ⌘+↖ 
181              │                          │ on macOS)                  │
182              ├──────────────────────────┼────────────────────────────┤
183              │Bottom                    │ ctrl+shift+end  (also  ⌘+↘ 
184              │                          │ on macOS)                  │
185              ├──────────────────────────┼────────────────────────────┤
186              │Previous shell prompt     │ ctrl+shift+z   (see  Shell
187              │                          │ integration)               │
188              ├──────────────────────────┼────────────────────────────┤
189              │Next shell prompt         │ ctrl+shift+x  (see   Shell
190              │                          │ integration)               │
191              ├──────────────────────────┼────────────────────────────┤
192              │Browse scrollback in less │ ctrl+shift+h
193              ├──────────────────────────┼────────────────────────────┤
194              │Browse last cmd output    │ ctrl+shift+g   (see  Shell
195              │                          │ integration)               │
196              └──────────────────────────┴────────────────────────────┘
197
198       The scroll actions only take effect when the terminal is  in  the  main
199       screen.   When the alternate screen is active (for example when using a
200       full screen program like an editor) the key events are  instead  passed
201       to program running in the terminal.
202
203   Tabs
204                  ─────────────────────────────────────────────────
205                   Action              Shortcut
206                  ─────────────────────────────────────────────────
207                   New tab             ctrl+shift+t  (also ⌘+t on
208                                       macOS)
209                  ─────────────────────────────────────────────────
210                   Close tab           ctrl+shift+q (also ⌘+w  on
211                                       macOS)
212                  ─────────────────────────────────────────────────
213                   Next tab            ctrl+shift+right (also ⌃+⇥
214                                       and ⇧+⌘+] on macOS)
215                  ─────────────────────────────────────────────────
216                   Previous tab        ctrl+shift+left      (also
217                                       ⇧+⌃+⇥ and ⇧+⌘+[ on macOS)
218                  ─────────────────────────────────────────────────
219                   Next layout         ctrl+shift+l
220                  ─────────────────────────────────────────────────
221                   Move tab forward    ctrl+shift+.
222                  ─────────────────────────────────────────────────
223                   Move tab backward   ctrl+shift+,
224                  ─────────────────────────────────────────────────
225                   Set tab title       ctrl+shift+alt+t     (also
226                                       ⇧+⌘+i on macOS)
227                  ┌──────────────────┬────────────────────────────┐
228                  │                  │                            │
229   Windows        │                  │                            │
230                ┌─┼──────────────────┼─┬──────────────────────────┼─┐
231                │A│ction              │ │ Shortcut                 │ │
232                ├─┼──────────────────┼─┼──────────────────────────┼─┤
233                │N│ew window          │ │ ctrl+shift+enter (also ⌘+│
234                │ │                  │ │ on macOS)                │ │
235                ├─┼──────────────────┼─┼──────────────────────────┼─┤
236                │N│ew OS window       │ │ ctrl+shift+n  (also ⌘+n o│n │
237                │ │                  │ │ macOS)                   │ │
238                ├─┼──────────────────┼─┼──────────────────────────┼─┤
239                │C│lose window        │ │ ctrl+shift+w  (also  ⇧+⌘+│d 
240                │ │                  │ │ on macOS)                │ │
241                ├─┼──────────────────┼─┼──────────────────────────┼─┤
242                │R│esize window       │ │ ctrl+shift+r  (also ⌘+r o│n │
243                │ │                  │ │ macOS)                   │ │
244                ├─┼──────────────────┼─┼──────────────────────────┼─┤
245                │N│ext window         │ │ ctrl+shift+]             │ │
246                ├─┼──────────────────┼─┼──────────────────────────┼─┤
247                │P│revious window     │ │ ctrl+shift+[             │ │
248                ├─┼──────────────────┼─┼──────────────────────────┼─┤
249                │M│ove window forward │ │ ctrl+shift+f             │ │
250                ├─┼──────────────────┼─┼──────────────────────────┼─┤
251                │M│ove window backward│ │ ctrl+shift+b             │ │
252                ├─┼──────────────────┼─┼──────────────────────────┼─┤
253                │M│ove window to top  │ │ ctrl+shift+`             │ │
254                ├─┼──────────────────┼─┼──────────────────────────┼─┤
255                │V│isually focus windo│w │ ctrl+shift+f7            │ │
256                ├─┼──────────────────┼─┼──────────────────────────┼─┤
257                │V│isually swap window│ │ ctrl+shift+f8            │ │
258                ├─┼──────────────────┼─┼──────────────────────────┼─┤
259                │F│ocus specific windo│w │ ctrl+shift+1, ctrl+shift+│2
260                │ │                  │ │ ...   ctrl+shift+0   (als│o │
261                │ │                  │ │ ⌘+1, ⌘+2 ... ⌘+9 on macOS│) │
262                │ │                  │ │ (clockwise     from    th│e │
263                │ │                  │ │ top-left)                │ │
264                └─┼──────────────────┼─┴──────────────────────────┼─┘
265                  │                  │                            │
266       Additionall│y, you can define s│hortcuts in kitty.conf to foc│us neighbor‐
267       ing  window│s  and  move  windo│ws  around (similar to window│movement in
268       vim):      │                  │                            │
269                  │                  │                            │
270          map ctrl│+left neighboring_w│indow left                   │
271          map shif│t+left move_window │right                        │
272          map ctrl│+down neighboring_w│indow down                   │
273          map shif│t+down move_window │up                           │
274          ...
275
276       You can also define a shortcut to switch to the previously active  win‐
277       dow:
278
279          map ctrl+p nth_window -1
280
281       nth_window  will  focus  the  nth window for positive numbers (starting
282       from zero) and the previously active windows for negative numbers.
283
284       To switch to the nth OS window, you can define nth_os_window. Only pos‐
285       itive numbers are accepted, starting from one.
286
287       You  can  define  shortcuts to detach the current window and move it to
288       another tab or another OS window:
289
290          # moves the window into a new OS window
291          map ctrl+f2 detach_window
292          # moves the window into a new tab
293          map ctrl+f3 detach_window new-tab
294          # moves the window into the previously active tab
295          map ctrl+f3 detach_window tab-prev
296          # moves the window into the tab at the left of the active tab
297          map ctrl+f3 detach_window tab-left
298          # asks which tab to move the window into
299          map ctrl+f4 detach_window ask
300
301       Similarly, you can detach the current tab, with:
302
303          # moves the tab into a new OS window
304          map ctrl+f2 detach_tab
305          # asks which OS Window to move the tab into
306          map ctrl+f4 detach_tab ask
307
308       Finally, you can define a shortcut to close all windows in a tab  other
309       than the currently active window:
310
311          map f9 close_other_windows_in_tab
312

OTHER KEYBOARD SHORTCUTS

314       The full list of actions that can be mapped to key presses is available
315       here.
316
317              ┌───────────────────────────┬────────────────────────────┐
318              │Action                     │ Shortcut                   │
319              ├───────────────────────────┼────────────────────────────┤
320              │Show this help             │ ctrl+shift+f1
321              ├───────────────────────────┼────────────────────────────┤
322              │Copy to clipboard          │ ctrl+shift+c (also ⌘+c  on │
323              │                           │ macOS)                     │
324              ├───────────────────────────┼────────────────────────────┤
325              │Paste from clipboard       │ ctrl+shift+v  (also ⌘+v on │
326              │                           │ macOS)                     │
327              ├───────────────────────────┼────────────────────────────┤
328              │Paste from selection       │ ctrl+shift+s
329              ├───────────────────────────┼────────────────────────────┤
330              │Pass selection to program  │ ctrl+shift+o
331              ├───────────────────────────┼────────────────────────────┤
332              │Increase font size         │ ctrl+shift+equal (also ⌘++ 
333              │                           │ on macOS)                  │
334              ├───────────────────────────┼────────────────────────────┤
335              │Decrease font size         │ ctrl+shift+minus (also ⌘+- 
336              │                           │ on macOS)                  │
337              ├───────────────────────────┼────────────────────────────┤
338              │Restore font size          │ ctrl+shift+backspace (also │
339              │                           │ ⌘+0 on macOS)              │
340              └───────────────────────────┴────────────────────────────┘
341
342
343
344              │Toggle fullscreen          │ ctrl+shift+f11 (also ⌃+⌘+f 
345              │                           │ on macOS)                  │
346              ├───────────────────────────┼────────────────────────────┤
347              │Toggle maximized           │ ctrl+shift+f10
348              ├───────────────────────────┼────────────────────────────┤
349              │Input Unicode character    │ ctrl+shift+u         (also │
350              │                           │ ⌃+⌘+space on macOS)        │
351              ├───────────────────────────┼────────────────────────────┤
352              │Open URL in web browser    │ ctrl+shift+e
353              ├───────────────────────────┼────────────────────────────┤
354              │Reset the terminal         │ ctrl+shift+delete    (also │
355              │                           │ ⌥+⌘+r on macOS)            │
356              ├───────────────────────────┼────────────────────────────┤
357              │Edit kitty.conf            ctrl+shift+f2 (also ⌘+, on │
358              │                           │ macOS)                     │
359              ├───────────────────────────┼────────────────────────────┤
360              │Reload kitty.conf          ctrl+shift+f5  (also ⌃+⌘+, 
361              │                           │ on macOS)                  │
362              ├───────────────────────────┼────────────────────────────┤
363              │Debug kitty.conf           ctrl+shift+f6 (also  ⌥+⌘+, 
364              │                           │ on macOS)                  │
365              ├───────────────────────────┼────────────────────────────┤
366              │Open a kitty shell         │ ctrl+shift+escape
367              ├───────────────────────────┼────────────────────────────┤
368              │Increase  background opac‐ │ ctrl+shift+a>m
369              │ity                        │                            │
370              ├───────────────────────────┼────────────────────────────┤
371              │Decrease background  opac‐ │ ctrl+shift+a>l
372              │ity                        │                            │
373              ├───────────────────────────┼────────────────────────────┤
374              │Full background opacity    │ ctrl+shift+a>1
375              ├───────────────────────────┼────────────────────────────┤
376              │Reset background opacity   │ ctrl+shift+a>d
377              └───────────────────────────┴────────────────────────────┘
378

SEE ALSO

380       See kitty.conf(5)
381

AUTHOR

383       Kovid Goyal
384
386       2023, Kovid Goyal
387
388
389
390
3910.29.2                           Jul 27, 2023                         KITTY(1)
Impressum