1KITTY.CONF(5) kitty KITTY.CONF(5)
2
3
4
6 kitty.conf - kitty terminal emulator configuration file
7
9 kitty is highly customizable, everything from keyboard shortcuts, to
10 rendering frames-per-second. See below for an overview of all cus‐
11 tomization possibilities.
12
13 You can open the config file within kitty by pressing ctrl+shift+f2
14 (⌘+, on macOS). A kitty.conf with commented default configurations and
15 descriptions will be created if the file does not exist. You can
16 reload the config file within kitty by pressing ctrl+shift+f5 (⌃+⌘+, on
17 macOS) or sending kitty the SIGUSR1 signal. You can also display the
18 current configuration by pressing ctrl+shift+f6 (⌥+⌘+, on macOS).
19
20 kitty looks for a config file in the OS config directories (usually
21 ~/.config/kitty/kitty.conf) but you can pass a specific path via the
22 kitty --config option or use the KITTY_CONFIG_DIRECTORY environment
23 variable. See kitty --config for full details.
24
25 Comments can be added to the config file as lines starting with the #
26 character. This works only if the # character is the first character in
27 the line.
28
29 Lines can be split by starting the next line with the \ character. All
30 leading whitespace and the \ character are removed.
31
32 You can include secondary config files via the include directive. If
33 you use a relative path for include, it is resolved with respect to the
34 location of the current config file. Note that environment variables
35 are expanded, so ${USER}.conf becomes name.conf if USER=name. A special
36 environment variable KITTY_OS is available, to detect the operating
37 system. It is linux, macos or bsd. Also, you can use globinclude to
38 include files matching a shell glob pattern and envinclude to include
39 configuration from environment variables. For example:
40
41 include other.conf
42 # Include *.conf files from all subdirs of kitty.d inside the kitty config dir
43 globinclude kitty.d/**/*.conf
44 # Include the *contents* of all env vars starting with KITTY_CONF_
45 envinclude KITTY_CONF_*
46
47 NOTE:
48 Syntax highlighting for kitty.conf in vim is available via
49 vim-kitty.
50
52 kitty has very powerful font management. You can configure individual
53 font faces and even specify special fonts for particular characters.
54
55 font_family, bold_font, italic_font, bold_italic_font
56
57 font_family monospace
58 bold_font auto
59 italic_font auto
60 bold_italic_font auto
61
62 You can specify different fonts for the bold/italic/bold-italic vari‐
63 ants. To get a full list of supported fonts use the kitty +list-fonts
64 command. By default they are derived automatically, by the OSes font
65 system. When bold_font or bold_italic_font is set to auto on macOS, the
66 priority of bold fonts is semi-bold, bold, heavy. Setting them manually
67 is useful for font families that have many weight variants like Book,
68 Medium, Thick, etc. For example:
69
70 font_family Operator Mono Book
71 bold_font Operator Mono Medium
72 italic_font Operator Mono Book Italic
73 bold_italic_font Operator Mono Medium Italic
74
75 font_size
76
77 font_size 11.0
78
79 Font size (in pts)
80
81 force_ltr
82
83 force_ltr no
84
85 kitty does not support BIDI (bidirectional text), however, for RTL
86 scripts, words are automatically displayed in RTL. That is to say, in
87 an RTL script, the words "HELLO WORLD" display in kitty as "WORLD
88 HELLO", and if you try to select a substring of an RTL-shaped string,
89 you will get the character that would be there had the string been LTR.
90 For example, assuming the Hebrew word ירושלים, selecting the character
91 that on the screen appears to be ם actually writes into the selection
92 buffer the character י. kitty's default behavior is useful in conjunc‐
93 tion with a filter to reverse the word order, however, if you wish to
94 manipulate RTL glyphs, it can be very challenging to work with, so this
95 option is provided to turn it off. Furthermore, this option can be used
96 with the command line program GNU FriBidi to get BIDI support, because
97 it will force kitty to always treat the text as LTR, which FriBidi ex‐
98 pects for terminals.
99
100 symbol_map
101
102 Has no default values. Example values are shown below:
103
104 symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols
105
106 Map the specified Unicode codepoints to a particular font. Useful if
107 you need special rendering for some symbols, such as for Powerline.
108 Avoids the need for patched fonts. Each Unicode code point is specified
109 in the form U+<code point in hexadecimal>. You can specify multiple
110 code points, separated by commas and ranges separated by hyphens. This
111 option can be specified multiple times. The syntax is:
112
113 symbol_map codepoints Font Family Name
114
115 narrow_symbols
116
117 Has no default values. Example values are shown below:
118
119 narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1
120
121 Usually, for Private Use Unicode characters and some symbol/dingbat
122 characters, if the character is followed by one or more spaces, kitty
123 will use those extra cells to render the character larger, if the char‐
124 acter in the font has a wide aspect ratio. Using this option you can
125 force kitty to restrict the specified code points to render in the
126 specified number of cells (defaulting to one cell). This option can be
127 specified multiple times. The syntax is:
128
129 narrow_symbols codepoints [optionally the number of cells]
130
131 disable_ligatures
132
133 disable_ligatures never
134
135 Choose how you want to handle multi-character ligatures. The default is
136 to always render them. You can tell kitty to not render them when the
137 cursor is over them by using cursor to make editing easier, or have
138 kitty never render them at all by using always, if you don't like them.
139 The ligature strategy can be set per-window either using the kitty re‐
140 mote control facility or by defining shortcuts for it in kitty.conf,
141 for example:
142
143 map alt+1 disable_ligatures_in active always
144 map alt+2 disable_ligatures_in all never
145 map alt+3 disable_ligatures_in tab cursor
146
147 Note that this refers to programming ligatures, typically implemented
148 using the calt OpenType feature. For disabling general ligatures, use
149 the font_features option.
150
151 font_features
152
153 Has no default values. Example values are shown below:
154
155 font_features none
156
157 Choose exactly which OpenType features to enable or disable. This is
158 useful as some fonts might have features worthwhile in a terminal. For
159 example, Fira Code includes a discretionary feature, zero, which in
160 that font changes the appearance of the zero (0), to make it more eas‐
161 ily distinguishable from Ø. Fira Code also includes other discretionary
162 features known as Stylistic Sets which have the tags ss01 through ss20.
163
164 For the exact syntax to use for individual features, see the HarfBuzz
165 documentation.
166
167 Note that this code is indexed by PostScript name, and not the font
168 family. This allows you to define very precise feature settings; e.g.
169 you can disable a feature in the italic font but not in the regular
170 font.
171
172 On Linux, font features are first read from the FontConfig database and
173 then this option is applied, so they can be configured in a single,
174 central place.
175
176 To get the PostScript name for a font, use kitty +list-fonts --psnames:
177
178 $ kitty +list-fonts --psnames | grep Fira
179 Fira Code
180 Fira Code Bold (FiraCode-Bold)
181 Fira Code Light (FiraCode-Light)
182 Fira Code Medium (FiraCode-Medium)
183 Fira Code Regular (FiraCode-Regular)
184 Fira Code Retina (FiraCode-Retina)
185
186 The part in brackets is the PostScript name.
187
188 Enable alternate zero and oldstyle numerals:
189
190 font_features FiraCode-Retina +zero +onum
191
192 Enable only alternate zero in the bold font:
193
194 font_features FiraCode-Bold +zero
195
196 Disable the normal ligatures, but keep the calt feature which (in this
197 font) breaks up monotony:
198
199 font_features TT2020StyleB-Regular -liga +calt
200
201 In conjunction with force_ltr, you may want to disable Arabic shaping
202 entirely, and only look at their isolated forms if they show up in a
203 document. You can do this with e.g.:
204
205 font_features UnifontMedium +isol -medi -fina -init
206
207 modify_font
208
209 Modify font characteristics such as the position or thickness of the
210 underline and strikethrough. The modifications can have the suffix px
211 for pixels or % for percentage of original value. No suffix means use
212 pts. For example:
213
214 modify_font underline_position -2
215 modify_font underline_thickness 150%
216 modify_font strikethrough_position 2px
217
218 Additionally, you can modify the size of the cell in which each font
219 glyph is rendered and the baseline at which the glyph is placed in the
220 cell. For example:
221
222 modify_font cell_width 80%
223 modify_font cell_height -2px
224 modify_font baseline 3
225
226 Note that modifying the baseline will automatically adjust the under‐
227 line and strikethrough positions by the same amount. Increasing the
228 baseline raises glyphs inside the cell and decreasing it lowers them.
229 Decreasing the cell size might cause rendering artifacts, so use with
230 care.
231
232 box_drawing_scale
233
234 box_drawing_scale 0.001, 1, 1.5, 2
235
236 The sizes of the lines used for the box drawing Unicode characters.
237 These values are in pts. They will be scaled by the monitor DPI to ar‐
238 rive at a pixel value. There must be four values corresponding to
239 thin, normal, thick, and very thick lines.
240
241 undercurl_style
242
243 undercurl_style thin-sparse
244
245 The style with which undercurls are rendered. This option takes the
246 form (thin|thick)-(sparse|dense). Thin and thick control the thickness
247 of the undercurl. Sparse and dense control how often the curl oscil‐
248 lates. With sparse the curl will peak once per character, with dense
249 twice.
250
251 text_composition_strategy
252
253 text_composition_strategy platform
254
255 Control how kitty composites text glyphs onto the background color. The
256 default value of platform tries for text rendering as close to "native"
257 for the platform kitty is running on as possible.
258
259 A value of legacy uses the old (pre kitty 0.28) strategy for how glyphs
260 are composited. This will make dark text on light backgrounds look
261 thicker and light text on dark backgrounds thinner. It might also make
262 some text appear like the strokes are uneven.
263
264 You can fine tune the actual contrast curve used for glyph composition
265 by specifying up to two space-separated numbers for this setting.
266
267 The first number is the gamma adjustment, which controls the thickness
268 of dark text on light backgrounds. Increasing the value will make text
269 appear thicker. The default value for this is 1.0 on Linux and 1.7 on
270 macOS. Valid values are 0.01 and above. The result is scaled based on
271 the luminance difference between the background and the foreground.
272 Dark text on light backgrounds receives the full impact of the curve
273 while light text on dark backgrounds is affected very little.
274
275 The second number is an additional multiplicative contrast. It is per‐
276 centage ranging from 0 to 100. The default value is 0 on Linux and 30
277 on macOS.
278
279 If you wish to achieve similar looking thickness in light and dark
280 themes, a good way to experiment is start by setting the value to 1.0 0
281 and use a dark theme. Then adjust the second parameter until it looks
282 good. Then switch to a light theme and adjust the first parameter until
283 the perceived thickness matches the dark theme.
284
285 text_fg_override_threshold
286
287 text_fg_override_threshold 0
288
289 The minimum accepted difference in luminance between the foreground and
290 background color, below which kitty will override the foreground color.
291 It is percentage ranging from 0 to 100. If the difference in luminance
292 of the foreground and background is below this threshold, the fore‐
293 ground color will be set to white if the background is dark or black if
294 the background is light. The default value is 0, which means no over‐
295 riding is performed. Useful when working with applications that use
296 colors that do not contrast well with your preferred color scheme.
297
298 WARNING: Some programs use characters (such as block characters) for
299 graphics display and may expect to be able to set the foreground and
300 background to the same color (or similar colors). If you see unex‐
301 pected stripes, dots, lines, incorrect color, no color where you expect
302 color, or any kind of graphic display problem try setting
303 text_fg_override_threshold to 0 to see if this is the cause of the
304 problem.
305
307 cursor
308
309 cursor #cccccc
310
311 Default cursor color. If set to the special value none the cursor will
312 be rendered with a "reverse video" effect. It's color will be the color
313 of the text in the cell it is over and the text will be rendered with
314 the background color of the cell. Note that if the program running in
315 the terminal sets a cursor color, this takes precedence. Also, the cur‐
316 sor colors are modified if the cell background and foreground colors
317 have very low contrast.
318
319 cursor_text_color
320
321 cursor_text_color #111111
322
323 The color of text under the cursor. If you want it rendered with the
324 background color of the cell underneath instead, use the special key‐
325 word: background. Note that if cursor is set to none then this option
326 is ignored.
327
328 cursor_shape
329
330 cursor_shape block
331
332 The cursor shape can be one of block, beam, underline. Note that when
333 reloading the config this will be changed only if the cursor shape has
334 not been set by the program running in the terminal. This sets the de‐
335 fault cursor shape, applications running in the terminal can override
336 it. In particular, shell integration in kitty sets the cursor shape to
337 beam at shell prompts. You can avoid this by setting shell_integration
338 to no-cursor.
339
340 cursor_beam_thickness
341
342 cursor_beam_thickness 1.5
343
344 The thickness of the beam cursor (in pts).
345
346 cursor_underline_thickness
347
348 cursor_underline_thickness 2.0
349
350 The thickness of the underline cursor (in pts).
351
352 cursor_blink_interval
353
354 cursor_blink_interval -1
355
356 The interval to blink the cursor (in seconds). Set to zero to disable
357 blinking. Negative values mean use system default. Note that the mini‐
358 mum interval will be limited to repaint_delay.
359
360 cursor_stop_blinking_after
361
362 cursor_stop_blinking_after 15.0
363
364 Stop blinking cursor after the specified number of seconds of keyboard
365 inactivity. Set to zero to never stop blinking.
366
368 scrollback_lines
369
370 scrollback_lines 2000
371
372 Number of lines of history to keep in memory for scrolling back. Memory
373 is allocated on demand. Negative numbers are (effectively) infinite
374 scrollback. Note that using very large scrollback is not recommended
375 as it can slow down performance of the terminal and also use large
376 amounts of RAM. Instead, consider using scrollback_pager_history_size.
377 Note that on config reload if this is changed it will only affect newly
378 created windows, not existing ones.
379
380 scrollback_pager
381
382 scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
383
384 Program with which to view scrollback in a new window. The scrollback
385 buffer is passed as STDIN to this program. If you change it, make sure
386 the program you use can handle ANSI escape sequences for colors and
387 text formatting. INPUT_LINE_NUMBER in the command line above will be
388 replaced by an integer representing which line should be at the top of
389 the screen. Similarly CURSOR_LINE and CURSOR_COLUMN will be replaced by
390 the current cursor position or set to 0 if there is no cursor, for ex‐
391 ample, when showing the last command output.
392
393 scrollback_pager_history_size
394
395 scrollback_pager_history_size 0
396
397 Separate scrollback history size (in MB), used only for browsing the
398 scrollback buffer with pager. This separate buffer is not available for
399 interactive scrolling but will be piped to the pager program when view‐
400 ing scrollback buffer in a separate window. The current implementation
401 stores the data in UTF-8, so approximately 10000 lines per megabyte at
402 100 chars per line, for pure ASCII, unformatted text. A value of zero
403 or less disables this feature. The maximum allowed size is 4GB. Note
404 that on config reload if this is changed it will only affect newly cre‐
405 ated windows, not existing ones.
406
407 scrollback_fill_enlarged_window
408
409 scrollback_fill_enlarged_window no
410
411 Fill new space with lines from the scrollback buffer after enlarging a
412 window.
413
414 wheel_scroll_multiplier
415
416 wheel_scroll_multiplier 5.0
417
418 Multiplier for the number of lines scrolled by the mouse wheel. Note
419 that this is only used for low precision scrolling devices, not for
420 high precision scrolling devices on platforms such as macOS and Way‐
421 land. Use negative numbers to change scroll direction. See also
422 wheel_scroll_min_lines.
423
424 wheel_scroll_min_lines
425
426 wheel_scroll_min_lines 1
427
428 The minimum number of lines scrolled by the mouse wheel. The scroll
429 multiplier only takes effect after it reaches this number. Note that
430 this is only used for low precision scrolling devices like wheel mice
431 that scroll by very small amounts when using the wheel. With a negative
432 number, the minimum number of lines will always be added.
433
434 touch_scroll_multiplier
435
436 touch_scroll_multiplier 1.0
437
438 Multiplier for the number of lines scrolled by a touchpad. Note that
439 this is only used for high precision scrolling devices on platforms
440 such as macOS and Wayland. Use negative numbers to change scroll direc‐
441 tion.
442
444 mouse_hide_wait
445
446 mouse_hide_wait 3.0
447
448 Hide mouse cursor after the specified number of seconds of the mouse
449 not being used. Set to zero to disable mouse cursor hiding. Set to a
450 negative value to hide the mouse cursor immediately when typing text.
451 Disabled by default on macOS as getting it to work robustly with the
452 ever-changing sea of bugs that is Cocoa is too much effort.
453
454 url_color, url_style
455
456 url_color #0087bd
457 url_style curly
458
459 The color and style for highlighting URLs on mouse-over. url_style can
460 be one of: none, straight, double, curly, dotted, dashed.
461
462 open_url_with
463
464 open_url_with default
465
466 The program to open clicked URLs. The special value default with first
467 look for any URL handlers defined via the Scripting the mouse click fa‐
468 cility and if non are found, it will use the Operating System's default
469 URL handler (open on macOS and xdg-open on Linux).
470
471 url_prefixes
472
473 url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
474
475 The set of URL prefixes to look for when detecting a URL under the
476 mouse cursor.
477
478 detect_urls
479
480 detect_urls yes
481
482 Detect URLs under the mouse. Detected URLs are highlighted with an un‐
483 derline and the mouse cursor becomes a hand over them. Even if this op‐
484 tion is disabled, URLs are still clickable. See also the
485 underline_hyperlinks option to control how hyperlinks (as opposed to
486 plain text URLs) are displayed.
487
488 url_excluded_characters
489
490 Additional characters to be disallowed from URLs, when detecting URLs
491 under the mouse cursor. By default, all characters that are legal in
492 URLs are allowed. Additionally, newlines are allowed (but stripped).
493 This is to accommodate programs such as mutt that add hard line breaks
494 even for continued lines. \n can be added to this option to disable
495 this behavior. Special characters can be specified using backslash es‐
496 capes, to specify a backslash use a double backslash.
497
498 show_hyperlink_targets
499
500 show_hyperlink_targets no
501
502 When the mouse hovers over a terminal hyperlink, show the actual URL
503 that will be activated when the hyperlink is clicked.
504
505 underline_hyperlinks
506
507 underline_hyperlinks hover
508
509 Control how hyperlinks are underlined. They can either be underlined on
510 mouse hover, always (i.e. permanently underlined) or never which means
511 that kitty will not apply any underline styling to hyperlinks. Uses
512 the url_style and url_color settings for the underline style. Note that
513 reloading the config and changing this value to/from always will only
514 affect text subsequently received by kitty.
515
516 copy_on_select
517
518 copy_on_select no
519
520 Copy to clipboard or a private buffer on select. With this set to clip‐
521 board, selecting text with the mouse will cause the text to be copied
522 to clipboard. Useful on platforms such as macOS that do not have the
523 concept of primary selection. You can instead specify a name such as a1
524 to copy to a private kitty buffer. Map a shortcut with the
525 paste_from_buffer action to paste from this private buffer. For exam‐
526 ple:
527
528 copy_on_select a1
529 map shift+cmd+v paste_from_buffer a1
530
531 Note that copying to the clipboard is a security risk, as all programs,
532 including websites open in your browser can read the contents of the
533 system clipboard.
534
535 paste_actions
536
537 paste_actions quote-urls-at-prompt,confirm
538
539 A comma separated list of actions to take when pasting text into the
540 terminal. The supported paste actions are:
541
542 quote-urls-at-prompt:
543 If the text being pasted is a URL and the cursor is at a shell
544 prompt, automatically quote the URL (needs shell_integration).
545
546 replace-dangerous-control-codes
547 Replace dangerous control codes from pasted text, without con‐
548 firmation.
549
550 replace-newline
551 Replace the newline character from pasted text, without confir‐
552 mation.
553
554 confirm:
555 Confirm the paste if the text to be pasted contains any terminal
556 control codes as this can be dangerous, leading to code execu‐
557 tion if the shell/program running in the terminal does not prop‐
558 erly handle these.
559
560 confirm-if-large
561 Confirm the paste if it is very large (larger than 16KB) as
562 pasting large amounts of text into shells can be very slow.
563
564 filter:
565 Run the filter_paste() function from the file paste-actions.py
566 in the kitty config directory on the pasted text. The text re‐
567 turned by the function will be actually pasted.
568
569 strip_trailing_spaces
570
571 strip_trailing_spaces never
572
573 Remove spaces at the end of lines when copying to clipboard. A value of
574 smart will do it when using normal selections, but not rectangle selec‐
575 tions. A value of always will always do it.
576
577 select_by_word_characters
578
579 select_by_word_characters @-./_~?&=%+#
580
581 Characters considered part of a word when double clicking. In addition
582 to these characters any character that is marked as an alphanumeric
583 character in the Unicode database will be matched.
584
585 select_by_word_characters_forward
586
587 Characters considered part of a word when extending the selection for‐
588 ward on double clicking. In addition to these characters any character
589 that is marked as an alphanumeric character in the Unicode database
590 will be matched.
591
592 If empty (default) select_by_word_characters will be used for both di‐
593 rections.
594
595 click_interval
596
597 click_interval -1.0
598
599 The interval between successive clicks to detect double/triple clicks
600 (in seconds). Negative numbers will use the system default instead, if
601 available, or fallback to 0.5.
602
603 focus_follows_mouse
604
605 focus_follows_mouse no
606
607 Set the active window to the window under the mouse when moving the
608 mouse around. On macOS, this will also cause the OS Window under the
609 mouse to be focused automatically when the mouse enters it.
610
611 pointer_shape_when_grabbed
612
613 pointer_shape_when_grabbed arrow
614
615 The shape of the mouse pointer when the program running in the terminal
616 grabs the mouse.
617
618 default_pointer_shape
619
620 default_pointer_shape beam
621
622 The default shape of the mouse pointer.
623
624 pointer_shape_when_dragging
625
626 pointer_shape_when_dragging beam
627
628 The default shape of the mouse pointer when dragging across text.
629
630 Mouse actions
631 Mouse buttons can be mapped to perform arbitrary actions. The syntax
632 is:
633
634 mouse_map button-name event-type modes action
635
636 Where button-name is one of left, middle, right, b1 ... b8 with added
637 keyboard modifiers. For example: ctrl+shift+left refers to holding the
638 Ctrl+Shift keys while clicking with the left mouse button. The value b1
639 ... b8 can be used to refer to up to eight buttons on a mouse.
640
641 event-type is one of press, release, doublepress, triplepress, click,
642 doubleclick. modes indicates whether the action is performed when the
643 mouse is grabbed by the program running in the terminal, or not. The
644 values are grabbed or ungrabbed or a comma separated combination of
645 them. grabbed refers to when the program running in the terminal has
646 requested mouse events. Note that the click and double click events
647 have a delay of click_interval to disambiguate from double and triple
648 presses.
649
650 You can run kitty with the kitty --debug-input command line option to
651 see mouse events. See the builtin actions below to get a sense of what
652 is possible.
653
654 If you want to unmap an action, map it to no_op. For example, to dis‐
655 able opening of URLs with a plain click:
656
657 mouse_map left click ungrabbed no_op
658
659 See all the mappable actions including mouse actions here.
660
661 NOTE:
662 Once a selection is started, releasing the button that started it
663 will automatically end it and no release event will be dispatched.
664
665 clear_all_mouse_actions
666
667 clear_all_mouse_actions no
668
669 Remove all mouse action definitions up to this point. Useful, for in‐
670 stance, to remove the default mouse actions.
671
672 Click the link under the mouse or move the cursor
673
674 mouse_map left click ungrabbed mouse_handle_click selection link prompt
675
676 First check for a selection and if one exists do nothing. Then check
677 for a link under the mouse cursor and if one exists, click it. Finally
678 check if the click happened at the current shell prompt and if so, move
679 the cursor to the click location. Note that this requires shell inte‐
680 gration to work.
681
682 Click the link under the mouse or move the cursor even when grabbed
683
684 mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt
685
686 Same as above, except that the action is performed even when the mouse
687 is grabbed by the program running in the terminal.
688
689 Click the link under the mouse cursor
690
691 mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link
692
693 Variant with Ctrl+Shift is present because the simple click based ver‐
694 sion has an unavoidable delay of click_interval, to disambiguate clicks
695 from double clicks.
696
697 Discard press event for link click
698
699 mouse_map ctrl+shift+left press grabbed discard_event
700
701 Prevent this press event from being sent to the program that has
702 grabbed the mouse, as the corresponding release event is used to open a
703 URL.
704
705 Paste from the primary selection
706
707 mouse_map middle release ungrabbed paste_from_selection
708
709 Start selecting text
710
711 mouse_map left press ungrabbed mouse_selection normal
712
713 Start selecting text in a rectangle
714
715 mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle
716
717 Select a word
718
719 mouse_map left doublepress ungrabbed mouse_selection word
720
721 Select a line
722
723 mouse_map left triplepress ungrabbed mouse_selection line
724
725 Select line from point
726
727 mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point
728
729 Select from the clicked point to the end of the line. If you would like
730 to select the word at the point and then extend to the rest of the
731 line, change line_from_point to word_and_line_from_point.
732
733 Extend the current selection
734
735 mouse_map right press ungrabbed mouse_selection extend
736
737 If you want only the end of the selection to be moved instead of the
738 nearest boundary, use move-end instead of extend.
739
740 Paste from the primary selection even when grabbed
741
742 mouse_map shift+middle release ungrabbed,grabbed paste_selection
743 mouse_map shift+middle press grabbed discard_event
744
745 Start selecting text even when grabbed
746
747 mouse_map shift+left press ungrabbed,grabbed mouse_selection normal
748
749 Start selecting text in a rectangle even when grabbed
750
751 mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle
752
753 Select a word even when grabbed
754
755 mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word
756
757 Select a line even when grabbed
758
759 mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line
760
761 Select line from point even when grabbed
762
763 mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point
764
765 Select from the clicked point to the end of the line even when grabbed.
766 If you would like to select the word at the point and then extend to
767 the rest of the line, change line_from_point to
768 word_and_line_from_point.
769
770 Extend the current selection even when grabbed
771
772 mouse_map shift+right press ungrabbed,grabbed mouse_selection extend
773
774 Show clicked command output in pager
775
776 mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output
777
778 Requires shell integration to work.
779
781 repaint_delay
782
783 repaint_delay 10
784
785 Delay between screen updates (in milliseconds). Decreasing it, in‐
786 creases frames-per-second (FPS) at the cost of more CPU usage. The de‐
787 fault value yields ~100 FPS which is more than sufficient for most
788 uses. Note that to actually achieve 100 FPS, you have to either set
789 sync_to_monitor to no or use a monitor with a high refresh rate. Also,
790 to minimize latency when there is pending input to be processed, this
791 option is ignored.
792
793 input_delay
794
795 input_delay 3
796
797 Delay before input from the program running in the terminal is pro‐
798 cessed (in milliseconds). Note that decreasing it will increase respon‐
799 siveness, but also increase CPU usage and might cause flicker in full
800 screen programs that redraw the entire screen on each loop, because
801 kitty is so fast that partial screen updates will be drawn.
802
803 sync_to_monitor
804
805 sync_to_monitor yes
806
807 Sync screen updates to the refresh rate of the monitor. This prevents
808 screen tearing when scrolling. However, it limits the rendering speed
809 to the refresh rate of your monitor. With a very high speed mouse/high
810 keyboard repeat rate, you may notice some slight input latency. If so,
811 set this to no.
812
814 enable_audio_bell
815
816 enable_audio_bell yes
817
818 The audio bell. Useful to disable it in environments that require si‐
819 lence.
820
821 visual_bell_duration
822
823 visual_bell_duration 0.0
824
825 The visual bell duration (in seconds). Flash the screen when a bell oc‐
826 curs for the specified number of seconds. Set to zero to disable.
827
828 visual_bell_color
829
830 visual_bell_color none
831
832 The color used by visual bell. Set to none will fall back to selection
833 background color. If you feel that the visual bell is too bright, you
834 can set it to a darker color.
835
836 window_alert_on_bell
837
838 window_alert_on_bell yes
839
840 Request window attention on bell. Makes the dock icon bounce on macOS
841 or the taskbar flash on linux.
842
843 bell_on_tab
844
845 bell_on_tab "🔔 "
846
847 Some text or a Unicode symbol to show on the tab if a window in the tab
848 that does not have focus has a bell. If you want to use leading or
849 trailing spaces, surround the text with quotes. See tab_title_template
850 for how this is rendered.
851
852 For backwards compatibility, values of yes, y and true are converted to
853 the default bell symbol and no, n, false and none are converted to the
854 empty string.
855
856 command_on_bell
857
858 command_on_bell none
859
860 Program to run when a bell occurs. The environment variable
861 KITTY_CHILD_CMDLINE can be used to get the program running in the win‐
862 dow in which the bell occurred.
863
864 bell_path
865
866 bell_path none
867
868 Path to a sound file to play as the bell sound. If set to none, the
869 system default bell sound is used. Must be in a format supported by the
870 operating systems sound API, such as WAV or OGA on Linux (libcanberra)
871 or AIFF, MP3 or WAV on macOS (NSSound)
872
873 linux_bell_theme
874
875 linux_bell_theme __custom
876
877 The XDG Sound Theme kitty will use to play the bell sound. Defaults to
878 the custom theme name used by GNOME and Budgie, falling back to the de‐
879 fault freedesktop theme if it does not exist. This option may be re‐
880 moved if Linux ever provides desktop-agnostic support for setting sys‐
881 tem sound themes.
882
884 remember_window_size, initial_window_width, initial_window_height
885
886 remember_window_size yes
887 initial_window_width 640
888 initial_window_height 400
889
890 If enabled, the OS Window size will be remembered so that new instances
891 of kitty will have the same size as the previous instance. If dis‐
892 abled, the OS Window will initially have size configured by ini‐
893 tial_window_width/height, in pixels. You can use a suffix of "c" on the
894 width/height values to have them interpreted as number of cells instead
895 of pixels.
896
897 enabled_layouts
898
899 enabled_layouts *
900
901 The enabled window layouts. A comma separated list of layout names. The
902 special value all means all layouts. The first listed layout will be
903 used as the startup layout. Default configuration is all layouts in al‐
904 phabetical order. For a list of available layouts, see the Layouts.
905
906 window_resize_step_cells, window_resize_step_lines
907
908 window_resize_step_cells 2
909 window_resize_step_lines 2
910
911 The step size (in units of cell width/cell height) to use when resizing
912 kitty windows in a layout with the shortcut ctrl+shift+r. The cells
913 value is used for horizontal resizing, and the lines value is used for
914 vertical resizing.
915
916 window_border_width
917
918 window_border_width 0.5pt
919
920 The width of window borders. Can be either in pixels (px) or pts (pt).
921 Values in pts will be rounded to the nearest number of pixels based on
922 screen resolution. If not specified, the unit is assumed to be pts.
923 Note that borders are displayed only when more than one window is visi‐
924 ble. They are meant to separate multiple windows.
925
926 draw_minimal_borders
927
928 draw_minimal_borders yes
929
930 Draw only the minimum borders needed. This means that only the borders
931 that separate the window from a neighbor are drawn. Note that setting a
932 non-zero window_margin_width overrides this and causes all borders to
933 be drawn.
934
935 window_margin_width
936
937 window_margin_width 0
938
939 The window margin (in pts) (blank area outside the border). A single
940 value sets all four sides. Two values set the vertical and horizontal
941 sides. Three values set top, horizontal and bottom. Four values set
942 top, right, bottom and left.
943
944 single_window_margin_width
945
946 single_window_margin_width -1
947
948 The window margin to use when only a single window is visible (in pts).
949 Negative values will cause the value of window_margin_width to be used
950 instead. A single value sets all four sides. Two values set the verti‐
951 cal and horizontal sides. Three values set top, horizontal and bottom.
952 Four values set top, right, bottom and left.
953
954 window_padding_width
955
956 window_padding_width 0
957
958 The window padding (in pts) (blank area between the text and the window
959 border). A single value sets all four sides. Two values set the verti‐
960 cal and horizontal sides. Three values set top, horizontal and bottom.
961 Four values set top, right, bottom and left.
962
963 single_window_padding_width
964
965 single_window_padding_width -1
966
967 The window padding to use when only a single window is visible (in
968 pts). Negative values will cause the value of window_padding_width to
969 be used instead. A single value sets all four sides. Two values set the
970 vertical and horizontal sides. Three values set top, horizontal and
971 bottom. Four values set top, right, bottom and left.
972
973 placement_strategy
974
975 placement_strategy center
976
977 When the window size is not an exact multiple of the cell size, the
978 cell area of the terminal window will have some extra padding on the
979 sides. You can control how that padding is distributed with this op‐
980 tion. Using a value of center means the cell area will be placed cen‐
981 trally. A value of top-left means the padding will be only at the bot‐
982 tom and right edges.
983
984 active_border_color
985
986 active_border_color #00ff00
987
988 The color for the border of the active window. Set this to none to not
989 draw borders around the active window.
990
991 inactive_border_color
992
993 inactive_border_color #cccccc
994
995 The color for the border of inactive windows.
996
997 bell_border_color
998
999 bell_border_color #ff5a00
1000
1001 The color for the border of inactive windows in which a bell has oc‐
1002 curred.
1003
1004 inactive_text_alpha
1005
1006 inactive_text_alpha 1.0
1007
1008 Fade the text in inactive windows by the specified amount (a number be‐
1009 tween zero and one, with zero being fully faded).
1010
1011 hide_window_decorations
1012
1013 hide_window_decorations no
1014
1015 Hide the window decorations (title-bar and window borders) with yes. On
1016 macOS, titlebar-only and titlebar-and-corners can be used to only hide
1017 the titlebar and the rounded corners. Whether this works and exactly
1018 what effect it has depends on the window manager/operating system. Note
1019 that the effects of changing this option when reloading config are un‐
1020 defined. When using titlebar-only, it is useful to also set
1021 window_margin_width and placement_strategy to prevent the rounded cor‐
1022 ners from clipping text. Or use titlebar-and-corners.
1023
1024 window_logo_path
1025
1026 window_logo_path none
1027
1028 Path to a logo image. Must be in PNG format. Relative paths are inter‐
1029 preted relative to the kitty config directory. The logo is displayed in
1030 a corner of every kitty window. The position is controlled by
1031 window_logo_position. Individual windows can be configured to have
1032 different logos either using the launch action or the remote control
1033 facility.
1034
1035 window_logo_position
1036
1037 window_logo_position bottom-right
1038
1039 Where to position the window logo in the window. The value can be one
1040 of: top-left, top, top-right, left, center, right, bottom-left, bottom,
1041 bottom-right.
1042
1043 window_logo_alpha
1044
1045 window_logo_alpha 0.5
1046
1047 The amount the logo should be faded into the background. With zero be‐
1048 ing fully faded and one being fully opaque.
1049
1050 resize_debounce_time
1051
1052 resize_debounce_time 0.1 0.5
1053
1054 The time to wait before redrawing the screen during a live resize of
1055 the OS window, when no new resize events have been received, i.e. when
1056 resizing is either paused or finished. On platforms such as macOS,
1057 where the operating system sends events corresponding to the start and
1058 end of a live resize, the second number is used for redraw-after-pause
1059 since kitty can distinguish between a pause and end of resizing. On
1060 such systems the first number is ignored and redraw is immediate after
1061 end of resize. On other systems the first number is used so that kitty
1062 is "ready" quickly after the end of resizing, while not also continu‐
1063 ously redrawing, to save energy.
1064
1065 resize_in_steps
1066
1067 resize_in_steps no
1068
1069 Resize the OS window in steps as large as the cells, instead of with
1070 the usual pixel accuracy. Combined with initial_window_width and
1071 initial_window_height in number of cells, this option can be used to
1072 keep the margins as small as possible when resizing the OS window. Note
1073 that this does not currently work on Wayland.
1074
1075 visual_window_select_characters
1076
1077 visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
1078
1079 The list of characters for visual window selection. For example, for
1080 selecting a window to focus on with ctrl+shift+f7. The value should be
1081 a series of unique numbers or alphabets, case insensitive, from the set
1082 0-9A-Z`-=[];',./\. Specify your preference as a string of characters.
1083
1084 confirm_os_window_close
1085
1086 confirm_os_window_close -1
1087
1088 Ask for confirmation when closing an OS window or a tab with at least
1089 this number of kitty windows in it by window manager (e.g. clicking the
1090 window close button or pressing the operating system shortcut to close
1091 windows) or by the close_tab action. A value of zero disables confirma‐
1092 tion. This confirmation also applies to requests to quit the entire ap‐
1093 plication (all OS windows, via the quit action). Negative values are
1094 converted to positive ones, however, with shell_integration enabled,
1095 using negative values means windows sitting at a shell prompt are not
1096 counted, only windows where some command is currently running. Note
1097 that if you want confirmation when closing individual windows, you can
1098 map the close_window_with_confirmation action.
1099
1101 tab_bar_edge
1102
1103 tab_bar_edge bottom
1104
1105 The edge to show the tab bar on, top or bottom.
1106
1107 tab_bar_margin_width
1108
1109 tab_bar_margin_width 0.0
1110
1111 The margin to the left and right of the tab bar (in pts).
1112
1113 tab_bar_margin_height
1114
1115 tab_bar_margin_height 0.0 0.0
1116
1117 The margin above and below the tab bar (in pts). The first number is
1118 the margin between the edge of the OS Window and the tab bar. The sec‐
1119 ond number is the margin between the tab bar and the contents of the
1120 current tab.
1121
1122 tab_bar_style
1123
1124 tab_bar_style fade
1125
1126 The tab bar style, can be one of:
1127
1128 fade Each tab's edges fade into the background color. (See also
1129 tab_fade)
1130
1131 slant Tabs look like the tabs in a physical file.
1132
1133 separator
1134 Tabs are separated by a configurable separator. (See also
1135 tab_separator)
1136
1137 powerline
1138 Tabs are shown as a continuous line with "fancy" separators.
1139 (See also tab_powerline_style)
1140
1141 custom A user-supplied Python function called draw_tab is loaded from
1142 the file tab_bar.py in the kitty config directory. For examples
1143 of how to write such a function, see the functions named
1144 draw_tab_with_* in kitty's source code: kitty/tab_bar.py. See
1145 also this discussion for examples from kitty users.
1146
1147 hidden The tab bar is hidden. If you use this, you might want to create
1148 a mapping for the select_tab action which presents you with a
1149 list of tabs and allows for easy switching to a tab.
1150
1151 tab_bar_align
1152
1153 tab_bar_align left
1154
1155 The horizontal alignment of the tab bar, can be one of: left, center,
1156 right.
1157
1158 tab_bar_min_tabs
1159
1160 tab_bar_min_tabs 2
1161
1162 The minimum number of tabs that must exist before the tab bar is shown.
1163
1164 tab_switch_strategy
1165
1166 tab_switch_strategy previous
1167
1168 The algorithm to use when switching to a tab when the current tab is
1169 closed. The default of previous will switch to the last used tab. A
1170 value of left will switch to the tab to the left of the closed tab. A
1171 value of right will switch to the tab to the right of the closed tab. A
1172 value of last will switch to the right-most tab.
1173
1174 tab_fade
1175
1176 tab_fade 0.25 0.5 0.75 1
1177
1178 Control how each tab fades into the background when using fade for the
1179 tab_bar_style. Each number is an alpha (between zero and one) that con‐
1180 trols how much the corresponding cell fades into the background, with
1181 zero being no fade and one being full fade. You can change the number
1182 of cells used by adding/removing entries to this list.
1183
1184 tab_separator
1185
1186 tab_separator " ┇"
1187
1188 The separator between tabs in the tab bar when using separator as the
1189 tab_bar_style.
1190
1191 tab_powerline_style
1192
1193 tab_powerline_style angled
1194
1195 The powerline separator style between tabs in the tab bar when using
1196 powerline as the tab_bar_style, can be one of: angled, slanted, round.
1197
1198 tab_activity_symbol
1199
1200 tab_activity_symbol none
1201
1202 Some text or a Unicode symbol to show on the tab if a window in the tab
1203 that does not have focus has some activity. If you want to use leading
1204 or trailing spaces, surround the text with quotes. See
1205 tab_title_template for how this is rendered.
1206
1207 tab_title_max_length
1208
1209 tab_title_max_length 0
1210
1211 The maximum number of cells that can be used to render the text in a
1212 tab. A value of zero means that no limit is applied.
1213
1214 tab_title_template
1215
1216 tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}"
1217
1218 A template to render the tab title. The default just renders the title
1219 with optional symbols for bell and activity. If you wish to include the
1220 tab-index as well, use something like: {index}:{title}. Useful if you
1221 have shortcuts mapped for goto_tab N. If you prefer to see the index as
1222 a superscript, use {sup.index}. All data available is:
1223
1224 title The current tab title.
1225
1226 index The tab index usable with goto_tab N shortcuts.
1227
1228 layout_name
1229 The current layout name.
1230
1231 num_windows
1232 The number of windows in the tab.
1233
1234 num_window_groups
1235 The number of window groups (a window group is a window and all
1236 of its overlay windows) in the tab.
1237
1238 tab.active_wd
1239 The working directory of the currently active window in the tab
1240 (expensive, requires syscall). Use active_oldest_wd to get the
1241 directory of the oldest foreground process rather than the new‐
1242 est.
1243
1244 tab.active_exe
1245 The name of the executable running in the foreground of the cur‐
1246 rently active window in the tab (expensive, requires syscall).
1247 Use active_oldest_exe for the oldest foreground process.
1248
1249 max_title_length
1250 The maximum title length available.
1251
1252 Note that formatting is done by Python's string formatting machinery,
1253 so you can use, for instance, {layout_name[:2].upper()} to show only
1254 the first two letters of the layout name, upper-cased. If you want to
1255 style the text, you can use styling directives, for example:
1256 {fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}.
1257 Similarly, for bold and italic: {fmt.bold}bold{fmt.nobold}nor‐
1258 mal{fmt.italic}italic{fmt.noitalic}. Note that for backward compati‐
1259 bility, if {bell_symbol} or {activity_symbol} are not present in the
1260 template, they are prepended to it.
1261
1262 active_tab_title_template
1263
1264 active_tab_title_template none
1265
1266 Template to use for active tabs. If not specified falls back to
1267 tab_title_template.
1268
1269 active_tab_foreground, active_tab_background, active_tab_font_style,
1270 inactive_tab_foreground, inactive_tab_background, inac‐
1271 tive_tab_font_style
1272
1273 active_tab_foreground #000
1274 active_tab_background #eee
1275 active_tab_font_style bold-italic
1276 inactive_tab_foreground #444
1277 inactive_tab_background #999
1278 inactive_tab_font_style normal
1279
1280 Tab bar colors and styles.
1281
1282 tab_bar_background
1283
1284 tab_bar_background none
1285
1286 Background color for the tab bar. Defaults to using the terminal back‐
1287 ground color.
1288
1289 tab_bar_margin_color
1290
1291 tab_bar_margin_color none
1292
1293 Color for the tab bar margin area. Defaults to using the terminal back‐
1294 ground color for margins above and below the tab bar. For side margins
1295 the default color is chosen to match the background color of the neigh‐
1296 boring tab.
1297
1299 foreground, background
1300
1301 foreground #dddddd
1302 background #000000
1303
1304 The foreground and background colors.
1305
1306 background_opacity
1307
1308 background_opacity 1.0
1309
1310 The opacity of the background. A number between zero and one, where one
1311 is opaque and zero is fully transparent. This will only work if sup‐
1312 ported by the OS (for instance, when using a compositor under X11).
1313 Note that it only sets the background color's opacity in cells that
1314 have the same background color as the default terminal background, so
1315 that things like the status bar in vim, powerline prompts, etc. still
1316 look good. But it means that if you use a color theme with a background
1317 color in your editor, it will not be rendered as transparent. Instead
1318 you should change the default background color in your kitty config and
1319 not use a background color in the editor color scheme. Or use the es‐
1320 cape codes to set the terminals default colors in a shell script to
1321 launch your editor. Be aware that using a value less than 1.0 is a
1322 (possibly significant) performance hit. When using a low value for this
1323 setting, it is desirable that you set the background color to a color
1324 the matches the general color of the desktop background, for best text
1325 rendering. If you want to dynamically change transparency of windows,
1326 set dynamic_background_opacity to yes (this is off by default as it has
1327 a performance cost). Changing this option when reloading the config
1328 will only work if dynamic_background_opacity was enabled in the origi‐
1329 nal config.
1330
1331 background_blur
1332
1333 background_blur 0
1334
1335 Set to a positive value to enable background blur (blurring of the vi‐
1336 suals behind a transparent window) on platforms that support it. Only
1337 takes effect when background_opacity is less than one. On macOS, this
1338 will also control the blur radius (amount of blurring). Setting it to
1339 too high a value will cause severe performance issues and/or rendering
1340 artifacts. Usually, values up to 64 work well. Note that this might
1341 cause performance issues, depending on how the platform implements it,
1342 so use with care. Currently supported on macOS and KDE under X11.
1343
1344 background_image
1345
1346 background_image none
1347
1348 Path to a background image. Must be in PNG format.
1349
1350 background_image_layout
1351
1352 background_image_layout tiled
1353
1354 Whether to tile, scale or clamp the background image. The value can be
1355 one of tiled, mirror-tiled, scaled, clamped, centered or cscaled. The
1356 scaled and cscaled values scale the image to the window size, with
1357 cscaled preserving the image aspect ratio.
1358
1359 background_image_linear
1360
1361 background_image_linear no
1362
1363 When background image is scaled, whether linear interpolation should be
1364 used.
1365
1366 dynamic_background_opacity
1367
1368 dynamic_background_opacity no
1369
1370 Allow changing of the background_opacity dynamically, using either key‐
1371 board shortcuts (ctrl+shift+a>m and ctrl+shift+a>l) or the remote con‐
1372 trol facility. Changing this option by reloading the config is not sup‐
1373 ported.
1374
1375 background_tint
1376
1377 background_tint 0.0
1378
1379 How much to tint the background image by the background color. This op‐
1380 tion makes it easier to read the text. Tinting is done using the cur‐
1381 rent background color for each window. This option applies only if
1382 background_opacity is set and transparent windows are supported or
1383 background_image is set.
1384
1385 background_tint_gaps
1386
1387 background_tint_gaps 1.0
1388
1389 How much to tint the background image at the window gaps by the back‐
1390 ground color, after applying background_tint. Since this is multiplica‐
1391 tive with background_tint, it can be used to lighten the tint over the
1392 window gaps for a separated look.
1393
1394 dim_opacity
1395
1396 dim_opacity 0.4
1397
1398 How much to dim text that has the DIM/FAINT attribute set. One means no
1399 dimming and zero means fully dimmed (i.e. invisible).
1400
1401 selection_foreground, selection_background
1402
1403 selection_foreground #000000
1404 selection_background #fffacd
1405
1406 The foreground and background colors for text selected with the mouse.
1407 Setting both of these to none will cause a "reverse video" effect for
1408 selections, where the selection will be the cell text color and the
1409 text will become the cell background color. Setting only selec‐
1410 tion_foreground to none will cause the foreground color to be used un‐
1411 changed. Note that these colors can be overridden by the program run‐
1412 ning in the terminal.
1413
1414 The color table
1415 The 256 terminal colors. There are 8 basic colors, each color has a
1416 dull and bright version, for the first 16 colors. You can set the re‐
1417 maining 240 colors as color16 to color255.
1418
1419 color0, color8
1420
1421 color0 #000000
1422 color8 #767676
1423
1424 black
1425
1426 color1, color9
1427
1428 color1 #cc0403
1429 color9 #f2201f
1430
1431 red
1432
1433 color2, color10
1434
1435 color2 #19cb00
1436 color10 #23fd00
1437
1438 green
1439
1440 color3, color11
1441
1442 color3 #cecb00
1443 color11 #fffd00
1444
1445 yellow
1446
1447 color4, color12
1448
1449 color4 #0d73cc
1450 color12 #1a8fff
1451
1452 blue
1453
1454 color5, color13
1455
1456 color5 #cb1ed1
1457 color13 #fd28ff
1458
1459 magenta
1460
1461 color6, color14
1462
1463 color6 #0dcdcd
1464 color14 #14ffff
1465
1466 cyan
1467
1468 color7, color15
1469
1470 color7 #dddddd
1471 color15 #ffffff
1472
1473 white
1474
1475 mark1_foreground
1476
1477 mark1_foreground black
1478
1479 Color for marks of type 1
1480
1481 mark1_background
1482
1483 mark1_background #98d3cb
1484
1485 Color for marks of type 1 (light steel blue)
1486
1487 mark2_foreground
1488
1489 mark2_foreground black
1490
1491 Color for marks of type 2
1492
1493 mark2_background
1494
1495 mark2_background #f2dcd3
1496
1497 Color for marks of type 1 (beige)
1498
1499 mark3_foreground
1500
1501 mark3_foreground black
1502
1503 Color for marks of type 3
1504
1505 mark3_background
1506
1507 mark3_background #f274bc
1508
1509 Color for marks of type 3 (violet)
1510
1512 shell
1513
1514 shell .
1515
1516 The shell program to execute. The default value of . means to use what‐
1517 ever shell is set as the default shell for the current user. Note that
1518 on macOS if you change this, you might need to add --login and --inter‐
1519 active to ensure that the shell starts in interactive mode and reads
1520 its startup rc files. Environment variables are expanded in this set‐
1521 ting.
1522
1523 editor
1524
1525 editor .
1526
1527 The terminal based text editor (such as vim or nano) to use when edit‐
1528 ing the kitty config file or similar tasks.
1529
1530 The default value of . means to use the environment variables VISUAL
1531 and EDITOR in that order. If these variables aren't set, kitty will run
1532 your shell ($SHELL -l -i -c env) to see if your shell startup rc files
1533 set VISUAL or EDITOR. If that doesn't work, kitty will cycle through
1534 various known editors (vim, emacs, etc.) and take the first one that
1535 exists on your system.
1536
1537 close_on_child_death
1538
1539 close_on_child_death no
1540
1541 Close the window when the child process (shell) exits. With the default
1542 value no, the terminal will remain open when the child exits as long as
1543 there are still processes outputting to the terminal (for example dis‐
1544 owned or backgrounded processes). When enabled with yes, the window
1545 will close as soon as the child process exits. Note that setting it to
1546 yes means that any background processes still using the terminal can
1547 fail silently because their stdout/stderr/stdin no longer work.
1548
1549 remote_control_password
1550
1551 Allow other programs to control kitty using passwords. This option can
1552 be specified multiple times to add multiple passwords. If no passwords
1553 are present kitty will ask the user for permission if a program tries
1554 to use remote control with a password. A password can also optionally
1555 be associated with a set of allowed remote control actions. For exam‐
1556 ple:
1557
1558 remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab
1559
1560 Only the specified actions will be allowed when using this password.
1561 Glob patterns can be used too, for example:
1562
1563 remote_control_password "my passphrase" set-tab-* resize-*
1564
1565 To get a list of available actions, run:
1566
1567 kitten @ --help
1568
1569 A set of actions to be allowed when no password is sent can be speci‐
1570 fied by using an empty password. For example:
1571
1572 remote_control_password "" *-colors
1573
1574 Finally, the path to a python module can be specified that provides a
1575 function is_cmd_allowed that is used to check every remote control com‐
1576 mand. For example:
1577
1578 remote_control_password "my passphrase" my_rc_command_checker.py
1579
1580 Relative paths are resolved from the kitty configuration directory.
1581 See Customizing authorization with your own program for details.
1582
1583 allow_remote_control
1584
1585 allow_remote_control no
1586
1587 Allow other programs to control kitty. If you turn this on, other pro‐
1588 grams can control all aspects of kitty, including sending text to kitty
1589 windows, opening new windows, closing windows, reading the content of
1590 windows, etc. Note that this even works over SSH connections. The de‐
1591 fault setting of no prevents any form of remote control. The meaning of
1592 the various values are:
1593
1594 password
1595 Remote control requests received over both the TTY device and
1596 the socket are confirmed based on passwords, see
1597 remote_control_password.
1598
1599 socket-only
1600 Remote control requests received over a socket are accepted un‐
1601 conditionally. Requests received over the TTY are denied. See
1602 listen_on.
1603
1604 socket Remote control requests received over a socket are accepted un‐
1605 conditionally. Requests received over the TTY are confirmed
1606 based on password.
1607
1608 no Remote control is completely disabled.
1609
1610 yes Remote control requests are always accepted.
1611
1612 listen_on
1613
1614 listen_on none
1615
1616 Listen to the specified socket for remote control connections. Note
1617 that this will apply to all kitty instances. It can be overridden by
1618 the kitty --listen-on command line option. For UNIX sockets, such as
1619 unix:${TEMP}/mykitty or unix:@mykitty (on Linux). Environment variables
1620 are expanded and relative paths are resolved with respect to the tempo‐
1621 rary directory. If {kitty_pid} is present, then it is replaced by the
1622 PID of the kitty process, otherwise the PID of the kitty process is ap‐
1623 pended to the value, with a hyphen. For TCP sockets such as tcp:local‐
1624 host:0 a random port is always used even if a non-zero port number is
1625 specified. See the help for kitty --listen-on for more details. Note
1626 that this will be ignored unless allow_remote_control is set to either:
1627 yes, socket or socket-only. Changing this option by reloading the con‐
1628 fig is not supported.
1629
1630 env
1631
1632 Specify the environment variables to be set in all child processes. Us‐
1633 ing the name with an equal sign (e.g. env VAR=) will set it to the
1634 empty string. Specifying only the name (e.g. env VAR) will remove the
1635 variable from the child process' environment. Note that environment
1636 variables are expanded recursively, for example:
1637
1638 env VAR1=a
1639 env VAR2=${HOME}/${VAR1}/b
1640
1641 The value of VAR2 will be <path to home directory>/a/b.
1642
1643 watcher
1644
1645 Path to python file which will be loaded for Watching launched windows.
1646 Can be specified more than once to load multiple watchers. The watchers
1647 will be added to every kitty window. Relative paths are resolved rela‐
1648 tive to the kitty config directory. Note that reloading the config will
1649 only affect windows created after the reload.
1650
1651 exe_search_path
1652
1653 Control where kitty finds the programs to run. The default search order
1654 is: First search the system wide PATH, then ~/.local/bin and ~/bin. If
1655 still not found, the PATH defined in the login shell after sourcing all
1656 its startup files is tried. Finally, if present, the PATH specified by
1657 the env option is tried.
1658
1659 This option allows you to prepend, append, or remove paths from this
1660 search order. It can be specified multiple times for multiple paths. A
1661 simple path will be prepended to the search order. A path that starts
1662 with the + sign will be append to the search order, after ~/bin above.
1663 A path that starts with the - sign will be removed from the entire
1664 search order. For example:
1665
1666 exe_search_path /some/prepended/path
1667 exe_search_path +/some/appended/path
1668 exe_search_path -/some/excluded/path
1669
1670 update_check_interval
1671
1672 update_check_interval 24
1673
1674 The interval to periodically check if an update to kitty is available
1675 (in hours). If an update is found, a system notification is displayed
1676 informing you of the available update. The default is to check every 24
1677 hours, set to zero to disable. Update checking is only done by the of‐
1678 ficial binary builds. Distro packages or source builds do not do update
1679 checking. Changing this option by reloading the config is not sup‐
1680 ported.
1681
1682 startup_session
1683
1684 startup_session none
1685
1686 Path to a session file to use for all kitty instances. Can be overrid‐
1687 den by using the kitty --session =none command line option for individ‐
1688 ual instances. See Startup Sessions in the kitty documentation for de‐
1689 tails. Note that relative paths are interpreted with respect to the
1690 kitty config directory. Environment variables in the path are ex‐
1691 panded. Changing this option by reloading the config is not supported.
1692
1693 clipboard_control
1694
1695 clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask
1696
1697 Allow programs running in kitty to read and write from the clipboard.
1698 You can control exactly which actions are allowed. The possible actions
1699 are: write-clipboard, read-clipboard, write-primary, read-primary,
1700 read-clipboard-ask, read-primary-ask. The default is to allow writing
1701 to the clipboard and primary selection and to ask for permission when a
1702 program tries to read from the clipboard. Note that disabling the read
1703 confirmation is a security risk as it means that any program, even the
1704 ones running on a remote server via SSH can read your clipboard. See
1705 also clipboard_max_size.
1706
1707 clipboard_max_size
1708
1709 clipboard_max_size 512
1710
1711 The maximum size (in MB) of data from programs running in kitty that
1712 will be stored for writing to the system clipboard. A value of zero
1713 means no size limit is applied. See also clipboard_control.
1714
1715 file_transfer_confirmation_bypass
1716
1717 The password that can be supplied to the file transfer kitten to skip
1718 the transfer confirmation prompt. This should only be used when initi‐
1719 ating transfers from trusted computers, over trusted networks or en‐
1720 crypted transports, as it allows any programs running on the remote ma‐
1721 chine to read/write to the local filesystem, without permission.
1722
1723 allow_hyperlinks
1724
1725 allow_hyperlinks yes
1726
1727 Process hyperlink escape sequences (OSC 8). If disabled OSC 8 escape
1728 sequences are ignored. Otherwise they become clickable links, that you
1729 can click with the mouse or by using the hints kitten. The special
1730 value of ask means that kitty will ask before opening the link when
1731 clicked.
1732
1733 shell_integration
1734
1735 shell_integration enabled
1736
1737 Enable shell integration on supported shells. This enables features
1738 such as jumping to previous prompts, browsing the output of the previ‐
1739 ous command in a pager, etc. on supported shells. Set to disabled to
1740 turn off shell integration, completely. It is also possible to disable
1741 individual features, set to a space separated list of these values:
1742 no-rc, no-cursor, no-title, no-cwd, no-prompt-mark, no-complete,
1743 no-sudo. See Shell integration for details.
1744
1745 allow_cloning
1746
1747 allow_cloning ask
1748
1749 Control whether programs running in the terminal can request new win‐
1750 dows to be created. The canonical example is clone-in-kitty. By de‐
1751 fault, kitty will ask for permission for each clone request. Allowing
1752 cloning unconditionally gives programs running in the terminal (includ‐
1753 ing over SSH) permission to execute arbitrary code, as the user who is
1754 running the terminal, on the computer that the terminal is running on.
1755
1756 clone_source_strategies
1757
1758 clone_source_strategies venv,conda,env_var,path
1759
1760 Control what shell code is sourced when running clone-in-kitty in the
1761 newly cloned window. The supported strategies are:
1762
1763 venv Source the file $VIRTUAL_ENV/bin/activate. This is used by the
1764 Python stdlib venv module and allows cloning venvs automati‐
1765 cally.
1766
1767 conda Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual
1768 environments created by conda.
1769
1770 env_var
1771 Execute the contents of the environment variable
1772 KITTY_CLONE_SOURCE_CODE with eval.
1773
1774 path Source the file pointed to by the environment variable
1775 KITTY_CLONE_SOURCE_PATH.
1776
1777 This option must be a comma separated list of the above values. Only
1778 the first valid match, in the order specified, is sourced.
1779
1780 term
1781
1782 term xterm-kitty
1783
1784 The value of the TERM environment variable to set. Changing this can
1785 break many terminal programs, only change it if you know what you are
1786 doing, not because you read some advice on "Stack Overflow" to change
1787 it. The TERM variable is used by various programs to get information
1788 about the capabilities and behavior of the terminal. If you change it,
1789 depending on what programs you run, and how different the terminal you
1790 are changing it to is, various things from key-presses, to colors, to
1791 various advanced features may not work. Changing this option by reload‐
1792 ing the config will only affect newly created windows.
1793
1794 forward_stdio
1795
1796 forward_stdio no
1797
1798 Forward STDOUT and STDERR of the kitty process to child processes as
1799 file descriptors 3 and 4. This is useful for debugging as it allows
1800 child processes to print to kitty's STDOUT directly. For example, echo
1801 hello world >&3 in a shell will print to the parent kitty's STDOUT.
1802 When enabled, this also sets the KITTY_STDIO_FORWARDED=3 environment
1803 variable so child processes know about the forwarding.
1804
1805 menu_map
1806
1807 Specify entries for various menus in kitty. Currently only the global
1808 menubar on macOS is supported. For example:
1809
1810 menu_map global "Actions::Launch something special" launch --hold --type=os-window sh -c "echo hello world"
1811
1812 This will create a menu entry named "Launch something special" in an
1813 "Actions" menu in the macOS global menubar. Sub-menus can be created
1814 by adding more levels separated by ::.
1815
1817 wayland_titlebar_color
1818
1819 wayland_titlebar_color system
1820
1821 The color of the kitty window's titlebar on Wayland systems with client
1822 side window decorations such as GNOME. A value of system means to use
1823 the default system color, a value of background means to use the back‐
1824 ground color of the currently active window and finally you can use an
1825 arbitrary color, such as #12af59 or red.
1826
1827 macos_titlebar_color
1828
1829 macos_titlebar_color system
1830
1831 The color of the kitty window's titlebar on macOS. A value of system
1832 means to use the default system color, light or dark can also be used
1833 to set it explicitly. A value of background means to use the background
1834 color of the currently active window and finally you can use an arbi‐
1835 trary color, such as #12af59 or red. WARNING: This option works by us‐
1836 ing a hack when arbitrary color (or background) is configured, as there
1837 is no proper Cocoa API for it. It sets the background color of the en‐
1838 tire window and makes the titlebar transparent. As such it is incompat‐
1839 ible with background_opacity. If you want to use both, you are probably
1840 better off just hiding the titlebar with hide_window_decorations.
1841
1842 macos_option_as_alt
1843
1844 macos_option_as_alt no
1845
1846 Use the Option key as an Alt key on macOS. With this set to no, kitty
1847 will use the macOS native Option+Key to enter Unicode character behav‐
1848 ior. This will break any Alt+Key keyboard shortcuts in your terminal
1849 programs, but you can use the macOS Unicode input technique. You can
1850 use the values: left, right or both to use only the left, right or both
1851 Option keys as Alt, instead. Note that kitty itself always treats Op‐
1852 tion the same as Alt. This means you cannot use this option to config‐
1853 ure different kitty shortcuts for Option+Key vs. Alt+Key. Also, any
1854 kitty shortcuts using Option/Alt+Key will take priority, so that any
1855 such key presses will not be passed to terminal programs running inside
1856 kitty. Changing this option by reloading the config is not supported.
1857
1858 macos_hide_from_tasks
1859
1860 macos_hide_from_tasks no
1861
1862 Hide the kitty window from running tasks on macOS (⌘+Tab and the Dock).
1863 Changing this option by reloading the config is not supported.
1864
1865 macos_quit_when_last_window_closed
1866
1867 macos_quit_when_last_window_closed no
1868
1869 Have kitty quit when all the top-level windows are closed on macOS. By
1870 default, kitty will stay running, even with no open windows, as is the
1871 expected behavior on macOS.
1872
1873 macos_window_resizable
1874
1875 macos_window_resizable yes
1876
1877 Disable this if you want kitty top-level OS windows to not be resizable
1878 on macOS.
1879
1880 macos_thicken_font
1881
1882 macos_thicken_font 0
1883
1884 Draw an extra border around the font with the given width, to increase
1885 legibility at small font sizes on macOS. For example, a value of 0.75
1886 will result in rendering that looks similar to sub-pixel antialiasing
1887 at common font sizes. Note that in modern kitty, this option is obso‐
1888 lete (although still supported). Consider using
1889 text_composition_strategy instead.
1890
1891 macos_traditional_fullscreen
1892
1893 macos_traditional_fullscreen no
1894
1895 Use the macOS traditional full-screen transition, that is faster, but
1896 less pretty.
1897
1898 macos_show_window_title_in
1899
1900 macos_show_window_title_in all
1901
1902 Control where the window title is displayed on macOS. A value of window
1903 will show the title of the currently active window at the top of the
1904 macOS window. A value of menubar will show the title of the currently
1905 active window in the macOS global menu bar, making use of otherwise
1906 wasted space. A value of all will show the title in both places, and
1907 none hides the title. See macos_menubar_title_max_length for how to
1908 control the length of the title in the menu bar.
1909
1910 macos_menubar_title_max_length
1911
1912 macos_menubar_title_max_length 0
1913
1914 The maximum number of characters from the window title to show in the
1915 macOS global menu bar. Values less than one means that there is no max‐
1916 imum limit.
1917
1918 macos_custom_beam_cursor
1919
1920 macos_custom_beam_cursor no
1921
1922 Use a custom mouse cursor for macOS that is easier to see on both light
1923 and dark backgrounds. Nowadays, the default macOS cursor already comes
1924 with a white border. WARNING: this might make your mouse cursor invisi‐
1925 ble on dual GPU machines. Changing this option by reloading the config
1926 is not supported.
1927
1928 macos_colorspace
1929
1930 macos_colorspace srgb
1931
1932 The colorspace in which to interpret terminal colors. The default of
1933 srgb will cause colors to match those seen in web browsers. The value
1934 of default will use whatever the native colorspace of the display is.
1935 The value of displayp3 will use Apple's special snowflake display P3
1936 color space, which will result in over saturated (brighter) colors with
1937 some color shift. Reloading configuration will change this value only
1938 for newly created OS windows.
1939
1940 linux_display_server
1941
1942 linux_display_server auto
1943
1944 Choose between Wayland and X11 backends. By default, an appropriate
1945 backend based on the system state is chosen automatically. Set it to
1946 x11 or wayland to force the choice. Changing this option by reloading
1947 the config is not supported.
1948
1950 Keys are identified simply by their lowercase Unicode characters. For
1951 example: a for the A key, [ for the left square bracket key, etc. For
1952 functional keys, such as Enter or Escape, the names are present at
1953 Functional key definitions. For modifier keys, the names are ctrl (con‐
1954 trol, ⌃), shift (⇧), alt (opt, option, ⌥), super (cmd, command, ⌘).
1955 See also: GLFW mods
1956
1957 On Linux you can also use XKB key names to bind keys that are not sup‐
1958 ported by GLFW. See XKB keys for a list of key names. The name to use
1959 is the part after the XKB_KEY_ prefix. Note that you can only use an
1960 XKB key name for keys that are not known as GLFW keys.
1961
1962 Finally, you can use raw system key codes to map keys, again only for
1963 keys that are not known as GLFW keys. To see the system key code for a
1964 key, start kitty with the kitty --debug-input option, kitty will output
1965 some debug text for every key event. In that text look for native_code,
1966 the value of that becomes the key name in the shortcut. For example:
1967
1968 on_key_input: glfw key: 0x61 native_code: 0x61 action: PRESS mods: none text: 'a'
1969
1970 Here, the key name for the A key is 0x61 and you can use it with:
1971
1972 map ctrl+0x61 something
1973
1974 to map Ctrl+A to something.
1975
1976 You can use the special action no_op to unmap a keyboard shortcut that
1977 is assigned in the default configuration:
1978
1979 map kitty_mod+space no_op
1980
1981 If you would like kitty to completely ignore a key event, not even
1982 sending it to the program running in the terminal, map it to
1983 discard_event:
1984
1985 map kitty_mod+f1 discard_event
1986
1987 You can combine multiple actions to be triggered by a single shortcut
1988 with combine action, using the syntax below:
1989
1990 map key combine <separator> action1 <separator> action2 <separator> action3 ...
1991
1992 For example:
1993
1994 map kitty_mod+e combine : new_window : next_layout
1995
1996 This will create a new window and switch to the next available layout.
1997
1998 You can use multi-key shortcuts with the syntax shown below:
1999
2000 map key1>key2>key3 action
2001
2002 For example:
2003
2004 map ctrl+f>2 set_font_size 20
2005
2006 The full list of actions that can be mapped to key presses is available
2007 here.
2008
2009 kitty_mod
2010
2011 kitty_mod ctrl+shift
2012
2013 Special modifier key alias for default shortcuts. You can change the
2014 value of this option to alter all default shortcuts that use kitty_mod.
2015
2016 clear_all_shortcuts
2017
2018 clear_all_shortcuts no
2019
2020 Remove all shortcut definitions up to this point. Useful, for instance,
2021 to remove the default shortcuts.
2022
2023 action_alias
2024
2025 Has no default values. Example values are shown below:
2026
2027 action_alias launch_tab launch --type=tab --cwd=current
2028
2029 Define action aliases to avoid repeating the same options in multiple
2030 mappings. Aliases can be defined for any action and will be expanded
2031 recursively. For example, the above alias allows you to create mappings
2032 to launch a new tab in the current working directory without duplica‐
2033 tion:
2034
2035 map f1 launch_tab vim
2036 map f2 launch_tab emacs
2037
2038 Similarly, to alias kitten invocation:
2039
2040 action_alias hints kitten hints --hints-offset=0
2041
2042 kitten_alias
2043
2044 Has no default values. Example values are shown below:
2045
2046 kitten_alias hints hints --hints-offset=0
2047
2048 Like action_alias above, but specifically for kittens. Generally, pre‐
2049 fer to use action_alias. This option is a legacy version, present for
2050 backwards compatibility. It causes all invocations of the aliased kit‐
2051 ten to be substituted. So the example above will cause all invocations
2052 of the hints kitten to have the --hints-offset=0 option applied.
2053
2054 Clipboard
2055 Copy to clipboard
2056
2057 map ctrl+shift+c copy_to_clipboard
2058 map cmd+c copy_to_clipboard 🍎
2059
2060 There is also a copy_or_interrupt action that can be optionally mapped
2061 to Ctrl+C. It will copy only if there is a selection and send an inter‐
2062 rupt otherwise. Similarly, copy_and_clear_or_interrupt will copy and
2063 clear the selection or send an interrupt if there is no selection.
2064
2065 Paste from clipboard
2066
2067 map ctrl+shift+v paste_from_clipboard
2068 map cmd+v paste_from_clipboard 🍎
2069
2070 Paste from selection
2071
2072 map ctrl+shift+s paste_from_selection
2073 map shift+insert paste_from_selection
2074
2075 Pass selection to program
2076
2077 map ctrl+shift+o pass_selection_to_program
2078
2079 You can also pass the contents of the current selection to any program
2080 with pass_selection_to_program. By default, the system's open program
2081 is used, but you can specify your own, the selection will be passed as
2082 a command line argument to the program. For example:
2083
2084 map kitty_mod+o pass_selection_to_program firefox
2085
2086 You can pass the current selection to a terminal program running in a
2087 new kitty window, by using the @selection placeholder:
2088
2089 map kitty_mod+y new_window less @selection
2090
2091 Scrolling
2092 Scroll line up
2093
2094 map ctrl+shift+up scroll_line_up
2095 map ctrl+shift+k scroll_line_up
2096 map opt+cmd+page_up scroll_line_up 🍎
2097 map cmd+up scroll_line_up 🍎
2098
2099 Scroll line down
2100
2101 map ctrl+shift+down scroll_line_down
2102 map ctrl+shift+j scroll_line_down
2103 map opt+cmd+page_down scroll_line_down 🍎
2104 map cmd+down scroll_line_down 🍎
2105
2106 Scroll page up
2107
2108 map ctrl+shift+page_up scroll_page_up
2109 map cmd+page_up scroll_page_up 🍎
2110
2111 Scroll page down
2112
2113 map ctrl+shift+page_down scroll_page_down
2114 map cmd+page_down scroll_page_down 🍎
2115
2116 Scroll to top
2117
2118 map ctrl+shift+home scroll_home
2119 map cmd+home scroll_home 🍎
2120
2121 Scroll to bottom
2122
2123 map ctrl+shift+end scroll_end
2124 map cmd+end scroll_end 🍎
2125
2126 Scroll to previous shell prompt
2127
2128 map ctrl+shift+z scroll_to_prompt -1
2129
2130 Use a parameter of 0 for scroll_to_prompt to scroll to the last jumped
2131 to or the last clicked position. Requires shell integration to work.
2132
2133 Scroll to next shell prompt
2134
2135 map ctrl+shift+x scroll_to_prompt 1
2136
2137 Browse scrollback buffer in pager
2138
2139 map ctrl+shift+h show_scrollback
2140
2141 You can pipe the contents of the current screen and history buffer as
2142 STDIN to an arbitrary program using launch --stdin-source. For exam‐
2143 ple, the following opens the scrollback buffer in less in an overlay
2144 window:
2145
2146 map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
2147
2148 For more details on piping screen and buffer contents to external pro‐
2149 grams, see The launch command.
2150
2151 Browse output of the last shell command in pager
2152
2153 map ctrl+shift+g show_last_command_output
2154
2155 You can also define additional shortcuts to get the command output.
2156 For example, to get the first command output on screen:
2157
2158 map f1 show_first_command_output_on_screen
2159
2160 To get the command output that was last accessed by a keyboard action
2161 or mouse action:
2162
2163 map f1 show_last_visited_command_output
2164
2165 You can pipe the output of the last command run in the shell using the
2166 launch action. For example, the following opens the output in less in
2167 an overlay window:
2168
2169 map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R
2170
2171 To get the output of the first command on the screen, use
2172 @first_cmd_output_on_screen. To get the output of the last jumped to
2173 command, use @last_visited_cmd_output.
2174
2175 Requires shell integration to work.
2176
2177 Window management
2178 New window
2179
2180 map ctrl+shift+enter new_window
2181 map cmd+enter new_window 🍎
2182
2183 You can open a new kitty window running an arbitrary program, for exam‐
2184 ple:
2185
2186 map kitty_mod+y launch mutt
2187
2188 You can open a new window with the current working directory set to the
2189 working directory of the current window using:
2190
2191 map ctrl+alt+enter launch --cwd=current
2192
2193 You can open a new window that is allowed to control kitty via the
2194 kitty remote control facility with launch --allow-remote-control. Any
2195 programs running in that window will be allowed to control kitty. For
2196 example:
2197
2198 map ctrl+enter launch --allow-remote-control some_program
2199
2200 You can open a new window next to the currently active window or as the
2201 first window, with:
2202
2203 map ctrl+n launch --location=neighbor
2204 map ctrl+f launch --location=first
2205
2206 For more details, see The launch command.
2207
2208 New OS window
2209
2210 map ctrl+shift+n new_os_window
2211 map cmd+n new_os_window 🍎
2212
2213 Works like new_window above, except that it opens a top-level OS win‐
2214 dow. In particular you can use new_os_window_with_cwd to open a window
2215 with the current working directory.
2216
2217 Close window
2218
2219 map ctrl+shift+w close_window
2220 map shift+cmd+d close_window 🍎
2221
2222 Next window
2223
2224 map ctrl+shift+] next_window
2225
2226 Previous window
2227
2228 map ctrl+shift+[ previous_window
2229
2230 Move window forward
2231
2232 map ctrl+shift+f move_window_forward
2233
2234 Move window backward
2235
2236 map ctrl+shift+b move_window_backward
2237
2238 Move window to top
2239
2240 map ctrl+shift+` move_window_to_top
2241
2242 Start resizing window
2243
2244 map ctrl+shift+r start_resizing_window
2245 map cmd+r start_resizing_window 🍎
2246
2247 First window
2248
2249 map ctrl+shift+1 first_window
2250 map cmd+1 first_window 🍎
2251
2252 Second window
2253
2254 map ctrl+shift+2 second_window
2255 map cmd+2 second_window 🍎
2256
2257 Third window
2258
2259 map ctrl+shift+3 third_window
2260 map cmd+3 third_window 🍎
2261
2262 Fourth window
2263
2264 map ctrl+shift+4 fourth_window
2265 map cmd+4 fourth_window 🍎
2266
2267 Fifth window
2268
2269 map ctrl+shift+5 fifth_window
2270 map cmd+5 fifth_window 🍎
2271
2272 Sixth window
2273
2274 map ctrl+shift+6 sixth_window
2275 map cmd+6 sixth_window 🍎
2276
2277 Seventh window
2278
2279 map ctrl+shift+7 seventh_window
2280 map cmd+7 seventh_window 🍎
2281
2282 Eighth window
2283
2284 map ctrl+shift+8 eighth_window
2285 map cmd+8 eighth_window 🍎
2286
2287 Ninth window
2288
2289 map ctrl+shift+9 ninth_window
2290 map cmd+9 ninth_window 🍎
2291
2292 Tenth window
2293
2294 map ctrl+shift+0 tenth_window
2295
2296 Visually select and focus window
2297
2298 map ctrl+shift+f7 focus_visible_window
2299
2300 Display overlay numbers and alphabets on the window, and switch the fo‐
2301 cus to the window when you press the key. When there are only two win‐
2302 dows, the focus will be switched directly without displaying the over‐
2303 lay. You can change the overlay characters and their order with option
2304 visual_window_select_characters.
2305
2306 Visually swap window with another
2307
2308 map ctrl+shift+f8 swap_with_window
2309
2310 Works like focus_visible_window above, but swaps the window.
2311
2312 Tab management
2313 Next tab
2314
2315 map ctrl+shift+right next_tab
2316 map shift+cmd+] next_tab 🍎
2317 map ctrl+tab next_tab
2318
2319 Previous tab
2320
2321 map ctrl+shift+left previous_tab
2322 map shift+cmd+[ previous_tab 🍎
2323 map ctrl+shift+tab previous_tab
2324
2325 New tab
2326
2327 map ctrl+shift+t new_tab
2328 map cmd+t new_tab 🍎
2329
2330 Close tab
2331
2332 map ctrl+shift+q close_tab
2333 map cmd+w close_tab 🍎
2334
2335 Close OS window
2336
2337 map shift+cmd+w close_os_window 🍎
2338
2339 Move tab forward
2340
2341 map ctrl+shift+. move_tab_forward
2342
2343 Move tab backward
2344
2345 map ctrl+shift+, move_tab_backward
2346
2347 Set tab title
2348
2349 map ctrl+shift+alt+t set_tab_title
2350 map shift+cmd+i set_tab_title 🍎
2351
2352 You can also create shortcuts to go to specific tabs, with 1 being the
2353 first tab, 2 the second tab and -1 being the previously active tab, and
2354 any number larger than the last tab being the last tab:
2355
2356 map ctrl+alt+1 goto_tab 1
2357 map ctrl+alt+2 goto_tab 2
2358
2359 Just as with new_window above, you can also pass the name of arbitrary
2360 commands to run when using new_tab and new_tab_with_cwd. Finally, if
2361 you want the new tab to open next to the current tab rather than at the
2362 end of the tabs list, use:
2363
2364 map ctrl+t new_tab !neighbor [optional cmd to run]
2365
2366 Layout management
2367 Next layout
2368
2369 map ctrl+shift+l next_layout
2370
2371 You can also create shortcuts to switch to specific layouts:
2372
2373 map ctrl+alt+t goto_layout tall
2374 map ctrl+alt+s goto_layout stack
2375
2376 Similarly, to switch back to the previous layout:
2377
2378 map ctrl+alt+p last_used_layout
2379
2380 There is also a toggle_layout action that switches to the named layout
2381 or back to the previous layout if in the named layout. Useful to tempo‐
2382 rarily "zoom" the active window by switching to the stack layout:
2383
2384 map ctrl+alt+z toggle_layout stack
2385
2386 Font sizes
2387 You can change the font size for all top-level kitty OS windows at a
2388 time or only the current one.
2389
2390 Increase font size
2391
2392 map ctrl+shift+equal change_font_size all +2.0
2393 map ctrl+shift+plus change_font_size all +2.0
2394 map ctrl+shift+kp_add change_font_size all +2.0
2395 map cmd+plus change_font_size all +2.0 🍎
2396 map cmd+equal change_font_size all +2.0 🍎
2397 map shift+cmd+equal change_font_size all +2.0 🍎
2398
2399 Decrease font size
2400
2401 map ctrl+shift+minus change_font_size all -2.0
2402 map ctrl+shift+kp_subtract change_font_size all -2.0
2403 map cmd+minus change_font_size all -2.0 🍎
2404 map shift+cmd+minus change_font_size all -2.0 🍎
2405
2406 Reset font size
2407
2408 map ctrl+shift+backspace change_font_size all 0
2409 map cmd+0 change_font_size all 0 🍎
2410
2411 To setup shortcuts for specific font sizes:
2412
2413 map kitty_mod+f6 change_font_size all 10.0
2414
2415 To setup shortcuts to change only the current OS window's font size:
2416
2417 map kitty_mod+f6 change_font_size current 10.0
2418
2419 Select and act on visible text
2420 Use the hints kitten to select text and either pass it to an external
2421 program or insert it into the terminal or copy it to the clipboard.
2422
2423 Open URL
2424
2425 map ctrl+shift+e open_url_with_hints
2426
2427 Open a currently visible URL using the keyboard. The program used to
2428 open the URL is specified in open_url_with.
2429
2430 Insert selected path
2431
2432 map ctrl+shift+p>f kitten hints --type path --program -
2433
2434 Select a path/filename and insert it into the terminal. Useful, for in‐
2435 stance to run git commands on a filename output from a previous git
2436 command.
2437
2438 Open selected path
2439
2440 map ctrl+shift+p>shift+f kitten hints --type path
2441
2442 Select a path/filename and open it with the default open program.
2443
2444 Insert selected line
2445
2446 map ctrl+shift+p>l kitten hints --type line --program -
2447
2448 Select a line of text and insert it into the terminal. Useful for the
2449 output of things like: ls -1.
2450
2451 Insert selected word
2452
2453 map ctrl+shift+p>w kitten hints --type word --program -
2454
2455 Select words and insert into terminal.
2456
2457 Insert selected hash
2458
2459 map ctrl+shift+p>h kitten hints --type hash --program -
2460
2461 Select something that looks like a hash and insert it into the termi‐
2462 nal. Useful with git, which uses SHA1 hashes to identify commits.
2463
2464 Open the selected file at the selected line
2465
2466 map ctrl+shift+p>n kitten hints --type linenum
2467
2468 Select something that looks like filename:linenum and open it in vim at
2469 the specified line number.
2470
2471 Open the selected hyperlink
2472
2473 map ctrl+shift+p>y kitten hints --type hyperlink
2474
2475 Select a hyperlink (i.e. a URL that has been marked as such by the ter‐
2476 minal program, for example, by ls --hyperlink=auto).
2477
2478 The hints kitten has many more modes of operation that you can map to
2479 different shortcuts. For a full description see hints kitten.
2480
2481 Miscellaneous
2482 Show documentation
2483
2484 map ctrl+shift+f1 show_kitty_doc overview
2485
2486 Toggle fullscreen
2487
2488 map ctrl+shift+f11 toggle_fullscreen
2489 map ctrl+cmd+f toggle_fullscreen 🍎
2490
2491 Toggle maximized
2492
2493 map ctrl+shift+f10 toggle_maximized
2494
2495 Toggle macOS secure keyboard entry
2496
2497 map opt+cmd+s toggle_macos_secure_keyboard_entry 🍎
2498
2499 Unicode input
2500
2501 map ctrl+shift+u kitten unicode_input
2502 map ctrl+cmd+space kitten unicode_input 🍎
2503
2504 Edit config file
2505
2506 map ctrl+shift+f2 edit_config_file
2507 map cmd+, edit_config_file 🍎
2508
2509 Open the kitty command shell
2510
2511 map ctrl+shift+escape kitty_shell window
2512
2513 Open the kitty shell in a new window / tab / overlay / os_window to
2514 control kitty using commands.
2515
2516 Increase background opacity
2517
2518 map ctrl+shift+a>m set_background_opacity +0.1
2519
2520 Decrease background opacity
2521
2522 map ctrl+shift+a>l set_background_opacity -0.1
2523
2524 Make background fully opaque
2525
2526 map ctrl+shift+a>1 set_background_opacity 1
2527
2528 Reset background opacity
2529
2530 map ctrl+shift+a>d set_background_opacity default
2531
2532 Reset the terminal
2533
2534 map ctrl+shift+delete clear_terminal reset active
2535 map opt+cmd+r clear_terminal reset active 🍎
2536
2537 You can create shortcuts to clear/reset the terminal. For example:
2538
2539 # Reset the terminal
2540 map f1 clear_terminal reset active
2541 # Clear the terminal screen by erasing all contents
2542 map f1 clear_terminal clear active
2543 # Clear the terminal scrollback by erasing it
2544 map f1 clear_terminal scrollback active
2545 # Scroll the contents of the screen into the scrollback
2546 map f1 clear_terminal scroll active
2547 # Clear everything up to the line with the cursor
2548 map f1 clear_terminal to_cursor active
2549
2550 If you want to operate on all kitty windows instead of just the current
2551 one, use all instead of active.
2552
2553 Some useful functions that can be defined in the shell rc files to per‐
2554 form various kinds of clearing of the current window:
2555
2556 clear-only-screen() {
2557 printf "\e[H\e[2J"
2558 }
2559
2560 clear-screen-and-scrollback() {
2561 printf "\e[H\e[3J"
2562 }
2563
2564 clear-screen-saving-contents-in-scrollback() {
2565 printf "\e[H\e[22J"
2566 }
2567
2568 For instance, using these escape codes, it is possible to remap Ctrl+L
2569 to both scroll the current screen contents into the scrollback buffer
2570 and clear the screen, instead of just clearing the screen. For ZSH, in
2571 ~/.zshrc, add:
2572
2573 ctrl_l() {
2574 builtin print -rn -- $'\r\e[0J\e[H\e[22J' >"$TTY"
2575 builtin zle .reset-prompt
2576 builtin zle -R
2577 }
2578 zle -N ctrl_l
2579 bindkey '^l' ctrl_l
2580
2581 Clear up to cursor line
2582
2583 map cmd+k clear_terminal to_cursor active 🍎
2584
2585 Reload kitty.conf
2586
2587 map ctrl+shift+f5 load_config_file
2588 map ctrl+cmd+, load_config_file 🍎
2589
2590 Reload kitty.conf, applying any changes since the last time it was
2591 loaded. Note that a handful of options cannot be dynamically changed
2592 and require a full restart of kitty. Particularly, when changing short‐
2593 cuts for actions located on the macOS global menu bar, a full restart
2594 is needed. You can also map a keybinding to load a different config
2595 file, for example:
2596
2597 map f5 load_config /path/to/alternative/kitty.conf
2598
2599 Note that all options from the original kitty.conf are discarded, in
2600 other words the new configuration replace the old ones.
2601
2602 Debug kitty configuration
2603
2604 map ctrl+shift+f6 debug_config
2605 map opt+cmd+, debug_config 🍎
2606
2607 Show details about exactly what configuration kitty is running with and
2608 its host environment. Useful for debugging issues.
2609
2610 Send arbitrary text on key presses
2611
2612 You can tell kitty to send arbitrary (UTF-8) encoded text to the client
2613 program when pressing specified shortcut keys. For example:
2614
2615 map ctrl+alt+a send_text all Special text
2616
2617 This will send "Special text" when you press the Ctrl+Alt+A key combi‐
2618 nation. The text to be sent decodes ANSI C escapes so you can use es‐
2619 capes like \e to send control codes or \u21fb to send Unicode charac‐
2620 ters (or you can just input the Unicode characters directly as UTF-8
2621 text). You can use kitten show_key to get the key escape codes you want
2622 to emulate.
2623
2624 The first argument to send_text is the keyboard modes in which to acti‐
2625 vate the shortcut. The possible values are normal, application, kitty
2626 or a comma separated combination of them. The modes normal and appli‐
2627 cation refer to the DECCKM cursor key mode for terminals, and kitty
2628 refers to the kitty extended keyboard protocol. The special value all
2629 means all of them.
2630
2631 Some more examples:
2632
2633 # Output a word and move the cursor to the start of the line (like typing and pressing Home)
2634 map ctrl+alt+a send_text normal Word\e[H
2635 map ctrl+alt+a send_text application Word\eOH
2636 # Run a command at a shell prompt (like typing the command and pressing Enter)
2637 map ctrl+alt+a send_text normal,application some command with arguments\r
2638
2639 Open kitty Website
2640
2641 map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/ 🍎
2642
2643 Hide macOS kitty application
2644
2645 map cmd+h hide_macos_app 🍎
2646
2647 Hide macOS other applications
2648
2649 map opt+cmd+h hide_macos_other_apps 🍎
2650
2651 Minimize macOS window
2652
2653 map cmd+m minimize_macos_window 🍎
2654
2655 Quit kitty
2656
2657 map cmd+q quit 🍎
2658
2660 You can edit a fully commented sample kitty.conf by pressing the
2661 ctrl+shift+f2 shortcut in kitty. This will generate a config file with
2662 full documentation and all settings commented out. If you have a
2663 pre-existing kitty.conf, then that will be used instead, delete it to
2664 see the sample file.
2665
2666 A default configuration file can also be generated by running:
2667
2668 kitty +runpy 'from kitty.config import *; print(commented_out_default_config())'
2669
2670 This will print the commented out default config file to STDOUT.
2671
2673 See the list of all the things you can make kitty can do.
2674
2675 Mappable actions
2676 The actions described below can be mapped to any key press or mouse ac‐
2677 tion using the map and mouse_map directives in kitty.conf. For configu‐
2678 ration examples, see the default shortcut links for each action.
2679
2680 Copy/paste
2681 clear_selection
2682
2683 Clear the current selection
2684
2685 copy_and_clear_or_interrupt
2686
2687 Copy the selected text from the active window to the clipboard and
2688 clear selection, if no selection, send SIGINT (aka ctrl+c)
2689
2690 copy_ansi_to_clipboard
2691
2692 Copy the selected text from the active window to the clipboard with
2693 ANSI formatting codes
2694
2695 copy_or_interrupt
2696
2697 Copy the selected text from the active window to the clipboard, if no
2698 selection, send SIGINT (aka ctrl+c)
2699
2700 copy_to_clipboard
2701
2702 Copy the selected text from the active window to the clipboard
2703
2704 Default shortcuts using this action: ctrl+shift+c
2705
2706 pass_selection_to_program
2707
2708 Pass the selected text from the active window to the specified program
2709
2710 Default shortcuts using this action: ctrl+shift+o
2711
2712 paste
2713
2714 Paste the specified text into the current window. ANSI C escapes are
2715 decoded.
2716
2717 show_first_command_output_on_screen
2718
2719 Show output from the first shell command on screen in a pager like less
2720
2721 Requires Shell integration to work
2722
2723 show_last_command_output
2724
2725 Show output from the last shell command in a pager like less
2726
2727 Requires Shell integration to work
2728
2729 Default shortcuts using this action: ctrl+shift+g
2730
2731 show_last_non_empty_command_output
2732
2733 Show the last non-empty output from a shell command in a pager like
2734 less
2735
2736 Requires Shell integration to work
2737
2738 show_last_visited_command_output
2739
2740 Show the first command output below the last scrolled position via
2741 scroll_to_prompt
2742
2743 or the last mouse clicked command output in a pager like less
2744
2745 Requires Shell integration to work
2746
2747 show_scrollback
2748
2749 Show scrollback in a pager like less
2750
2751 Default shortcuts using this action: ctrl+shift+h
2752
2753 copy_to_buffer
2754
2755 Copy the selection from the active window to the specified buffer
2756
2757 See Multiple copy/paste buffers for details.
2758
2759 paste_from_buffer
2760
2761 Paste from the specified buffer to the active window
2762
2763 See Multiple copy/paste buffers for details.
2764
2765 paste_from_clipboard
2766
2767 Paste from the clipboard to the active window
2768
2769 Default shortcuts using this action: ctrl+shift+v
2770
2771 paste_from_selection
2772
2773 Paste from the primary selection, if present, otherwise the clipboard
2774 to the active window
2775
2776 Default shortcuts using this action: ctrl+shift+s
2777
2778 Debugging
2779 dump_lines_with_attrs
2780
2781 Show a dump of the current lines in the scrollback + screen with their
2782 line attributes
2783
2784 close_shared_ssh_connections
2785
2786 Close all shared SSH connections
2787
2788 See share_connections for details.
2789
2790 debug_config
2791
2792 Show the effective configuration kitty is running with
2793
2794 Default shortcuts using this action: ctrl+shift+f6
2795
2796 show_kitty_env_vars
2797
2798 Show the environment variables that the kitty process sees
2799
2800 Layouts
2801 goto_layout
2802
2803 Switch to the named layout
2804
2805 In case there are multiple layouts with the same name and different op‐
2806 tions, specify the full layout definition or a unique prefix of the
2807 full definition.
2808
2809 For example:
2810
2811 map f1 goto_layout tall
2812 map f2 goto_layout fat:bias=20
2813
2814 last_used_layout
2815
2816 Go to the previously used layout
2817
2818 layout_action
2819
2820 Perform a layout specific action. See Arrange windows for details
2821
2822 next_layout
2823
2824 Go to the next enabled layout. Can optionally supply an integer to jump
2825 by the specified number.
2826
2827 Default shortcuts using this action: ctrl+shift+l
2828
2829 toggle_layout
2830
2831 Toggle the named layout
2832
2833 Switches to the named layout if another layout is current, otherwise
2834 switches to the last used layout. Useful to "zoom" a window temporarily
2835 by switching to the stack layout. For example:
2836
2837 map f1 toggle_layout stack
2838
2839 Marks
2840 remove_marker
2841
2842 Remove a previously created marker
2843
2844 scroll_to_mark
2845
2846 Scroll to the next or previous mark of the specified type
2847
2848 toggle_marker
2849
2850 Toggle the current marker on/off
2851
2852 create_marker
2853
2854 Create a new marker
2855
2856 Miscellaneous
2857 send_text
2858
2859 Send the specified text to the active window
2860
2861 See send_text for details.
2862
2863 Default shortcuts using this action: ctrl+shift+alt+h
2864
2865 show_kitty_doc
2866
2867 Display the specified kitty documentation, preferring a local copy, if
2868 found.
2869
2870 For example:
2871
2872 # show the config docs
2873 map f1 show_kitty_doc conf
2874 # show the ssh kitten docs
2875 map f1 show_kitty_doc kittens/ssh
2876
2877 Default shortcuts using this action: ctrl+shift+f1
2878
2879 signal_child
2880
2881 Send the specified SIGNAL to the foreground process in the active win‐
2882 dow
2883
2884 For example:
2885
2886 map f1 signal_child SIGTERM
2887
2888 clear_terminal
2889
2890 Clear the terminal
2891
2892 See reset_terminal for details. For example:
2893
2894 # Reset the terminal
2895 map f1 clear_terminal reset active
2896 # Clear the terminal screen by erasing all contents
2897 map f1 clear_terminal clear active
2898 # Clear the terminal scrollback by erasing it
2899 map f1 clear_terminal scrollback active
2900 # Scroll the contents of the screen into the scrollback
2901 map f1 clear_terminal scroll active
2902 # Clear everything up to the line with the cursor
2903 map f1 clear_terminal to_cursor active
2904
2905 Default shortcuts using this action: cmd+k, ctrl+shift+delete
2906
2907 combine
2908
2909 Combine multiple actions and map to a single keypress
2910
2911 The syntax is:
2912
2913 map key combine <separator> action1 <separator> action2 <separator> action3 ...
2914
2915 For example:
2916
2917 map kitty_mod+e combine : new_window : next_layout
2918
2919 disable_ligatures_in
2920
2921 Turn on/off ligatures in the specified window
2922
2923 See disable_ligatures for details
2924
2925 discard_event
2926
2927 Discard this event completely ignoring it
2928
2929 edit_config_file
2930
2931 Edit the kitty.conf config file in your favorite text editor
2932
2933 Default shortcuts using this action: ctrl+shift+f2
2934
2935 hide_macos_app
2936
2937 Hide macOS kitty application
2938
2939 Default shortcuts using this action: cmd+h
2940
2941 hide_macos_other_apps
2942
2943 Hide macOS other applications
2944
2945 Default shortcuts using this action: opt+cmd+h
2946
2947 input_unicode_character
2948
2949 Input an arbitrary unicode character. See Unicode input for details.
2950
2951 kitten
2952
2953 Run the specified kitten. See Custom kittens for details
2954
2955 Default shortcuts using this action:
2956
2957 • Hints - ctrl+shift+p>h Insert selected hash
2958
2959 • Hints - ctrl+shift+p>l Insert selected line
2960
2961 • Hints - ctrl+shift+p>f Insert selected path
2962
2963 • Hints - ctrl+shift+p>w Insert selected word
2964
2965 • Hints - ctrl+shift+p>shift+f Open selected path
2966
2967 • Hints - ctrl+shift+p>n Open the selected file at the selected line
2968
2969 • Hints - ctrl+shift+p>y Open the selected hyperlink
2970
2971 • Unicode input - ctrl+shift+u Unicode input
2972
2973 kitty_shell
2974
2975 Run the kitty shell to control kitty with commands
2976
2977 Default shortcuts using this action: ctrl+shift+escape
2978
2979 launch
2980
2981 Launch the specified program in a new window/tab/etc.
2982
2983 See The launch command for details
2984
2985 load_config_file
2986
2987 Reload the config file
2988
2989 If mapped without arguments reloads the default config file, otherwise
2990 loads the specified config files, in order. Loading a config file re‐
2991 places all config options. For example:
2992
2993 map f5 load_config_file /path/to/some/kitty.conf
2994
2995 Default shortcuts using this action: ctrl+shift+f5
2996
2997 minimize_macos_window
2998
2999 Minimize macOS window
3000
3001 Default shortcuts using this action: cmd+m
3002
3003 open_url
3004
3005 Open the specified URL
3006
3007 Default shortcuts using this action: shift+cmd+/
3008
3009 open_url_with_hints
3010
3011 Click a URL using the keyboard
3012
3013 Default shortcuts using this action: ctrl+shift+e
3014
3015 remote_control
3016
3017 Run a remote control command without needing to allow remote control
3018
3019 For example:
3020
3021 map f1 remote_control set-spacing margin=30
3022
3023 See Mapping key presses to remote control commands for details.
3024
3025 remote_control_script
3026
3027 Run a remote control script without needing to allow remote control
3028
3029 For example:
3030
3031 map f1 remote_control_script arg1 arg2 ...
3032
3033 See Mapping key presses to remote control commands for details.
3034
3035 set_colors
3036
3037 Change colors in the specified windows
3038
3039 For details, see kitten @ set-colors. For example:
3040
3041 map f5 set_colors --configured /path/to/some/config/file/colors.conf
3042
3043 sleep
3044
3045 Sleep for the specified time period. Suffix can be s for seconds, m,
3046 for minutes, h for hours and d for days. The time can be fractional.
3047
3048 toggle_macos_secure_keyboard_entry
3049
3050 Toggle macOS secure keyboard entry
3051
3052 Default shortcuts using this action: opt+cmd+s
3053
3054 no_op
3055
3056 Unbind a shortcut
3057
3058 Mapping a shortcut to no_op causes kitty to not intercept the key
3059 stroke anymore, instead passing it to the program running inside it.
3060
3061 Mouse actions
3062 mouse_click_url
3063
3064 Click the URL under the mouse
3065
3066 mouse_click_url_or_select
3067
3068 Click the URL under the mouse only if the screen has no selection
3069
3070 mouse_handle_click
3071
3072 Handle a mouse click
3073
3074 Try to perform the specified actions one after the other till one of
3075 them is successful. Supported actions are:
3076
3077 selection - check for a selection and if one exists abort processing
3078 link - if a link exists under the mouse, click it
3079 prompt - if the mouse click happens at a shell prompt move the cursor to the mouse location
3080
3081 For examples, see Mouse actions
3082
3083 mouse_select_command_output
3084
3085 Select clicked command output
3086
3087 Requires Shell integration to work
3088
3089 mouse_selection
3090
3091 Manipulate the selection based on the current mouse position
3092
3093 For examples, see Mouse actions
3094
3095 mouse_show_command_output
3096
3097 Show clicked command output in a pager like less
3098
3099 Requires Shell integration to work
3100
3101 paste_selection
3102
3103 Paste the current primary selection
3104
3105 paste_selection_or_clipboard
3106
3107 Paste the current primary selection or the clipboard if no selection is
3108 present
3109
3110 Scrolling
3111 scroll_end
3112
3113 Scroll to the bottom of the scrollback buffer when in main screen
3114
3115 Default shortcuts using this action: ctrl+shift+end
3116
3117 scroll_home
3118
3119 Scroll to the top of the scrollback buffer when in main screen
3120
3121 Default shortcuts using this action: ctrl+shift+home
3122
3123 scroll_line_down
3124
3125 Scroll down by one line when in main screen
3126
3127 Default shortcuts using this action: ctrl+shift+down
3128
3129 scroll_line_up
3130
3131 Scroll up by one line when in main screen
3132
3133 Default shortcuts using this action: ctrl+shift+up
3134
3135 scroll_page_down
3136
3137 Scroll down by one page when in main screen
3138
3139 Default shortcuts using this action: ctrl+shift+page_down
3140
3141 scroll_page_up
3142
3143 Scroll up by one page when in main screen
3144
3145 Default shortcuts using this action: ctrl+shift+page_up
3146
3147 scroll_prompt_to_bottom
3148
3149 Scroll prompt to the bottom of the screen, filling in extra lines from
3150 the scrollback buffer, when in main screen
3151
3152 scroll_prompt_to_top
3153
3154 Scroll prompt to the top of the screen, filling screen with empty
3155 lines, when in main screen
3156
3157 scroll_to_prompt
3158
3159 Scroll to the previous/next shell command prompt
3160
3161 Allows easy jumping from one command to the next. Requires working
3162 Shell integration. Takes a single, optional, number as argument which
3163 is the number of prompts to jump, negative values jump up and positive
3164 values jump down. A value of zero will jump to the last prompt visited
3165 by this action. For example:
3166
3167 map ctrl+p scroll_to_prompt -1 # jump to previous
3168 map ctrl+n scroll_to_prompt 1 # jump to next
3169 map ctrl+o scroll_to_prompt 0 # jump to last visited
3170
3171 Default shortcuts using this action: ctrl+shift+x, ctrl+shift+z
3172
3173 Tab management
3174 close_other_tabs_in_os_window
3175
3176 Close all the tabs in the current OS window other than the currently
3177 active tab
3178
3179 close_tab
3180
3181 Close the current tab
3182
3183 Default shortcuts using this action: ctrl+shift+q
3184
3185 detach_tab
3186
3187 Detach a tab, moving it to another OS Window
3188
3189 See detaching windows for details.
3190
3191 goto_tab
3192
3193 Go to the specified tab, by number, starting with 1
3194
3195 Zero and negative numbers go to previously active tabs
3196
3197 move_tab_backward
3198
3199 Move the active tab backward
3200
3201 Default shortcuts using this action: ctrl+shift+,
3202
3203 move_tab_forward
3204
3205 Move the active tab forward
3206
3207 Default shortcuts using this action: ctrl+shift+.
3208
3209 new_tab
3210
3211 Create a new tab
3212
3213 Default shortcuts using this action: ctrl+shift+t
3214
3215 new_tab_with_cwd
3216
3217 Create a new tab with working directory for the window in it set to the
3218 same as the active window
3219
3220 next_tab
3221
3222 Make the next tab active
3223
3224 Default shortcuts using this action: ctrl+shift+right
3225
3226 previous_tab
3227
3228 Make the previous tab active
3229
3230 Default shortcuts using this action: ctrl+shift+left
3231
3232 select_tab
3233
3234 Interactively select a tab to switch to
3235
3236 set_tab_title
3237
3238 Change the title of the active tab interactively, by typing in the new
3239 title.
3240
3241 If you specify an argument to this action then that is used as the ti‐
3242 tle instead of asking for it. Use the empty string ("") to reset the
3243 title to default. Use a space (" ") to indicate that the prompt should
3244 not be pre-filled. For example:
3245
3246 # interactive usage
3247 map f1 set_tab_title
3248 # set a specific title
3249 map f2 set_tab_title some title
3250 # reset to default
3251 map f3 set_tab_title ""
3252 # interactive usage without prefilled prompt
3253 map f3 set_tab_title " "
3254
3255 Default shortcuts using this action: ctrl+shift+alt+t
3256
3257 Window management
3258 set_window_title
3259
3260 Change the title of the active window interactively, by typing in the
3261 new title.
3262
3263 If you specify an argument to this action then that is used as the ti‐
3264 tle instead of asking for it. Use the empty string ("") to reset the
3265 title to default. Use a space (" ") to indicate that the prompt should
3266 not be pre-filled. For example:
3267
3268 # interactive usage
3269 map f1 set_window_title
3270 # set a specific title
3271 map f2 set_window_title some title
3272 # reset to default
3273 map f3 set_window_title ""
3274 # interactive usage without prefilled prompt
3275 map f3 set_window_title " "
3276
3277 close_other_windows_in_tab
3278
3279 Close all windows in the tab other than the currently active window
3280
3281 eighth_window
3282
3283 Focus the eighth window
3284
3285 Default shortcuts using this action: ctrl+shift+8
3286
3287 fifth_window
3288
3289 Focus the fifth window
3290
3291 Default shortcuts using this action: ctrl+shift+5
3292
3293 first_window
3294
3295 Focus the first window
3296
3297 Default shortcuts using this action: ctrl+shift+1
3298
3299 focus_visible_window
3300
3301 Focus a visible window by pressing the number of the window. Window
3302 numbers are displayed
3303
3304 over the windows for easy selection in this mode. See
3305 visual_window_select_characters.
3306
3307 Default shortcuts using this action: ctrl+shift+f7
3308
3309 fourth_window
3310
3311 Focus the fourth window
3312
3313 Default shortcuts using this action: ctrl+shift+4
3314
3315 move_window
3316
3317 Move the window in the specified direction
3318
3319 For example:
3320
3321 map ctrl+left move_window left
3322 map ctrl+down move_window bottom
3323
3324 move_window_backward
3325
3326 Move active window backward (swap it with the previous window)
3327
3328 Default shortcuts using this action: ctrl+shift+b
3329
3330 move_window_forward
3331
3332 Move active window forward (swap it with the next window)
3333
3334 Default shortcuts using this action: ctrl+shift+f
3335
3336 move_window_to_top
3337
3338 Move active window to the top (make it the first window)
3339
3340 Default shortcuts using this action: ctrl+shift+`
3341
3342 neighboring_window
3343
3344 Focus the neighboring window in the current tab
3345
3346 For example:
3347
3348 map ctrl+left neighboring_window left
3349 map ctrl+down neighboring_window bottom
3350
3351 next_window
3352
3353 Focus the next window in the current tab
3354
3355 Default shortcuts using this action: ctrl+shift+]
3356
3357 ninth_window
3358
3359 Focus the ninth window
3360
3361 Default shortcuts using this action: ctrl+shift+9
3362
3363 nth_window
3364
3365 Focus the nth window if positive or the previously active windows if
3366 negative. When the number is larger
3367
3368 than the number of windows focus the last window. For example:
3369
3370 # focus the previously active window
3371 map ctrl+p nth_window -1
3372 # focus the first window
3373 map ctrl+1 nth_window 0
3374
3375 previous_window
3376
3377 Focus the previous window in the current tab
3378
3379 Default shortcuts using this action: ctrl+shift+[
3380
3381 reset_window_sizes
3382
3383 Reset window sizes undoing any dynamic resizing of windows
3384
3385 resize_window
3386
3387 Resize the active window by the specified amount
3388
3389 See Resizing windows for details.
3390
3391 second_window
3392
3393 Focus the second window
3394
3395 Default shortcuts using this action: ctrl+shift+2
3396
3397 seventh_window
3398
3399 Focus the seventh window
3400
3401 Default shortcuts using this action: ctrl+shift+7
3402
3403 sixth_window
3404
3405 Focus the sixth window
3406
3407 Default shortcuts using this action: ctrl+shift+6
3408
3409 swap_with_window
3410
3411 Swap the current window with another window in the current tab, se‐
3412 lected visually. See visual_window_select_characters
3413
3414 Default shortcuts using this action: ctrl+shift+f8
3415
3416 tenth_window
3417
3418 Focus the tenth window
3419
3420 Default shortcuts using this action: ctrl+shift+0
3421
3422 third_window
3423
3424 Focus the third window
3425
3426 Default shortcuts using this action: ctrl+shift+3
3427
3428 change_font_size
3429
3430 Change the font size for the current or all OS Windows
3431
3432 See Font sizes for details.
3433
3434 Default shortcuts using this action: ctrl+shift+minus,
3435 ctrl+shift+equal, ctrl+shift+backspace
3436
3437 close_os_window
3438
3439 Close the currently active OS Window
3440
3441 Default shortcuts using this action: shift+cmd+w
3442
3443 close_window
3444
3445 Close the currently active window
3446
3447 Default shortcuts using this action: ctrl+shift+w
3448
3449 close_window_with_confirmation
3450
3451 Close window with confirmation
3452
3453 Asks for confirmation before closing the window. If you don't want the
3454 confirmation when the window is sitting at a shell prompt (requires
3455 Shell integration), use:
3456
3457 map f1 close_window_with_confirmation ignore-shell
3458
3459 detach_window
3460
3461 Detach a window, moving it to another tab or OS Window
3462
3463 See detaching windows for details.
3464
3465 new_os_window
3466
3467 New OS Window
3468
3469 Default shortcuts using this action: ctrl+shift+n
3470
3471 new_os_window_with_cwd
3472
3473 New OS Window with the same working directory as the currently active
3474 window
3475
3476 new_window
3477
3478 Create a new window
3479
3480 Default shortcuts using this action: ctrl+shift+enter
3481
3482 new_window_with_cwd
3483
3484 Create a new window with working directory same as that of the active
3485 window
3486
3487 nth_os_window
3488
3489 Focus the nth OS window
3490
3491 quit
3492
3493 Quit, closing all windows
3494
3495 Default shortcuts using this action: cmd+q
3496
3497 set_background_opacity
3498
3499 Set the background opacity for the active OS Window
3500
3501 For example:
3502
3503 map f1 set_background_opacity +0.1
3504 map f2 set_background_opacity -0.1
3505 map f3 set_background_opacity 0.5
3506
3507 Default shortcuts using this action: ctrl+shift+a>l, ctrl+shift+a>1,
3508 ctrl+shift+a>m, ctrl+shift+a>d
3509
3510 start_resizing_window
3511
3512 Resize the active window interactively
3513
3514 See Resizing windows for details.
3515
3516 Default shortcuts using this action: ctrl+shift+r
3517
3518 toggle_fullscreen
3519
3520 Toggle the fullscreen status of the active OS Window
3521
3522 Default shortcuts using this action: ctrl+shift+f11
3523
3524 toggle_maximized
3525
3526 Toggle the maximized status of the active OS Window
3527
3528 Default shortcuts using this action: ctrl+shift+f10
3529
3531 Kovid Goyal
3532
3534 2023, Kovid Goyal
3535
3536
3537
3538
35390.31.0 Nov 08, 2023 KITTY.CONF(5)