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