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