···88 border_size = 3
991010 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
1111- col.active_border = rgba(00df81ff) rgba(032221ff) rgba(03624cff) rgba(2cc295ff) rgba(00df81ff) 45deg
1212- col.inactive_border = rgba(595959aa)
1111+ col.active_border = rgb(6cbfbf)
1212+ col.inactive_border = rgb(595959)
13131414 # Set to true enable resizing windows by clicking and dragging on borders and gaps
1515 resize_on_border = true
+37-4
window_manager/.config/kitty/kitty.conf
···1267126712681268#: }}}
1269126912701270-#: Color scheme {{{
12701270+#: Color scheme - Everblush {{{
12711271+12721272+# Base colors
12731273+foreground #dadada
12741274+background #141b1e
12751275+selection_foreground #dadada
12761276+selection_background #2d3437
12771277+12781278+# Cursor colors
12791279+cursor #2d3437
12801280+cursor_text_color #dadada
12811281+12821282+# Normal colors
12831283+color0 #232a2d
12841284+color1 #e57474
12851285+color2 #8ccf7e
12861286+color3 #e5c76b
12871287+color4 #67b0e8
12881288+color5 #c47fd5
12891289+color6 #6cbfbf
12901290+color7 #b3b9b8
1271129112721272-# foreground #dddddd
12731273-# background #000000
12921292+# Bright colors
12931293+color8 #2d3437
12941294+color9 #ef7e7e
12951295+color10 #96d988
12961296+color11 #f4d67a
12971297+color12 #71baf2
12981298+color13 #ce89df
12991299+color14 #67cbe7
13001300+color15 #bdc3c2
13011301+13021302+# Tab colors
13031303+active_tab_foreground #e182e0
13041304+active_tab_background #1b2224
13051305+inactive_tab_foreground #cd69cc
13061306+inactive_tab_background #232a2c
1274130712751308#: The foreground and background colors.
1276130912771277-background_opacity 0.7
13101310+background_opacity 0.9
1278131112791312#: The opacity of the background. A number between zero and one, where
12801313#: one is opaque and zero is fully transparent. This will only work if
-2720
window_manager/.config/kitty/kitty.conf.bak
···11-# vim:fileencoding=utf-8:foldmethod=marker
22-33-# BEGIN_KITTY_FONTS
44-font_family family="JetBrainsMono Nerd Font Mono"
55-bold_font auto
66-italic_font auto
77-bold_italic_font auto
88-# END_KITTY_FONTS
99-1010-#: Fonts {{{
1111-1212-#: kitty has very powerful font management. You can configure
1313-#: individual font faces and even specify special fonts for particular
1414-#: characters.
1515-1616-# font_family monospace
1717-# bold_font auto
1818-# italic_font auto
1919-# bold_italic_font auto
2020-2121-#: You can specify different fonts for the bold/italic/bold-italic
2222-#: variants. The easiest way to select fonts is to run the `kitten
2323-#: choose-fonts` command which will present a nice UI for you to
2424-#: select the fonts you want with previews and support for selecting
2525-#: variable fonts and font features. If you want to learn to select
2626-#: fonts manually, read the font specification syntax
2727-#: <https://sw.kovidgoyal.net/kitty/kittens/choose-fonts/#font-spec-
2828-#: syntax>.
2929-3030-# font_size 11.0
3131-3232-#: Font size (in pts).
3333-3434-# force_ltr no
3535-3636-#: kitty does not support BIDI (bidirectional text), however, for RTL
3737-#: scripts, words are automatically displayed in RTL. That is to say,
3838-#: in an RTL script, the words "HELLO WORLD" display in kitty as
3939-#: "WORLD HELLO", and if you try to select a substring of an RTL-
4040-#: shaped string, you will get the character that would be there had
4141-#: the string been LTR. For example, assuming the Hebrew word ירושלים,
4242-#: selecting the character that on the screen appears to be ם actually
4343-#: writes into the selection buffer the character י. kitty's default
4444-#: behavior is useful in conjunction with a filter to reverse the word
4545-#: order, however, if you wish to manipulate RTL glyphs, it can be
4646-#: very challenging to work with, so this option is provided to turn
4747-#: it off. Furthermore, this option can be used with the command line
4848-#: program GNU FriBidi <https://github.com/fribidi/fribidi#executable>
4949-#: to get BIDI support, because it will force kitty to always treat
5050-#: the text as LTR, which FriBidi expects for terminals.
5151-5252-# symbol_map
5353-5454-#: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols
5555-5656-#: Map the specified Unicode codepoints to a particular font. Useful
5757-#: if you need special rendering for some symbols, such as for
5858-#: Powerline. Avoids the need for patched fonts. Each Unicode code
5959-#: point is specified in the form `U+<code point in hexadecimal>`. You
6060-#: can specify multiple code points, separated by commas and ranges
6161-#: separated by hyphens. This option can be specified multiple times.
6262-#: The syntax is::
6363-6464-#: symbol_map codepoints Font Family Name
6565-6666-# narrow_symbols
6767-6868-#: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1
6969-7070-#: Usually, for Private Use Unicode characters and some symbol/dingbat
7171-#: characters, if the character is followed by one or more spaces,
7272-#: kitty will use those extra cells to render the character larger, if
7373-#: the character in the font has a wide aspect ratio. Using this
7474-#: option you can force kitty to restrict the specified code points to
7575-#: render in the specified number of cells (defaulting to one cell).
7676-#: This option can be specified multiple times. The syntax is::
7777-7878-#: narrow_symbols codepoints [optionally the number of cells]
7979-8080-# disable_ligatures never
8181-8282-#: Choose how you want to handle multi-character ligatures. The
8383-#: default is to always render them. You can tell kitty to not render
8484-#: them when the cursor is over them by using cursor to make editing
8585-#: easier, or have kitty never render them at all by using always, if
8686-#: you don't like them. The ligature strategy can be set per-window
8787-#: either using the kitty remote control facility or by defining
8888-#: shortcuts for it in kitty.conf, for example::
8989-9090-#: map alt+1 disable_ligatures_in active always
9191-#: map alt+2 disable_ligatures_in all never
9292-#: map alt+3 disable_ligatures_in tab cursor
9393-9494-#: Note that this refers to programming ligatures, typically
9595-#: implemented using the calt OpenType feature. For disabling general
9696-#: ligatures, use the font_features option.
9797-9898-# font_features
9999-100100-#: E.g. font_features none
101101-102102-#: Choose exactly which OpenType features to enable or disable. Note
103103-#: that for the main fonts, features can be specified when selecting
104104-#: the font using the choose-fonts kitten. This setting is useful for
105105-#: fallback fonts.
106106-107107-#: Some fonts might have features worthwhile in a terminal. For
108108-#: example, Fira Code includes a discretionary feature, zero, which in
109109-#: that font changes the appearance of the zero (0), to make it more
110110-#: easily distinguishable from Ø. Fira Code also includes other
111111-#: discretionary features known as Stylistic Sets which have the tags
112112-#: ss01 through ss20.
113113-114114-#: For the exact syntax to use for individual features, see the
115115-#: HarfBuzz documentation <https://harfbuzz.github.io/harfbuzz-hb-
116116-#: common.html#hb-feature-from-string>.
117117-118118-#: Note that this code is indexed by PostScript name, and not the font
119119-#: family. This allows you to define very precise feature settings;
120120-#: e.g. you can disable a feature in the italic font but not in the
121121-#: regular font.
122122-123123-#: On Linux, font features are first read from the FontConfig database
124124-#: and then this option is applied, so they can be configured in a
125125-#: single, central place.
126126-127127-#: To get the PostScript name for a font, use the `fc-scan file.ttf`
128128-#: command on Linux or the `Font Book tool on macOS
129129-#: <https://apple.stackexchange.com/questions/79875/how-can-i-get-the-
130130-#: postscript-name-of-a-ttf-font-installed-in-os-x>`__.
131131-132132-#: Enable alternate zero and oldstyle numerals::
133133-134134-#: font_features FiraCode-Retina +zero +onum
135135-136136-#: Enable only alternate zero in the bold font::
137137-138138-#: font_features FiraCode-Bold +zero
139139-140140-#: Disable the normal ligatures, but keep the calt feature which (in
141141-#: this font) breaks up monotony::
142142-143143-#: font_features TT2020StyleB-Regular -liga +calt
144144-145145-#: In conjunction with force_ltr, you may want to disable Arabic
146146-#: shaping entirely, and only look at their isolated forms if they
147147-#: show up in a document. You can do this with e.g.::
148148-149149-#: font_features UnifontMedium +isol -medi -fina -init
150150-151151-# modify_font
152152-153153-#: Modify font characteristics such as the position or thickness of
154154-#: the underline and strikethrough. The modifications can have the
155155-#: suffix px for pixels or % for percentage of original value. No
156156-#: suffix means use pts. For example::
157157-158158-#: modify_font underline_position -2
159159-#: modify_font underline_thickness 150%
160160-#: modify_font strikethrough_position 2px
161161-162162-#: Additionally, you can modify the size of the cell in which each
163163-#: font glyph is rendered and the baseline at which the glyph is
164164-#: placed in the cell. For example::
165165-166166-#: modify_font cell_width 80%
167167-#: modify_font cell_height -2px
168168-#: modify_font baseline 3
169169-170170-#: Note that modifying the baseline will automatically adjust the
171171-#: underline and strikethrough positions by the same amount.
172172-#: Increasing the baseline raises glyphs inside the cell and
173173-#: decreasing it lowers them. Decreasing the cell size might cause
174174-#: rendering artifacts, so use with care.
175175-176176-# box_drawing_scale 0.001, 1, 1.5, 2
177177-178178-#: The sizes of the lines used for the box drawing Unicode characters.
179179-#: These values are in pts. They will be scaled by the monitor DPI to
180180-#: arrive at a pixel value. There must be four values corresponding to
181181-#: thin, normal, thick, and very thick lines.
182182-183183-# undercurl_style thin-sparse
184184-185185-#: The style with which undercurls are rendered. This option takes the
186186-#: form (thin|thick)-(sparse|dense). Thin and thick control the
187187-#: thickness of the undercurl. Sparse and dense control how often the
188188-#: curl oscillates. With sparse the curl will peak once per character,
189189-#: with dense twice. Changing this option dynamically via reloading
190190-#: the config or remote control is undefined.
191191-192192-# underline_exclusion 1
193193-194194-#: By default kitty renders gaps in underlines when they overlap with
195195-#: descenders (the parts of letters below the baseline, such as for y,
196196-#: q, p etc.). This option controls the thickness of the gaps. It can
197197-#: be either a unitless number in which case it is a fraction of the
198198-#: underline thickness as specified in the font or it can have a
199199-#: suffix of px for pixels or pt for points. Set to zero to disable
200200-#: the gaps. Changing this option dynamically via reloading the config
201201-#: or remote control is undefined.
202202-203203-# text_composition_strategy platform
204204-205205-#: Control how kitty composites text glyphs onto the background color.
206206-#: The default value of platform tries for text rendering as close to
207207-#: "native" for the platform kitty is running on as possible.
208208-209209-#: A value of legacy uses the old (pre kitty 0.28) strategy for how
210210-#: glyphs are composited. This will make dark text on light
211211-#: backgrounds look thicker and light text on dark backgrounds
212212-#: thinner. It might also make some text appear like the strokes are
213213-#: uneven.
214214-215215-#: You can fine tune the actual contrast curve used for glyph
216216-#: composition by specifying up to two space-separated numbers for
217217-#: this setting.
218218-219219-#: The first number is the gamma adjustment, which controls the
220220-#: thickness of dark text on light backgrounds. Increasing the value
221221-#: will make text appear thicker. The default value for this is 1.0 on
222222-#: Linux and 1.7 on macOS. Valid values are 0.01 and above. The result
223223-#: is scaled based on the luminance difference between the background
224224-#: and the foreground. Dark text on light backgrounds receives the
225225-#: full impact of the curve while light text on dark backgrounds is
226226-#: affected very little.
227227-228228-#: The second number is an additional multiplicative contrast. It is
229229-#: percentage ranging from 0 to 100. The default value is 0 on Linux
230230-#: and 30 on macOS.
231231-232232-#: If you wish to achieve similar looking thickness in light and dark
233233-#: themes, a good way to experiment is start by setting the value to
234234-#: 1.0 0 and use a dark theme. Then adjust the second parameter until
235235-#: it looks good. Then switch to a light theme and adjust the first
236236-#: parameter until the perceived thickness matches the dark theme.
237237-238238-# text_fg_override_threshold 0
239239-240240-#: A setting to prevent low contrast between foreground and background
241241-#: colors. Useful when working with applications that use colors that
242242-#: do not contrast well with your preferred color scheme. The default
243243-#: value is 0, which means no color overriding is performed. There are
244244-#: two modes of operation:
245245-246246-#: A value with the suffix ratio represents the minimum accepted
247247-#: contrast ratio between the foreground and background color.
248248-#: Possible values range from 0.0 ratio to 21.0 ratio. For example, to
249249-#: meet WCAG level AA
250250-#: <https://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines>
251251-#: a value of 4.5 ratio can be provided. The algorithm is implemented
252252-#: using HSLuv <https://www.hsluv.org/> which enables it to change the
253253-#: perceived lightness of a color just as much as needed without
254254-#: really changing its hue and saturation.
255255-256256-#: A value with the suffix % represents the minimum accepted
257257-#: difference in luminance between the foreground and background
258258-#: color, below which kitty will override the foreground color. It is
259259-#: percentage ranging from 0 % to 100 %. If the difference in
260260-#: luminance of the foreground and background is below this threshold,
261261-#: the foreground color will be set to white if the background is dark
262262-#: or black if the background is light.
263263-264264-#: WARNING: Some programs use characters (such as block characters)
265265-#: for graphics display and may expect to be able to set the
266266-#: foreground and background to the same color (or similar colors). If
267267-#: you see unexpected stripes, dots, lines, incorrect color, no color
268268-#: where you expect color, or any kind of graphic display problem try
269269-#: setting text_fg_override_threshold to 0 to see if this is the cause
270270-#: of the problem or consider using the ratio mode of operation
271271-#: described above instead of the % mode of operation.
272272-273273-#: }}}
274274-275275-#: Text cursor customization {{{
276276-277277-# cursor #cccccc
278278-279279-#: Default text cursor color. If set to the special value none the
280280-#: cursor will be rendered with a "reverse video" effect. Its color
281281-#: will be the color of the text in the cell it is over and the text
282282-#: will be rendered with the background color of the cell. Note that
283283-#: if the program running in the terminal sets a cursor color, this
284284-#: takes precedence. Also, the cursor colors are modified if the cell
285285-#: background and foreground colors have very low contrast. Note that
286286-#: some themes set this value, so if you want to override it, place
287287-#: your value after the lines where the theme file is included.
288288-289289-# cursor_text_color #111111
290290-291291-#: The color of text under the cursor. If you want it rendered with
292292-#: the background color of the cell underneath instead, use the
293293-#: special keyword: `background`. Note that if cursor is set to none
294294-#: then this option is ignored. Note that some themes set this value,
295295-#: so if you want to override it, place your value after the lines
296296-#: where the theme file is included.
297297-298298-# cursor_shape block
299299-300300-#: The cursor shape can be one of block, beam, underline. Note that
301301-#: when reloading the config this will be changed only if the cursor
302302-#: shape has not been set by the program running in the terminal. This
303303-#: sets the default cursor shape, applications running in the terminal
304304-#: can override it. In particular, shell integration
305305-#: <https://sw.kovidgoyal.net/kitty/shell-integration/> in kitty sets
306306-#: the cursor shape to beam at shell prompts. You can avoid this by
307307-#: setting shell_integration to no-cursor.
308308-309309-# cursor_shape_unfocused hollow
310310-311311-#: Defines the text cursor shape when the OS window is not focused.
312312-#: The unfocused cursor shape can be one of block, beam, underline,
313313-#: hollow and unchanged (leave the cursor shape as it is).
314314-315315-# cursor_beam_thickness 1.5
316316-317317-#: The thickness of the beam cursor (in pts).
318318-319319-# cursor_underline_thickness 2.0
320320-321321-#: The thickness of the underline cursor (in pts).
322322-323323-# cursor_blink_interval -1
324324-325325-#: The interval to blink the cursor (in seconds). Set to zero to
326326-#: disable blinking. Negative values mean use system default. Note
327327-#: that the minimum interval will be limited to repaint_delay. You can
328328-#: also animate the cursor blink by specifying an easing function. For
329329-#: example, setting this to option to 0.5 ease-in-out will cause the
330330-#: cursor blink to be animated over a second, in the first half of the
331331-#: second it will go from opaque to transparent and then back again
332332-#: over the next half. You can specify different easing functions for
333333-#: the two halves, for example: -1 linear ease-out. kitty supports all
334334-#: the CSS easing functions <https://developer.mozilla.org/en-
335335-#: US/docs/Web/CSS/easing-function>. Note that turning on animations
336336-#: uses extra power as it means the screen is redrawn multiple times
337337-#: per blink interval. See also, cursor_stop_blinking_after.
338338-339339-# cursor_stop_blinking_after 15.0
340340-341341-#: Stop blinking cursor after the specified number of seconds of
342342-#: keyboard inactivity. Set to zero to never stop blinking.
343343-344344-# cursor_trail 0
345345-346346-#: Set this to a value larger than zero to enable a "cursor trail"
347347-#: animation. This is an animation that shows a "trail" following the
348348-#: movement of the text cursor. It makes it easy to follow large
349349-#: cursor jumps and makes for a cool visual effect of the cursor
350350-#: zooming around the screen. The actual value of this option controls
351351-#: when the animation is triggered. It is a number of milliseconds.
352352-#: The trail animation only follows cursors that have stayed in their
353353-#: position for longer than the specified number of milliseconds. This
354354-#: prevents trails from appearing for cursors that rapidly change
355355-#: their positions during UI updates in complex applications. See
356356-#: cursor_trail_decay to control the animation speed and
357357-#: cursor_trail_start_threshold to control when a cursor trail is
358358-#: started.
359359-360360-# cursor_trail_decay 0.1 0.4
361361-362362-#: Controls the decay times for the cursor trail effect when the
363363-#: cursor_trail is enabled. This option accepts two positive float
364364-#: values specifying the fastest and slowest decay times in seconds.
365365-#: The first value corresponds to the fastest decay time (minimum),
366366-#: and the second value corresponds to the slowest decay time
367367-#: (maximum). The second value must be equal to or greater than the
368368-#: first value. Smaller values result in a faster decay of the cursor
369369-#: trail. Adjust these values to control how quickly the cursor trail
370370-#: fades away.
371371-372372-# cursor_trail_start_threshold 2
373373-374374-#: Set the distance threshold for starting the cursor trail. This
375375-#: option accepts a positive integer value that represents the minimum
376376-#: number of cells the cursor must move before the trail is started.
377377-#: When the cursor moves less than this threshold, the trail is
378378-#: skipped, reducing unnecessary cursor trail animation.
379379-380380-#: }}}
381381-382382-#: Scrollback {{{
383383-384384-# scrollback_lines 2000
385385-386386-#: Number of lines of history to keep in memory for scrolling back.
387387-#: Memory is allocated on demand. Negative numbers are (effectively)
388388-#: infinite scrollback. Note that using very large scrollback is not
389389-#: recommended as it can slow down performance of the terminal and
390390-#: also use large amounts of RAM. Instead, consider using
391391-#: scrollback_pager_history_size. Note that on config reload if this
392392-#: is changed it will only affect newly created windows, not existing
393393-#: ones.
394394-395395-# scrollback_indicator_opacity 1.0
396396-397397-#: The opacity of the scrollback indicator which is a small colored
398398-#: rectangle that moves along the right hand side of the window as you
399399-#: scroll, indicating what fraction you have scrolled. The default is
400400-#: one which means fully opaque, aka visible. Set to a value between
401401-#: zero and one to make the indicator less visible.
402402-403403-# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
404404-405405-#: Program with which to view scrollback in a new window. The
406406-#: scrollback buffer is passed as STDIN to this program. If you change
407407-#: it, make sure the program you use can handle ANSI escape sequences
408408-#: for colors and text formatting. INPUT_LINE_NUMBER in the command
409409-#: line above will be replaced by an integer representing which line
410410-#: should be at the top of the screen. Similarly CURSOR_LINE and
411411-#: CURSOR_COLUMN will be replaced by the current cursor position or
412412-#: set to 0 if there is no cursor, for example, when showing the last
413413-#: command output.
414414-415415-# scrollback_pager_history_size 0
416416-417417-#: Separate scrollback history size (in MB), used only for browsing
418418-#: the scrollback buffer with pager. This separate buffer is not
419419-#: available for interactive scrolling but will be piped to the pager
420420-#: program when viewing scrollback buffer in a separate window. The
421421-#: current implementation stores the data in UTF-8, so approximately
422422-#: 10000 lines per megabyte at 100 chars per line, for pure ASCII,
423423-#: unformatted text. A value of zero or less disables this feature.
424424-#: The maximum allowed size is 4GB. Note that on config reload if this
425425-#: is changed it will only affect newly created windows, not existing
426426-#: ones.
427427-428428-# scrollback_fill_enlarged_window no
429429-430430-#: Fill new space with lines from the scrollback buffer after
431431-#: enlarging a window.
432432-433433-# wheel_scroll_multiplier 5.0
434434-435435-#: Multiplier for the number of lines scrolled by the mouse wheel.
436436-#: Note that this is only used for low precision scrolling devices,
437437-#: not for high precision scrolling devices on platforms such as macOS
438438-#: and Wayland. Use negative numbers to change scroll direction. See
439439-#: also wheel_scroll_min_lines.
440440-441441-# wheel_scroll_min_lines 1
442442-443443-#: The minimum number of lines scrolled by the mouse wheel. The scroll
444444-#: multiplier wheel_scroll_multiplier only takes effect after it
445445-#: reaches this number. Note that this is only used for low precision
446446-#: scrolling devices like wheel mice that scroll by very small amounts
447447-#: when using the wheel. With a negative number, the minimum number of
448448-#: lines will always be added.
449449-450450-# touch_scroll_multiplier 1.0
451451-452452-#: Multiplier for the number of lines scrolled by a touchpad. Note
453453-#: that this is only used for high precision scrolling devices on
454454-#: platforms such as macOS and Wayland. Use negative numbers to change
455455-#: scroll direction.
456456-457457-#: }}}
458458-459459-#: Mouse {{{
460460-461461-# mouse_hide_wait 3.0
462462-463463-#: Hide mouse cursor after the specified number of seconds of the
464464-#: mouse not being used. Set to zero to disable mouse cursor hiding.
465465-#: Set to a negative value to hide the mouse cursor immediately when
466466-#: typing text. Disabled by default on macOS as getting it to work
467467-#: robustly with the ever-changing sea of bugs that is Cocoa is too
468468-#: much effort.
469469-470470-# url_color #0087bd
471471-# url_style curly
472472-473473-#: The color and style for highlighting URLs on mouse-over. url_style
474474-#: can be one of: none, straight, double, curly, dotted, dashed.
475475-476476-# open_url_with default
477477-478478-#: The program to open clicked URLs. The special value default will
479479-#: first look for any URL handlers defined via the open_actions
480480-#: <https://sw.kovidgoyal.net/kitty/open_actions/> facility and if non
481481-#: are found, it will use the Operating System's default URL handler
482482-#: (open on macOS and xdg-open on Linux).
483483-484484-# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
485485-486486-#: The set of URL prefixes to look for when detecting a URL under the
487487-#: mouse cursor.
488488-489489-# detect_urls yes
490490-491491-#: Detect URLs under the mouse. Detected URLs are highlighted with an
492492-#: underline and the mouse cursor becomes a hand over them. Even if
493493-#: this option is disabled, URLs are still clickable. See also the
494494-#: underline_hyperlinks option to control how hyperlinks (as opposed
495495-#: to plain text URLs) are displayed.
496496-497497-# url_excluded_characters
498498-499499-#: Additional characters to be disallowed from URLs, when detecting
500500-#: URLs under the mouse cursor. By default, all characters that are
501501-#: legal in URLs are allowed. Additionally, newlines are allowed (but
502502-#: stripped). This is to accommodate programs such as mutt that add
503503-#: hard line breaks even for continued lines. \n can be added to this
504504-#: option to disable this behavior. Special characters can be
505505-#: specified using backslash escapes, to specify a backslash use a
506506-#: double backslash.
507507-508508-# show_hyperlink_targets no
509509-510510-#: When the mouse hovers over a terminal hyperlink, show the actual
511511-#: URL that will be activated when the hyperlink is clicked.
512512-513513-# underline_hyperlinks hover
514514-515515-#: Control how hyperlinks are underlined. They can either be
516516-#: underlined on mouse hover, always (i.e. permanently underlined) or
517517-#: never which means that kitty will not apply any underline styling
518518-#: to hyperlinks. Note that the value of always only applies to real
519519-#: (OSC 8) hyperlinks not text that is detected to be a URL on mouse
520520-#: hover. Uses the url_style and url_color settings for the underline
521521-#: style. Note that reloading the config and changing this value
522522-#: to/from always will only affect text subsequently received by
523523-#: kitty.
524524-525525-# copy_on_select no
526526-527527-#: Copy to clipboard or a private buffer on select. With this set to
528528-#: clipboard, selecting text with the mouse will cause the text to be
529529-#: copied to clipboard. Useful on platforms such as macOS that do not
530530-#: have the concept of primary selection. You can instead specify a
531531-#: name such as a1 to copy to a private kitty buffer. Map a shortcut
532532-#: with the paste_from_buffer action to paste from this private
533533-#: buffer. For example::
534534-535535-#: copy_on_select a1
536536-#: map shift+cmd+v paste_from_buffer a1
537537-538538-#: Note that copying to the clipboard is a security risk, as all
539539-#: programs, including websites open in your browser can read the
540540-#: contents of the system clipboard.
541541-542542-# clear_selection_on_clipboard_loss no
543543-544544-#: When the contents of the clipboard no longer reflect the current
545545-#: selection, clear it. This is primarily useful on platforms such as
546546-#: Linux where selecting text automatically copies it to a special
547547-#: "primary selection" clipboard or if you have copy_on_select set to
548548-#: clipboard.
549549-550550-#: Note that on macOS the system does not provide notifications when
551551-#: the clipboard owner is changed, so there, copying to clipboard in a
552552-#: non-kitty application will not clear selections even if
553553-#: copy_on_select is enabled.
554554-555555-# paste_actions quote-urls-at-prompt,confirm
556556-557557-#: A comma separated list of actions to take when pasting text into
558558-#: the terminal. The supported paste actions are:
559559-560560-#: quote-urls-at-prompt:
561561-#: If the text being pasted is a URL and the cursor is at a shell prompt,
562562-#: automatically quote the URL (needs shell_integration).
563563-#: replace-dangerous-control-codes
564564-#: Replace dangerous control codes from pasted text, without confirmation.
565565-#: replace-newline
566566-#: Replace the newline character from pasted text, without confirmation.
567567-#: confirm:
568568-#: Confirm the paste if the text to be pasted contains any terminal control codes
569569-#: as this can be dangerous, leading to code execution if the shell/program running
570570-#: in the terminal does not properly handle these.
571571-#: confirm-if-large
572572-#: Confirm the paste if it is very large (larger than 16KB) as pasting
573573-#: large amounts of text into shells can be very slow.
574574-#: filter:
575575-#: Run the filter_paste() function from the file paste-actions.py in
576576-#: the kitty config directory on the pasted text. The text returned by the
577577-#: function will be actually pasted.
578578-#: no-op:
579579-#: Has no effect.
580580-581581-# strip_trailing_spaces never
582582-583583-#: Remove spaces at the end of lines when copying to clipboard. A
584584-#: value of smart will do it when using normal selections, but not
585585-#: rectangle selections. A value of always will always do it.
586586-587587-# select_by_word_characters @-./_~?&=%+#
588588-589589-#: Characters considered part of a word when double clicking. In
590590-#: addition to these characters any character that is marked as an
591591-#: alphanumeric character in the Unicode database will be matched.
592592-593593-# select_by_word_characters_forward
594594-595595-#: Characters considered part of a word when extending the selection
596596-#: forward on double clicking. In addition to these characters any
597597-#: character that is marked as an alphanumeric character in the
598598-#: Unicode database will be matched.
599599-600600-#: If empty (default) select_by_word_characters will be used for both
601601-#: directions.
602602-603603-# click_interval -1.0
604604-605605-#: The interval between successive clicks to detect double/triple
606606-#: clicks (in seconds). Negative numbers will use the system default
607607-#: instead, if available, or fallback to 0.5.
608608-609609-# focus_follows_mouse no
610610-611611-#: Set the active window to the window under the mouse when moving the
612612-#: mouse around. On macOS, this will also cause the OS Window under
613613-#: the mouse to be focused automatically when the mouse enters it.
614614-615615-# pointer_shape_when_grabbed arrow
616616-617617-#: The shape of the mouse pointer when the program running in the
618618-#: terminal grabs the mouse.
619619-620620-# default_pointer_shape beam
621621-622622-#: The default shape of the mouse pointer.
623623-624624-# pointer_shape_when_dragging beam crosshair
625625-626626-#: The default shape of the mouse pointer when dragging across text.
627627-#: The optional second value sets the shape when dragging in
628628-#: rectangular selection mode.
629629-630630-#: Mouse actions {{{
631631-632632-#: Mouse buttons can be mapped to perform arbitrary actions. The
633633-#: syntax is:
634634-635635-#: .. code-block:: none
636636-637637-#: mouse_map button-name event-type modes action
638638-639639-#: Where button-name is one of left, middle, right, b1 ... b8 with
640640-#: added keyboard modifiers. For example: ctrl+shift+left refers to
641641-#: holding the Ctrl+Shift keys while clicking with the left mouse
642642-#: button. The value b1 ... b8 can be used to refer to up to eight
643643-#: buttons on a mouse.
644644-645645-#: event-type is one of press, release, doublepress, triplepress,
646646-#: click, doubleclick. modes indicates whether the action is performed
647647-#: when the mouse is grabbed by the program running in the terminal,
648648-#: or not. The values are grabbed or ungrabbed or a comma separated
649649-#: combination of them. grabbed refers to when the program running in
650650-#: the terminal has requested mouse events. Note that the click and
651651-#: double click events have a delay of click_interval to disambiguate
652652-#: from double and triple presses.
653653-654654-#: You can run kitty with the kitty --debug-input command line option
655655-#: to see mouse events. See the builtin actions below to get a sense
656656-#: of what is possible.
657657-658658-#: If you want to unmap a button, map it to nothing. For example, to
659659-#: disable opening of URLs with a plain click::
660660-661661-#: mouse_map left click ungrabbed
662662-663663-#: See all the mappable actions including mouse actions here
664664-#: <https://sw.kovidgoyal.net/kitty/actions/>.
665665-666666-#: .. note::
667667-#: Once a selection is started, releasing the button that started it will
668668-#: automatically end it and no release event will be dispatched.
669669-670670-# clear_all_mouse_actions no
671671-672672-#: Remove all mouse action definitions up to this point. Useful, for
673673-#: instance, to remove the default mouse actions.
674674-675675-#: Click the link under the mouse or move the cursor
676676-677677-# mouse_map left click ungrabbed mouse_handle_click selection link prompt
678678-679679-#:: First check for a selection and if one exists do nothing. Then
680680-#:: check for a link under the mouse cursor and if one exists, click
681681-#:: it. Finally check if the click happened at the current shell
682682-#:: prompt and if so, move the cursor to the click location. Note
683683-#:: that this requires shell integration
684684-#:: <https://sw.kovidgoyal.net/kitty/shell-integration/> to work.
685685-686686-#: Click the link under the mouse or move the cursor even when grabbed
687687-688688-# mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt
689689-690690-#:: Same as above, except that the action is performed even when the
691691-#:: mouse is grabbed by the program running in the terminal.
692692-693693-#: Click the link under the mouse cursor
694694-695695-# mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link
696696-697697-#:: Variant with Ctrl+Shift is present because the simple click based
698698-#:: version has an unavoidable delay of click_interval, to
699699-#:: disambiguate clicks from double clicks.
700700-701701-#: Discard press event for link click
702702-703703-# mouse_map ctrl+shift+left press grabbed discard_event
704704-705705-#:: Prevent this press event from being sent to the program that has
706706-#:: grabbed the mouse, as the corresponding release event is used to
707707-#:: open a URL.
708708-709709-#: Paste from the primary selection
710710-711711-# mouse_map middle release ungrabbed paste_from_selection
712712-713713-#: Start selecting text
714714-715715-# mouse_map left press ungrabbed mouse_selection normal
716716-717717-#: Start selecting text in a rectangle
718718-719719-# mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle
720720-721721-#: Select a word
722722-723723-# mouse_map left doublepress ungrabbed mouse_selection word
724724-725725-#: Select a line
726726-727727-# mouse_map left triplepress ungrabbed mouse_selection line
728728-729729-#: Select line from point
730730-731731-# mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point
732732-733733-#:: Select from the clicked point to the end of the line. If you
734734-#:: would like to select the word at the point and then extend to the
735735-#:: rest of the line, change `line_from_point` to
736736-#:: `word_and_line_from_point`.
737737-738738-#: Extend the current selection
739739-740740-# mouse_map right press ungrabbed mouse_selection extend
741741-742742-#:: If you want only the end of the selection to be moved instead of
743743-#:: the nearest boundary, use move-end instead of extend.
744744-745745-#: Paste from the primary selection even when grabbed
746746-747747-# mouse_map shift+middle release ungrabbed,grabbed paste_selection
748748-# mouse_map shift+middle press grabbed discard_event
749749-750750-#: Start selecting text even when grabbed
751751-752752-# mouse_map shift+left press ungrabbed,grabbed mouse_selection normal
753753-754754-#: Start selecting text in a rectangle even when grabbed
755755-756756-# mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle
757757-758758-#: Select a word even when grabbed
759759-760760-# mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word
761761-762762-#: Select a line even when grabbed
763763-764764-# mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line
765765-766766-#: Select line from point even when grabbed
767767-768768-# mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point
769769-770770-#:: Select from the clicked point to the end of the line even when
771771-#:: grabbed. If you would like to select the word at the point and
772772-#:: then extend to the rest of the line, change `line_from_point` to
773773-#:: `word_and_line_from_point`.
774774-775775-#: Extend the current selection even when grabbed
776776-777777-# mouse_map shift+right press ungrabbed,grabbed mouse_selection extend
778778-779779-#: Show clicked command output in pager
780780-781781-# mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output
782782-783783-#:: Requires shell integration
784784-#:: <https://sw.kovidgoyal.net/kitty/shell-integration/> to work.
785785-786786-#: }}}
787787-788788-#: }}}
789789-790790-#: Performance tuning {{{
791791-792792-# repaint_delay 10
793793-794794-#: Delay between screen updates (in milliseconds). Decreasing it,
795795-#: increases frames-per-second (FPS) at the cost of more CPU usage.
796796-#: The default value yields ~100 FPS which is more than sufficient for
797797-#: most uses. Note that to actually achieve 100 FPS, you have to
798798-#: either set sync_to_monitor to no or use a monitor with a high
799799-#: refresh rate. Also, to minimize latency when there is pending input
800800-#: to be processed, this option is ignored.
801801-802802-# input_delay 3
803803-804804-#: Delay before input from the program running in the terminal is
805805-#: processed (in milliseconds). Note that decreasing it will increase
806806-#: responsiveness, but also increase CPU usage and might cause flicker
807807-#: in full screen programs that redraw the entire screen on each loop,
808808-#: because kitty is so fast that partial screen updates will be drawn.
809809-#: This setting is ignored when the input buffer is almost full.
810810-811811-# sync_to_monitor yes
812812-813813-#: Sync screen updates to the refresh rate of the monitor. This
814814-#: prevents screen tearing
815815-#: <https://en.wikipedia.org/wiki/Screen_tearing> when scrolling.
816816-#: However, it limits the rendering speed to the refresh rate of your
817817-#: monitor. With a very high speed mouse/high keyboard repeat rate,
818818-#: you may notice some slight input latency. If so, set this to no.
819819-820820-#: }}}
821821-822822-#: Terminal bell {{{
823823-824824-# enable_audio_bell yes
825825-826826-#: The audio bell. Useful to disable it in environments that require
827827-#: silence.
828828-829829-# visual_bell_duration 0.0
830830-831831-#: The visual bell duration (in seconds). Flash the screen when a bell
832832-#: occurs for the specified number of seconds. Set to zero to disable.
833833-#: The flash is animated, fading in and out over the specified
834834-#: duration. The easing function used for the fading can be
835835-#: controlled. For example, 2.0 linear will casuse the flash to fade
836836-#: in and out linearly. The default if unspecified is to use ease-in-
837837-#: out which fades slowly at the start, middle and end. You can
838838-#: specify different easing functions for the fade-in and fade-out
839839-#: parts, like this: 2.0 ease-in linear. kitty supports all the CSS
840840-#: easing functions <https://developer.mozilla.org/en-
841841-#: US/docs/Web/CSS/easing-function>.
842842-843843-# visual_bell_color none
844844-845845-#: The color used by visual bell. Set to none will fall back to
846846-#: selection background color. If you feel that the visual bell is too
847847-#: bright, you can set it to a darker color.
848848-849849-# window_alert_on_bell yes
850850-851851-#: Request window attention on bell. Makes the dock icon bounce on
852852-#: macOS or the taskbar flash on Linux.
853853-854854-# bell_on_tab "🔔 "
855855-856856-#: Some text or a Unicode symbol to show on the tab if a window in the
857857-#: tab that does not have focus has a bell. If you want to use leading
858858-#: or trailing spaces, surround the text with quotes. See
859859-#: tab_title_template for how this is rendered.
860860-861861-#: For backwards compatibility, values of yes, y and true are
862862-#: converted to the default bell symbol and no, n, false and none are
863863-#: converted to the empty string.
864864-865865-# command_on_bell none
866866-867867-#: Program to run when a bell occurs. The environment variable
868868-#: KITTY_CHILD_CMDLINE can be used to get the program running in the
869869-#: window in which the bell occurred.
870870-871871-# bell_path none
872872-873873-#: Path to a sound file to play as the bell sound. If set to none, the
874874-#: system default bell sound is used. Must be in a format supported by
875875-#: the operating systems sound API, such as WAV or OGA on Linux
876876-#: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound).
877877-878878-# linux_bell_theme __custom
879879-880880-#: The XDG Sound Theme kitty will use to play the bell sound. Defaults
881881-#: to the custom theme name specified in the XDG Sound theme
882882-#: specification <https://specifications.freedesktop.org/sound-theme-
883883-#: spec/latest/sound_lookup.html>, falling back to the default
884884-#: freedesktop theme if it does not exist. To change your sound theme
885885-#: desktop wide, create
886886-#: :file:~/.local/share/sounds/__custom/index.theme` with the
887887-#: contents:
888888-889889-#: [Sound Theme]
890890-891891-#: Inherits=name-of-the-sound-theme-you-want-to-use
892892-893893-#: Replace name-of-the-sound-theme-you-want-to-use with the actual
894894-#: theme name. Now all compliant applications should use sounds from
895895-#: this theme.
896896-897897-#: }}}
898898-899899-#: Window layout {{{
900900-901901-# remember_window_size yes
902902-# initial_window_width 640
903903-# initial_window_height 400
904904-905905-#: If enabled, the OS Window size will be remembered so that new
906906-#: instances of kitty will have the same size as the previous
907907-#: instance. If disabled, the OS Window will initially have size
908908-#: configured by initial_window_width/height, in pixels. You can use a
909909-#: suffix of "c" on the width/height values to have them interpreted
910910-#: as number of cells instead of pixels.
911911-912912-# enabled_layouts *
913913-914914-#: The enabled window layouts. A comma separated list of layout names.
915915-#: The special value all means all layouts. The first listed layout
916916-#: will be used as the startup layout. Default configuration is all
917917-#: layouts in alphabetical order. For a list of available layouts, see
918918-#: the layouts <https://sw.kovidgoyal.net/kitty/overview/#layouts>.
919919-920920-# window_resize_step_cells 2
921921-# window_resize_step_lines 2
922922-923923-#: The step size (in units of cell width/cell height) to use when
924924-#: resizing kitty windows in a layout with the shortcut
925925-#: start_resizing_window. The cells value is used for horizontal
926926-#: resizing, and the lines value is used for vertical resizing.
927927-928928-# window_border_width 0.5pt
929929-930930-#: The width of window borders. Can be either in pixels (px) or pts
931931-#: (pt). Values in pts will be rounded to the nearest number of pixels
932932-#: based on screen resolution. If not specified, the unit is assumed
933933-#: to be pts. Note that borders are displayed only when more than one
934934-#: window is visible. They are meant to separate multiple windows.
935935-936936-# draw_minimal_borders yes
937937-938938-#: Draw only the minimum borders needed. This means that only the
939939-#: borders that separate the window from a neighbor are drawn. Note
940940-#: that setting a non-zero window_margin_width overrides this and
941941-#: causes all borders to be drawn.
942942-943943-# window_margin_width 0
944944-945945-#: The window margin (in pts) (blank area outside the border). A
946946-#: single value sets all four sides. Two values set the vertical and
947947-#: horizontal sides. Three values set top, horizontal and bottom. Four
948948-#: values set top, right, bottom and left.
949949-950950-# single_window_margin_width -1
951951-952952-#: The window margin to use when only a single window is visible (in
953953-#: pts). Negative values will cause the value of window_margin_width
954954-#: to be used instead. A single value sets all four sides. Two values
955955-#: set the vertical and horizontal sides. Three values set top,
956956-#: horizontal and bottom. Four values set top, right, bottom and left.
957957-958958-# window_padding_width 0
959959-960960-#: The window padding (in pts) (blank area between the text and the
961961-#: window border). A single value sets all four sides. Two values set
962962-#: the vertical and horizontal sides. Three values set top, horizontal
963963-#: and bottom. Four values set top, right, bottom and left.
964964-965965-# single_window_padding_width -1
966966-967967-#: The window padding to use when only a single window is visible (in
968968-#: pts). Negative values will cause the value of window_padding_width
969969-#: to be used instead. A single value sets all four sides. Two values
970970-#: set the vertical and horizontal sides. Three values set top,
971971-#: horizontal and bottom. Four values set top, right, bottom and left.
972972-973973-# placement_strategy center
974974-975975-#: When the window size is not an exact multiple of the cell size, the
976976-#: cell area of the terminal window will have some extra padding on
977977-#: the sides. You can control how that padding is distributed with
978978-#: this option. Using a value of center means the cell area will be
979979-#: placed centrally. A value of top-left means the padding will be
980980-#: only at the bottom and right edges. The value can be one of: top-
981981-#: left, top, top-right, left, center, right, bottom-left, bottom,
982982-#: bottom-right.
983983-984984-# active_border_color #00ff00
985985-986986-#: The color for the border of the active window. Set this to none to
987987-#: not draw borders around the active window.
988988-989989-# inactive_border_color #cccccc
990990-991991-#: The color for the border of inactive windows.
992992-993993-# bell_border_color #ff5a00
994994-995995-#: The color for the border of inactive windows in which a bell has
996996-#: occurred.
997997-998998-# inactive_text_alpha 1.0
999999-10001000-#: Fade the text in inactive windows by the specified amount (a number
10011001-#: between zero and one, with zero being fully faded).
10021002-10031003-# hide_window_decorations no
10041004-10051005-#: Hide the window decorations (title-bar and window borders) with
10061006-#: yes. On macOS, titlebar-only and titlebar-and-corners can be used
10071007-#: to only hide the titlebar and the rounded corners. Whether this
10081008-#: works and exactly what effect it has depends on the window
10091009-#: manager/operating system. Note that the effects of changing this
10101010-#: option when reloading config are undefined. When using titlebar-
10111011-#: only, it is useful to also set window_margin_width and
10121012-#: placement_strategy to prevent the rounded corners from clipping
10131013-#: text. Or use titlebar-and-corners.
10141014-10151015-# window_logo_path none
10161016-10171017-#: Path to a logo image. Must be in PNG/JPEG/WEBP/GIF/TIFF/BMP format.
10181018-#: Relative paths are interpreted relative to the kitty config
10191019-#: directory. The logo is displayed in a corner of every kitty window.
10201020-#: The position is controlled by window_logo_position. Individual
10211021-#: windows can be configured to have different logos either using the
10221022-#: launch action or the remote control
10231023-#: <https://sw.kovidgoyal.net/kitty/remote-control/> facility.
10241024-10251025-# window_logo_position bottom-right
10261026-10271027-#: Where to position the window logo in the window. The value can be
10281028-#: one of: top-left, top, top-right, left, center, right, bottom-left,
10291029-#: bottom, bottom-right.
10301030-10311031-# window_logo_alpha 0.5
10321032-10331033-#: The amount the logo should be faded into the background. With zero
10341034-#: being fully faded and one being fully opaque.
10351035-10361036-# window_logo_scale 0
10371037-10381038-#: The percentage (0-100] of the window size to which the logo should
10391039-#: scale. Using a single number means the logo is scaled to that
10401040-#: percentage of the shortest window dimension, while preserving
10411041-#: aspect ratio of the logo image.
10421042-10431043-#: Using two numbers means the width and height of the logo are scaled
10441044-#: to the respective percentage of the window's width and height.
10451045-10461046-#: Using zero as the percentage disables scaling in that dimension. A
10471047-#: single zero (the default) disables all scaling of the window logo.
10481048-10491049-# resize_debounce_time 0.1 0.5
10501050-10511051-#: The time to wait (in seconds) before asking the program running in
10521052-#: kitty to resize and redraw the screen during a live resize of the
10531053-#: OS window, when no new resize events have been received, i.e. when
10541054-#: resizing is either paused or finished. On platforms such as macOS,
10551055-#: where the operating system sends events corresponding to the start
10561056-#: and end of a live resize, the second number is used for redraw-
10571057-#: after-pause since kitty can distinguish between a pause and end of
10581058-#: resizing. On such systems the first number is ignored and redraw is
10591059-#: immediate after end of resize. On other systems only the first
10601060-#: number is used so that kitty is "ready" quickly after the end of
10611061-#: resizing, while not also continuously redrawing, to save energy.
10621062-10631063-# resize_in_steps no
10641064-10651065-#: Resize the OS window in steps as large as the cells, instead of
10661066-#: with the usual pixel accuracy. Combined with initial_window_width
10671067-#: and initial_window_height in number of cells, this option can be
10681068-#: used to keep the margins as small as possible when resizing the OS
10691069-#: window. Note that this does not currently work on Wayland.
10701070-10711071-# visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
10721072-10731073-#: The list of characters for visual window selection. For example,
10741074-#: for selecting a window to focus on with focus_visible_window. The
10751075-#: value should be a series of unique numbers or alphabets, case
10761076-#: insensitive, from the set 0-9A-Z\-=[];',./\\`. Specify your
10771077-#: preference as a string of characters.
10781078-10791079-# confirm_os_window_close -1
10801080-10811081-#: Ask for confirmation when closing an OS window or a tab with at
10821082-#: least this number of kitty windows in it by window manager (e.g.
10831083-#: clicking the window close button or pressing the operating system
10841084-#: shortcut to close windows) or by the close_tab action. A value of
10851085-#: zero disables confirmation. This confirmation also applies to
10861086-#: requests to quit the entire application (all OS windows, via the
10871087-#: quit action). Negative values are converted to positive ones,
10881088-#: however, with shell_integration enabled, using negative values
10891089-#: means windows sitting at a shell prompt are not counted, only
10901090-#: windows where some command is currently running. You can also have
10911091-#: backgrounded jobs prevent closing, by adding count-background to
10921092-#: the setting, for example: -1 count-background. Note that if you
10931093-#: want confirmation when closing individual windows, you can map the
10941094-#: close_window_with_confirmation action.
10951095-10961096-#: }}}
10971097-10981098-#: Tab bar {{{
10991099-11001100-# tab_bar_edge bottom
11011101-11021102-#: The edge to show the tab bar on, top or bottom.
11031103-11041104-# tab_bar_margin_width 0.0
11051105-11061106-#: The margin to the left and right of the tab bar (in pts).
11071107-11081108-# tab_bar_margin_height 0.0 0.0
11091109-11101110-#: The margin above and below the tab bar (in pts). The first number
11111111-#: is the margin between the edge of the OS Window and the tab bar.
11121112-#: The second number is the margin between the tab bar and the
11131113-#: contents of the current tab.
11141114-11151115-# tab_bar_style fade
11161116-11171117-#: The tab bar style, can be one of:
11181118-11191119-#: fade
11201120-#: Each tab's edges fade into the background color. (See also tab_fade)
11211121-#: slant
11221122-#: Tabs look like the tabs in a physical file.
11231123-#: separator
11241124-#: Tabs are separated by a configurable separator. (See also
11251125-#: tab_separator)
11261126-#: powerline
11271127-#: Tabs are shown as a continuous line with "fancy" separators.
11281128-#: (See also tab_powerline_style)
11291129-#: custom
11301130-#: A user-supplied Python function called draw_tab is loaded from the file
11311131-#: tab_bar.py in the kitty config directory. For examples of how to
11321132-#: write such a function, see the functions named draw_tab_with_* in
11331133-#: kitty's source code: kitty/tab_bar.py. See also
11341134-#: this discussion <https://github.com/kovidgoyal/kitty/discussions/4447>
11351135-#: for examples from kitty users.
11361136-#: hidden
11371137-#: The tab bar is hidden. If you use this, you might want to create
11381138-#: a mapping for the select_tab action which presents you with a list of
11391139-#: tabs and allows for easy switching to a tab.
11401140-11411141-# tab_bar_align left
11421142-11431143-#: The horizontal alignment of the tab bar, can be one of: left,
11441144-#: center, right.
11451145-11461146-# tab_bar_min_tabs 2
11471147-11481148-#: The minimum number of tabs that must exist before the tab bar is
11491149-#: shown.
11501150-11511151-# tab_switch_strategy previous
11521152-11531153-#: The algorithm to use when switching to a tab when the current tab
11541154-#: is closed. The default of previous will switch to the last used
11551155-#: tab. A value of left will switch to the tab to the left of the
11561156-#: closed tab. A value of right will switch to the tab to the right of
11571157-#: the closed tab. A value of last will switch to the right-most tab.
11581158-11591159-# tab_fade 0.25 0.5 0.75 1
11601160-11611161-#: Control how each tab fades into the background when using fade for
11621162-#: the tab_bar_style. Each number is an alpha (between zero and one)
11631163-#: that controls how much the corresponding cell fades into the
11641164-#: background, with zero being no fade and one being full fade. You
11651165-#: can change the number of cells used by adding/removing entries to
11661166-#: this list.
11671167-11681168-# tab_separator " ┇"
11691169-11701170-#: The separator between tabs in the tab bar when using separator as
11711171-#: the tab_bar_style.
11721172-11731173-# tab_powerline_style angled
11741174-11751175-#: The powerline separator style between tabs in the tab bar when
11761176-#: using powerline as the tab_bar_style, can be one of: angled,
11771177-#: slanted, round.
11781178-11791179-# tab_activity_symbol none
11801180-11811181-#: Some text or a Unicode symbol to show on the tab if a window in the
11821182-#: tab that does not have focus has some activity. If you want to use
11831183-#: leading or trailing spaces, surround the text with quotes. See
11841184-#: tab_title_template for how this is rendered.
11851185-11861186-# tab_title_max_length 0
11871187-11881188-#: The maximum number of cells that can be used to render the text in
11891189-#: a tab. A value of zero means that no limit is applied.
11901190-11911191-# tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{tab.last_focused_progress_percent}{title}"
11921192-11931193-#: A template to render the tab title. The default just renders the
11941194-#: title with optional symbols for bell and activity. If you wish to
11951195-#: include the tab-index as well, use something like: {index}:{title}.
11961196-#: Useful if you have shortcuts mapped for goto_tab N. If you prefer
11971197-#: to see the index as a superscript, use {sup.index}. All data
11981198-#: available is:
11991199-12001200-#: title
12011201-#: The current tab title.
12021202-#: index
12031203-#: The tab index usable with goto_tab N goto_tab shortcuts.
12041204-#: layout_name
12051205-#: The current layout name.
12061206-#: num_windows
12071207-#: The number of windows in the tab.
12081208-#: num_window_groups
12091209-#: The number of window groups (a window group is a window and all of its overlay windows) in the tab.
12101210-#: tab.active_wd
12111211-#: The working directory of the currently active window in the tab
12121212-#: (expensive, requires syscall). Use tab.active_oldest_wd to get
12131213-#: the directory of the oldest foreground process rather than the newest.
12141214-#: tab.active_exe
12151215-#: The name of the executable running in the foreground of the currently
12161216-#: active window in the tab (expensive, requires syscall). Use
12171217-#: tab.active_oldest_exe for the oldest foreground process.
12181218-#: max_title_length
12191219-#: The maximum title length available.
12201220-#: keyboard_mode
12211221-#: The name of the current keyboard mode <https://sw.kovidgoyal.net/kitty/mapping/#modal-mappings> or the empty string if no keyboard mode is active.
12221222-#: tab.last_focused_progress_percent
12231223-#: If a command running in a window reports the progress for a task, show this progress as a percentage
12241224-#: from the most recently focused window in the tab. Empty string if no progress is reported.
12251225-#: tab.progress_percent
12261226-#: If a command running in a window reports the progress for a task, show this progress as a percentage
12271227-#: from all windows in the tab, averaged. Empty string is no progress is reported.
12281228-12291229-#: Note that formatting is done by Python's string formatting
12301230-#: machinery, so you can use, for instance, {layout_name[:2].upper()}
12311231-#: to show only the first two letters of the layout name, upper-cased.
12321232-#: If you want to style the text, you can use styling directives, for
12331233-#: example:
12341234-#: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`.
12351235-#: Similarly, for bold and italic:
12361236-#: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`.
12371237-#: The 256 eight terminal colors can be used as `fmt.fg.color0`
12381238-#: through `fmt.fg.color255`. Note that for backward compatibility, if
12391239-#: {bell_symbol} or {activity_symbol} are not present in the template,
12401240-#: they are prepended to it.
12411241-12421242-# active_tab_title_template none
12431243-12441244-#: Template to use for active tabs. If not specified falls back to
12451245-#: tab_title_template.
12461246-12471247-# active_tab_foreground #000
12481248-# active_tab_background #eee
12491249-# active_tab_font_style bold-italic
12501250-# inactive_tab_foreground #444
12511251-# inactive_tab_background #999
12521252-# inactive_tab_font_style normal
12531253-12541254-#: Tab bar colors and styles.
12551255-12561256-# tab_bar_background none
12571257-12581258-#: Background color for the tab bar. Defaults to using the terminal
12591259-#: background color.
12601260-12611261-# tab_bar_margin_color none
12621262-12631263-#: Color for the tab bar margin area. Defaults to using the terminal
12641264-#: background color for margins above and below the tab bar. For side
12651265-#: margins the default color is chosen to match the background color
12661266-#: of the neighboring tab.
12671267-12681268-#: }}}
12691269-12701270-#: Color scheme {{{
12711271-12721272-# foreground #dddddd
12731273-# background #000000
12741274-12751275-#: The foreground and background colors.
12761276-12771277-# background_opacity 1.0
12781278-12791279-#: The opacity of the background. A number between zero and one, where
12801280-#: one is opaque and zero is fully transparent. This will only work if
12811281-#: supported by the OS (for instance, when using a compositor under
12821282-#: X11). Note that it only sets the background color's opacity in
12831283-#: cells that have the same background color as the default terminal
12841284-#: background, so that things like the status bar in vim, powerline
12851285-#: prompts, etc. still look good. But it means that if you use a color
12861286-#: theme with a background color in your editor, it will not be
12871287-#: rendered as transparent. Instead you should change the default
12881288-#: background color in your kitty config and not use a background
12891289-#: color in the editor color scheme. Or use the escape codes to set
12901290-#: the terminals default colors in a shell script to launch your
12911291-#: editor. See also transparent_background_colors. Be aware that using
12921292-#: a value less than 1.0 is a (possibly significant) performance hit.
12931293-#: When using a low value for this setting, it is desirable that you
12941294-#: set the background color to a color the matches the general color
12951295-#: of the desktop background, for best text rendering. Note that to
12961296-#: workaround window managers not doing gamma-corrected blending kitty
12971297-#: makes background_opacity non-linear which means, especially for
12981298-#: light backgrounds you might need to make the value much lower than
12991299-#: you expect to get good results, see 6218
13001300-#: <https://github.com/kovidgoyal/kitty/issues/6218> for details.
13011301-13021302-#: If you want to dynamically change transparency of windows, set
13031303-#: dynamic_background_opacity to yes (this is off by default as it has
13041304-#: a performance cost). Changing this option when reloading the config
13051305-#: will only work if dynamic_background_opacity was enabled in the
13061306-#: original config.
13071307-13081308-# background_blur 0
13091309-13101310-#: Set to a positive value to enable background blur (blurring of the
13111311-#: visuals behind a transparent window) on platforms that support it.
13121312-#: Only takes effect when background_opacity is less than one. On
13131313-#: macOS, this will also control the blur radius (amount of blurring).
13141314-#: Setting it to too high a value will cause severe performance issues
13151315-#: and/or rendering artifacts. Usually, values up to 64 work well.
13161316-#: Note that this might cause performance issues, depending on how the
13171317-#: platform implements it, so use with care. Currently supported on
13181318-#: macOS and KDE.
13191319-13201320-# background_image none
13211321-13221322-#: Path to a background image. Must be in PNG/JPEG/WEBP/TIFF/GIF/BMP
13231323-#: format.
13241324-13251325-# background_image_layout tiled
13261326-13271327-#: Whether to tile, scale or clamp the background image. The value can
13281328-#: be one of tiled, mirror-tiled, scaled, clamped, centered or
13291329-#: cscaled. The scaled and cscaled values scale the image to the
13301330-#: window size, with cscaled preserving the image aspect ratio.
13311331-13321332-# background_image_linear no
13331333-13341334-#: When background image is scaled, whether linear interpolation
13351335-#: should be used.
13361336-13371337-# transparent_background_colors
13381338-13391339-#: A space separated list of upto 7 colors, with opacity. When the
13401340-#: background color of a cell matches one of these colors, it is
13411341-#: rendered semi-transparent using the specified opacity.
13421342-13431343-#: Useful in more complex UIs like editors where you could want more
13441344-#: than a single background color to be rendered as transparent, for
13451345-#: instance, for a cursor highlight line background or a highlighted
13461346-#: block. Terminal applications can set this color using The kitty
13471347-#: color control <https://sw.kovidgoyal.net/kitty/color-stack/#color-
13481348-#: control> escape code.
13491349-13501350-#: The syntax for specifying colors is: color@opacity, where the
13511351-#: @opacity part is optional. When unspecified, the value of
13521352-#: background_opacity is used. For example::
13531353-13541354-#: transparent_background_colors red@0.5 #00ff00@0.3
13551355-13561356-# dynamic_background_opacity no
13571357-13581358-#: Allow changing of the background_opacity dynamically, using either
13591359-#: keyboard shortcuts (increase_background_opacity and
13601360-#: decrease_background_opacity) or the remote control facility.
13611361-#: Changing this option by reloading the config is not supported.
13621362-13631363-# background_tint 0.0
13641364-13651365-#: How much to tint the background image by the background color. This
13661366-#: option makes it easier to read the text. Tinting is done using the
13671367-#: current background color for each window. This option applies only
13681368-#: if background_opacity is set and transparent windows are supported
13691369-#: or background_image is set.
13701370-13711371-# background_tint_gaps 1.0
13721372-13731373-#: How much to tint the background image at the window gaps by the
13741374-#: background color, after applying background_tint. Since this is
13751375-#: multiplicative with background_tint, it can be used to lighten the
13761376-#: tint over the window gaps for a *separated* look.
13771377-13781378-# dim_opacity 0.4
13791379-13801380-#: How much to dim text that has the DIM/FAINT attribute set. One
13811381-#: means no dimming and zero means fully dimmed (i.e. invisible).
13821382-13831383-# selection_foreground #000000
13841384-# selection_background #fffacd
13851385-13861386-#: The foreground and background colors for text selected with the
13871387-#: mouse. Setting both of these to none will cause a "reverse video"
13881388-#: effect for selections, where the selection will be the cell text
13891389-#: color and the text will become the cell background color. Setting
13901390-#: only selection_foreground to none will cause the foreground color
13911391-#: to be used unchanged. Note that these colors can be overridden by
13921392-#: the program running in the terminal.
13931393-13941394-#: The color table {{{
13951395-13961396-#: The 256 terminal colors. There are 8 basic colors, each color has a
13971397-#: dull and bright version, for the first 16 colors. You can set the
13981398-#: remaining 240 colors as color16 to color255.
13991399-14001400-# color0 #000000
14011401-# color8 #767676
14021402-14031403-#: black
14041404-14051405-# color1 #cc0403
14061406-# color9 #f2201f
14071407-14081408-#: red
14091409-14101410-# color2 #19cb00
14111411-# color10 #23fd00
14121412-14131413-#: green
14141414-14151415-# color3 #cecb00
14161416-# color11 #fffd00
14171417-14181418-#: yellow
14191419-14201420-# color4 #0d73cc
14211421-# color12 #1a8fff
14221422-14231423-#: blue
14241424-14251425-# color5 #cb1ed1
14261426-# color13 #fd28ff
14271427-14281428-#: magenta
14291429-14301430-# color6 #0dcdcd
14311431-# color14 #14ffff
14321432-14331433-#: cyan
14341434-14351435-# color7 #dddddd
14361436-# color15 #ffffff
14371437-14381438-#: white
14391439-14401440-# mark1_foreground black
14411441-14421442-#: Color for marks of type 1
14431443-14441444-# mark1_background #98d3cb
14451445-14461446-#: Color for marks of type 1 (light steel blue)
14471447-14481448-# mark2_foreground black
14491449-14501450-#: Color for marks of type 2
14511451-14521452-# mark2_background #f2dcd3
14531453-14541454-#: Color for marks of type 1 (beige)
14551455-14561456-# mark3_foreground black
14571457-14581458-#: Color for marks of type 3
14591459-14601460-# mark3_background #f274bc
14611461-14621462-#: Color for marks of type 3 (violet)
14631463-14641464-#: }}}
14651465-14661466-#: }}}
14671467-14681468-#: Advanced {{{
14691469-14701470-# shell .
14711471-14721472-#: The shell program to execute. The default value of . means to use
14731473-#: the value of of the SHELL environment variable or if unset,
14741474-#: whatever shell is set as the default shell for the current user.
14751475-#: Note that on macOS if you change this, you might need to add
14761476-#: --login and --interactive to ensure that the shell starts in
14771477-#: interactive mode and reads its startup rc files. Environment
14781478-#: variables are expanded in this setting.
14791479-14801480-# editor .
14811481-14821482-#: The terminal based text editor (such as vim or nano) to use when
14831483-#: editing the kitty config file or similar tasks.
14841484-14851485-#: The default value of . means to use the environment variables
14861486-#: VISUAL and EDITOR in that order. If these variables aren't set,
14871487-#: kitty will run your shell ($SHELL -l -i -c env) to see if your
14881488-#: shell startup rc files set VISUAL or EDITOR. If that doesn't work,
14891489-#: kitty will cycle through various known editors (vim, emacs, etc.)
14901490-#: and take the first one that exists on your system.
14911491-14921492-# close_on_child_death no
14931493-14941494-#: Close the window when the child process (usually the shell) exits.
14951495-#: With the default value no, the terminal will remain open when the
14961496-#: child exits as long as there are still other processes outputting
14971497-#: to the terminal (for example disowned or backgrounded processes).
14981498-#: When enabled with yes, the window will close as soon as the child
14991499-#: process exits. Note that setting it to yes means that any
15001500-#: background processes still using the terminal can fail silently
15011501-#: because their stdout/stderr/stdin no longer work.
15021502-15031503-# remote_control_password
15041504-15051505-#: Allow other programs to control kitty using passwords. This option
15061506-#: can be specified multiple times to add multiple passwords. If no
15071507-#: passwords are present kitty will ask the user for permission if a
15081508-#: program tries to use remote control with a password. A password can
15091509-#: also *optionally* be associated with a set of allowed remote
15101510-#: control actions. For example::
15111511-15121512-#: remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab
15131513-15141514-#: Only the specified actions will be allowed when using this
15151515-#: password. Glob patterns can be used too, for example::
15161516-15171517-#: remote_control_password "my passphrase" set-tab-* resize-*
15181518-15191519-#: To get a list of available actions, run::
15201520-15211521-#: kitten @ --help
15221522-15231523-#: A set of actions to be allowed when no password is sent can be
15241524-#: specified by using an empty password. For example::
15251525-15261526-#: remote_control_password "" *-colors
15271527-15281528-#: Finally, the path to a python module can be specified that provides
15291529-#: a function is_cmd_allowed that is used to check every remote
15301530-#: control command. For example::
15311531-15321532-#: remote_control_password "my passphrase" my_rc_command_checker.py
15331533-15341534-#: Relative paths are resolved from the kitty configuration directory.
15351535-#: See rc_custom_auth <https://sw.kovidgoyal.net/kitty/remote-
15361536-#: control/#rc-custom-auth> for details.
15371537-15381538-# allow_remote_control no
15391539-15401540-#: Allow other programs to control kitty. If you turn this on, other
15411541-#: programs can control all aspects of kitty, including sending text
15421542-#: to kitty windows, opening new windows, closing windows, reading the
15431543-#: content of windows, etc. Note that this even works over SSH
15441544-#: connections. The default setting of no prevents any form of remote
15451545-#: control. The meaning of the various values are:
15461546-15471547-#: password
15481548-#: Remote control requests received over both the TTY device and the socket
15491549-#: are confirmed based on passwords, see remote_control_password.
15501550-15511551-#: socket-only
15521552-#: Remote control requests received over a socket are accepted
15531553-#: unconditionally. Requests received over the TTY are denied.
15541554-#: See listen_on.
15551555-15561556-#: socket
15571557-#: Remote control requests received over a socket are accepted
15581558-#: unconditionally. Requests received over the TTY are confirmed based on
15591559-#: password.
15601560-15611561-#: no
15621562-#: Remote control is completely disabled.
15631563-15641564-#: yes
15651565-#: Remote control requests are always accepted.
15661566-15671567-# listen_on none
15681568-15691569-#: Listen to the specified socket for remote control connections. Note
15701570-#: that this will apply to all kitty instances. It can be overridden
15711571-#: by the kitty --listen-on command line option. For UNIX sockets,
15721572-#: such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux).
15731573-#: Environment variables are expanded and relative paths are resolved
15741574-#: with respect to the temporary directory. If {kitty_pid} is present,
15751575-#: then it is replaced by the PID of the kitty process, otherwise the
15761576-#: PID of the kitty process is appended to the value, with a hyphen.
15771577-#: For TCP sockets such as tcp:localhost:0 a random port is always
15781578-#: used even if a non-zero port number is specified. See the help for
15791579-#: kitty --listen-on for more details. Note that this will be ignored
15801580-#: unless allow_remote_control is set to either: yes, socket or
15811581-#: socket-only. Changing this option by reloading the config is not
15821582-#: supported.
15831583-15841584-# env
15851585-15861586-#: Specify the environment variables to be set in all child processes.
15871587-#: Using the name with an equal sign (e.g. env VAR=) will set it to
15881588-#: the empty string. Specifying only the name (e.g. env VAR) will
15891589-#: remove the variable from the child process' environment. Note that
15901590-#: environment variables are expanded recursively, for example::
15911591-15921592-#: env VAR1=a
15931593-#: env VAR2=${HOME}/${VAR1}/b
15941594-15951595-#: The value of VAR2 will be <path to home directory>/a/b.
15961596-15971597-# filter_notification
15981598-15991599-#: Specify rules to filter out notifications sent by applications
16001600-#: running in kitty. Can be specified multiple times to create
16011601-#: multiple filter rules. A rule specification is of the form
16021602-#: field:regexp. A filter rule can match on any of the fields: title,
16031603-#: body, app, type. The special value of all filters out all
16041604-#: notifications. Rules can be combined using Boolean operators. Some
16051605-#: examples::
16061606-16071607-#: filter_notification title:hello or body:"abc.*def"
16081608-#: # filter out notification from vim except for ones about updates, (?i)
16091609-#: # makes matching case insensitive.
16101610-#: filter_notification app:"[ng]?vim" and not body:"(?i)update"
16111611-#: # filter out all notifications
16121612-#: filter_notification all
16131613-16141614-#: The field app is the name of the application sending the
16151615-#: notification and type is the type of the notification. Not all
16161616-#: applications will send these fields, so you can also match on the
16171617-#: title and body of the notification text. More sophisticated
16181618-#: programmatic filtering and custom actions on notifications can be
16191619-#: done by creating a notifications.py file in the kitty config
16201620-#: directory (~/.config/kitty). An annotated sample is available
16211621-#: <https://github.com/kovidgoyal/kitty/blob/master/docs/notifications.py>.
16221622-16231623-# watcher
16241624-16251625-#: Path to python file which will be loaded for watchers
16261626-#: <https://sw.kovidgoyal.net/kitty/launch/#watchers>. Can be
16271627-#: specified more than once to load multiple watchers. The watchers
16281628-#: will be added to every kitty window. Relative paths are resolved
16291629-#: relative to the kitty config directory. Note that reloading the
16301630-#: config will only affect windows created after the reload.
16311631-16321632-# exe_search_path
16331633-16341634-#: Control where kitty finds the programs to run. The default search
16351635-#: order is: First search the system wide PATH, then ~/.local/bin and
16361636-#: ~/bin. If still not found, the PATH defined in the login shell
16371637-#: after sourcing all its startup files is tried. Finally, if present,
16381638-#: the PATH specified by the env option is tried.
16391639-16401640-#: This option allows you to prepend, append, or remove paths from
16411641-#: this search order. It can be specified multiple times for multiple
16421642-#: paths. A simple path will be prepended to the search order. A path
16431643-#: that starts with the + sign will be append to the search order,
16441644-#: after ~/bin above. A path that starts with the - sign will be
16451645-#: removed from the entire search order. For example::
16461646-16471647-#: exe_search_path /some/prepended/path
16481648-#: exe_search_path +/some/appended/path
16491649-#: exe_search_path -/some/excluded/path
16501650-16511651-# update_check_interval 24
16521652-16531653-#: The interval to periodically check if an update to kitty is
16541654-#: available (in hours). If an update is found, a system notification
16551655-#: is displayed informing you of the available update. The default is
16561656-#: to check every 24 hours, set to zero to disable. Update checking is
16571657-#: only done by the official binary builds. Distro packages or source
16581658-#: builds do not do update checking. Changing this option by reloading
16591659-#: the config is not supported.
16601660-16611661-# startup_session none
16621662-16631663-#: Path to a session file to use for all kitty instances. Can be
16641664-#: overridden by using the kitty --session =none command line option
16651665-#: for individual instances. See sessions
16661666-#: <https://sw.kovidgoyal.net/kitty/overview/#sessions> in the kitty
16671667-#: documentation for details. Note that relative paths are interpreted
16681668-#: with respect to the kitty config directory. Environment variables
16691669-#: in the path are expanded. Changing this option by reloading the
16701670-#: config is not supported. Note that if kitty is invoked with command
16711671-#: line arguments specifying a command to run, this option is ignored.
16721672-16731673-# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask
16741674-16751675-#: Allow programs running in kitty to read and write from the
16761676-#: clipboard. You can control exactly which actions are allowed. The
16771677-#: possible actions are: write-clipboard, read-clipboard, write-
16781678-#: primary, read-primary, read-clipboard-ask, read-primary-ask. The
16791679-#: default is to allow writing to the clipboard and primary selection
16801680-#: and to ask for permission when a program tries to read from the
16811681-#: clipboard. Note that disabling the read confirmation is a security
16821682-#: risk as it means that any program, even the ones running on a
16831683-#: remote server via SSH can read your clipboard. See also
16841684-#: clipboard_max_size.
16851685-16861686-# clipboard_max_size 512
16871687-16881688-#: The maximum size (in MB) of data from programs running in kitty
16891689-#: that will be stored for writing to the system clipboard. A value of
16901690-#: zero means no size limit is applied. See also clipboard_control.
16911691-16921692-# file_transfer_confirmation_bypass
16931693-16941694-#: The password that can be supplied to the file transfer kitten
16951695-#: <https://sw.kovidgoyal.net/kitty/kittens/transfer/> to skip the
16961696-#: transfer confirmation prompt. This should only be used when
16971697-#: initiating transfers from trusted computers, over trusted networks
16981698-#: or encrypted transports, as it allows any programs running on the
16991699-#: remote machine to read/write to the local filesystem, without
17001700-#: permission.
17011701-17021702-# allow_hyperlinks yes
17031703-17041704-#: Process hyperlink escape sequences (OSC 8). If disabled OSC 8
17051705-#: escape sequences are ignored. Otherwise they become clickable
17061706-#: links, that you can click with the mouse or by using the hints
17071707-#: kitten <https://sw.kovidgoyal.net/kitty/kittens/hints/>. The
17081708-#: special value of ask means that kitty will ask before opening the
17091709-#: link when clicked.
17101710-17111711-# shell_integration enabled
17121712-17131713-#: Enable shell integration on supported shells. This enables features
17141714-#: such as jumping to previous prompts, browsing the output of the
17151715-#: previous command in a pager, etc. on supported shells. Set to
17161716-#: disabled to turn off shell integration, completely. It is also
17171717-#: possible to disable individual features, set to a space separated
17181718-#: list of these values: no-rc, no-cursor, no-title, no-cwd, no-
17191719-#: prompt-mark, no-complete, no-sudo. See Shell integration
17201720-#: <https://sw.kovidgoyal.net/kitty/shell-integration/> for details.
17211721-17221722-# allow_cloning ask
17231723-17241724-#: Control whether programs running in the terminal can request new
17251725-#: windows to be created. The canonical example is clone-in-kitty
17261726-#: <https://sw.kovidgoyal.net/kitty/shell-integration/#clone-shell>.
17271727-#: By default, kitty will ask for permission for each clone request.
17281728-#: Allowing cloning unconditionally gives programs running in the
17291729-#: terminal (including over SSH) permission to execute arbitrary code,
17301730-#: as the user who is running the terminal, on the computer that the
17311731-#: terminal is running on.
17321732-17331733-# clone_source_strategies venv,conda,env_var,path
17341734-17351735-#: Control what shell code is sourced when running clone-in-kitty in
17361736-#: the newly cloned window. The supported strategies are:
17371737-17381738-#: venv
17391739-#: Source the file $VIRTUAL_ENV/bin/activate. This is used by the
17401740-#: Python stdlib venv module and allows cloning venvs automatically.
17411741-#: conda
17421742-#: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual
17431743-#: environments created by conda.
17441744-#: env_var
17451745-#: Execute the contents of the environment variable
17461746-#: KITTY_CLONE_SOURCE_CODE with eval.
17471747-#: path
17481748-#: Source the file pointed to by the environment variable
17491749-#: KITTY_CLONE_SOURCE_PATH.
17501750-17511751-#: This option must be a comma separated list of the above values.
17521752-#: Only the first valid match, in the order specified, is sourced.
17531753-17541754-# notify_on_cmd_finish never
17551755-17561756-#: Show a desktop notification when a long-running command finishes
17571757-#: (needs shell_integration). The possible values are:
17581758-17591759-#: never
17601760-#: Never send a notification.
17611761-17621762-#: unfocused
17631763-#: Only send a notification when the window does not have keyboard focus.
17641764-17651765-#: invisible
17661766-#: Only send a notification when the window both is unfocused and not visible
17671767-#: to the user, for example, because it is in an inactive tab or its OS window
17681768-#: is not currently visible (on platforms that support OS window visibility querying
17691769-#: this considers an OS Window visible iff it is active).
17701770-17711771-#: always
17721772-#: Always send a notification, regardless of window state.
17731773-17741774-#: There are two optional arguments:
17751775-17761776-#: First, the minimum duration for what is considered a long running
17771777-#: command. The default is 5 seconds. Specify a second argument to set
17781778-#: the duration. For example: invisible 15. Do not set the value too
17791779-#: small, otherwise a command that launches a new OS Window and exits
17801780-#: will spam a notification.
17811781-17821782-#: Second, the action to perform. The default is notify. The possible
17831783-#: values are:
17841784-17851785-#: notify
17861786-#: Send a desktop notification. The subsequent arguments are optional and specify when
17871787-#: the notification is automatically cleared. The set of possible events when the notification is
17881788-#: cleared are: focus and next. focus means that when the notification
17891789-#: policy is unfocused or invisible the notification is automatically cleared
17901790-#: when the window regains focus. The value of next means that the previous notification
17911791-#: is cleared when the next notification is shown. The default when no arguments are specified
17921792-#: is: focus next.
17931793-17941794-#: bell
17951795-#: Ring the terminal bell.
17961796-17971797-#: command
17981798-#: Run a custom command. All subsequent arguments are the cmdline to run.
17991799-18001800-#: Some more examples::
18011801-18021802-#: # Send a notification when a command takes more than 5 seconds in an unfocused window
18031803-#: notify_on_cmd_finish unfocused
18041804-#: # Send a notification when a command takes more than 10 seconds in a invisible window
18051805-#: notify_on_cmd_finish invisible 10.0
18061806-#: # Ring a bell when a command takes more than 10 seconds in a invisible window
18071807-#: notify_on_cmd_finish invisible 10.0 bell
18081808-#: # Run 'notify-send' when a command takes more than 10 seconds in a invisible window
18091809-#: # Here %c is replaced by the current command line and %s by the job exit code
18101810-#: notify_on_cmd_finish invisible 10.0 command notify-send "job finished with status: %s" %c
18111811-#: # Do not clear previous notification when next command finishes or window regains focus
18121812-#: notify_on_cmd_finish invisible 5.0 notify
18131813-18141814-# term xterm-kitty
18151815-18161816-#: The value of the TERM environment variable to set. Changing this
18171817-#: can break many terminal programs, only change it if you know what
18181818-#: you are doing, not because you read some advice on "Stack Overflow"
18191819-#: to change it. The TERM variable is used by various programs to get
18201820-#: information about the capabilities and behavior of the terminal. If
18211821-#: you change it, depending on what programs you run, and how
18221822-#: different the terminal you are changing it to is, various things
18231823-#: from key-presses, to colors, to various advanced features may not
18241824-#: work. Changing this option by reloading the config will only affect
18251825-#: newly created windows.
18261826-18271827-# terminfo_type path
18281828-18291829-#: The value of the TERMINFO environment variable to set. This
18301830-#: variable is used by programs running in the terminal to search for
18311831-#: terminfo databases. The default value of path causes kitty to set
18321832-#: it to a filesystem location containing the kitty terminfo database.
18331833-#: A value of direct means put the entire database into the env var
18341834-#: directly. This can be useful when connecting to containers, for
18351835-#: example. But, note that not all software supports this. A value of
18361836-#: none means do not touch the variable.
18371837-18381838-# forward_stdio no
18391839-18401840-#: Forward STDOUT and STDERR of the kitty process to child processes.
18411841-#: This is useful for debugging as it allows child processes to print
18421842-#: to kitty's STDOUT directly. For example, echo hello world
18431843-#: >&$KITTY_STDIO_FORWARDED in a shell will print to the parent
18441844-#: kitty's STDOUT. Sets the KITTY_STDIO_FORWARDED=fdnum environment
18451845-#: variable so child processes know about the forwarding. Note that on
18461846-#: macOS this prevents the shell from being run via the login utility
18471847-#: so getlogin() will not work in programs run in this session.
18481848-18491849-# menu_map
18501850-18511851-#: Specify entries for various menus in kitty. Currently only the
18521852-#: global menubar on macOS is supported. For example::
18531853-18541854-#: menu_map global "Actions::Launch something special" launch --hold --type=os-window sh -c "echo hello world"
18551855-18561856-#: This will create a menu entry named "Launch something special" in
18571857-#: an "Actions" menu in the macOS global menubar. Sub-menus can be
18581858-#: created by adding more levels separated by the :: characters.
18591859-18601860-#: }}}
18611861-18621862-#: OS specific tweaks {{{
18631863-18641864-# wayland_titlebar_color system
18651865-18661866-#: The color of the kitty window's titlebar on Wayland systems with
18671867-#: client side window decorations such as GNOME. A value of system
18681868-#: means to use the default system colors, a value of background means
18691869-#: to use the background color of the currently active kitty window
18701870-#: and finally you can use an arbitrary color, such as #12af59 or red.
18711871-18721872-# macos_titlebar_color system
18731873-18741874-#: The color of the kitty window's titlebar on macOS. A value of
18751875-#: system means to use the default system color, light or dark can
18761876-#: also be used to set it explicitly. A value of background means to
18771877-#: use the background color of the currently active window and finally
18781878-#: you can use an arbitrary color, such as #12af59 or red. WARNING:
18791879-#: This option works by using a hack when arbitrary color (or
18801880-#: background) is configured, as there is no proper Cocoa API for it.
18811881-#: It sets the background color of the entire window and makes the
18821882-#: titlebar transparent. As such it is incompatible with
18831883-#: background_opacity. If you want to use both, you are probably
18841884-#: better off just hiding the titlebar with hide_window_decorations.
18851885-18861886-# macos_option_as_alt no
18871887-18881888-#: Use the Option key as an Alt key on macOS. With this set to no,
18891889-#: kitty will use the macOS native Option+Key to enter Unicode
18901890-#: character behavior. This will break any Alt+Key keyboard shortcuts
18911891-#: in your terminal programs, but you can use the macOS Unicode input
18921892-#: technique. You can use the values: left, right or both to use only
18931893-#: the left, right or both Option keys as Alt, instead. Note that
18941894-#: kitty itself always treats Option the same as Alt. This means you
18951895-#: cannot use this option to configure different kitty shortcuts for
18961896-#: Option+Key vs. Alt+Key. Also, any kitty shortcuts using
18971897-#: Option/Alt+Key will take priority, so that any such key presses
18981898-#: will not be passed to terminal programs running inside kitty.
18991899-#: Changing this option by reloading the config is not supported.
19001900-19011901-# macos_hide_from_tasks no
19021902-19031903-#: Hide the kitty window from running tasks on macOS (⌘+Tab and the
19041904-#: Dock). Changing this option by reloading the config is not
19051905-#: supported.
19061906-19071907-# macos_quit_when_last_window_closed no
19081908-19091909-#: Have kitty quit when all the top-level windows are closed on macOS.
19101910-#: By default, kitty will stay running, even with no open windows, as
19111911-#: is the expected behavior on macOS.
19121912-19131913-# macos_window_resizable yes
19141914-19151915-#: Disable this if you want kitty top-level OS windows to not be
19161916-#: resizable on macOS.
19171917-19181918-# macos_thicken_font 0
19191919-19201920-#: Draw an extra border around the font with the given width, to
19211921-#: increase legibility at small font sizes on macOS. For example, a
19221922-#: value of 0.75 will result in rendering that looks similar to sub-
19231923-#: pixel antialiasing at common font sizes. Note that in modern kitty,
19241924-#: this option is obsolete (although still supported). Consider using
19251925-#: text_composition_strategy instead.
19261926-19271927-# macos_traditional_fullscreen no
19281928-19291929-#: Use the macOS traditional full-screen transition, that is faster,
19301930-#: but less pretty.
19311931-19321932-# macos_show_window_title_in all
19331933-19341934-#: Control where the window title is displayed on macOS. A value of
19351935-#: window will show the title of the currently active window at the
19361936-#: top of the macOS window. A value of menubar will show the title of
19371937-#: the currently active window in the macOS global menu bar, making
19381938-#: use of otherwise wasted space. A value of all will show the title
19391939-#: in both places, and none hides the title. See
19401940-#: macos_menubar_title_max_length for how to control the length of the
19411941-#: title in the menu bar.
19421942-19431943-# macos_menubar_title_max_length 0
19441944-19451945-#: The maximum number of characters from the window title to show in
19461946-#: the macOS global menu bar. Values less than one means that there is
19471947-#: no maximum limit.
19481948-19491949-# macos_custom_beam_cursor no
19501950-19511951-#: Use a custom mouse cursor for macOS that is easier to see on both
19521952-#: light and dark backgrounds. Nowadays, the default macOS cursor
19531953-#: already comes with a white border. WARNING: this might make your
19541954-#: mouse cursor invisible on dual GPU machines. Changing this option
19551955-#: by reloading the config is not supported.
19561956-19571957-# macos_colorspace srgb
19581958-19591959-#: The colorspace in which to interpret terminal colors. The default
19601960-#: of srgb will cause colors to match those seen in web browsers. The
19611961-#: value of default will use whatever the native colorspace of the
19621962-#: display is. The value of displayp3 will use Apple's special
19631963-#: snowflake display P3 color space, which will result in over
19641964-#: saturated (brighter) colors with some color shift. Reloading
19651965-#: configuration will change this value only for newly created OS
19661966-#: windows.
19671967-19681968-# linux_display_server auto
19691969-19701970-#: Choose between Wayland and X11 backends. By default, an appropriate
19711971-#: backend based on the system state is chosen automatically. Set it
19721972-#: to x11 or wayland to force the choice. Changing this option by
19731973-#: reloading the config is not supported.
19741974-19751975-# wayland_enable_ime yes
19761976-19771977-#: Enable Input Method Extension on Wayland. This is typically used
19781978-#: for inputting text in East Asian languages. However, its
19791979-#: implementation in Wayland is often buggy and introduces latency
19801980-#: into the input loop, so disable this if you know you dont need it.
19811981-#: Changing this option by reloading the config is not supported, it
19821982-#: will not have any effect.
19831983-19841984-#: }}}
19851985-19861986-#: Keyboard shortcuts {{{
19871987-19881988-#: Keys are identified simply by their lowercase Unicode characters.
19891989-#: For example: a for the A key, [ for the left square bracket key,
19901990-#: etc. For functional keys, such as Enter or Escape, the names are
19911991-#: present at Functional key definitions
19921992-#: <https://sw.kovidgoyal.net/kitty/keyboard-protocol/#functional>.
19931993-#: For modifier keys, the names are ctrl (control, ⌃), shift (⇧), alt
19941994-#: (opt, option, ⌥), super (cmd, command, ⌘).
19951995-19961996-#: Simple shortcut mapping is done with the map directive. For full
19971997-#: details on advanced mapping including modal and per application
19981998-#: maps, see mapping <https://sw.kovidgoyal.net/kitty/mapping/>. Some
19991999-#: quick examples to illustrate common tasks::
20002000-20012001-#: # unmap a keyboard shortcut, passing it to the program running in kitty
20022002-#: map kitty_mod+space
20032003-#: # completely ignore a keyboard event
20042004-#: map ctrl+alt+f1 discard_event
20052005-#: # combine multiple actions
20062006-#: map kitty_mod+e combine : new_window : next_layout
20072007-#: # multi-key shortcuts
20082008-#: map ctrl+x>ctrl+y>z action
20092009-20102010-#: The full list of actions that can be mapped to key presses is
20112011-#: available here <https://sw.kovidgoyal.net/kitty/actions/>.
20122012-20132013-# kitty_mod ctrl+shift
20142014-20152015-#: Special modifier key alias for default shortcuts. You can change
20162016-#: the value of this option to alter all default shortcuts that use
20172017-#: kitty_mod.
20182018-20192019-# clear_all_shortcuts no
20202020-20212021-#: Remove all shortcut definitions up to this point. Useful, for
20222022-#: instance, to remove the default shortcuts.
20232023-20242024-# action_alias
20252025-20262026-#: E.g. action_alias launch_tab launch --type=tab --cwd=current
20272027-20282028-#: Define action aliases to avoid repeating the same options in
20292029-#: multiple mappings. Aliases can be defined for any action and will
20302030-#: be expanded recursively. For example, the above alias allows you to
20312031-#: create mappings to launch a new tab in the current working
20322032-#: directory without duplication::
20332033-20342034-#: map f1 launch_tab vim
20352035-#: map f2 launch_tab emacs
20362036-20372037-#: Similarly, to alias kitten invocation::
20382038-20392039-#: action_alias hints kitten hints --hints-offset=0
20402040-20412041-# kitten_alias
20422042-20432043-#: E.g. kitten_alias hints hints --hints-offset=0
20442044-20452045-#: Like action_alias above, but specifically for kittens. Generally,
20462046-#: prefer to use action_alias. This option is a legacy version,
20472047-#: present for backwards compatibility. It causes all invocations of
20482048-#: the aliased kitten to be substituted. So the example above will
20492049-#: cause all invocations of the hints kitten to have the --hints-
20502050-#: offset=0 option applied.
20512051-20522052-#: Clipboard {{{
20532053-20542054-#: Copy to clipboard
20552055-20562056-# map kitty_mod+c copy_to_clipboard
20572057-# map cmd+c copy_to_clipboard
20582058-20592059-#:: There is also a copy_or_interrupt action that can be optionally
20602060-#:: mapped to Ctrl+C. It will copy only if there is a selection and
20612061-#:: send an interrupt otherwise. Similarly,
20622062-#:: copy_and_clear_or_interrupt will copy and clear the selection or
20632063-#:: send an interrupt if there is no selection.
20642064-20652065-#: Paste from clipboard
20662066-20672067-# map kitty_mod+v paste_from_clipboard
20682068-# map cmd+v paste_from_clipboard
20692069-20702070-#: Paste from selection
20712071-20722072-# map kitty_mod+s paste_from_selection
20732073-# map shift+insert paste_from_selection
20742074-20752075-#: Pass selection to program
20762076-20772077-# map kitty_mod+o pass_selection_to_program
20782078-20792079-#:: You can also pass the contents of the current selection to any
20802080-#:: program with pass_selection_to_program. By default, the system's
20812081-#:: open program is used, but you can specify your own, the selection
20822082-#:: will be passed as a command line argument to the program. For
20832083-#:: example::
20842084-20852085-#:: map kitty_mod+o pass_selection_to_program firefox
20862086-20872087-#:: You can pass the current selection to a terminal program running
20882088-#:: in a new kitty window, by using the @selection placeholder::
20892089-20902090-#:: map kitty_mod+y new_window less @selection
20912091-20922092-#: }}}
20932093-20942094-#: Scrolling {{{
20952095-20962096-#: Scroll line up
20972097-20982098-# map kitty_mod+up scroll_line_up
20992099-# map kitty_mod+k scroll_line_up
21002100-# map opt+cmd+page_up scroll_line_up
21012101-# map cmd+up scroll_line_up
21022102-21032103-#: Scroll line down
21042104-21052105-# map kitty_mod+down scroll_line_down
21062106-# map kitty_mod+j scroll_line_down
21072107-# map opt+cmd+page_down scroll_line_down
21082108-# map cmd+down scroll_line_down
21092109-21102110-#: Scroll page up
21112111-21122112-# map kitty_mod+page_up scroll_page_up
21132113-# map cmd+page_up scroll_page_up
21142114-21152115-#: Scroll page down
21162116-21172117-# map kitty_mod+page_down scroll_page_down
21182118-# map cmd+page_down scroll_page_down
21192119-21202120-#: Scroll to top
21212121-21222122-# map kitty_mod+home scroll_home
21232123-# map cmd+home scroll_home
21242124-21252125-#: Scroll to bottom
21262126-21272127-# map kitty_mod+end scroll_end
21282128-# map cmd+end scroll_end
21292129-21302130-#: Scroll to previous shell prompt
21312131-21322132-# map kitty_mod+z scroll_to_prompt -1
21332133-21342134-#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last
21352135-#:: jumped to or the last clicked position. Requires shell
21362136-#:: integration <https://sw.kovidgoyal.net/kitty/shell-integration/>
21372137-#:: to work.
21382138-21392139-#: Scroll to next shell prompt
21402140-21412141-# map kitty_mod+x scroll_to_prompt 1
21422142-21432143-#: Browse scrollback buffer in pager
21442144-21452145-# map kitty_mod+h show_scrollback
21462146-21472147-#:: You can pipe the contents of the current screen and history
21482148-#:: buffer as STDIN to an arbitrary program using launch --stdin-
21492149-#:: source. For example, the following opens the scrollback buffer in
21502150-#:: less in an overlay window::
21512151-21522152-#:: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
21532153-21542154-#:: For more details on piping screen and buffer contents to external
21552155-#:: programs, see launch <https://sw.kovidgoyal.net/kitty/launch/>.
21562156-21572157-#: Browse output of the last shell command in pager
21582158-21592159-# map kitty_mod+g show_last_command_output
21602160-21612161-#:: You can also define additional shortcuts to get the command
21622162-#:: output. For example, to get the first command output on screen::
21632163-21642164-#:: map f1 show_first_command_output_on_screen
21652165-21662166-#:: To get the command output that was last accessed by a keyboard
21672167-#:: action or mouse action::
21682168-21692169-#:: map f1 show_last_visited_command_output
21702170-21712171-#:: You can pipe the output of the last command run in the shell
21722172-#:: using the launch action. For example, the following opens the
21732173-#:: output in less in an overlay window::
21742174-21752175-#:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R
21762176-21772177-#:: To get the output of the first command on the screen, use
21782178-#:: @first_cmd_output_on_screen. To get the output of the last jumped
21792179-#:: to command, use @last_visited_cmd_output.
21802180-21812181-#:: Requires shell integration
21822182-#:: <https://sw.kovidgoyal.net/kitty/shell-integration/> to work.
21832183-21842184-#: }}}
21852185-21862186-#: Window management {{{
21872187-21882188-#: New window
21892189-21902190-# map kitty_mod+enter new_window
21912191-# map cmd+enter new_window
21922192-21932193-#:: You can open a new kitty window running an arbitrary program, for
21942194-#:: example::
21952195-21962196-#:: map kitty_mod+y launch mutt
21972197-21982198-#:: You can open a new window with the current working directory set
21992199-#:: to the working directory of the current window using::
22002200-22012201-#:: map ctrl+alt+enter launch --cwd=current
22022202-22032203-#:: You can open a new window that is allowed to control kitty via
22042204-#:: the kitty remote control facility with launch --allow-remote-
22052205-#:: control. Any programs running in that window will be allowed to
22062206-#:: control kitty. For example::
22072207-22082208-#:: map ctrl+enter launch --allow-remote-control some_program
22092209-22102210-#:: You can open a new window next to the currently active window or
22112211-#:: as the first window, with::
22122212-22132213-#:: map ctrl+n launch --location=neighbor
22142214-#:: map ctrl+f launch --location=first
22152215-22162216-#:: For more details, see launch
22172217-#:: <https://sw.kovidgoyal.net/kitty/launch/>.
22182218-22192219-#: New OS window
22202220-22212221-# map kitty_mod+n new_os_window
22222222-# map cmd+n new_os_window
22232223-22242224-#:: Works like new_window above, except that it opens a top-level OS
22252225-#:: window. In particular you can use new_os_window_with_cwd to open
22262226-#:: a window with the current working directory.
22272227-22282228-#: Close window
22292229-22302230-# map kitty_mod+w close_window
22312231-# map shift+cmd+d close_window
22322232-22332233-#: Next window
22342234-22352235-# map kitty_mod+] next_window
22362236-22372237-#: Previous window
22382238-22392239-# map kitty_mod+[ previous_window
22402240-22412241-#: Move window forward
22422242-22432243-# map kitty_mod+f move_window_forward
22442244-22452245-#: Move window backward
22462246-22472247-# map kitty_mod+b move_window_backward
22482248-22492249-#: Move window to top
22502250-22512251-# map kitty_mod+` move_window_to_top
22522252-22532253-#: Start resizing window
22542254-22552255-# map kitty_mod+r start_resizing_window
22562256-# map cmd+r start_resizing_window
22572257-22582258-#: First window
22592259-22602260-# map kitty_mod+1 first_window
22612261-# map cmd+1 first_window
22622262-22632263-#: Second window
22642264-22652265-# map kitty_mod+2 second_window
22662266-# map cmd+2 second_window
22672267-22682268-#: Third window
22692269-22702270-# map kitty_mod+3 third_window
22712271-# map cmd+3 third_window
22722272-22732273-#: Fourth window
22742274-22752275-# map kitty_mod+4 fourth_window
22762276-# map cmd+4 fourth_window
22772277-22782278-#: Fifth window
22792279-22802280-# map kitty_mod+5 fifth_window
22812281-# map cmd+5 fifth_window
22822282-22832283-#: Sixth window
22842284-22852285-# map kitty_mod+6 sixth_window
22862286-# map cmd+6 sixth_window
22872287-22882288-#: Seventh window
22892289-22902290-# map kitty_mod+7 seventh_window
22912291-# map cmd+7 seventh_window
22922292-22932293-#: Eighth window
22942294-22952295-# map kitty_mod+8 eighth_window
22962296-# map cmd+8 eighth_window
22972297-22982298-#: Ninth window
22992299-23002300-# map kitty_mod+9 ninth_window
23012301-# map cmd+9 ninth_window
23022302-23032303-#: Tenth window
23042304-23052305-# map kitty_mod+0 tenth_window
23062306-23072307-#: Visually select and focus window
23082308-23092309-# map kitty_mod+f7 focus_visible_window
23102310-23112311-#:: Display overlay numbers and alphabets on the window, and switch
23122312-#:: the focus to the window when you press the key. When there are
23132313-#:: only two windows, the focus will be switched directly without
23142314-#:: displaying the overlay. You can change the overlay characters and
23152315-#:: their order with option visual_window_select_characters.
23162316-23172317-#: Visually swap window with another
23182318-23192319-# map kitty_mod+f8 swap_with_window
23202320-23212321-#:: Works like focus_visible_window above, but swaps the window.
23222322-23232323-#: }}}
23242324-23252325-#: Tab management {{{
23262326-23272327-#: Next tab
23282328-23292329-# map kitty_mod+right next_tab
23302330-# map shift+cmd+] next_tab
23312331-# map ctrl+tab next_tab
23322332-23332333-#: Previous tab
23342334-23352335-# map kitty_mod+left previous_tab
23362336-# map shift+cmd+[ previous_tab
23372337-# map ctrl+shift+tab previous_tab
23382338-23392339-#: New tab
23402340-23412341-# map kitty_mod+t new_tab
23422342-# map cmd+t new_tab
23432343-23442344-#: Close tab
23452345-23462346-# map kitty_mod+q close_tab
23472347-# map cmd+w close_tab
23482348-23492349-#: Close OS window
23502350-23512351-# map shift+cmd+w close_os_window
23522352-23532353-#: Move tab forward
23542354-23552355-# map kitty_mod+. move_tab_forward
23562356-23572357-#: Move tab backward
23582358-23592359-# map kitty_mod+, move_tab_backward
23602360-23612361-#: Set tab title
23622362-23632363-# map kitty_mod+alt+t set_tab_title
23642364-# map shift+cmd+i set_tab_title
23652365-23662366-23672367-#: You can also create shortcuts to go to specific tabs, with 1 being
23682368-#: the first tab, 2 the second tab and -1 being the previously active
23692369-#: tab, -2 being the tab active before the previously active tab and
23702370-#: so on. Any number larger than the number of tabs goes to the last
23712371-#: tab and any number less than the number of previously used tabs in
23722372-#: the history goes to the oldest previously used tab in the history::
23732373-23742374-#: map ctrl+alt+1 goto_tab 1
23752375-#: map ctrl+alt+2 goto_tab 2
23762376-23772377-#: Just as with new_window above, you can also pass the name of
23782378-#: arbitrary commands to run when using new_tab and new_tab_with_cwd.
23792379-#: Finally, if you want the new tab to open next to the current tab
23802380-#: rather than at the end of the tabs list, use::
23812381-23822382-#: map ctrl+t new_tab !neighbor [optional cmd to run]
23832383-#: }}}
23842384-23852385-#: Layout management {{{
23862386-23872387-#: Next layout
23882388-23892389-# map kitty_mod+l next_layout
23902390-23912391-23922392-#: You can also create shortcuts to switch to specific layouts::
23932393-23942394-#: map ctrl+alt+t goto_layout tall
23952395-#: map ctrl+alt+s goto_layout stack
23962396-23972397-#: Similarly, to switch back to the previous layout::
23982398-23992399-#: map ctrl+alt+p last_used_layout
24002400-24012401-#: There is also a toggle_layout action that switches to the named
24022402-#: layout or back to the previous layout if in the named layout.
24032403-#: Useful to temporarily "zoom" the active window by switching to the
24042404-#: stack layout::
24052405-24062406-#: map ctrl+alt+z toggle_layout stack
24072407-#: }}}
24082408-24092409-#: Font sizes {{{
24102410-24112411-#: You can change the font size for all top-level kitty OS windows at
24122412-#: a time or only the current one.
24132413-24142414-#: Increase font size
24152415-24162416-# map kitty_mod+equal change_font_size all +2.0
24172417-# map kitty_mod+plus change_font_size all +2.0
24182418-# map kitty_mod+kp_add change_font_size all +2.0
24192419-# map cmd+plus change_font_size all +2.0
24202420-# map cmd+equal change_font_size all +2.0
24212421-# map shift+cmd+equal change_font_size all +2.0
24222422-24232423-#: Decrease font size
24242424-24252425-# map kitty_mod+minus change_font_size all -2.0
24262426-# map kitty_mod+kp_subtract change_font_size all -2.0
24272427-# map cmd+minus change_font_size all -2.0
24282428-# map shift+cmd+minus change_font_size all -2.0
24292429-24302430-#: Reset font size
24312431-24322432-# map kitty_mod+backspace change_font_size all 0
24332433-# map cmd+0 change_font_size all 0
24342434-24352435-24362436-#: To setup shortcuts for specific font sizes::
24372437-24382438-#: map kitty_mod+f6 change_font_size all 10.0
24392439-24402440-#: To setup shortcuts to change only the current OS window's font
24412441-#: size::
24422442-24432443-#: map kitty_mod+f6 change_font_size current 10.0
24442444-#: }}}
24452445-24462446-#: Select and act on visible text {{{
24472447-24482448-#: Use the hints kitten to select text and either pass it to an
24492449-#: external program or insert it into the terminal or copy it to the
24502450-#: clipboard.
24512451-24522452-#: Open URL
24532453-24542454-# map kitty_mod+e open_url_with_hints
24552455-24562456-#:: Open a currently visible URL using the keyboard. The program used
24572457-#:: to open the URL is specified in open_url_with.
24582458-24592459-#: Insert selected path
24602460-24612461-# map kitty_mod+p>f kitten hints --type path --program -
24622462-24632463-#:: Select a path/filename and insert it into the terminal. Useful,
24642464-#:: for instance to run git commands on a filename output from a
24652465-#:: previous git command.
24662466-24672467-#: Open selected path
24682468-24692469-# map kitty_mod+p>shift+f kitten hints --type path
24702470-24712471-#:: Select a path/filename and open it with the default open program.
24722472-24732473-#: Insert selected line
24742474-24752475-# map kitty_mod+p>l kitten hints --type line --program -
24762476-24772477-#:: Select a line of text and insert it into the terminal. Useful for
24782478-#:: the output of things like: `ls -1`.
24792479-24802480-#: Insert selected word
24812481-24822482-# map kitty_mod+p>w kitten hints --type word --program -
24832483-24842484-#:: Select words and insert into terminal.
24852485-24862486-#: Insert selected hash
24872487-24882488-# map kitty_mod+p>h kitten hints --type hash --program -
24892489-24902490-#:: Select something that looks like a hash and insert it into the
24912491-#:: terminal. Useful with git, which uses SHA1 hashes to identify
24922492-#:: commits.
24932493-24942494-#: Open the selected file at the selected line
24952495-24962496-# map kitty_mod+p>n kitten hints --type linenum
24972497-24982498-#:: Select something that looks like filename:linenum and open it in
24992499-#:: your default editor at the specified line number.
25002500-25012501-#: Open the selected hyperlink
25022502-25032503-# map kitty_mod+p>y kitten hints --type hyperlink
25042504-25052505-#:: Select a hyperlink (i.e. a URL that has been marked as such by
25062506-#:: the terminal program, for example, by `ls --hyperlink=auto`).
25072507-25082508-25092509-#: The hints kitten has many more modes of operation that you can map
25102510-#: to different shortcuts. For a full description see hints kitten
25112511-#: <https://sw.kovidgoyal.net/kitty/kittens/hints/>.
25122512-#: }}}
25132513-25142514-#: Miscellaneous {{{
25152515-25162516-#: Show documentation
25172517-25182518-# map kitty_mod+f1 show_kitty_doc overview
25192519-25202520-#: Toggle fullscreen
25212521-25222522-# map kitty_mod+f11 toggle_fullscreen
25232523-# map ctrl+cmd+f toggle_fullscreen
25242524-25252525-#: Toggle maximized
25262526-25272527-# map kitty_mod+f10 toggle_maximized
25282528-25292529-#: Toggle macOS secure keyboard entry
25302530-25312531-# map opt+cmd+s toggle_macos_secure_keyboard_entry
25322532-25332533-#: Unicode input
25342534-25352535-# map kitty_mod+u kitten unicode_input
25362536-# map ctrl+cmd+space kitten unicode_input
25372537-25382538-#: Edit config file
25392539-25402540-# map kitty_mod+f2 edit_config_file
25412541-# map cmd+, edit_config_file
25422542-25432543-#: Open the kitty command shell
25442544-25452545-# map kitty_mod+escape kitty_shell window
25462546-25472547-#:: Open the kitty shell in a new window / tab / overlay / os_window
25482548-#:: to control kitty using commands.
25492549-25502550-#: Increase background opacity
25512551-25522552-# map kitty_mod+a>m set_background_opacity +0.1
25532553-25542554-#: Decrease background opacity
25552555-25562556-# map kitty_mod+a>l set_background_opacity -0.1
25572557-25582558-#: Make background fully opaque
25592559-25602560-# map kitty_mod+a>1 set_background_opacity 1
25612561-25622562-#: Reset background opacity
25632563-25642564-# map kitty_mod+a>d set_background_opacity default
25652565-25662566-#: Reset the terminal
25672567-25682568-# map kitty_mod+delete clear_terminal reset active
25692569-# map opt+cmd+r clear_terminal reset active
25702570-25712571-#:: You can create shortcuts to clear/reset the terminal. For
25722572-#:: example::
25732573-25742574-#:: # Reset the terminal
25752575-#:: map f1 clear_terminal reset active
25762576-#:: # Clear the terminal screen by erasing all contents
25772577-#:: map f1 clear_terminal clear active
25782578-#:: # Clear the terminal scrollback by erasing it
25792579-#:: map f1 clear_terminal scrollback active
25802580-#:: # Scroll the contents of the screen into the scrollback
25812581-#:: map f1 clear_terminal scroll active
25822582-#:: # Clear everything on screen up to the line with the cursor or the start of the current prompt (needs shell integration)
25832583-#:: map f1 clear_terminal to_cursor active
25842584-#:: # Same as above except cleared lines are moved into scrollback
25852585-#:: map f1 clear_terminal to_cursor_scroll active
25862586-25872587-#:: If you want to operate on all kitty windows instead of just the
25882588-#:: current one, use all instead of active.
25892589-25902590-#:: Some useful functions that can be defined in the shell rc files
25912591-#:: to perform various kinds of clearing of the current window:
25922592-25932593-#:: .. code-block:: sh
25942594-25952595-#:: clear-only-screen() {
25962596-#:: printf "\e[H\e[2J"
25972597-#:: }
25982598-25992599-#:: clear-screen-and-scrollback() {
26002600-#:: printf "\e[H\e[3J"
26012601-#:: }
26022602-26032603-#:: clear-screen-saving-contents-in-scrollback() {
26042604-#:: printf "\e[H\e[22J"
26052605-#:: }
26062606-26072607-#:: For instance, using these escape codes, it is possible to remap
26082608-#:: Ctrl+L to both scroll the current screen contents into the
26092609-#:: scrollback buffer and clear the screen, instead of just clearing
26102610-#:: the screen. For ZSH, in ~/.zshrc, add:
26112611-26122612-#:: .. code-block:: zsh
26132613-26142614-#:: ctrl_l() {
26152615-#:: builtin print -rn -- $'\r\e[0J\e[H\e[22J' >"$TTY"
26162616-#:: builtin zle .reset-prompt
26172617-#:: builtin zle -R
26182618-#:: }
26192619-#:: zle -N ctrl_l
26202620-#:: bindkey '^l' ctrl_l
26212621-26222622-#:: Alternatively, you can just add map ctrl+l clear_terminal
26232623-#:: to_cursor_scroll active to kitty.conf which works with no changes
26242624-#:: to the shell rc files, but only clears up to the prompt, it does
26252625-#:: not clear any text at the prompt itself.
26262626-26272627-#: Clear to start
26282628-26292629-# map cmd+k clear_terminal to_cursor active
26302630-26312631-#: Clear scrollback
26322632-26332633-# map option+cmd+k clear_terminal scrollback active
26342634-26352635-#: Clear screen
26362636-26372637-# map cmd+ctrl+l clear_terminal to_cursor_scroll active
26382638-26392639-#: Reload kitty.conf
26402640-26412641-# map kitty_mod+f5 load_config_file
26422642-# map ctrl+cmd+, load_config_file
26432643-26442644-#:: Reload kitty.conf, applying any changes since the last time it
26452645-#:: was loaded. Note that a handful of options cannot be dynamically
26462646-#:: changed and require a full restart of kitty. Particularly, when
26472647-#:: changing shortcuts for actions located on the macOS global menu
26482648-#:: bar, a full restart is needed. You can also map a keybinding to
26492649-#:: load a different config file, for example::
26502650-26512651-#:: map f5 load_config /path/to/alternative/kitty.conf
26522652-26532653-#:: Note that all options from the original kitty.conf are discarded,
26542654-#:: in other words the new configuration *replace* the old ones.
26552655-26562656-#: Debug kitty configuration
26572657-26582658-# map kitty_mod+f6 debug_config
26592659-# map opt+cmd+, debug_config
26602660-26612661-#:: Show details about exactly what configuration kitty is running
26622662-#:: with and its host environment. Useful for debugging issues.
26632663-26642664-#: Send arbitrary text on key presses
26652665-26662666-#:: E.g. map ctrl+shift+alt+h send_text all Hello World
26672667-26682668-#:: You can tell kitty to send arbitrary (UTF-8) encoded text to the
26692669-#:: client program when pressing specified shortcut keys. For
26702670-#:: example::
26712671-26722672-#:: map ctrl+alt+a send_text all Special text
26732673-26742674-#:: This will send "Special text" when you press the Ctrl+Alt+A key
26752675-#:: combination. The text to be sent decodes ANSI C escapes
26762676-#:: <https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-
26772677-#:: Quoting.html> so you can use escapes like \e to send control
26782678-#:: codes or \u21fb to send Unicode characters (or you can just input
26792679-#:: the Unicode characters directly as UTF-8 text). You can use
26802680-#:: `kitten show-key` to get the key escape codes you want to
26812681-#:: emulate.
26822682-26832683-#:: The first argument to send_text is the keyboard modes in which to
26842684-#:: activate the shortcut. The possible values are normal,
26852685-#:: application, kitty or a comma separated combination of them. The
26862686-#:: modes normal and application refer to the DECCKM cursor key mode
26872687-#:: for terminals, and kitty refers to the kitty extended keyboard
26882688-#:: protocol. The special value all means all of them.
26892689-26902690-#:: Some more examples::
26912691-26922692-#:: # Output a word and move the cursor to the start of the line (like typing and pressing Home)
26932693-#:: map ctrl+alt+a send_text normal Word\e[H
26942694-#:: map ctrl+alt+a send_text application Word\eOH
26952695-#:: # Run a command at a shell prompt (like typing the command and pressing Enter)
26962696-#:: map ctrl+alt+a send_text normal,application some command with arguments\r
26972697-26982698-#: Open kitty Website
26992699-27002700-# map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/
27012701-27022702-#: Hide macOS kitty application
27032703-27042704-# map cmd+h hide_macos_app
27052705-27062706-#: Hide macOS other applications
27072707-27082708-# map opt+cmd+h hide_macos_other_apps
27092709-27102710-#: Minimize macOS window
27112711-27122712-# map cmd+m minimize_macos_window
27132713-27142714-#: Quit kitty
27152715-27162716-# map cmd+q quit
27172717-27182718-#: }}}
27192719-27202720-#: }}}