1KITTY.CONF(5)                        kitty                       KITTY.CONF(5)
2
3
4

NAME

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

MOUSE ACTIONS

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

THE COLOR TABLE

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

CLIPBOARD

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

SCROLLING

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

WINDOW MANAGEMENT

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

TAB MANAGEMENT

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

LAYOUT MANAGEMENT

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

FONT SIZES

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

SELECT AND ACT ON VISIBLE TEXT

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

MISCELLANEOUS

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

MAPPABLE ACTIONS

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

COPY/PASTE

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

DEBUGGING

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

LAYOUTS

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

MARKS

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

MISCELLANEOUS

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
2866Hints - ctrl+shift+p>h Insert selected hash
2867
2868Hints - ctrl+shift+p>l Insert selected line
2869
2870Hints - ctrl+shift+p>f Insert selected path
2871
2872Hints - ctrl+shift+p>w Insert selected word
2873
2874Hints - ctrl+shift+p>shift+f Open selected path
2875
2876Hints - ctrl+shift+p>n Open the selected file at the selected line
2877
2878Hints - ctrl+shift+p>y Open the selected hyperlink
2879
2880Unicode 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

MOUSE ACTIONS

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

SCROLLING

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

TAB MANAGEMENT

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

WINDOW MANAGEMENT

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

AUTHOR

3411       Kovid Goyal
3412
3414       2023, Kovid Goyal
3415
3416
3417
3418
34190.29.2                           Jul 27, 2023                    KITTY.CONF(5)
Impressum