dwww Home | Manual pages | Find package

KITTY.CONF(5)                        kitty                       KITTY.CONF(5)

NAME
       kitty.conf - kitty.conf Documentation

       kitty  is  highly  customizable, everything from keyboard shortcuts, to
       rendering frames-per-second. See below for  an  overview  of  all  cus-
       tomization possibilities.

       You  can  open  the  config file within kitty by pressing ctrl+shift+f2
       (⌘+, on macOS). A kitty.conf with commented default configurations  and
       descriptions  will  be  created  if  the  file does not exist.  You can
       reload the config file within kitty by pressing ctrl+shift+f5 (⌃+⌘+, on
       macOS)  or  sending kitty the SIGUSR1 signal.  You can also display the
       current configuration by pressing ctrl+shift+f6 (⌥+⌘+, on macOS).

       kitty looks for a config file in the  OS  config  directories  (usually
       ~/.config/kitty/kitty.conf)  but  you  can pass a specific path via the
       kitty --config option or  use  the  KITTY_CONFIG_DIRECTORY  environment
       variable. See kitty --config for full details.

       Comments  can  be added to the config file as lines starting with the #
       character. This works only if the # character is the first character in
       the line.

       You  can  include secondary config files via the include directive.  If
       you use a relative path for include, it is resolved with respect to the
       location  of  the  current config file. Note that environment variables
       are expanded, so ${USER}.conf becomes name.conf if USER=name. Also, you
       can  use globinclude to include files matching a shell glob pattern and
       envinclude to include configuration from environment variables. For ex-
       ample:

          include other.conf
          # Include *.conf files from all subdirs of kitty.d inside the kitty config dir
          globinclude kitty.d/**/*.conf
          # Include the *contents* of all env vars starting with KITTY_CONF_
          envinclude KITTY_CONF_*

       NOTE:
          Syntax   highlighting   for  kitty.conf  in  vim  is  available  via
          vim-kitty.

       kitty has very powerful font management. You can  configure  individual
       font faces and even specify special fonts for particular characters.

       font_family, bold_font, italic_font, bold_italic_font

          font_family      monospace
          bold_font        auto
          italic_font      auto
          bold_italic_font auto

       You  can  specify different fonts for the bold/italic/bold-italic vari-
       ants.  To get a full list of supported fonts use the kitty  +list-fonts
       command.   By  default they are derived automatically, by the OSes font
       system. When bold_font or bold_italic_font is set to auto on macOS, the
       priority of bold fonts is semi-bold, bold, heavy. Setting them manually
       is useful for font families that have many weight variants  like  Book,
       Medium, Thick, etc.  For example:

          font_family      Operator Mono Book
          bold_font        Operator Mono Medium
          italic_font      Operator Mono Book Italic
          bold_italic_font Operator Mono Medium Italic

       font_size

          font_size 11.0

       Font size (in pts)

       force_ltr

          force_ltr no

       kitty  does  not  support  BIDI  (bidirectional text), however, for RTL
       scripts, words are automatically displayed in RTL. That is to  say,  in
       an  RTL  script,  the  words  "HELLO  WORLD" display in kitty as "WORLD
       HELLO", and if you try to select a substring of an  RTL-shaped  string,
       you  will get the character that would be there had the the string been
       LTR. For example, assuming the Hebrew word ×××××××, selecting the char-
       acter  that  on the screen appears to be × actually writes into the se-
       lection buffer the character ×.  kitty's default behavior is useful  in
       conjunction  with  a  filter to reverse the word order, however, if you
       wish to manipulate RTL glyphs, it can be very challenging to work with,
       so this option is provided to turn it off. Furthermore, this option can
       be used with the command line program GNU FriBidi to get BIDI  support,
       because  it  will  force  kitty  to always treat the text as LTR, which
       FriBidi expects for terminals.

       symbol_map

          symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols

       Map the specified Unicode codepoints to a particular  font.  Useful  if
       you  need  special  rendering  for some symbols, such as for Powerline.
       Avoids the need for patched fonts. Each Unicode code point is specified
       in  the  form  U+<code  point in hexadecimal>. You can specify multiple
       code points, separated by commas and ranges separated by hyphens.  This
       option can be specified multiple times. The syntax is:

          symbol_map codepoints Font Family Name

       narrow_symbols

          narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1

       Usually,  for  Private  Use  Unicode characters and some symbol/dingbat
       characters, if the character is followed by one or more  spaces,  kitty
       will use those extra cells to render the character larger, if the char-
       acter in the font has a wide aspect ratio. Using this  option  you  can
       force  kitty  to  restrict  the  specified code points to render in the
       specified number of cells (defaulting to one cell).  This option can be
       specified multiple times. The syntax is:

          narrow_symbols codepoints [optionally the number of cells]

       disable_ligatures

          disable_ligatures never

       Choose how you want to handle multi-character ligatures. The default is
       to always render them. You can tell kitty to not render them  when  the
       cursor  is  over  them  by using cursor to make editing easier, or have
       kitty never render them at all by using always, if you don't like them.
       The  ligature strategy can be set per-window either using the kitty re-
       mote control facility or by defining shortcuts for  it  in  kitty.conf,
       for example:

          map alt+1 disable_ligatures_in active always
          map alt+2 disable_ligatures_in all never
          map alt+3 disable_ligatures_in tab cursor

       Note  that  this refers to programming ligatures, typically implemented
       using the calt OpenType feature. For disabling general  ligatures,  use
       the font_features option.

       font_features

          font_features none

       Choose  exactly  which  OpenType features to enable or disable. This is
       useful as some fonts might have features worthwhile in a terminal.  For
       example,  Fira  Code  includes  a discretionary feature, zero, which in
       that font changes the appearance of the zero (0), to make it more  eas-
       ily distinguishable from Ø. Fira Code also includes other discretionary
       features known as Stylistic Sets which have the tags ss01 through ss20.

       For the exact syntax to use for individual features, see  the  HarfBuzz
       documentation.

       Note  that  this  code  is indexed by PostScript name, and not the font
       family. This allows you to define very precise feature  settings;  e.g.
       you  can  disable  a  feature in the italic font but not in the regular
       font.

       On Linux, font features are first read from the FontConfig database and
       then  this  option  is  applied, so they can be configured in a single,
       central place.

       To get the PostScript name for a font, use kitty +list-fonts --psnames:

          $ kitty +list-fonts --psnames | grep Fira
          Fira Code
          Fira Code Bold (FiraCode-Bold)
          Fira Code Light (FiraCode-Light)
          Fira Code Medium (FiraCode-Medium)
          Fira Code Regular (FiraCode-Regular)
          Fira Code Retina (FiraCode-Retina)

       The part in brackets is the PostScript name.

       Enable alternate zero and oldstyle numerals:

          font_features FiraCode-Retina +zero +onum

       Enable only alternate zero in the bold font:

          font_features FiraCode-Bold +zero

       Disable the normal ligatures, but keep the calt feature which (in  this
       font) breaks up monotony:

          font_features TT2020StyleB-Regular -liga +calt

       In  conjunction  with force_ltr, you may want to disable Arabic shaping
       entirely, and only look at their isolated forms if they show  up  in  a
       document.  You can do this with e.g.:

          font_features UnifontMedium +isol -medi -fina -init

       modify_font

          modify_font

       Modify  font  characteristics  such as the position or thickness of the
       underline and strikethrough.  The modifications can have the suffix  px
       for  pixels or % for percentage of original value.  No suffix means use
       pts. For example:

          modify_font underline_position -2
          modify_font underline_thickness 150%
          modify_font strikethrough_position 2px

       Additionally, you can modify the size of the cell in  which  each  font
       glyph  is rendered and the baseline at which the glyph is placed in the
       cell. For example:

          modify_font cell_width 80%
          modify_font cell_height -2px
          modify_font baseline 3

       Note that modifying the baseline will automatically adjust  the  under-
       line  and  strikethrough  positions  by the same amount. Increasing the
       baseline raises glyphs inside the cell and decreasing it  lowers  them.
       Decreasing  the  cell size might cause rendering artifacts, so use with
       care.

       box_drawing_scale

          box_drawing_scale 0.001, 1, 1.5, 2

       The sizes of the lines used for the  box  drawing  Unicode  characters.
       These  values are in pts. They will be scaled by the monitor DPI to ar-
       rive at a pixel value.  There must  be  four  values  corresponding  to
       thin, normal, thick, and very thick lines.

       cursor

          cursor #cccccc

       Default  cursor color. If set to the special value none the cursor will
       be rendered with a "reverse video" effect. It's color will be the color
       of  the  text in the cell it is over and the text will be rendered with
       the background color of the cell. Note that if the program  running  in
       the terminal sets a cursor color, this takes precedence. Also, the cur-
       sor colors are modified if the cell background  and  foreground  colors
       have very low contrast.

       cursor_text_color

          cursor_text_color #111111

       The  color  of  text under the cursor. If you want it rendered with the
       background color of the cell underneath instead, use the  special  key-
       word:  background.  Note that if cursor is set to none then this option
       is ignored.

       cursor_shape

          cursor_shape block

       The cursor shape can be one of block, beam, underline.  Note that  when
       reloading  the config this will be changed only if the cursor shape has
       not been set by the program running in the terminal. This sets the  de-
       fault  cursor  shape, applications running in the terminal can override
       it. In particular, shell integration in kitty sets the cursor shape  to
       beam  at shell prompts. You can avoid this by setting shell_integration
       to no-cursor.

       cursor_beam_thickness

          cursor_beam_thickness 1.5

       The thickness of the beam cursor (in pts).

       cursor_underline_thickness

          cursor_underline_thickness 2.0

       The thickness of the underline cursor (in pts).

       cursor_blink_interval

          cursor_blink_interval -1

       The interval to blink the cursor (in seconds). Set to zero  to  disable
       blinking.  Negative values mean use system default. Note that the mini-
       mum interval will be limited to repaint_delay.

       cursor_stop_blinking_after

          cursor_stop_blinking_after 15.0

       Stop blinking cursor after the specified number of seconds of  keyboard
       inactivity. Set to zero to never stop blinking.

       scrollback_lines

          scrollback_lines 2000

       Number of lines of history to keep in memory for scrolling back. Memory
       is allocated on demand. Negative  numbers  are  (effectively)  infinite
       scrollback.   Note  that using very large scrollback is not recommended
       as it can slow down performance of the  terminal  and  also  use  large
       amounts  of RAM. Instead, consider using scrollback_pager_history_size.
       Note that on config reload if this is changed it will only affect newly
       created windows, not existing ones.

       scrollback_pager

          scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER

       Program  with  which to view scrollback in a new window. The scrollback
       buffer is passed as STDIN to this program. If you change it, make  sure
       the  program  you  use  can handle ANSI escape sequences for colors and
       text formatting.  INPUT_LINE_NUMBER in the command line above  will  be
       replaced  by an integer representing which line should be at the top of
       the screen. Similarly CURSOR_LINE and CURSOR_COLUMN will be replaced by
       the  current cursor position or set to 0 if there is no cursor, for ex-
       ample, when showing the last command output.

       scrollback_pager_history_size

          scrollback_pager_history_size 0

       Separate scrollback history size (in MB), used only  for  browsing  the
       scrollback buffer with pager. This separate buffer is not available for
       interactive scrolling but will be piped to the pager program when view-
       ing  scrollback buffer in a separate window. The current implementation
       stores the data in UTF-8, so approximatively 10000 lines  per  megabyte
       at  100  chars  per  line, for pure ASCII, unformatted text. A value of
       zero or less disables this feature. The maximum allowed  size  is  4GB.
       Note that on config reload if this is changed it will only affect newly
       created windows, not existing ones.

       scrollback_fill_enlarged_window

          scrollback_fill_enlarged_window no

       Fill new space with lines from the scrollback buffer after enlarging  a
       window.

       wheel_scroll_multiplier

          wheel_scroll_multiplier 5.0

       Multiplier  for  the  number of lines scrolled by the mouse wheel. Note
       that this is only used for low precision  scrolling  devices,  not  for
       high  precision  scrolling  devices on platforms such as macOS and Way-
       land. Use  negative  numbers  to  change  scroll  direction.  See  also
       wheel_scroll_min_lines.

       wheel_scroll_min_lines

          wheel_scroll_min_lines 1

       The  minimum  number  of  lines scrolled by the mouse wheel. The scroll
       multiplier only takes effect after it reaches this  number.  Note  that
       this  is  only used for low precision scrolling devices like wheel mice
       that scroll by very small amounts when using the wheel. With a negative
       number, the minimum number of lines will always be added.

       touch_scroll_multiplier

          touch_scroll_multiplier 1.0

       Multiplier  for  the  number of lines scrolled by a touchpad. Note that
       this is only used for high precision  scrolling  devices  on  platforms
       such as macOS and Wayland. Use negative numbers to change scroll direc-
       tion.

       mouse_hide_wait

          mouse_hide_wait 3.0

       Hide mouse cursor after the specified number of seconds  of  the  mouse
       not  being  used.  Set to zero to disable mouse cursor hiding. Set to a
       negative value to hide the mouse cursor immediately when  typing  text.
       Disabled  by  default  on macOS as getting it to work robustly with the
       ever-changing sea of bugs that is Cocoa is too much effort.

       url_color, url_style

          url_color #0087bd
          url_style curly

       The color and style for highlighting URLs on mouse-over. url_style  can
       be one of: none, straight, double, curly, dotted, dashed.

       open_url_with

          open_url_with default

       The  program to open clicked URLs. The special value default with first
       look for any URL handlers defined via the Scripting the mouse click fa-
       cility and if non are found, it will use the Operating System's default
       URL handler (open on macOS and xdg-open on Linux).

       url_prefixes

          url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh

       The set of URL prefixes to look for when  detecting  a  URL  under  the
       mouse cursor.

       detect_urls

          detect_urls yes

       Detect  URLs under the mouse. Detected URLs are highlighted with an un-
       derline and the mouse cursor becomes a hand over them. Even if this op-
       tion is disabled, URLs are still clickable.

       url_excluded_characters

          url_excluded_characters

       Additional  characters  to be disallowed from URLs, when detecting URLs
       under the mouse cursor. By default, all characters that  are  legal  in
       URLs are allowed.

       copy_on_select

          copy_on_select no

       Copy to clipboard or a private buffer on select. With this set to clip-
       board, selecting text with the mouse will cause the text to  be  copied
       to  clipboard.  Useful  on platforms such as macOS that do not have the
       concept of primary selection. You can instead specify a name such as a1
       to   copy   to  a  private  kitty  buffer.  Map  a  shortcut  with  the
       paste_from_buffer action to paste from this private buffer.  For  exam-
       ple:

          copy_on_select a1
          map shift+cmd+v paste_from_buffer a1

       Note that copying to the clipboard is a security risk, as all programs,
       including websites open in your browser can read the  contents  of  the
       system clipboard.

       paste_actions

          paste_actions quote-urls-at-prompt

       A  comma  separated  list of actions to take when pasting text into the
       terminal.  The supported paste actions are:

       quote-urls-at-prompt:
              If the text being pasted is a URL and the cursor is at  a  shell
              prompt, automatically quote the URL (needs shell_integration).

       confirm:
              Confirm the paste if bracketed paste mode is not active or there
              is more a large amount of text being pasted.

       filter:
              Run the filter_paste() function from the  file  paste-actions.py
              in  the  kitty config directory on the pasted text. The text re-
              turned by the function will be actually pasted.

       strip_trailing_spaces

          strip_trailing_spaces never

       Remove spaces at the end of lines when copying to clipboard. A value of
       smart will do it when using normal selections, but not rectangle selec-
       tions. A value of always will always do it.

       select_by_word_characters

          select_by_word_characters @-./_~?&=%+#

       Characters considered part of a word when double clicking. In  addition
       to  these  characters  any  character that is marked as an alphanumeric
       character in the Unicode database will be matched.

       select_by_word_characters_forward

          select_by_word_characters_forward

       Characters considered part of a word when extending the selection  for-
       ward  on double clicking. In addition to these characters any character
       that is marked as an alphanumeric character  in  the  Unicode  database
       will be matched.

       If  empty (default) select_by_word_characters will be used for both di-
       rections.

       click_interval

          click_interval -1.0

       The interval between successive clicks to detect  double/triple  clicks
       (in  seconds). Negative numbers will use the system default instead, if
       available, or fallback to 0.5.

       focus_follows_mouse

          focus_follows_mouse no

       Set the active window to the window under the  mouse  when  moving  the
       mouse around.

       pointer_shape_when_grabbed

          pointer_shape_when_grabbed arrow

       The shape of the mouse pointer when the program running in the terminal
       grabs the mouse. Valid values are: arrow, beam and hand.

       default_pointer_shape

          default_pointer_shape beam

       The default shape of the mouse pointer. Valid values are:  arrow,  beam
       and hand.

       pointer_shape_when_dragging

          pointer_shape_when_dragging beam

       The default shape of the mouse pointer when dragging across text. Valid
       values are: arrow, beam and hand.

MOUSE ACTIONS
       Mouse buttons can be mapped to perform arbitrary  actions.  The  syntax
       is:

          mouse_map button-name event-type modes action

       Where  button-name  is one of left, middle, right, b1 ... b8 with added
       keyboard modifiers. For example: ctrl+shift+left refers to holding  the
       Ctrl+Shift keys while clicking with the left mouse button. The value b1
       ... b8 can be used to refer to up to eight buttons on a mouse.

       event-type is one of press, release, doublepress,  triplepress,  click,
       doubleclick.   modes indicates whether the action is performed when the
       mouse is grabbed by the program running in the terminal,  or  not.  The
       values  are  grabbed  or  ungrabbed or a comma separated combination of
       them.  grabbed refers to when the program running in the  terminal  has
       requested  mouse  events.  Note  that the click and double click events
       have a delay of click_interval to disambiguate from double  and  triple
       presses.

       You  can  run kitty with the kitty --debug-input command line option to
       see mouse events. See the builtin actions below to get a sense of  what
       is possible.

       If  you  want to unmap an action, map it to no_op. For example, to dis-
       able opening of URLs with a plain click:

          mouse_map left click ungrabbed no_op

       See all the mappable actions including mouse actions here.

       NOTE:
          Once a selection is started, releasing the button  that  started  it
          will automatically end it and no release event will be dispatched.

       clear_all_mouse_actions

          clear_all_mouse_actions no

       Remove  all  mouse action definitions up to this point. Useful, for in-
       stance, to remove the default mouse actions.

       Click the link under the mouse or move the cursor

          mouse_map left click ungrabbed mouse_handle_click selection link prompt

       First check for a selection and if one exists do  nothing.  Then  check
       for  a link under the mouse cursor and if one exists, click it. Finally
       check if the click happened at the current shell prompt and if so, move
       the  cursor  to the click location. Note that this requires shell inte-
       gration to work.

       Click the link under the mouse or move the cursor even when grabbed

          mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt

       Same as above, except that the action is performed even when the  mouse
       is grabbed by the program running in the terminal.

       Click the link under the mouse cursor

          mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link

       Variant  with Ctrl+Shift is present because the simple click based ver-
       sion has an unavoidable delay of click_interval, to disambiguate clicks
       from double clicks.

       Discard press event for link click

          mouse_map ctrl+shift+left press grabbed discard_event

       Prevent  this  press  event  from  being  sent  to the program that has
       grabbed the mouse, as the corresponding release event is used to open a
       URL.

       Paste from the primary selection

          mouse_map middle release ungrabbed paste_from_selection

       Start selecting text

          mouse_map left press ungrabbed mouse_selection normal

       Start selecting text in a rectangle

          mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle

       Select a word

          mouse_map left doublepress ungrabbed mouse_selection word

       Select a line

          mouse_map left triplepress ungrabbed mouse_selection line

       Select line from point

          mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point

       Select from the clicked point to the end of the line.

       Extend the current selection

          mouse_map right press ungrabbed mouse_selection extend

       If  you  want  only the end of the selection to be moved instead of the
       nearest boundary, use move-end instead of extend.

       Paste from the primary selection even when grabbed

          mouse_map shift+middle release ungrabbed,grabbed paste_selection
          mouse_map shift+middle press grabbed discard_event

       Start selecting text even when grabbed

          mouse_map shift+left press ungrabbed,grabbed mouse_selection normal

       Start selecting text in a rectangle even when grabbed

          mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle

       Select a word even when grabbed

          mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word

       Select a line even when grabbed

          mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line

       Select line from point even when grabbed

          mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point

       Select from the clicked point to the end of the line even when grabbed.

       Extend the current selection even when grabbed

          mouse_map shift+right press ungrabbed,grabbed mouse_selection extend

       Show clicked command output in pager

          mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output

       Requires shell integration to work.

       repaint_delay

          repaint_delay 10

       Delay between screen updates  (in  milliseconds).  Decreasing  it,  in-
       creases  frames-per-second (FPS) at the cost of more CPU usage. The de-
       fault value yields ~100 FPS which is  more  than  sufficient  for  most
       uses.  Note  that  to  actually achieve 100 FPS, you have to either set
       sync_to_monitor to no or use a monitor with a high refresh rate.  Also,
       to  minimize  latency when there is pending input to be processed, this
       option is ignored.

       input_delay

          input_delay 3

       Delay before input from the program running in  the  terminal  is  pro-
       cessed (in milliseconds). Note that decreasing it will increase respon-
       siveness, but also increase CPU usage and might cause flicker  in  full
       screen  programs  that  redraw  the entire screen on each loop, because
       kitty is so fast that partial screen updates will be drawn.

       sync_to_monitor

          sync_to_monitor yes

       Sync screen updates to the refresh rate of the monitor.  This  prevents
       screen  tearing  when scrolling. However, it limits the rendering speed
       to the refresh rate of your monitor. With a very high speed  mouse/high
       keyboard  repeat rate, you may notice some slight input latency. If so,
       set this to no.

       enable_audio_bell

          enable_audio_bell yes

       The audio bell. Useful to disable it in environments that  require  si-
       lence.

       visual_bell_duration

          visual_bell_duration 0.0

       The visual bell duration (in seconds). Flash the screen when a bell oc-
       curs for the specified number of seconds. Set to zero to disable.

       visual_bell_color

          visual_bell_color none

       The color used by visual bell. Set to none will fall back to  selection
       background  color.  If you feel that the visual bell is too bright, you
       can set it to a darker color.

       window_alert_on_bell

          window_alert_on_bell yes

       Request window attention on bell. Makes the dock icon bounce  on  macOS
       or the taskbar flash on linux.

       bell_on_tab

          bell_on_tab "🔔 "

       Some text or a Unicode symbol to show on the tab if a window in the tab
       that does not have focus has a bell. If you  want  to  use  leading  or
       trailing  spaces, surround the text with quotes. See tab_title_template
       for how this is rendered.

       For backwards compatibility, values of yes, y and true are converted to
       the  default bell symbol and no, n, false and none are converted to the
       empty string.

       command_on_bell

          command_on_bell none

       Program  to  run  when  a  bell  occurs.   The   environment   variable
       KITTY_CHILD_CMDLINE  can be used to get the program running in the win-
       dow in which the bell occurred.

       bell_path

          bell_path none

       Path to a sound file to play as the bell sound. If  set  to  none,  the
       system default bell sound is used. Must be in a format supported by the
       operating systems sound API, such as WAV or OGA on Linux  (libcanberra)
       or AIFF, MP3 or WAV on macOS (NSSound)

       remember_window_size, initial_window_width, initial_window_height

          remember_window_size  yes
          initial_window_width  640
          initial_window_height 400

       If enabled, the window size will be remembered so that new instances of
       kitty will have the same size as the previous  instance.  If  disabled,
       the   window  will  initially  have  size  configured  by  initial_win-
       dow_width/height, in pixels. You  can  use  a  suffix  of  "c"  on  the
       width/height values to have them interpreted as number of cells instead
       of pixels.

       enabled_layouts

          enabled_layouts *

       The enabled window layouts. A comma separated list of layout names. The
       special  value  all  means all layouts. The first listed layout will be
       used as the startup layout. Default configuration is all layouts in al-
       phabetical order. For a list of available layouts, see the Layouts.

       window_resize_step_cells, window_resize_step_lines

          window_resize_step_cells 2
          window_resize_step_lines 2

       The step size (in units of cell width/cell height) to use when resizing
       kitty windows in a layout with the  shortcut  ctrl+shift+r.  The  cells
       value  is used for horizontal resizing, and the lines value is used for
       vertical resizing.

       window_border_width

          window_border_width 0.5pt

       The width of window borders. Can be either in pixels (px) or pts  (pt).
       Values  in pts will be rounded to the nearest number of pixels based on
       screen resolution.  If not specified, the unit is assumed  to  be  pts.
       Note that borders are displayed only when more than one window is visi-
       ble. They are meant to separate multiple windows.

       draw_minimal_borders

          draw_minimal_borders yes

       Draw only the minimum borders needed. This means that only the  borders
       that  separate the inactive window from a neighbor are drawn. Note that
       setting a non-zero window_margin_width overrides this  and  causes  all
       borders to be drawn.

       window_margin_width

          window_margin_width 0

       The  window  margin  (in pts) (blank area outside the border). A single
       value sets all four sides. Two values set the vertical  and  horizontal
       sides.  Three  values  set  top, horizontal and bottom. Four values set
       top, right, bottom and left.

       single_window_margin_width

          single_window_margin_width -1

       The window margin to use when only a single window is visible (in pts).
       Negative  values will cause the value of window_margin_width to be used
       instead. A single value sets all four sides. Two values set the  verti-
       cal  and horizontal sides. Three values set top, horizontal and bottom.
       Four values set top, right, bottom and left.

       window_padding_width

          window_padding_width 0

       The window padding (in pts) (blank area between the text and the window
       border).  A single value sets all four sides. Two values set the verti-
       cal and horizontal sides. Three values set top, horizontal and  bottom.
       Four values set top, right, bottom and left.

       placement_strategy

          placement_strategy center

       When  the  window  size  is not an exact multiple of the cell size, the
       cell area of the terminal window will have some extra  padding  on  the
       sides.  You  can  control how that padding is distributed with this op-
       tion. Using a value of center means the cell area will be  placed  cen-
       trally.  A value of top-left means the padding will be only at the bot-
       tom and right edges.

       active_border_color

          active_border_color #00ff00

       The color for the border of the active window. Set this to none to  not
       draw borders around the active window.

       inactive_border_color

          inactive_border_color #cccccc

       The color for the border of inactive windows.

       bell_border_color

          bell_border_color #ff5a00

       The  color  for  the border of inactive windows in which a bell has oc-
       curred.

       inactive_text_alpha

          inactive_text_alpha 1.0

       Fade the text in inactive windows by the specified amount (a number be-
       tween zero and one, with zero being fully faded).

       hide_window_decorations

          hide_window_decorations no

       Hide the window decorations (title-bar and window borders) with yes. On
       macOS, titlebar-only can be used to only  hide  the  titlebar.  Whether
       this  works  and  exactly what effect it has depends on the window man-
       ager/operating system. Note that the effects of  changing  this  option
       when reloading config are undefined.

       window_logo_path

          window_logo_path none

       Path  to a logo image. Must be in PNG format. Relative paths are inter-
       preted relative to the kitty config directory. The logo is displayed in
       a  corner  of  every  kitty  window.  The  position  is  controlled  by
       window_logo_position.  Individual windows can  be  configured  to  have
       different  logos  either  using the launch action or the remote control
       facility.

       window_logo_position

          window_logo_position bottom-right

       Where to position the window logo in the window. The value can  be  one
       of: top-left, top, top-right, left, center, right, bottom-left, bottom,
       bottom-right.

       window_logo_alpha

          window_logo_alpha 0.5

       The amount the logo should be faded into the background. With zero  be-
       ing fully faded and one being fully opaque.

       resize_debounce_time

          resize_debounce_time 0.1

       The time to wait before redrawing the screen when a resize event is re-
       ceived (in seconds). On platforms such as macOS,  where  the  operating
       system  sends  events  corresponding  to the start and end of a resize,
       this number is ignored.

       resize_draw_strategy

          resize_draw_strategy static

       Choose how kitty draws a window while a resize is in progress. A  value
       of  static  means draw the current window contents, mostly unchanged. A
       value of scale means draw the current window contents scaled.  A  value
       of blank means draw a blank window. A value of size means show the win-
       dow size in cells.

       resize_in_steps

          resize_in_steps no

       Resize the OS window in steps as large as the cells,  instead  of  with
       the  usual  pixel  accuracy.  Combined  with  initial_window_width  and
       initial_window_height in number of cells, this option can  be  used  to
       keep the margins as small as possible when resizing the OS window. Note
       that this does not currently work on Wayland.

       visual_window_select_characters

          visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ

       The list of characters for visual window selection.  For  example,  for
       selecting  a window to focus on with ctrl+shift+f7. The value should be
       a series of unique numbers or alphabets, case insensitive, from the set
       [0-9A-Z].  Specify your preference as a string of characters.

       confirm_os_window_close

          confirm_os_window_close -1

       Ask  for  confirmation when closing an OS window or a tab with at least
       this number of kitty windows in it by window manager (e.g. clicking the
       window  close button or pressing the operating system shortcut to close
       windows) or by the close_tab action. A value of zero disables confirma-
       tion. This confirmation also applies to requests to quit the entire ap-
       plication (all OS windows, via the quit action).  Negative  values  are
       converted  to  positive  ones, however, with shell_integration enabled,
       using negative values means windows sitting at a shell prompt  are  not
       counted,  only  windows  where  some command is currently running. Note
       that if you want confirmation when closing individual windows, you  can
       map the close_window_with_confirmation action.

       tab_bar_edge

          tab_bar_edge bottom

       The edge to show the tab bar on, top or bottom.

       tab_bar_margin_width

          tab_bar_margin_width 0.0

       The margin to the left and right of the tab bar (in pts).

       tab_bar_margin_height

          tab_bar_margin_height 0.0 0.0

       The  margin  above  and below the tab bar (in pts). The first number is
       the margin between the edge of the OS Window and the tab bar. The  sec-
       ond  number  is  the margin between the tab bar and the contents of the
       current tab.

       tab_bar_style

          tab_bar_style fade

       The tab bar style, can be one of:

       fade   Each tab's edges fade  into  the  background  color.  (See  also
              tab_fade)

       slant  Tabs look like the tabs in a physical file.

       separator
              Tabs  are  separated  by  a  configurable  separator.  (See also
              tab_separator)

       powerline
              Tabs are shown as a continuous  line  with  "fancy"  separators.
              (See also tab_powerline_style)

       custom A  user-supplied  Python function called draw_tab is loaded from
              the file tab_bar.py in the kitty config directory. For  examples
              of  how  to  write  such  a  function,  see  the functions named
              draw_tab_with_* in kitty's source  code:  kitty/tab_bar.py.  See
              also this discussion for examples from kitty users.

       hidden The tab bar is hidden. If you use this, you might want to create
              a mapping for the select_tab action which presents  you  with  a
              list of tabs and allows for easy switching to a tab.

       tab_bar_align

          tab_bar_align left

       The  horizontal  alignment of the tab bar, can be one of: left, center,
       right.

       tab_bar_min_tabs

          tab_bar_min_tabs 2

       The minimum number of tabs that must exist before the tab bar is shown.

       tab_switch_strategy

          tab_switch_strategy previous

       The algorithm to use when switching to a tab when the  current  tab  is
       closed.  The  default  of  previous will switch to the last used tab. A
       value of left will switch to the tab to the left of the closed  tab.  A
       value of right will switch to the tab to the right of the closed tab. A
       value of last will switch to the right-most tab.

       tab_fade

          tab_fade 0.25 0.5 0.75 1

       Control how each tab fades into the background when using fade for  the
       tab_bar_style. Each number is an alpha (between zero and one) that con-
       trols how much the corresponding cell fades into the  background,  with
       zero  being  no fade and one being full fade. You can change the number
       of cells used by adding/removing entries to this list.

       tab_separator

          tab_separator " ┇"

       The separator between tabs in the tab bar when using separator  as  the
       tab_bar_style.

       tab_powerline_style

          tab_powerline_style angled

       The  powerline  separator  style between tabs in the tab bar when using
       powerline as the tab_bar_style, can be one of: angled, slanted, round.

       tab_activity_symbol

          tab_activity_symbol none

       Some text or a Unicode symbol to show on the tab if a window in the tab
       that  does not have focus has some activity. If you want to use leading
       or   trailing   spaces,   surround   the   text   with   quotes.    See
       tab_title_template for how this is rendered.

       tab_title_template

          tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}"

       A  template to render the tab title. The default just renders the title
       with optional symbols for bell and activity. If you wish to include the
       tab-index  as  well, use something like: {index}:{title}. Useful if you
       have shortcuts mapped for goto_tab N. If you prefer to see the index as
       a superscript, use {sup.index}. All data available is:

       title  The current tab title.

       index  The tab index useable with goto_tab N shortcuts.

       layout_name
              The current layout name.

       num_windows
              The number of windows in the tab.

       num_window_groups
              The  number  of  window groups (not counting overlay windows) in
              the tab.

       tab.active_wd
              The working directory of the currently active window in the  tab
              (expensive, requires syscall).

       max_title_length
              The maximum title length available.

       Note  that  formatting is done by Python's string formatting machinery,
       so you can use, for instance, {layout_name[:2].upper()}  to  show  only
       the  first  two letters of the layout name, upper-cased. If you want to
       style  the  text,  you  can  use  styling  directives,   for   example:
       {fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}.
       Similarly,  for   bold   and   italic:   {fmt.bold}bold{fmt.nobold}nor-
       mal{fmt.italic}italic{fmt.noitalic}.   Note  that for backward compati-
       bility, if {bell_symbol} or {activity_symbol} are not  present  in  the
       template, they are prepended to it.

       active_tab_title_template

          active_tab_title_template none

       Template  to  use  for  active  tabs.  If  not  specified falls back to
       tab_title_template.

       active_tab_foreground,  active_tab_background,   active_tab_font_style,
       inactive_tab_foreground,         inactive_tab_background,         inac-
       tive_tab_font_style

          active_tab_foreground   #000
          active_tab_background   #eee
          active_tab_font_style   bold-italic
          inactive_tab_foreground #444
          inactive_tab_background #999
          inactive_tab_font_style normal

       Tab bar colors and styles.

       tab_bar_background

          tab_bar_background none

       Background color for the tab bar. Defaults to using the terminal  back-
       ground color.

       tab_bar_margin_color

          tab_bar_margin_color none

       Color for the tab bar margin area. Defaults to using the terminal back-
       ground color.

       foreground, background

          foreground #dddddd
          background #000000

       The foreground and background colors.

       background_opacity

          background_opacity 1.0

       The opacity of the background. A number between zero and one, where one
       is  opaque  and  zero is fully transparent. This will only work if sup-
       ported by the OS (for instance, when using  a  compositor  under  X11).
       Note  that  it  only  sets the background color's opacity in cells that
       have the same background color as the default terminal  background,  so
       that  things  like the status bar in vim, powerline prompts, etc. still
       look good. But it means that if you use a color theme with a background
       color  in  your editor, it will not be rendered as transparent. Instead
       you should change the default background color in your kitty config and
       not  use  a background color in the editor color scheme. Or use the es-
       cape codes to set the terminals default colors in  a  shell  script  to
       launch  your  editor.  Be  aware  that using a value less than 1.0 is a
       (possibly significant) performance hit.  If  you  want  to  dynamically
       change  transparency  of windows, set dynamic_background_opacity to yes
       (this is off by default as it has a performance  cost).  Changing  this
       option    when    reloading    the    config    will   only   work   if
       dynamic_background_opacity was enabled in the original config.

       background_image

          background_image none

       Path to a background image. Must be in PNG format.

       background_image_layout

          background_image_layout tiled

       Whether to tile, scale or clamp the background image. The value can  be
       one of tiled, mirror-tiled, scaled, clamped or centered.

       background_image_linear

          background_image_linear no

       When background image is scaled, whether linear interpolation should be
       used.

       dynamic_background_opacity

          dynamic_background_opacity no

       Allow changing of the background_opacity dynamically, using either key-
       board  shortcuts (ctrl+shift+a>m and ctrl+shift+a>l) or the remote con-
       trol facility. Changing this option by reloading the config is not sup-
       ported.

       background_tint

          background_tint 0.0

       How  much  to  tint the background image by the background color.  This
       option makes it easier to read the text. Tinting is done using the cur-
       rent  background  color  for  each  window. This option applies only if
       background_opacity is set and  transparent  windows  are  supported  or
       background_image is set.

       dim_opacity

          dim_opacity 0.75

       How much to dim text that has the DIM/FAINT attribute set. One means no
       dimming and zero means fully dimmed (i.e. invisible).

       selection_foreground, selection_background

          selection_foreground #000000
          selection_background #fffacd

       The foreground and background colors for text selected with the  mouse.
       Setting  both  of these to none will cause a "reverse video" effect for
       selections, where the selection will be the cell  text  color  and  the
       text  will  become  the  cell  background  color.  Setting  only selec-
       tion_foreground to none will cause the foreground color to be used  un-
       changed.  Note  that these colors can be overridden by the program run-
       ning in the terminal.

THE COLOR TABLE
       The 256 terminal colors. There are 8 basic colors,  each  color  has  a
       dull  and  bright version, for the first 16 colors. You can set the re-
       maining 240 colors as color16 to color255.

       color0, color8

          color0 #000000
          color8 #767676

       black

       color1, color9

          color1 #cc0403
          color9 #f2201f

       red

       color2, color10

          color2  #19cb00
          color10 #23fd00

       green

       color3, color11

          color3  #cecb00
          color11 #fffd00

       yellow

       color4, color12

          color4  #0d73cc
          color12 #1a8fff

       blue

       color5, color13

          color5  #cb1ed1
          color13 #fd28ff

       magenta

       color6, color14

          color6  #0dcdcd
          color14 #14ffff

       cyan

       color7, color15

          color7  #dddddd
          color15 #ffffff

       white

       mark1_foreground

          mark1_foreground black

       Color for marks of type 1

       mark1_background

          mark1_background #98d3cb

       Color for marks of type 1 (light steel blue)

       mark2_foreground

          mark2_foreground black

       Color for marks of type 2

       mark2_background

          mark2_background #f2dcd3

       Color for marks of type 1 (beige)

       mark3_foreground

          mark3_foreground black

       Color for marks of type 3

       mark3_background

          mark3_background #f274bc

       Color for marks of type 3 (violet)

       shell

          shell .

       The shell program to execute. The default value of . means to use what-
       ever  shell is set as the default shell for the current user. Note that
       on macOS if you change this, you might need to add --login and --inter-
       active  to  ensure  that the shell starts in interactive mode and reads
       its startup rc files.

       editor

          editor .

       The terminal based text editor (such as vim or nano) to use when  edit-
       ing the kitty config file or similar tasks.

       The  default  value  of . means to use the environment variables VISUAL
       and EDITOR in that order. If these variables aren't set, kitty will run
       your  shell ($SHELL -l -i -c env) to see if your shell startup rc files
       set VISUAL or EDITOR. If that doesn't work, kitty  will  cycle  through
       various  known  editors  (vim, emacs, etc.) and take the first one that
       exists on your system.

       close_on_child_death

          close_on_child_death no

       Close the window when the child process (shell) exits. With the default
       value no, the terminal will remain open when the child exits as long as
       there are still processes outputting to the terminal (for example  dis-
       owned  or  backgrounded  processes).  When enabled with yes, the window
       will close as soon as the child process exits. Note that setting it  to
       yes  means  that  any background processes still using the terminal can
       fail silently because their stdout/stderr/stdin no longer work.

       remote_control_password

          remote_control_password

       Allow other programs to control kitty using passwords. This option  can
       be  specified multiple times to add multiple passwords. If no passwords
       are present kitty will ask the user for permission if a  program  tries
       to  use  remote control with a password. A password can also optionally
       be associated with a set of allowed remote control actions.  For  exam-
       ple:

          remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab

       Only  the  specified  actions will be allowed when using this password.
       Glob patterns can be used too, for example:

          remote_control_password "my passphrase" set-tab-* resize-*

       To get a list of available actions, run:

          kitty @ --help

       A set of actions to be allowed when no password is sent can  be  speci-
       fied by using an empty password, for example:

          remote_control_password "" *-colors

       Finally,  the  path to a python module can be specified that provides a
       function is_cmd_allowed that is used to check every remote control com-
       mand.  See Customizing authorization with your own program for details.
       For example:

          remote_control_password "my passphrase" my_rc_command_checker.py

       Relative paths are resolved from the kitty configuration directory.

       allow_remote_control

          allow_remote_control no

       Allow other programs to control kitty. If you turn this on, other  pro-
       grams can control all aspects of kitty, including sending text to kitty
       windows, opening new windows, closing windows, reading the  content  of
       windows,  etc.  Note that this even works over SSH connections. The de-
       fault setting of no prevents any form of remote control. The meaning of
       the various values are:

       password
              Remote  control  requests  received over both the TTY device and
              the   socket   are   confirmed   based   on    passwords,    see
              remote_control_password.

       socket-only
              Remote  control requests received over a socket are accepted un-
              conditionally.  Requests received over the TTY are  denied.  See
              listen_on.

       socket Remote  control requests received over a socket are accepted un-
              conditionally.  Requests received over  the  TTY  are  confirmed
              based on password.

       no     Remote control is completely disabled.

       yes    Remote control requests are always accepted.

       listen_on

          listen_on none

       Listen  to  the  specified  UNIX socket for remote control connections.
       Note that this will apply to all kitty instances. It can be  overridden
       by  the kitty --listen-on command line option, which also supports lis-
       tening on a TCP socket. This option accepts only UNIX sockets, such  as
       unix:${TEMP}/mykitty or unix:@mykitty (on Linux). Environment variables
       are expanded and relative paths are resolved with respect to the tempo-
       rary  directory.  If {kitty_pid} is present, then it is replaced by the
       PID of the kitty process, otherwise the PID of the kitty process is ap-
       pended  to the value, with a hyphen. See the help for kitty --listen-on
       for  more  details.   Note   that   this   will   be   ignored   unless
       allow_remote_control  is  set  to  either:  yes, socket or socket-only.
       Changing this option by reloading the config is not supported.

       env

          env

       Specify the environment variables to be set in all child processes. Us-
       ing  the  name  with  an  equal sign (e.g. env VAR=) will set it to the
       empty string.  Specifying only the name (e.g. env VAR) will remove  the
       variable  from  the  child  process' environment. Note that environment
       variables are expanded recursively, for example:

          env VAR1=a
          env VAR2=${HOME}/${VAR1}/b

       The value of VAR2 will be <path to home directory>/a/b.

       watcher

          watcher

       Path to python file which will be loaded for Watching launched windows.
       Can be specified more than once to load multiple watchers. The watchers
       will be added to every kitty window. Relative paths are resolved  rela-
       tive to the kitty config directory. Note that reloading the config will
       only affect windows created after the reload.

       exe_search_path

          exe_search_path

       Control where kitty finds the programs to run. The default search order
       is:  First search the system wide PATH, then ~/.local/bin and ~/bin. If
       still not found, the PATH defined in the login shell after sourcing all
       its  startup files is tried. Finally, if present, the PATH specified by
       the env option is tried.

       This option allows you to prepend, append, or remove  paths  from  this
       search  order. It can be specified multiple times for multiple paths. A
       simple path will be prepended to the search order. A path  that  starts
       with  the + sign will be append to the search order, after ~/bin above.
       A path that starts with the - sign will  be  removed  from  the  entire
       search order.  For example:

          exe_search_path /some/prepended/path
          exe_search_path +/some/appended/path
          exe_search_path -/some/excluded/path

       update_check_interval

          update_check_interval 24

       The  interval  to periodically check if an update to kitty is available
       (in hours). If an update is found, a system notification  is  displayed
       informing you of the available update. The default is to check every 24
       hours, set to zero to disable. Update checking is only done by the  of-
       ficial binary builds. Distro packages or source builds do not do update
       checking. Changing this option by reloading  the  config  is  not  sup-
       ported.

       startup_session

          startup_session none

       Path  to a session file to use for all kitty instances. Can be overrid-
       den by using the kitty --session command line option for individual in-
       stances.  See  Startup Sessions in the kitty documentation for details.
       Note that relative paths are interpreted with respect to the kitty con-
       fig  directory.  Environment variables in the path are expanded. Chang-
       ing this option by reloading the config is not supported.

       clipboard_control

          clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask

       Allow programs running in kitty to read and write from  the  clipboard.
       You can control exactly which actions are allowed. The possible actions
       are:  write-clipboard,  read-clipboard,  write-primary,   read-primary,
       read-clipboard-ask,  read-primary-ask.  The default is to allow writing
       to the clipboard and primary selection and to ask for permission when a
       program  tries to read from the clipboard. Note that disabling the read
       confirmation is a security risk as it means that any program, even  the
       ones  running  on  a remote server via SSH can read your clipboard. See
       also clipboard_max_size.

       clipboard_max_size

          clipboard_max_size 64

       The maximum size (in MB) of data from programs running  in  kitty  that
       will  be  stored  for  writing to the system clipboard. A value of zero
       means no size limit is applied. See also clipboard_control.

       file_transfer_confirmation_bypass

          file_transfer_confirmation_bypass

       The password that can be supplied to the file transfer kitten  to  skip
       the  transfer confirmation prompt. This should only be used when initi-
       ating transfers from trusted computers, over trusted  networks  or  en-
       crypted transports, as it allows any programs running on the remote ma-
       chine to read/write to the local filesystem, without permission.

       allow_hyperlinks

          allow_hyperlinks yes

       Process hyperlink escape sequences (OSC 8). If disabled  OSC  8  escape
       sequences  are ignored. Otherwise they become clickable links, that you
       can click with the mouse or by using the  hints  kitten.   The  special
       value  of  ask  means  that kitty will ask before opening the link when
       clicked.

       shell_integration

          shell_integration enabled

       Enable shell integration on supported  shells.  This  enables  features
       such  as jumping to previous prompts, browsing the output of the previ-
       ous command in a pager, etc. on supported shells. Set  to  disabled  to
       turn  off shell integration, completely. It is also possible to disable
       individual features, set to a space separated  list  of  these  values:
       no-rc,  no-cursor,  no-title, no-cwd, no-prompt-mark, no-complete.  See
       Shell integration for details.

       allow_cloning

          allow_cloning ask

       Control whether programs running in the terminal can request  new  win-
       dows  to  be  created.  The canonical example is clone-in-kitty. By de-
       fault, kitty will ask for permission for each clone  request.  Allowing
       cloning unconditionally gives programs running in the terminal (includ-
       ing over SSH) permission to execute arbitrary code, as the user who  is
       running the terminal, on the computer that the terminal is running on.

       clone_source_strategies

          clone_source_strategies venv,conda,env_var,path

       Control  what  shell code is sourced when running clone-in-kitty in the
       newly cloned window. The supported strategies are:

       venv   Source the file $VIRTUAL_ENV/bin/activate. This is used  by  the
              Python  stdlib  venv  module  and allows cloning venvs automati-
              cally.

       conda  Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual
              environments created by conda.

       env_var
              Execute    the    contents    of    the   environment   variable
              KITTY_CLONE_SOURCE_CODE with eval.

       path   Source  the  file  pointed  to  by  the   environment   variable
              KITTY_CLONE_SOURCE_PATH.

       This  option  must  be a comma separated list of the above values. This
       only source the first valid one in the above order.

       term

          term xterm-kitty

       The value of the TERM environment variable to set.  Changing  this  can
       break  many  terminal programs, only change it if you know what you are
       doing, not because you read some advice on "Stack Overflow"  to  change
       it.  The  TERM  variable is used by various programs to get information
       about the capabilities and behavior of the terminal. If you change  it,
       depending  on what programs you run, and how different the terminal you
       are changing it to is, various things from key-presses, to  colors,  to
       various advanced features may not work. Changing this option by reload-
       ing the config will only affect newly created windows.

       wayland_titlebar_color

          wayland_titlebar_color system

       The color of the kitty window's titlebar on Wayland systems with client
       side  window  decorations such as GNOME. A value of system means to use
       the default system color, a value of background means to use the  back-
       ground  color of the currently active window and finally you can use an
       arbitrary color, such as #12af59 or red.

       macos_titlebar_color

          macos_titlebar_color system

       The color of the kitty window's titlebar on macOS. A  value  of  system
       means  to  use the default system color, light or dark can also be used
       to set it explicitly. A value of background means to use the background
       color  of  the currently active window and finally you can use an arbi-
       trary color, such as #12af59 or red. WARNING: This option works by  us-
       ing a hack when arbitrary color (or background) is configured, as there
       is no proper Cocoa API for it. It sets the background color of the  en-
       tire window and makes the titlebar transparent. As such it is incompat-
       ible with background_opacity. If you want to use both, you are probably
       better off just hiding the titlebar with hide_window_decorations.

       macos_option_as_alt

          macos_option_as_alt no

       Use  the  Option key as an Alt key on macOS. With this set to no, kitty
       will use the macOS native Option+Key to enter Unicode character  behav-
       ior.  This  will  break any Alt+Key keyboard shortcuts in your terminal
       programs, but you can use the macOS Unicode input  technique.  You  can
       use the values: left, right or both to use only the left, right or both
       Option keys as Alt, instead. Note that kitty itself always  treats  Op-
       tion  the same as Alt. This means you cannot use this option to config-
       ure different kitty shortcuts for Option+Key  vs.  Alt+Key.  Also,  any
       kitty  shortcuts  using  Option/Alt+Key will take priority, so that any
       such key presses will not be passed to terminal programs running inside
       kitty. Changing this option by reloading the config is not supported.

       macos_hide_from_tasks

          macos_hide_from_tasks no

       Hide the kitty window from running tasks on macOS (⌘+Tab and the Dock).
       Changing this option by reloading the config is not supported.

       macos_quit_when_last_window_closed

          macos_quit_when_last_window_closed no

       Have kitty quit when all the top-level windows are closed on macOS.  By
       default,  kitty will stay running, even with no open windows, as is the
       expected behavior on macOS.

       macos_window_resizable

          macos_window_resizable yes

       Disable this if you want kitty top-level OS windows to not be resizable
       on macOS. Changing this option by reloading the config will only affect
       newly created OS windows.

       macos_thicken_font

          macos_thicken_font 0

       Draw an extra border around the font with the given width, to  increase
       legibility  at  small font sizes on macOS. For example, a value of 0.75
       will result in rendering that looks similar to  sub-pixel  antialiasing
       at common font sizes.

       macos_traditional_fullscreen

          macos_traditional_fullscreen no

       Use  the  macOS traditional full-screen transition, that is faster, but
       less pretty.

       macos_show_window_title_in

          macos_show_window_title_in all

       Control where the window title is displayed on macOS. A value of window
       will  show  the  title of the currently active window at the top of the
       macOS window. A value of menubar will show the title of  the  currently
       active  window  in  the  macOS global menu bar, making use of otherwise
       wasted space. A value of all will show the title in  both  places,  and
       none  hides  the  title.  See macos_menubar_title_max_length for how to
       control the length of the title in the menu bar.

       macos_menubar_title_max_length

          macos_menubar_title_max_length 0

       The maximum number of characters from the window title to show  in  the
       macOS global menu bar. Values less than one means that there is no max-
       imum limit.

       macos_custom_beam_cursor

          macos_custom_beam_cursor no

       Use a custom mouse cursor for macOS that is easier to see on both light
       and  dark backgrounds. Nowadays, the default macOS cursor already comes
       with a white border. WARNING: this might make your mouse cursor invisi-
       ble  on dual GPU machines. Changing this option by reloading the config
       is not supported.

       macos_colorspace

          macos_colorspace srgb

       The colorspace in which to interpret terminal colors.  The  default  of
       srgb  will  cause colors to match those seen in web browsers. The value
       of default will use whatever the native colorspace of the  display  is.
       The  value  of  displayp3 will use Apple's special snowflake display P3
       color space, which will result in over saturated (brighter) colors with
       some  color  shift. Reloading configuration will change this value only
       for newly created OS windows.

       linux_display_server

          linux_display_server auto

       Choose between Wayland and X11 backends.  By  default,  an  appropriate
       backend  based  on  the system state is chosen automatically. Set it to
       x11 or wayland to force the choice. Changing this option  by  reloading
       the config is not supported.

       Keys  are  identified simply by their lowercase Unicode characters. For
       example: a for the A key, [ for the left square bracket key, etc.   For
       functional  keys,  such  as  Enter  or Escape, the names are present at
       Functional key definitions. For modifier keys, the names are ctrl (con-
       trol,  ),  shift  (),  alt (opt, option, ), super (cmd, command, ).
       See also: GLFW mods

       On Linux you can also use XKB key names to bind keys that are not  sup-
       ported  by  GLFW. See XKB keys for a list of key names. The name to use
       is the part after the XKB_KEY_ prefix. Note that you can  only  use  an
       XKB key name for keys that are not known as GLFW keys.

       Finally,  you  can use raw system key codes to map keys, again only for
       keys that are not known as GLFW keys. To see the system key code for  a
       key, start kitty with the kitty --debug-input option, kitty will output
       some debug text for every key event. In that text look for native_code,
       the value of that becomes the key name in the shortcut. For example:

          on_key_input: glfw key: 0x61 native_code: 0x61 action: PRESS mods: none text: 'a'

       Here, the key name for the A key is 0x61 and you can use it with:

          map ctrl+0x61 something

       to map Ctrl+A to something.

       You  can use the special action no_op to unmap a keyboard shortcut that
       is assigned in the default configuration:

          map kitty_mod+space no_op

       If you would like kitty to completely ignore  a  key  event,  not  even
       sending  it  to  the  program  running  in  the  terminal,  map  it  to
       discard_event:

          map kitty_mod+f1 discard_event

       You can combine multiple actions to be triggered by a  single  shortcut
       with combine action, using the syntax below:

          map key combine <separator> action1 <separator> action2 <separator> action3 ...

       For example:

          map kitty_mod+e combine : new_window : next_layout

       This will create a new window and switch to the next available layout.

       You can use multi-key shortcuts with the syntax shown below:

          map key1>key2>key3 action

       For example:

          map ctrl+f>2 set_font_size 20

       The full list of actions that can be mapped to key presses is available
       here.

       kitty_mod

          kitty_mod ctrl+shift

       Special modifier key alias for default shortcuts. You  can  change  the
       value of this option to alter all default shortcuts that use kitty_mod.

       clear_all_shortcuts

          clear_all_shortcuts no

       Remove all shortcut definitions up to this point. Useful, for instance,
       to remove the default shortcuts.

       action_alias

          action_alias launch_tab launch --type=tab --cwd=current

       Define action aliases to avoid repeating the same options  in  multiple
       mappings.   Aliases  can be defined for any action and will be expanded
       recursively. For example, the above alias allows you to create mappings
       to  launch  a new tab in the current working directory without duplica-
       tion:

          map f1 launch_tab vim
          map f2 launch_tab emacs

       Similarly, to alias kitten invocation:

          action_alias hints kitten hints --hints-offset=0

       kitten_alias

          kitten_alias hints hints --hints-offset=0

       Like action_alias above, but specifically for kittens. Generally,  pre-
       fer  to  use action_alias. This option is a legacy version, present for
       backwards compatibility. It causes all invocations of the aliased  kit-
       ten  to be substituted. So the example above will cause all invocations
       of the hints kitten to have the --hints-offset=0 option applied.

CLIPBOARD
       Copy to clipboard

          map ctrl+shift+c copy_to_clipboard
          map cmd+c copy_to_clipboard 🍎

       There is also a copy_or_interrupt action that can be optionally  mapped
       to Ctrl+C. It will copy only if there is a selection and send an inter-
       rupt otherwise. Similarly, copy_and_clear_or_interrupt  will  copy  and
       clear the selection or send an interrupt if there is no selection.

       Paste from clipboard

          map ctrl+shift+v paste_from_clipboard
          map cmd+v paste_from_clipboard 🍎

       Paste from selection

          map ctrl+shift+s paste_from_selection
          map shift+insert paste_from_selection

       Pass selection to program

          map ctrl+shift+o pass_selection_to_program

       You  can also pass the contents of the current selection to any program
       with pass_selection_to_program. By default, the system's  open  program
       is  used, but you can specify your own, the selection will be passed as
       a command line argument to the program. For example:

          map kitty_mod+o pass_selection_to_program firefox

       You can pass the current selection to a terminal program running  in  a
       new kitty window, by using the @selection placeholder:

          map kitty_mod+y new_window less @selection

SCROLLING
       Scroll line up

          map ctrl+shift+up scroll_line_up
          map ctrl+shift+k scroll_line_up
          map opt+cmd+page_up scroll_line_up 🍎
          map cmd+up scroll_line_up 🍎

       Scroll line down

          map ctrl+shift+down scroll_line_down
          map ctrl+shift+j scroll_line_down
          map opt+cmd+page_down scroll_line_down 🍎
          map cmd+down scroll_line_down 🍎

       Scroll page up

          map ctrl+shift+page_up scroll_page_up
          map cmd+page_up scroll_page_up 🍎

       Scroll page down

          map ctrl+shift+page_down scroll_page_down
          map cmd+page_down scroll_page_down 🍎

       Scroll to top

          map ctrl+shift+home scroll_home
          map cmd+home scroll_home 🍎

       Scroll to bottom

          map ctrl+shift+end scroll_end
          map cmd+end scroll_end 🍎

       Scroll to previous shell prompt

          map ctrl+shift+z scroll_to_prompt -1

       Use  a parameter of 0 for scroll_to_prompt to scroll to the last jumped
       to or the last clicked position. Requires shell integration to work.

       Scroll to next shell prompt

          map ctrl+shift+x scroll_to_prompt 1

       Browse scrollback buffer in pager

          map ctrl+shift+h show_scrollback

       You can pipe the contents of the current screen and history  buffer  as
       STDIN  to  an arbitrary program using launch --stdin-source.  For exam-
       ple, the following opens the scrollback buffer in less  in  an  overlay
       window:

          map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R

       For  more details on piping screen and buffer contents to external pro-
       grams, see The launch command.

       Browse output of the last shell command in pager

          map ctrl+shift+g show_last_command_output

       You can also define additional shortcuts to  get  the  command  output.
       For example, to get the first command output on screen:

          map f1 show_first_command_output_on_screen

       To  get  the command output that was last accessed by a keyboard action
       or mouse action:

          map f1 show_last_visited_command_output

       You can pipe the output of the last command run in the shell using  the
       launch  action.  For example, the following opens the output in less in
       an overlay window:

          map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R

       To  get  the  output  of  the  first  command  on   the   screen,   use
       @first_cmd_output_on_screen.   To  get the output of the last jumped to
       command, use @last_visited_cmd_output.

       Requires shell integration to work.

WINDOW MANAGEMENT
       New window

          map ctrl+shift+enter new_window
          map cmd+enter new_window 🍎

       You can open a new kitty window running an arbitrary program, for exam-
       ple:

          map kitty_mod+y launch mutt

       You can open a new window with the current working directory set to the
       working directory of the current window using:

          map ctrl+alt+enter launch --cwd=current

       You can open a new window that is allowed  to  control  kitty  via  the
       kitty  remote control facility with launch --allow-remote-control.  Any
       programs running in that window will be allowed to control kitty.   For
       example:

          map ctrl+enter launch --allow-remote-control some_program

       You can open a new window next to the currently active window or as the
       first window, with:

          map ctrl+n launch --location=neighbor
          map ctrl+f launch --location=first

       For more details, see The launch command.

       New OS window

          map ctrl+shift+n new_os_window
          map cmd+n new_os_window 🍎

       Works like new_window above, except that it opens a top-level  OS  win-
       dow.  In particular you can use new_os_window_with_cwd to open a window
       with the current working directory.

       Close window

          map ctrl+shift+w close_window
          map shift+cmd+d close_window 🍎

       Next window

          map ctrl+shift+] next_window

       Previous window

          map ctrl+shift+[ previous_window

       Move window forward

          map ctrl+shift+f move_window_forward

       Move window backward

          map ctrl+shift+b move_window_backward

       Move window to top

          map ctrl+shift+` move_window_to_top

       Start resizing window

          map ctrl+shift+r start_resizing_window
          map cmd+r start_resizing_window 🍎

       First window

          map ctrl+shift+1 first_window
          map cmd+1 first_window 🍎

       Second window

          map ctrl+shift+2 second_window
          map cmd+2 second_window 🍎

       Third window

          map ctrl+shift+3 third_window
          map cmd+3 third_window 🍎

       Fourth window

          map ctrl+shift+4 fourth_window
          map cmd+4 fourth_window 🍎

       Fifth window

          map ctrl+shift+5 fifth_window
          map cmd+5 fifth_window 🍎

       Sixth window

          map ctrl+shift+6 sixth_window
          map cmd+6 sixth_window 🍎

       Seventh window

          map ctrl+shift+7 seventh_window
          map cmd+7 seventh_window 🍎

       Eight window

          map ctrl+shift+8 eighth_window
          map cmd+8 eighth_window 🍎

       Ninth window

          map ctrl+shift+9 ninth_window
          map cmd+9 ninth_window 🍎

       Tenth window

          map ctrl+shift+0 tenth_window

       Visually select and focus window

          map ctrl+shift+f7 focus_visible_window

       Display overlay numbers and alphabets on the window, and switch the fo-
       cus  to the window when you press the key. When there are only two win-
       dows, the focus will be switched directly without displaying the  over-
       lay.  You can change the overlay characters and their order with option
       visual_window_select_characters.

       Visually swap window with another

          map ctrl+shift+f8 swap_with_window

       Works like focus_visible_window above, but swaps the window.

TAB MANAGEMENT
       Next tab

          map ctrl+shift+right next_tab
          map shift+cmd+] next_tab 🍎
          map ctrl+tab next_tab

       Previous tab

          map ctrl+shift+left previous_tab
          map shift+cmd+[ previous_tab 🍎
          map ctrl+shift+tab previous_tab

       New tab

          map ctrl+shift+t new_tab
          map cmd+t new_tab 🍎

       Close tab

          map ctrl+shift+q close_tab
          map cmd+w close_tab 🍎

       Close OS window

          map shift+cmd+w close_os_window 🍎

       Move tab forward

          map ctrl+shift+. move_tab_forward

       Move tab backward

          map ctrl+shift+, move_tab_backward

       Set tab title

          map ctrl+shift+alt+t set_tab_title
          map shift+cmd+i set_tab_title 🍎

       You can also create shortcuts to go to specific tabs, with 1 being  the
       first tab, 2 the second tab and -1 being the previously active tab, and
       any number larger than the last tab being the last tab:

          map ctrl+alt+1 goto_tab 1
          map ctrl+alt+2 goto_tab 2

       Just as with new_window above, you can also pass the name of  arbitrary
       commands  to  run  when using new_tab and new_tab_with_cwd. Finally, if
       you want the new tab to open next to the current tab rather than at the
       end of the tabs list, use:

          map ctrl+t new_tab !neighbor [optional cmd to run]

LAYOUT MANAGEMENT
       Next layout

          map ctrl+shift+l next_layout

       You can also create shortcuts to switch to specific layouts:

          map ctrl+alt+t goto_layout tall
          map ctrl+alt+s goto_layout stack

       Similarly, to switch back to the previous layout:

          map ctrl+alt+p last_used_layout

       There  is also a toggle_layout action that switches to the named layout
       or back to the previous layout if in the named layout. Useful to tempo-
       rarily "zoom" the active window by switching to the stack layout:

          map ctrl+alt+z toggle_layout stack

FONT SIZES
       You  can  change  the font size for all top-level kitty OS windows at a
       time or only the current one.

       Increase font size

          map ctrl+shift+equal change_font_size all +2.0
          map ctrl+shift+plus change_font_size all +2.0
          map ctrl+shift+kp_add change_font_size all +2.0
          map cmd+plus change_font_size all +2.0 🍎
          map cmd+equal change_font_size all +2.0 🍎
          map shift+cmd+equal change_font_size all +2.0 🍎

       Decrease font size

          map ctrl+shift+minus change_font_size all -2.0
          map ctrl+shift+kp_subtract change_font_size all -2.0
          map cmd+minus change_font_size all -2.0 🍎
          map shift+cmd+minus change_font_size all -2.0 🍎

       Reset font size

          map ctrl+shift+backspace change_font_size all 0
          map cmd+0 change_font_size all 0 🍎

       To setup shortcuts for specific font sizes:

          map kitty_mod+f6 change_font_size all 10.0

       To setup shortcuts to change only the current OS window's font size:

          map kitty_mod+f6 change_font_size current 10.0

SELECT AND ACT ON VISIBLE TEXT
       Use the hints kitten to select text and either pass it to  an  external
       program or insert it into the terminal or copy it to the clipboard.

       Open URL

          map ctrl+shift+e open_url_with_hints

       Open  a  currently  visible URL using the keyboard. The program used to
       open the URL is specified in open_url_with.

       Insert selected path

          map ctrl+shift+p>f kitten hints --type path --program -

       Select a path/filename and insert it into the terminal. Useful, for in-
       stance  to  run  git  commands on a filename output from a previous git
       command.

       Open selected path

          map ctrl+shift+p>shift+f kitten hints --type path

       Select a path/filename and open it with the default open program.

       Insert selected line

          map ctrl+shift+p>l kitten hints --type line --program -

       Select a line of text and insert it into the terminal. Useful  for  the
       output of things like: ls -1.

       Insert selected word

          map ctrl+shift+p>w kitten hints --type word --program -

       Select words and insert into terminal.

       Insert selected hash

          map ctrl+shift+p>h kitten hints --type hash --program -

       Select  something  that looks like a hash and insert it into the termi-
       nal. Useful with git, which uses SHA1 hashes to identify commits.

       Open the selected file at the selected line

          map ctrl+shift+p>n kitten hints --type linenum

       Select something that looks like filename:linenum and open it in vim at
       the specified line number.

       Open the selected hyperlink

          map ctrl+shift+p>y kitten hints --type hyperlink

       Select a hyperlink (i.e. a URL that has been marked as such by the ter-
       minal program, for example, by ls --hyperlink=auto).

       The hints kitten has many more modes of operation that you can  map  to
       different shortcuts. For a full description see hints kitten.

MISCELLANEOUS
       Show documentation

          map ctrl+shift+f1 show_kitty_doc overview

       Toggle fullscreen

          map ctrl+shift+f11 toggle_fullscreen
          map ctrl+cmd+f toggle_fullscreen 🍎

       Toggle maximized

          map ctrl+shift+f10 toggle_maximized

       Toggle macOS secure keyboard entry

          map opt+cmd+s toggle_macos_secure_keyboard_entry 🍎

       Unicode input

          map ctrl+shift+u kitten unicode_input
          map ctrl+cmd+space kitten unicode_input 🍎

       Edit config file

          map ctrl+shift+f2 edit_config_file
          map cmd+, edit_config_file 🍎

       Open the kitty command shell

          map ctrl+shift+escape kitty_shell window

       Open  the  kitty  shell  in a new window / tab / overlay / os_window to
       control kitty using commands.

       Increase background opacity

          map ctrl+shift+a>m set_background_opacity +0.1

       Decrease background opacity

          map ctrl+shift+a>l set_background_opacity -0.1

       Make background fully opaque

          map ctrl+shift+a>1 set_background_opacity 1

       Reset background opacity

          map ctrl+shift+a>d set_background_opacity default

       Reset the terminal

          map ctrl+shift+delete clear_terminal reset active
          map opt+cmd+r clear_terminal reset active 🍎

       You can create shortcuts to clear/reset the terminal. For example:

          # Reset the terminal
          map f1 clear_terminal reset active
          # Clear the terminal screen by erasing all contents
          map f1 clear_terminal clear active
          # Clear the terminal scrollback by erasing it
          map f1 clear_terminal scrollback active
          # Scroll the contents of the screen into the scrollback
          map f1 clear_terminal scroll active
          # Clear everything up to the line with the cursor
          map f1 clear_terminal to_cursor active

       If you want to operate on all kitty windows instead of just the current
       one, use all instead of active.

       It  is  also possible to remap Ctrl+L to both scroll the current screen
       contents into the scrollback buffer and clear the  screen,  instead  of
       just  clearing  the  screen,  for example, for ZSH add the following to
       ~/.zshrc:

          scroll-and-clear-screen() {
              printf '\n%.0s' {1..$LINES}
              zle clear-screen
          }
          zle -N scroll-and-clear-screen
          bindkey '^l' scroll-and-clear-screen

       Clear up to cursor line

          map cmd+k clear_terminal to_cursor active 🍎

       Reload kitty.conf

          map ctrl+shift+f5 load_config_file
          map ctrl+cmd+, load_config_file 🍎

       Reload kitty.conf, applying any changes since  the  last  time  it  was
       loaded.  Note  that  a handful of options cannot be dynamically changed
       and require a full restart of kitty. Particularly, when changing short-
       cuts  for  actions located on the macOS global menu bar, a full restart
       is needed. You can also map a keybinding to  load  a  different  config
       file, for example:

          map f5 load_config /path/to/alternative/kitty.conf

       Note  that  all  options from the original kitty.conf are discarded, in
       other words the new configuration replace the old ones.

       Debug kitty configuration

          map ctrl+shift+f6 debug_config
          map opt+cmd+, debug_config 🍎

       Show details about exactly what configuration kitty is running with and
       its host environment. Useful for debugging issues.

       Send arbitrary text on key presses

       You can tell kitty to send arbitrary (UTF-8) encoded text to the client
       program when pressing specified shortcut keys. For example:

          map ctrl+alt+a send_text all Special text

       This will send "Special text" when you press the Ctrl+Alt+A key  combi-
       nation.  The  text to be sent is a python string literal so you can use
       escapes like x1b to send control codes or u21fb to send Unicode charac-
       ters  (or  you  can just input the Unicode characters directly as UTF-8
       text). You can use kitty +kitten show_key to get the key  escape  codes
       you want to emulate.

       The first argument to send_text is the keyboard modes in which to acti-
       vate the shortcut. The possible values are normal,  application,  kitty
       or  a comma separated combination of them.  The modes normal and appli-
       cation refer to the DECCKM cursor key mode  for  terminals,  and  kitty
       refers  to  the kitty extended keyboard protocol. The special value all
       means all of them.

       Some more examples:

          # Output a word and move the cursor to the start of the line (like typing and pressing Home)
          map ctrl+alt+a send_text normal Word\x1b[H
          map ctrl+alt+a send_text application Word\x1bOH
          # Run a command at a shell prompt (like typing the command and pressing Enter)
          map ctrl+alt+a send_text normal,application some command with arguments\r

       Open kitty Website

          map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/ 🍎

       You can edit a  fully  commented  sample  kitty.conf  by  pressing  the
       ctrl+shift+f2  shortcut in kitty. This will generate a config file with
       full documentation and all  settings  commented  out.  If  you  have  a
       pre-existing  kitty.conf,  then that will be used instead, delete it to
       see the sample file.

       See the list of all the things you can make kitty can do.

MAPPABLE ACTIONS
       The actions described below can be mapped to any key press or mouse ac-
       tion using the map and mouse_map directives in kitty.conf. For configu-
       ration examples, see the default shortcut links for each action.

COPY/PASTE
       clear_selection

       Clear the current selection

       copy_and_clear_or_interrupt

       Copy the selected text from the active  window  to  the  clipboard  and
       clear selection, if no selection, send SIGINT (aka ctrl+c)

       copy_ansi_to_clipboard

       Copy  the  selected  text  from the active window to the clipboard with
       ANSI formatting codes

       copy_or_interrupt

       Copy the selected text from the active window to the clipboard,  if  no
       selection, send SIGINT (aka ctrl+c)

       copy_to_clipboard

       Copy the selected text from the active window to the clipboard

       Default shortcuts using this action: ctrl+shift+c

       pass_selection_to_program

       Pass the selected text from the active window to the specified program

       Default shortcuts using this action: ctrl+shift+o

       paste

       Paste the specified text into the current window

       show_first_command_output_on_screen

       Show output from the first shell command on screen in a pager like less

       Requires Shell integration to work

       show_last_command_output

       Show output from the last shell command in a pager like less

       Requires Shell integration to work

       Default shortcuts using this action: ctrl+shift+g

       show_last_non_empty_command_output

       Show  the  last  non-empty  output from a shell command in a pager like
       less

       Requires Shell integration to work

       show_last_visited_command_output

       Show the first command output below  the  last  scrolled  position  via
       scroll_to_prompt

       or the last mouse clicked command output in a pager like less

       Requires Shell integration to work

       show_scrollback

       Show scrollback in a pager like less

       Default shortcuts using this action: ctrl+shift+h

       copy_to_buffer

       Copy the selection from the active window to the specified buffer

       See Multiple copy/paste buffers for details.

       paste_from_buffer

       Paste from the specified buffer to the active window

       See Multiple copy/paste buffers for details.

       paste_from_clipboard

       Paste from the clipboard to the active window

       Default shortcuts using this action: ctrl+shift+v

       paste_from_selection

       Paste  from  the primary selection, if present, otherwise the clipboard
       to the active window

       Default shortcuts using this action: ctrl+shift+s

DEBUGGING
       dump_lines_with_attrs

       Show a dump of the current lines in the scrollback + screen with  their
       line attributes

       close_shared_ssh_connections

       Close all shared SSH connections

       See share_connections for details.

       debug_config

       Show the effective configuration kitty is running with

       Default shortcuts using this action: ctrl+shift+f6

       show_kitty_env_vars

       Show the environment variables that the kitty process sees

LAYOUTS
       goto_layout

       Switch to the named layout

       For example:

          map f1 goto_layout tall

       last_used_layout

       Go to the previously used layout

       layout_action

       Perform a layout specific action. See Arrange windows for details

       next_layout

       Go to the next enabled layout

       Default shortcuts using this action: ctrl+shift+l

       toggle_layout

       Toggle the named layout

       Switches  to  the  named layout if another layout is current, otherwise
       switches to the last used layout. Useful to "zoom" a window temporarily
       by switching to the stack layout. For example:

          map f1 toggle_layout stack

MARKS
       remove_marker

       Remove a previously created marker

       scroll_to_mark

       Scroll to the next or previous mark of the specified type

       toggle_marker

       Toggle the current marker on/off

       create_marker

       Create a new marker

MISCELLANEOUS
       send_text

       Send the specified text to the active window

       See send_text for details.

       Default shortcuts using this action: ctrl+shift+alt+h

       show_kitty_doc

       Display  the specified kitty documentation, preferring a local copy, if
       found.

       For example:

          # show the config docs
          map f1 show_kitty_doc conf
          # show the ssh kitten docs
          map f1 show_kitty_doc kittens/ssh

       Default shortcuts using this action: ctrl+shift+f1

       signal_child

       Send the specified SIGNAL to the foreground process in the active  win-
       dow

       For example:

          map f1 signal_child SIGTERM

       clear_terminal

       Clear the terminal

       See reset_terminal for details. For example:

          # Reset the terminal
          map f1 clear_terminal reset active
          # Clear the terminal screen by erasing all contents
          map f1 clear_terminal clear active
          # Clear the terminal scrollback by erasing it
          map f1 clear_terminal scrollback active
          # Scroll the contents of the screen into the scrollback
          map f1 clear_terminal scroll active
          # Clear everything up to the line with the cursor
          map f1 clear_terminal to_cursor active

       Default shortcuts using this action: cmd+k, ctrl+shift+delete

       combine

       Combine multiple actions and map to a single keypress

       The syntax is:

          map key combine <separator> action1 <separator> action2 <separator> action3 ...

       For example:

          map kitty_mod+e combine : new_window : next_layout

       disable_ligatures_in

       Turn on/off ligatures in the specified window

       See disable_ligatures for details

       discard_event

       Discard this event completely ignoring it

       edit_config_file

       Edit the kitty.conf config file in your favorite text editor

       Default shortcuts using this action: ctrl+shift+f2

       input_unicode_character

       Input an arbitrary unicode character. See Unicode input for details.

       kitten

       Run the specified kitten. See Custom kittens for details

       Default shortcuts using this action:

       • Hints - ctrl+shift+p>h Insert selected hash

       • Hints - ctrl+shift+p>l Insert selected line

       • Hints - ctrl+shift+p>f Insert selected path

       • Hints - ctrl+shift+p>w Insert selected word

       • Hints - ctrl+shift+p>shift+f Open selected path

       • Hints - ctrl+shift+p>n Open the selected file at the selected line

       • Hints - ctrl+shift+p>y Open the selected hyperlink

       • Unicode input - ctrl+shift+u Unicode input

       kitty_shell

       Run the kitty shell to control kitty with commands

       Default shortcuts using this action: ctrl+shift+escape

       launch

       Launch the specified program in a new window/tab/etc.

       See The launch command for details

       load_config_file

       Reload the config file

       If  mapped without arguments reloads the default config file, otherwise
       loads the specified config files, in order. Loading a config  file  re-
       places all config options. For example:

          map f5 load_config_file /path/to/some/kitty.conf

       Default shortcuts using this action: ctrl+shift+f5

       open_url

       Open the specified URL

       Default shortcuts using this action: shift+cmd+/

       open_url_with_hints

       Click a URL using the keyboard

       Default shortcuts using this action: ctrl+shift+e

       remote_control

       Run a remote control command

       For example:

          map f1 remote_control set-spacing margin=30

       See Mapping key presses to remote control commands for details.

       set_colors

       Change colors in the specified windows

       For details, see kitty @ set-colors. For example:

          map f5 set_colors --configured /path/to/some/config/file/colors.conf

       toggle_macos_secure_keyboard_entry

       Toggle macOS secure keyboard entry

       Default shortcuts using this action: opt+cmd+s

       no_op

       Unbind a shortcut

       Mapping  a  shortcut  to  no_op  causes  kitty to not intercept the key
       stroke anymore, instead passing it to the program running inside it.

MOUSE ACTIONS
       mouse_click_url

       Click the URL under the mouse

       mouse_click_url_or_select

       Click the URL under the mouse only if the screen has no selection

       mouse_handle_click

       Handle a mouse click

       Try to perform the specified actions one after the other  till  one  of
       them is successful.  Supported actions are:

          selection - check for a selection and if one exists abort processing
          link - if a link exists under the mouse, click it
          prompt - if the mouse click happens at a shell prompt move the cursor to the mouse location

       For examples, see Mouse actions

       mouse_select_command_output

       Select clicked command output

       Requires Shell integration to work

       mouse_selection

       Manipulate the selection based on the current mouse position

       For examples, see Mouse actions

       mouse_show_command_output

       Show clicked command output in a pager like less

       Requires Shell integration to work

       paste_selection

       Paste the current primary selection

       paste_selection_or_clipboard

       Paste the current primary selection or the clipboard if no selection is
       present

SCROLLING
       scroll_end

       Scroll to the bottom of the scrollback buffer

       Default shortcuts using this action: ctrl+shift+end

       scroll_home

       Scroll to the top of the scrollback buffer

       Default shortcuts using this action: ctrl+shift+home

       scroll_line_down

       Scroll down by one line

       Default shortcuts using this action: ctrl+shift+down

       scroll_line_up

       Scroll up by one line

       Default shortcuts using this action: ctrl+shift+up

       scroll_page_down

       Scroll down by one page

       Default shortcuts using this action: ctrl+shift+page_down

       scroll_page_up

       Scroll up by one page

       Default shortcuts using this action: ctrl+shift+page_up

       scroll_prompt_to_bottom

       Scroll prompt to the bottom of the screen, filling in extra lines  from
       the scrollback buffer

       scroll_prompt_to_top

       Scroll prompt to the top of the screen, filling screen with empty lines

       scroll_to_prompt

       Scroll to the previous/next shell command prompt

       Allows  easy  jumping  from  one  command to the next. Requires working
       Shell integration. Takes a single, optional, number as  argument  which
       is  the number of prompts to jump, negative values jump up and positive
       values jump down.  A value of zero will jump to the last prompt visited
       by this action.  For example:

          map ctrl+p scroll_to_prompt -1  # jump to previous
          map ctrl+n scroll_to_prompt 1   # jump to next
          map ctrl+o scroll_to_prompt 0   # jump to last visited

       Default shortcuts using this action: ctrl+shift+x, ctrl+shift+z

TAB MANAGEMENT
       close_other_tabs_in_os_window

       Close  all  the  tabs in the current OS window other than the currently
       active tab

       close_tab

       Close the current tab

       Default shortcuts using this action: ctrl+shift+q

       detach_tab

       Detach a tab, moving it to another OS Window

       See detaching windows for details.

       goto_tab

       Go to the specified tab, by number, starting with 1

       Zero and negative numbers go to previously active tabs

       move_tab_backward

       Move the active tab backward

       Default shortcuts using this action: ctrl+shift+,

       move_tab_forward

       Move the active tab forward

       Default shortcuts using this action: ctrl+shift+.

       new_tab

       Create a new tab

       Default shortcuts using this action: ctrl+shift+t

       new_tab_with_cwd

       Create a new tab with working directory for the window in it set to the
       same as the active window

       next_tab

       Make the next tab active

       Default shortcuts using this action: ctrl+shift+right

       previous_tab

       Make the previous tab active

       Default shortcuts using this action: ctrl+shift+left

       select_tab

       Interactively select a tab to switch to

       set_tab_title

       Change  the title of the active tab interactively, by typing in the new
       title.

       If you specify an argument to this action then that is used as the  ti-
       tle  instead  of asking for it.  Use the empty string ("") to reset the
       title to default. For example:

          # interactive usage
          map f1 set_tab_title
          # set a specific title
          map f2 set_tab_title some title
          # reset to default
          map f3 set_tab_title ""

       Default shortcuts using this action: ctrl+shift+alt+t

WINDOW MANAGEMENT
       close_other_windows_in_tab

       Close all windows in the tab other than the currently active window

       eighth_window

       Focus the eighth window

       Default shortcuts using this action: ctrl+shift+8

       fifth_window

       Focus the fifth window

       Default shortcuts using this action: ctrl+shift+5

       first_window

       Focus the first window

       Default shortcuts using this action: ctrl+shift+1

       focus_visible_window

       Focus a visible window by pressing the number  of  the  window.  Window
       numbers are displayed

       over   the   windows   for   easy   selection   in   this   mode.   See
       visual_window_select_characters.

       Default shortcuts using this action: ctrl+shift+f7

       fourth_window

       Focus the fourth window

       Default shortcuts using this action: ctrl+shift+4

       move_window

       Move the window in the specified direction

       For example:

          map ctrl+left move_window left
          map ctrl+down move_window bottom

       move_window_backward

       Move active window backward (swap it with the previous window)

       Default shortcuts using this action: ctrl+shift+b

       move_window_forward

       Move active window forward (swap it with the next window)

       Default shortcuts using this action: ctrl+shift+f

       move_window_to_top

       Move active window to the top (make it the first window)

       Default shortcuts using this action: ctrl+shift+`

       neighboring_window

       Focus the neighboring window in the current tab

       For example:

          map ctrl+left neighboring_window left
          map ctrl+down neighboring_window bottom

       next_window

       Focus the next window in the current tab

       Default shortcuts using this action: ctrl+shift+]

       ninth_window

       Focus the ninth window

       Default shortcuts using this action: ctrl+shift+9

       nth_window

       Focus the nth window if positive or the previously  active  windows  if
       negative. When the number is larger

       than the number of windows focus the last window. For example:

          # focus the previously active window
          map ctrl+p nth_window -1
          # focus the first window
          map ctrl+1 nth_window 0

       previous_window

       Focus the previous window in the current tab

       Default shortcuts using this action: ctrl+shift+[

       reset_window_sizes

       Reset window sizes undoing any dynamic resizing of windows

       resize_window

       Resize the active window by the specified amount

       See Resizing windows for details.

       second_window

       Focus the second window

       Default shortcuts using this action: ctrl+shift+2

       seventh_window

       Focus the seventh window

       Default shortcuts using this action: ctrl+shift+7

       sixth_window

       Focus the sixth window

       Default shortcuts using this action: ctrl+shift+6

       swap_with_window

       Swap  the  current  window  with another window in the current tab, se-
       lected visually. See visual_window_select_characters

       Default shortcuts using this action: ctrl+shift+f8

       tenth_window

       Focus the tenth window

       Default shortcuts using this action: ctrl+shift+0

       third_window

       Focus the third window

       Default shortcuts using this action: ctrl+shift+3

       change_font_size

       Change the font size for the current or all OS Windows

       See Font sizes for details.

       Default    shortcuts    using    this     action:     ctrl+shift+minus,
       ctrl+shift+equal, ctrl+shift+backspace

       close_os_window

       Close the currently active OS Window

       Default shortcuts using this action: shift+cmd+w

       close_window

       Close the currently active window

       Default shortcuts using this action: ctrl+shift+w

       close_window_with_confirmation

       Close window with confirmation

       Asks  for confirmation before closing the window. If you don't want the
       confirmation when the window is sitting at  a  shell  prompt  (requires
       Shell integration), use:

          map f1 close_window_with_confirmation ignore-shell

       detach_window

       Detach a window, moving it to another tab or OS Window

       See detaching windows for details.

       new_os_window

       New OS Window

       Default shortcuts using this action: ctrl+shift+n

       new_os_window_with_cwd

       New  OS  Window with the same working directory as the currently active
       window

       new_window

       Create a new window

       Default shortcuts using this action: ctrl+shift+enter

       new_window_with_cwd

       Create a new window with working directory same as that of  the  active
       window

       nth_os_window

       Focus the nth OS window

       quit

       Quit, closing all windows

       set_background_opacity

       Set the background opacity for the active OS Window

       For example:

          map f1 set_background_opacity +0.1
          map f2 set_background_opacity -0.1
          map f3 set_background_opacity 0.5

       Default  shortcuts  using  this action: ctrl+shift+a>l, ctrl+shift+a>1,
       ctrl+shift+a>m, ctrl+shift+a>d

       start_resizing_window

       Resize the active window interactively

       See Resizing windows for details.

       Default shortcuts using this action: ctrl+shift+r

       toggle_fullscreen

       Toggle the fullscreen status of the active OS Window

       Default shortcuts using this action: ctrl+shift+f11

       toggle_maximized

       Toggle the maximized status of the active OS Window

       Default shortcuts using this action: ctrl+shift+f10

AUTHOR
       Kovid Goyal

COPYRIGHT
       2023, Kovid Goyal

0.26.5                           May 13, 2023                    KITTY.CONF(5)

Generated by dwww version 1.15 on Sat Jun 1 23:10:48 CEST 2024.