···11-# vim:fileencoding=utf-8:foldmethod=marker
22-33-# BEGIN_KITTY_FONTS
44-font_family family="JetBrainsMono Nerd Font"
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 - 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
12911291-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
13071307-13081308-#: The foreground and background colors.
13091309-13101310-background_opacity 0.9
13111311-13121312-#: The opacity of the background. A number between zero and one, where
13131313-#: one is opaque and zero is fully transparent. This will only work if
13141314-#: supported by the OS (for instance, when using a compositor under
13151315-#: X11). Note that it only sets the background color's opacity in
13161316-#: cells that have the same background color as the default terminal
13171317-#: background, so that things like the status bar in vim, powerline
13181318-#: prompts, etc. still look good. But it means that if you use a color
13191319-#: theme with a background color in your editor, it will not be
13201320-#: rendered as transparent. Instead you should change the default
13211321-#: background color in your kitty config and not use a background
13221322-#: color in the editor color scheme. Or use the escape codes to set
13231323-#: the terminals default colors in a shell script to launch your
13241324-#: editor. See also transparent_background_colors. Be aware that using
13251325-#: a value less than 1.0 is a (possibly significant) performance hit.
13261326-#: When using a low value for this setting, it is desirable that you
13271327-#: set the background color to a color the matches the general color
13281328-#: of the desktop background, for best text rendering. Note that to
13291329-#: workaround window managers not doing gamma-corrected blending kitty
13301330-#: makes background_opacity non-linear which means, especially for
13311331-#: light backgrounds you might need to make the value much lower than
13321332-#: you expect to get good results, see 6218
13331333-#: <https://github.com/kovidgoyal/kitty/issues/6218> for details.
13341334-13351335-#: If you want to dynamically change transparency of windows, set
13361336-#: dynamic_background_opacity to yes (this is off by default as it has
13371337-#: a performance cost). Changing this option when reloading the config
13381338-#: will only work if dynamic_background_opacity was enabled in the
13391339-#: original config.
13401340-13411341-# background_blur 0
13421342-13431343-#: Set to a positive value to enable background blur (blurring of the
13441344-#: visuals behind a transparent window) on platforms that support it.
13451345-#: Only takes effect when background_opacity is less than one. On
13461346-#: macOS, this will also control the blur radius (amount of blurring).
13471347-#: Setting it to too high a value will cause severe performance issues
13481348-#: and/or rendering artifacts. Usually, values up to 64 work well.
13491349-#: Note that this might cause performance issues, depending on how the
13501350-#: platform implements it, so use with care. Currently supported on
13511351-#: macOS and KDE.
13521352-13531353-# background_image none
13541354-13551355-#: Path to a background image. Must be in PNG/JPEG/WEBP/TIFF/GIF/BMP
13561356-#: format.
13571357-13581358-# background_image_layout tiled
13591359-13601360-#: Whether to tile, scale or clamp the background image. The value can
13611361-#: be one of tiled, mirror-tiled, scaled, clamped, centered or
13621362-#: cscaled. The scaled and cscaled values scale the image to the
13631363-#: window size, with cscaled preserving the image aspect ratio.
13641364-13651365-# background_image_linear no
13661366-13671367-#: When background image is scaled, whether linear interpolation
13681368-#: should be used.
13691369-13701370-# transparent_background_colors
13711371-13721372-#: A space separated list of upto 7 colors, with opacity. When the
13731373-#: background color of a cell matches one of these colors, it is
13741374-#: rendered semi-transparent using the specified opacity.
13751375-13761376-#: Useful in more complex UIs like editors where you could want more
13771377-#: than a single background color to be rendered as transparent, for
13781378-#: instance, for a cursor highlight line background or a highlighted
13791379-#: block. Terminal applications can set this color using The kitty
13801380-#: color control <https://sw.kovidgoyal.net/kitty/color-stack/#color-
13811381-#: control> escape code.
13821382-13831383-#: The syntax for specifying colors is: color@opacity, where the
13841384-#: @opacity part is optional. When unspecified, the value of
13851385-#: background_opacity is used. For example::
13861386-13871387-#: transparent_background_colors red@0.5 #00ff00@0.3
13881388-13891389-# dynamic_background_opacity no
13901390-13911391-#: Allow changing of the background_opacity dynamically, using either
13921392-#: keyboard shortcuts (increase_background_opacity and
13931393-#: decrease_background_opacity) or the remote control facility.
13941394-#: Changing this option by reloading the config is not supported.
13951395-13961396-# background_tint 0.0
13971397-13981398-#: How much to tint the background image by the background color. This
13991399-#: option makes it easier to read the text. Tinting is done using the
14001400-#: current background color for each window. This option applies only
14011401-#: if background_opacity is set and transparent windows are supported
14021402-#: or background_image is set.
14031403-14041404-# background_tint_gaps 1.0
14051405-14061406-#: How much to tint the background image at the window gaps by the
14071407-#: background color, after applying background_tint. Since this is
14081408-#: multiplicative with background_tint, it can be used to lighten the
14091409-#: tint over the window gaps for a *separated* look.
14101410-14111411-# dim_opacity 0.4
14121412-14131413-#: How much to dim text that has the DIM/FAINT attribute set. One
14141414-#: means no dimming and zero means fully dimmed (i.e. invisible).
14151415-14161416-# selection_foreground #000000
14171417-# selection_background #fffacd
14181418-14191419-#: The foreground and background colors for text selected with the
14201420-#: mouse. Setting both of these to none will cause a "reverse video"
14211421-#: effect for selections, where the selection will be the cell text
14221422-#: color and the text will become the cell background color. Setting
14231423-#: only selection_foreground to none will cause the foreground color
14241424-#: to be used unchanged. Note that these colors can be overridden by
14251425-#: the program running in the terminal.
14261426-14271427-#: The color table {{{
14281428-14291429-#: The 256 terminal colors. There are 8 basic colors, each color has a
14301430-#: dull and bright version, for the first 16 colors. You can set the
14311431-#: remaining 240 colors as color16 to color255.
14321432-14331433-# color0 #000000
14341434-# color8 #767676
14351435-14361436-#: black
14371437-14381438-# color1 #cc0403
14391439-# color9 #f2201f
14401440-14411441-#: red
14421442-14431443-# color2 #19cb00
14441444-# color10 #23fd00
14451445-14461446-#: green
14471447-14481448-# color3 #cecb00
14491449-# color11 #fffd00
14501450-14511451-#: yellow
14521452-14531453-# color4 #0d73cc
14541454-# color12 #1a8fff
14551455-14561456-#: blue
14571457-14581458-# color5 #cb1ed1
14591459-# color13 #fd28ff
14601460-14611461-#: magenta
14621462-14631463-# color6 #0dcdcd
14641464-# color14 #14ffff
14651465-14661466-#: cyan
14671467-14681468-# color7 #dddddd
14691469-# color15 #ffffff
14701470-14711471-#: white
14721472-14731473-# mark1_foreground black
14741474-14751475-#: Color for marks of type 1
14761476-14771477-# mark1_background #98d3cb
14781478-14791479-#: Color for marks of type 1 (light steel blue)
14801480-14811481-# mark2_foreground black
14821482-14831483-#: Color for marks of type 2
14841484-14851485-# mark2_background #f2dcd3
14861486-14871487-#: Color for marks of type 1 (beige)
14881488-14891489-# mark3_foreground black
14901490-14911491-#: Color for marks of type 3
14921492-14931493-# mark3_background #f274bc
14941494-14951495-#: Color for marks of type 3 (violet)
14961496-14971497-#: }}}
14981498-14991499-#: }}}
15001500-15011501-#: Advanced {{{
15021502-15031503-# shell .
15041504-15051505-#: The shell program to execute. The default value of . means to use
15061506-#: the value of of the SHELL environment variable or if unset,
15071507-#: whatever shell is set as the default shell for the current user.
15081508-#: Note that on macOS if you change this, you might need to add
15091509-#: --login and --interactive to ensure that the shell starts in
15101510-#: interactive mode and reads its startup rc files. Environment
15111511-#: variables are expanded in this setting.
15121512-15131513-# editor .
15141514-15151515-#: The terminal based text editor (such as vim or nano) to use when
15161516-#: editing the kitty config file or similar tasks.
15171517-15181518-#: The default value of . means to use the environment variables
15191519-#: VISUAL and EDITOR in that order. If these variables aren't set,
15201520-#: kitty will run your shell ($SHELL -l -i -c env) to see if your
15211521-#: shell startup rc files set VISUAL or EDITOR. If that doesn't work,
15221522-#: kitty will cycle through various known editors (vim, emacs, etc.)
15231523-#: and take the first one that exists on your system.
15241524-15251525-# close_on_child_death no
15261526-15271527-#: Close the window when the child process (usually the shell) exits.
15281528-#: With the default value no, the terminal will remain open when the
15291529-#: child exits as long as there are still other processes outputting
15301530-#: to the terminal (for example disowned or backgrounded processes).
15311531-#: When enabled with yes, the window will close as soon as the child
15321532-#: process exits. Note that setting it to yes means that any
15331533-#: background processes still using the terminal can fail silently
15341534-#: because their stdout/stderr/stdin no longer work.
15351535-15361536-# remote_control_password
15371537-15381538-#: Allow other programs to control kitty using passwords. This option
15391539-#: can be specified multiple times to add multiple passwords. If no
15401540-#: passwords are present kitty will ask the user for permission if a
15411541-#: program tries to use remote control with a password. A password can
15421542-#: also *optionally* be associated with a set of allowed remote
15431543-#: control actions. For example::
15441544-15451545-#: remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab
15461546-15471547-#: Only the specified actions will be allowed when using this
15481548-#: password. Glob patterns can be used too, for example::
15491549-15501550-#: remote_control_password "my passphrase" set-tab-* resize-*
15511551-15521552-#: To get a list of available actions, run::
15531553-15541554-#: kitten @ --help
15551555-15561556-#: A set of actions to be allowed when no password is sent can be
15571557-#: specified by using an empty password. For example::
15581558-15591559-#: remote_control_password "" *-colors
15601560-15611561-#: Finally, the path to a python module can be specified that provides
15621562-#: a function is_cmd_allowed that is used to check every remote
15631563-#: control command. For example::
15641564-15651565-#: remote_control_password "my passphrase" my_rc_command_checker.py
15661566-15671567-#: Relative paths are resolved from the kitty configuration directory.
15681568-#: See rc_custom_auth <https://sw.kovidgoyal.net/kitty/remote-
15691569-#: control/#rc-custom-auth> for details.
15701570-15711571-# allow_remote_control no
15721572-15731573-#: Allow other programs to control kitty. If you turn this on, other
15741574-#: programs can control all aspects of kitty, including sending text
15751575-#: to kitty windows, opening new windows, closing windows, reading the
15761576-#: content of windows, etc. Note that this even works over SSH
15771577-#: connections. The default setting of no prevents any form of remote
15781578-#: control. The meaning of the various values are:
15791579-15801580-#: password
15811581-#: Remote control requests received over both the TTY device and the socket
15821582-#: are confirmed based on passwords, see remote_control_password.
15831583-15841584-#: socket-only
15851585-#: Remote control requests received over a socket are accepted
15861586-#: unconditionally. Requests received over the TTY are denied.
15871587-#: See listen_on.
15881588-15891589-#: socket
15901590-#: Remote control requests received over a socket are accepted
15911591-#: unconditionally. Requests received over the TTY are confirmed based on
15921592-#: password.
15931593-15941594-#: no
15951595-#: Remote control is completely disabled.
15961596-15971597-#: yes
15981598-#: Remote control requests are always accepted.
15991599-16001600-# listen_on none
16011601-16021602-#: Listen to the specified socket for remote control connections. Note
16031603-#: that this will apply to all kitty instances. It can be overridden
16041604-#: by the kitty --listen-on command line option. For UNIX sockets,
16051605-#: such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux).
16061606-#: Environment variables are expanded and relative paths are resolved
16071607-#: with respect to the temporary directory. If {kitty_pid} is present,
16081608-#: then it is replaced by the PID of the kitty process, otherwise the
16091609-#: PID of the kitty process is appended to the value, with a hyphen.
16101610-#: For TCP sockets such as tcp:localhost:0 a random port is always
16111611-#: used even if a non-zero port number is specified. See the help for
16121612-#: kitty --listen-on for more details. Note that this will be ignored
16131613-#: unless allow_remote_control is set to either: yes, socket or
16141614-#: socket-only. Changing this option by reloading the config is not
16151615-#: supported.
16161616-16171617-# env
16181618-16191619-#: Specify the environment variables to be set in all child processes.
16201620-#: Using the name with an equal sign (e.g. env VAR=) will set it to
16211621-#: the empty string. Specifying only the name (e.g. env VAR) will
16221622-#: remove the variable from the child process' environment. Note that
16231623-#: environment variables are expanded recursively, for example::
16241624-16251625-#: env VAR1=a
16261626-#: env VAR2=${HOME}/${VAR1}/b
16271627-16281628-#: The value of VAR2 will be <path to home directory>/a/b.
16291629-16301630-# filter_notification
16311631-16321632-#: Specify rules to filter out notifications sent by applications
16331633-#: running in kitty. Can be specified multiple times to create
16341634-#: multiple filter rules. A rule specification is of the form
16351635-#: field:regexp. A filter rule can match on any of the fields: title,
16361636-#: body, app, type. The special value of all filters out all
16371637-#: notifications. Rules can be combined using Boolean operators. Some
16381638-#: examples::
16391639-16401640-#: filter_notification title:hello or body:"abc.*def"
16411641-#: # filter out notification from vim except for ones about updates, (?i)
16421642-#: # makes matching case insensitive.
16431643-#: filter_notification app:"[ng]?vim" and not body:"(?i)update"
16441644-#: # filter out all notifications
16451645-#: filter_notification all
16461646-16471647-#: The field app is the name of the application sending the
16481648-#: notification and type is the type of the notification. Not all
16491649-#: applications will send these fields, so you can also match on the
16501650-#: title and body of the notification text. More sophisticated
16511651-#: programmatic filtering and custom actions on notifications can be
16521652-#: done by creating a notifications.py file in the kitty config
16531653-#: directory (~/.config/kitty). An annotated sample is available
16541654-#: <https://github.com/kovidgoyal/kitty/blob/master/docs/notifications.py>.
16551655-16561656-# watcher
16571657-16581658-#: Path to python file which will be loaded for watchers
16591659-#: <https://sw.kovidgoyal.net/kitty/launch/#watchers>. Can be
16601660-#: specified more than once to load multiple watchers. The watchers
16611661-#: will be added to every kitty window. Relative paths are resolved
16621662-#: relative to the kitty config directory. Note that reloading the
16631663-#: config will only affect windows created after the reload.
16641664-16651665-# exe_search_path
16661666-16671667-#: Control where kitty finds the programs to run. The default search
16681668-#: order is: First search the system wide PATH, then ~/.local/bin and
16691669-#: ~/bin. If still not found, the PATH defined in the login shell
16701670-#: after sourcing all its startup files is tried. Finally, if present,
16711671-#: the PATH specified by the env option is tried.
16721672-16731673-#: This option allows you to prepend, append, or remove paths from
16741674-#: this search order. It can be specified multiple times for multiple
16751675-#: paths. A simple path will be prepended to the search order. A path
16761676-#: that starts with the + sign will be append to the search order,
16771677-#: after ~/bin above. A path that starts with the - sign will be
16781678-#: removed from the entire search order. For example::
16791679-16801680-#: exe_search_path /some/prepended/path
16811681-#: exe_search_path +/some/appended/path
16821682-#: exe_search_path -/some/excluded/path
16831683-16841684-# update_check_interval 24
16851685-16861686-#: The interval to periodically check if an update to kitty is
16871687-#: available (in hours). If an update is found, a system notification
16881688-#: is displayed informing you of the available update. The default is
16891689-#: to check every 24 hours, set to zero to disable. Update checking is
16901690-#: only done by the official binary builds. Distro packages or source
16911691-#: builds do not do update checking. Changing this option by reloading
16921692-#: the config is not supported.
16931693-16941694-# startup_session none
16951695-16961696-#: Path to a session file to use for all kitty instances. Can be
16971697-#: overridden by using the kitty --session =none command line option
16981698-#: for individual instances. See sessions
16991699-#: <https://sw.kovidgoyal.net/kitty/overview/#sessions> in the kitty
17001700-#: documentation for details. Note that relative paths are interpreted
17011701-#: with respect to the kitty config directory. Environment variables
17021702-#: in the path are expanded. Changing this option by reloading the
17031703-#: config is not supported. Note that if kitty is invoked with command
17041704-#: line arguments specifying a command to run, this option is ignored.
17051705-17061706-# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask
17071707-17081708-#: Allow programs running in kitty to read and write from the
17091709-#: clipboard. You can control exactly which actions are allowed. The
17101710-#: possible actions are: write-clipboard, read-clipboard, write-
17111711-#: primary, read-primary, read-clipboard-ask, read-primary-ask. The
17121712-#: default is to allow writing to the clipboard and primary selection
17131713-#: and to ask for permission when a program tries to read from the
17141714-#: clipboard. Note that disabling the read confirmation is a security
17151715-#: risk as it means that any program, even the ones running on a
17161716-#: remote server via SSH can read your clipboard. See also
17171717-#: clipboard_max_size.
17181718-17191719-# clipboard_max_size 512
17201720-17211721-#: The maximum size (in MB) of data from programs running in kitty
17221722-#: that will be stored for writing to the system clipboard. A value of
17231723-#: zero means no size limit is applied. See also clipboard_control.
17241724-17251725-# file_transfer_confirmation_bypass
17261726-17271727-#: The password that can be supplied to the file transfer kitten
17281728-#: <https://sw.kovidgoyal.net/kitty/kittens/transfer/> to skip the
17291729-#: transfer confirmation prompt. This should only be used when
17301730-#: initiating transfers from trusted computers, over trusted networks
17311731-#: or encrypted transports, as it allows any programs running on the
17321732-#: remote machine to read/write to the local filesystem, without
17331733-#: permission.
17341734-17351735-# allow_hyperlinks yes
17361736-17371737-#: Process hyperlink escape sequences (OSC 8). If disabled OSC 8
17381738-#: escape sequences are ignored. Otherwise they become clickable
17391739-#: links, that you can click with the mouse or by using the hints
17401740-#: kitten <https://sw.kovidgoyal.net/kitty/kittens/hints/>. The
17411741-#: special value of ask means that kitty will ask before opening the
17421742-#: link when clicked.
17431743-17441744-# shell_integration enabled
17451745-17461746-#: Enable shell integration on supported shells. This enables features
17471747-#: such as jumping to previous prompts, browsing the output of the
17481748-#: previous command in a pager, etc. on supported shells. Set to
17491749-#: disabled to turn off shell integration, completely. It is also
17501750-#: possible to disable individual features, set to a space separated
17511751-#: list of these values: no-rc, no-cursor, no-title, no-cwd, no-
17521752-#: prompt-mark, no-complete, no-sudo. See Shell integration
17531753-#: <https://sw.kovidgoyal.net/kitty/shell-integration/> for details.
17541754-17551755-# allow_cloning ask
17561756-17571757-#: Control whether programs running in the terminal can request new
17581758-#: windows to be created. The canonical example is clone-in-kitty
17591759-#: <https://sw.kovidgoyal.net/kitty/shell-integration/#clone-shell>.
17601760-#: By default, kitty will ask for permission for each clone request.
17611761-#: Allowing cloning unconditionally gives programs running in the
17621762-#: terminal (including over SSH) permission to execute arbitrary code,
17631763-#: as the user who is running the terminal, on the computer that the
17641764-#: terminal is running on.
17651765-17661766-# clone_source_strategies venv,conda,env_var,path
17671767-17681768-#: Control what shell code is sourced when running clone-in-kitty in
17691769-#: the newly cloned window. The supported strategies are:
17701770-17711771-#: venv
17721772-#: Source the file $VIRTUAL_ENV/bin/activate. This is used by the
17731773-#: Python stdlib venv module and allows cloning venvs automatically.
17741774-#: conda
17751775-#: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual
17761776-#: environments created by conda.
17771777-#: env_var
17781778-#: Execute the contents of the environment variable
17791779-#: KITTY_CLONE_SOURCE_CODE with eval.
17801780-#: path
17811781-#: Source the file pointed to by the environment variable
17821782-#: KITTY_CLONE_SOURCE_PATH.
17831783-17841784-#: This option must be a comma separated list of the above values.
17851785-#: Only the first valid match, in the order specified, is sourced.
17861786-17871787-# notify_on_cmd_finish never
17881788-17891789-#: Show a desktop notification when a long-running command finishes
17901790-#: (needs shell_integration). The possible values are:
17911791-17921792-#: never
17931793-#: Never send a notification.
17941794-17951795-#: unfocused
17961796-#: Only send a notification when the window does not have keyboard focus.
17971797-17981798-#: invisible
17991799-#: Only send a notification when the window both is unfocused and not visible
18001800-#: to the user, for example, because it is in an inactive tab or its OS window
18011801-#: is not currently visible (on platforms that support OS window visibility querying
18021802-#: this considers an OS Window visible iff it is active).
18031803-18041804-#: always
18051805-#: Always send a notification, regardless of window state.
18061806-18071807-#: There are two optional arguments:
18081808-18091809-#: First, the minimum duration for what is considered a long running
18101810-#: command. The default is 5 seconds. Specify a second argument to set
18111811-#: the duration. For example: invisible 15. Do not set the value too
18121812-#: small, otherwise a command that launches a new OS Window and exits
18131813-#: will spam a notification.
18141814-18151815-#: Second, the action to perform. The default is notify. The possible
18161816-#: values are:
18171817-18181818-#: notify
18191819-#: Send a desktop notification. The subsequent arguments are optional and specify when
18201820-#: the notification is automatically cleared. The set of possible events when the notification is
18211821-#: cleared are: focus and next. focus means that when the notification
18221822-#: policy is unfocused or invisible the notification is automatically cleared
18231823-#: when the window regains focus. The value of next means that the previous notification
18241824-#: is cleared when the next notification is shown. The default when no arguments are specified
18251825-#: is: focus next.
18261826-18271827-#: bell
18281828-#: Ring the terminal bell.
18291829-18301830-#: command
18311831-#: Run a custom command. All subsequent arguments are the cmdline to run.
18321832-18331833-#: Some more examples::
18341834-18351835-#: # Send a notification when a command takes more than 5 seconds in an unfocused window
18361836-#: notify_on_cmd_finish unfocused
18371837-#: # Send a notification when a command takes more than 10 seconds in a invisible window
18381838-#: notify_on_cmd_finish invisible 10.0
18391839-#: # Ring a bell when a command takes more than 10 seconds in a invisible window
18401840-#: notify_on_cmd_finish invisible 10.0 bell
18411841-#: # Run 'notify-send' when a command takes more than 10 seconds in a invisible window
18421842-#: # Here %c is replaced by the current command line and %s by the job exit code
18431843-#: notify_on_cmd_finish invisible 10.0 command notify-send "job finished with status: %s" %c
18441844-#: # Do not clear previous notification when next command finishes or window regains focus
18451845-#: notify_on_cmd_finish invisible 5.0 notify
18461846-18471847-# term xterm-kitty
18481848-18491849-#: The value of the TERM environment variable to set. Changing this
18501850-#: can break many terminal programs, only change it if you know what
18511851-#: you are doing, not because you read some advice on "Stack Overflow"
18521852-#: to change it. The TERM variable is used by various programs to get
18531853-#: information about the capabilities and behavior of the terminal. If
18541854-#: you change it, depending on what programs you run, and how
18551855-#: different the terminal you are changing it to is, various things
18561856-#: from key-presses, to colors, to various advanced features may not
18571857-#: work. Changing this option by reloading the config will only affect
18581858-#: newly created windows.
18591859-18601860-# terminfo_type path
18611861-18621862-#: The value of the TERMINFO environment variable to set. This
18631863-#: variable is used by programs running in the terminal to search for
18641864-#: terminfo databases. The default value of path causes kitty to set
18651865-#: it to a filesystem location containing the kitty terminfo database.
18661866-#: A value of direct means put the entire database into the env var
18671867-#: directly. This can be useful when connecting to containers, for
18681868-#: example. But, note that not all software supports this. A value of
18691869-#: none means do not touch the variable.
18701870-18711871-# forward_stdio no
18721872-18731873-#: Forward STDOUT and STDERR of the kitty process to child processes.
18741874-#: This is useful for debugging as it allows child processes to print
18751875-#: to kitty's STDOUT directly. For example, echo hello world
18761876-#: >&$KITTY_STDIO_FORWARDED in a shell will print to the parent
18771877-#: kitty's STDOUT. Sets the KITTY_STDIO_FORWARDED=fdnum environment
18781878-#: variable so child processes know about the forwarding. Note that on
18791879-#: macOS this prevents the shell from being run via the login utility
18801880-#: so getlogin() will not work in programs run in this session.
18811881-18821882-# menu_map
18831883-18841884-#: Specify entries for various menus in kitty. Currently only the
18851885-#: global menubar on macOS is supported. For example::
18861886-18871887-#: menu_map global "Actions::Launch something special" launch --hold --type=os-window sh -c "echo hello world"
18881888-18891889-#: This will create a menu entry named "Launch something special" in
18901890-#: an "Actions" menu in the macOS global menubar. Sub-menus can be
18911891-#: created by adding more levels separated by the :: characters.
18921892-18931893-#: }}}
18941894-18951895-#: OS specific tweaks {{{
18961896-18971897-# wayland_titlebar_color system
18981898-18991899-#: The color of the kitty window's titlebar on Wayland systems with
19001900-#: client side window decorations such as GNOME. A value of system
19011901-#: means to use the default system colors, a value of background means
19021902-#: to use the background color of the currently active kitty window
19031903-#: and finally you can use an arbitrary color, such as #12af59 or red.
19041904-19051905-# macos_titlebar_color system
19061906-19071907-#: The color of the kitty window's titlebar on macOS. A value of
19081908-#: system means to use the default system color, light or dark can
19091909-#: also be used to set it explicitly. A value of background means to
19101910-#: use the background color of the currently active window and finally
19111911-#: you can use an arbitrary color, such as #12af59 or red. WARNING:
19121912-#: This option works by using a hack when arbitrary color (or
19131913-#: background) is configured, as there is no proper Cocoa API for it.
19141914-#: It sets the background color of the entire window and makes the
19151915-#: titlebar transparent. As such it is incompatible with
19161916-#: background_opacity. If you want to use both, you are probably
19171917-#: better off just hiding the titlebar with hide_window_decorations.
19181918-19191919-# macos_option_as_alt no
19201920-19211921-#: Use the Option key as an Alt key on macOS. With this set to no,
19221922-#: kitty will use the macOS native Option+Key to enter Unicode
19231923-#: character behavior. This will break any Alt+Key keyboard shortcuts
19241924-#: in your terminal programs, but you can use the macOS Unicode input
19251925-#: technique. You can use the values: left, right or both to use only
19261926-#: the left, right or both Option keys as Alt, instead. Note that
19271927-#: kitty itself always treats Option the same as Alt. This means you
19281928-#: cannot use this option to configure different kitty shortcuts for
19291929-#: Option+Key vs. Alt+Key. Also, any kitty shortcuts using
19301930-#: Option/Alt+Key will take priority, so that any such key presses
19311931-#: will not be passed to terminal programs running inside kitty.
19321932-#: Changing this option by reloading the config is not supported.
19331933-19341934-# macos_hide_from_tasks no
19351935-19361936-#: Hide the kitty window from running tasks on macOS (⌘+Tab and the
19371937-#: Dock). Changing this option by reloading the config is not
19381938-#: supported.
19391939-19401940-# macos_quit_when_last_window_closed no
19411941-19421942-#: Have kitty quit when all the top-level windows are closed on macOS.
19431943-#: By default, kitty will stay running, even with no open windows, as
19441944-#: is the expected behavior on macOS.
19451945-19461946-# macos_window_resizable yes
19471947-19481948-#: Disable this if you want kitty top-level OS windows to not be
19491949-#: resizable on macOS.
19501950-19511951-# macos_thicken_font 0
19521952-19531953-#: Draw an extra border around the font with the given width, to
19541954-#: increase legibility at small font sizes on macOS. For example, a
19551955-#: value of 0.75 will result in rendering that looks similar to sub-
19561956-#: pixel antialiasing at common font sizes. Note that in modern kitty,
19571957-#: this option is obsolete (although still supported). Consider using
19581958-#: text_composition_strategy instead.
19591959-19601960-# macos_traditional_fullscreen no
19611961-19621962-#: Use the macOS traditional full-screen transition, that is faster,
19631963-#: but less pretty.
19641964-19651965-# macos_show_window_title_in all
19661966-19671967-#: Control where the window title is displayed on macOS. A value of
19681968-#: window will show the title of the currently active window at the
19691969-#: top of the macOS window. A value of menubar will show the title of
19701970-#: the currently active window in the macOS global menu bar, making
19711971-#: use of otherwise wasted space. A value of all will show the title
19721972-#: in both places, and none hides the title. See
19731973-#: macos_menubar_title_max_length for how to control the length of the
19741974-#: title in the menu bar.
19751975-19761976-# macos_menubar_title_max_length 0
19771977-19781978-#: The maximum number of characters from the window title to show in
19791979-#: the macOS global menu bar. Values less than one means that there is
19801980-#: no maximum limit.
19811981-19821982-# macos_custom_beam_cursor no
19831983-19841984-#: Use a custom mouse cursor for macOS that is easier to see on both
19851985-#: light and dark backgrounds. Nowadays, the default macOS cursor
19861986-#: already comes with a white border. WARNING: this might make your
19871987-#: mouse cursor invisible on dual GPU machines. Changing this option
19881988-#: by reloading the config is not supported.
19891989-19901990-# macos_colorspace srgb
19911991-19921992-#: The colorspace in which to interpret terminal colors. The default
19931993-#: of srgb will cause colors to match those seen in web browsers. The
19941994-#: value of default will use whatever the native colorspace of the
19951995-#: display is. The value of displayp3 will use Apple's special
19961996-#: snowflake display P3 color space, which will result in over
19971997-#: saturated (brighter) colors with some color shift. Reloading
19981998-#: configuration will change this value only for newly created OS
19991999-#: windows.
20002000-20012001-# linux_display_server auto
20022002-20032003-#: Choose between Wayland and X11 backends. By default, an appropriate
20042004-#: backend based on the system state is chosen automatically. Set it
20052005-#: to x11 or wayland to force the choice. Changing this option by
20062006-#: reloading the config is not supported.
20072007-20082008-# wayland_enable_ime yes
20092009-20102010-#: Enable Input Method Extension on Wayland. This is typically used
20112011-#: for inputting text in East Asian languages. However, its
20122012-#: implementation in Wayland is often buggy and introduces latency
20132013-#: into the input loop, so disable this if you know you dont need it.
20142014-#: Changing this option by reloading the config is not supported, it
20152015-#: will not have any effect.
20162016-20172017-#: }}}
20182018-20192019-#: Keyboard shortcuts {{{
20202020-20212021-#: Keys are identified simply by their lowercase Unicode characters.
20222022-#: For example: a for the A key, [ for the left square bracket key,
20232023-#: etc. For functional keys, such as Enter or Escape, the names are
20242024-#: present at Functional key definitions
20252025-#: <https://sw.kovidgoyal.net/kitty/keyboard-protocol/#functional>.
20262026-#: For modifier keys, the names are ctrl (control, ⌃), shift (⇧), alt
20272027-#: (opt, option, ⌥), super (cmd, command, ⌘).
20282028-20292029-#: Simple shortcut mapping is done with the map directive. For full
20302030-#: details on advanced mapping including modal and per application
20312031-#: maps, see mapping <https://sw.kovidgoyal.net/kitty/mapping/>. Some
20322032-#: quick examples to illustrate common tasks::
20332033-20342034-#: # unmap a keyboard shortcut, passing it to the program running in kitty
20352035-#: map kitty_mod+space
20362036-#: # completely ignore a keyboard event
20372037-#: map ctrl+alt+f1 discard_event
20382038-#: # combine multiple actions
20392039-#: map kitty_mod+e combine : new_window : next_layout
20402040-#: # multi-key shortcuts
20412041-#: map ctrl+x>ctrl+y>z action
20422042-20432043-#: The full list of actions that can be mapped to key presses is
20442044-#: available here <https://sw.kovidgoyal.net/kitty/actions/>.
20452045-20462046-# kitty_mod ctrl+shift
20472047-20482048-#: Special modifier key alias for default shortcuts. You can change
20492049-#: the value of this option to alter all default shortcuts that use
20502050-#: kitty_mod.
20512051-20522052-# clear_all_shortcuts no
20532053-20542054-#: Remove all shortcut definitions up to this point. Useful, for
20552055-#: instance, to remove the default shortcuts.
20562056-20572057-# action_alias
20582058-20592059-#: E.g. action_alias launch_tab launch --type=tab --cwd=current
20602060-20612061-#: Define action aliases to avoid repeating the same options in
20622062-#: multiple mappings. Aliases can be defined for any action and will
20632063-#: be expanded recursively. For example, the above alias allows you to
20642064-#: create mappings to launch a new tab in the current working
20652065-#: directory without duplication::
20662066-20672067-#: map f1 launch_tab vim
20682068-#: map f2 launch_tab emacs
20692069-20702070-#: Similarly, to alias kitten invocation::
20712071-20722072-#: action_alias hints kitten hints --hints-offset=0
20732073-20742074-# kitten_alias
20752075-20762076-#: E.g. kitten_alias hints hints --hints-offset=0
20772077-20782078-#: Like action_alias above, but specifically for kittens. Generally,
20792079-#: prefer to use action_alias. This option is a legacy version,
20802080-#: present for backwards compatibility. It causes all invocations of
20812081-#: the aliased kitten to be substituted. So the example above will
20822082-#: cause all invocations of the hints kitten to have the --hints-
20832083-#: offset=0 option applied.
20842084-20852085-#: Clipboard {{{
20862086-20872087-#: Copy to clipboard
20882088-20892089-# map kitty_mod+c copy_to_clipboard
20902090-# map cmd+c copy_to_clipboard
20912091-20922092-#:: There is also a copy_or_interrupt action that can be optionally
20932093-#:: mapped to Ctrl+C. It will copy only if there is a selection and
20942094-#:: send an interrupt otherwise. Similarly,
20952095-#:: copy_and_clear_or_interrupt will copy and clear the selection or
20962096-#:: send an interrupt if there is no selection.
20972097-20982098-#: Paste from clipboard
20992099-21002100-# map kitty_mod+v paste_from_clipboard
21012101-# map cmd+v paste_from_clipboard
21022102-21032103-#: Paste from selection
21042104-21052105-# map kitty_mod+s paste_from_selection
21062106-# map shift+insert paste_from_selection
21072107-21082108-#: Pass selection to program
21092109-21102110-# map kitty_mod+o pass_selection_to_program
21112111-21122112-#:: You can also pass the contents of the current selection to any
21132113-#:: program with pass_selection_to_program. By default, the system's
21142114-#:: open program is used, but you can specify your own, the selection
21152115-#:: will be passed as a command line argument to the program. For
21162116-#:: example::
21172117-21182118-#:: map kitty_mod+o pass_selection_to_program firefox
21192119-21202120-#:: You can pass the current selection to a terminal program running
21212121-#:: in a new kitty window, by using the @selection placeholder::
21222122-21232123-#:: map kitty_mod+y new_window less @selection
21242124-21252125-#: }}}
21262126-21272127-#: Scrolling {{{
21282128-21292129-#: Scroll line up
21302130-21312131-# map kitty_mod+up scroll_line_up
21322132-# map kitty_mod+k scroll_line_up
21332133-# map opt+cmd+page_up scroll_line_up
21342134-# map cmd+up scroll_line_up
21352135-21362136-#: Scroll line down
21372137-21382138-# map kitty_mod+down scroll_line_down
21392139-# map kitty_mod+j scroll_line_down
21402140-# map opt+cmd+page_down scroll_line_down
21412141-# map cmd+down scroll_line_down
21422142-21432143-#: Scroll page up
21442144-21452145-# map kitty_mod+page_up scroll_page_up
21462146-# map cmd+page_up scroll_page_up
21472147-21482148-#: Scroll page down
21492149-21502150-# map kitty_mod+page_down scroll_page_down
21512151-# map cmd+page_down scroll_page_down
21522152-21532153-#: Scroll to top
21542154-21552155-# map kitty_mod+home scroll_home
21562156-# map cmd+home scroll_home
21572157-21582158-#: Scroll to bottom
21592159-21602160-# map kitty_mod+end scroll_end
21612161-# map cmd+end scroll_end
21622162-21632163-#: Scroll to previous shell prompt
21642164-21652165-# map kitty_mod+z scroll_to_prompt -1
21662166-21672167-#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last
21682168-#:: jumped to or the last clicked position. Requires shell
21692169-#:: integration <https://sw.kovidgoyal.net/kitty/shell-integration/>
21702170-#:: to work.
21712171-21722172-#: Scroll to next shell prompt
21732173-21742174-# map kitty_mod+x scroll_to_prompt 1
21752175-21762176-#: Browse scrollback buffer in pager
21772177-21782178-# map kitty_mod+h show_scrollback
21792179-21802180-#:: You can pipe the contents of the current screen and history
21812181-#:: buffer as STDIN to an arbitrary program using launch --stdin-
21822182-#:: source. For example, the following opens the scrollback buffer in
21832183-#:: less in an overlay window::
21842184-21852185-#:: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
21862186-21872187-#:: For more details on piping screen and buffer contents to external
21882188-#:: programs, see launch <https://sw.kovidgoyal.net/kitty/launch/>.
21892189-21902190-#: Browse output of the last shell command in pager
21912191-21922192-# map kitty_mod+g show_last_command_output
21932193-21942194-#:: You can also define additional shortcuts to get the command
21952195-#:: output. For example, to get the first command output on screen::
21962196-21972197-#:: map f1 show_first_command_output_on_screen
21982198-21992199-#:: To get the command output that was last accessed by a keyboard
22002200-#:: action or mouse action::
22012201-22022202-#:: map f1 show_last_visited_command_output
22032203-22042204-#:: You can pipe the output of the last command run in the shell
22052205-#:: using the launch action. For example, the following opens the
22062206-#:: output in less in an overlay window::
22072207-22082208-#:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R
22092209-22102210-#:: To get the output of the first command on the screen, use
22112211-#:: @first_cmd_output_on_screen. To get the output of the last jumped
22122212-#:: to command, use @last_visited_cmd_output.
22132213-22142214-#:: Requires shell integration
22152215-#:: <https://sw.kovidgoyal.net/kitty/shell-integration/> to work.
22162216-22172217-#: }}}
22182218-22192219-#: Window management {{{
22202220-22212221-#: New window
22222222-22232223-# map kitty_mod+enter new_window
22242224-# map cmd+enter new_window
22252225-22262226-#:: You can open a new kitty window running an arbitrary program, for
22272227-#:: example::
22282228-22292229-#:: map kitty_mod+y launch mutt
22302230-22312231-#:: You can open a new window with the current working directory set
22322232-#:: to the working directory of the current window using::
22332233-22342234-#:: map ctrl+alt+enter launch --cwd=current
22352235-22362236-#:: You can open a new window that is allowed to control kitty via
22372237-#:: the kitty remote control facility with launch --allow-remote-
22382238-#:: control. Any programs running in that window will be allowed to
22392239-#:: control kitty. For example::
22402240-22412241-#:: map ctrl+enter launch --allow-remote-control some_program
22422242-22432243-#:: You can open a new window next to the currently active window or
22442244-#:: as the first window, with::
22452245-22462246-#:: map ctrl+n launch --location=neighbor
22472247-#:: map ctrl+f launch --location=first
22482248-22492249-#:: For more details, see launch
22502250-#:: <https://sw.kovidgoyal.net/kitty/launch/>.
22512251-22522252-#: New OS window
22532253-22542254-# map kitty_mod+n new_os_window
22552255-# map cmd+n new_os_window
22562256-22572257-#:: Works like new_window above, except that it opens a top-level OS
22582258-#:: window. In particular you can use new_os_window_with_cwd to open
22592259-#:: a window with the current working directory.
22602260-22612261-#: Close window
22622262-22632263-# map kitty_mod+w close_window
22642264-# map shift+cmd+d close_window
22652265-22662266-#: Next window
22672267-22682268-# map kitty_mod+] next_window
22692269-22702270-#: Previous window
22712271-22722272-# map kitty_mod+[ previous_window
22732273-22742274-#: Move window forward
22752275-22762276-# map kitty_mod+f move_window_forward
22772277-22782278-#: Move window backward
22792279-22802280-# map kitty_mod+b move_window_backward
22812281-22822282-#: Move window to top
22832283-22842284-# map kitty_mod+` move_window_to_top
22852285-22862286-#: Start resizing window
22872287-22882288-# map kitty_mod+r start_resizing_window
22892289-# map cmd+r start_resizing_window
22902290-22912291-#: First window
22922292-22932293-# map kitty_mod+1 first_window
22942294-# map cmd+1 first_window
22952295-22962296-#: Second window
22972297-22982298-# map kitty_mod+2 second_window
22992299-# map cmd+2 second_window
23002300-23012301-#: Third window
23022302-23032303-# map kitty_mod+3 third_window
23042304-# map cmd+3 third_window
23052305-23062306-#: Fourth window
23072307-23082308-# map kitty_mod+4 fourth_window
23092309-# map cmd+4 fourth_window
23102310-23112311-#: Fifth window
23122312-23132313-# map kitty_mod+5 fifth_window
23142314-# map cmd+5 fifth_window
23152315-23162316-#: Sixth window
23172317-23182318-# map kitty_mod+6 sixth_window
23192319-# map cmd+6 sixth_window
23202320-23212321-#: Seventh window
23222322-23232323-# map kitty_mod+7 seventh_window
23242324-# map cmd+7 seventh_window
23252325-23262326-#: Eighth window
23272327-23282328-# map kitty_mod+8 eighth_window
23292329-# map cmd+8 eighth_window
23302330-23312331-#: Ninth window
23322332-23332333-# map kitty_mod+9 ninth_window
23342334-# map cmd+9 ninth_window
23352335-23362336-#: Tenth window
23372337-23382338-# map kitty_mod+0 tenth_window
23392339-23402340-#: Visually select and focus window
23412341-23422342-# map kitty_mod+f7 focus_visible_window
23432343-23442344-#:: Display overlay numbers and alphabets on the window, and switch
23452345-#:: the focus to the window when you press the key. When there are
23462346-#:: only two windows, the focus will be switched directly without
23472347-#:: displaying the overlay. You can change the overlay characters and
23482348-#:: their order with option visual_window_select_characters.
23492349-23502350-#: Visually swap window with another
23512351-23522352-# map kitty_mod+f8 swap_with_window
23532353-23542354-#:: Works like focus_visible_window above, but swaps the window.
23552355-23562356-#: }}}
23572357-23582358-#: Tab management {{{
23592359-23602360-#: Next tab
23612361-23622362-# map kitty_mod+right next_tab
23632363-# map shift+cmd+] next_tab
23642364-# map ctrl+tab next_tab
23652365-23662366-#: Previous tab
23672367-23682368-# map kitty_mod+left previous_tab
23692369-# map shift+cmd+[ previous_tab
23702370-# map ctrl+shift+tab previous_tab
23712371-23722372-#: New tab
23732373-23742374-# map kitty_mod+t new_tab
23752375-# map cmd+t new_tab
23762376-23772377-#: Close tab
23782378-23792379-# map kitty_mod+q close_tab
23802380-# map cmd+w close_tab
23812381-23822382-#: Close OS window
23832383-23842384-# map shift+cmd+w close_os_window
23852385-23862386-#: Move tab forward
23872387-23882388-# map kitty_mod+. move_tab_forward
23892389-23902390-#: Move tab backward
23912391-23922392-# map kitty_mod+, move_tab_backward
23932393-23942394-#: Set tab title
23952395-23962396-# map kitty_mod+alt+t set_tab_title
23972397-# map shift+cmd+i set_tab_title
23982398-23992399-24002400-#: You can also create shortcuts to go to specific tabs, with 1 being
24012401-#: the first tab, 2 the second tab and -1 being the previously active
24022402-#: tab, -2 being the tab active before the previously active tab and
24032403-#: so on. Any number larger than the number of tabs goes to the last
24042404-#: tab and any number less than the number of previously used tabs in
24052405-#: the history goes to the oldest previously used tab in the history::
24062406-24072407-#: map ctrl+alt+1 goto_tab 1
24082408-#: map ctrl+alt+2 goto_tab 2
24092409-24102410-#: Just as with new_window above, you can also pass the name of
24112411-#: arbitrary commands to run when using new_tab and new_tab_with_cwd.
24122412-#: Finally, if you want the new tab to open next to the current tab
24132413-#: rather than at the end of the tabs list, use::
24142414-24152415-#: map ctrl+t new_tab !neighbor [optional cmd to run]
24162416-#: }}}
24172417-24182418-#: Layout management {{{
24192419-24202420-#: Next layout
24212421-24222422-# map kitty_mod+l next_layout
24232423-24242424-24252425-#: You can also create shortcuts to switch to specific layouts::
24262426-24272427-#: map ctrl+alt+t goto_layout tall
24282428-#: map ctrl+alt+s goto_layout stack
24292429-24302430-#: Similarly, to switch back to the previous layout::
24312431-24322432-#: map ctrl+alt+p last_used_layout
24332433-24342434-#: There is also a toggle_layout action that switches to the named
24352435-#: layout or back to the previous layout if in the named layout.
24362436-#: Useful to temporarily "zoom" the active window by switching to the
24372437-#: stack layout::
24382438-24392439-#: map ctrl+alt+z toggle_layout stack
24402440-#: }}}
24412441-24422442-#: Font sizes {{{
24432443-24442444-#: You can change the font size for all top-level kitty OS windows at
24452445-#: a time or only the current one.
24462446-24472447-#: Increase font size
24482448-24492449-# map kitty_mod+equal change_font_size all +2.0
24502450-# map kitty_mod+plus change_font_size all +2.0
24512451-# map kitty_mod+kp_add change_font_size all +2.0
24522452-# map cmd+plus change_font_size all +2.0
24532453-# map cmd+equal change_font_size all +2.0
24542454-# map shift+cmd+equal change_font_size all +2.0
24552455-24562456-#: Decrease font size
24572457-24582458-# map kitty_mod+minus change_font_size all -2.0
24592459-# map kitty_mod+kp_subtract change_font_size all -2.0
24602460-# map cmd+minus change_font_size all -2.0
24612461-# map shift+cmd+minus change_font_size all -2.0
24622462-24632463-#: Reset font size
24642464-24652465-# map kitty_mod+backspace change_font_size all 0
24662466-# map cmd+0 change_font_size all 0
24672467-24682468-24692469-#: To setup shortcuts for specific font sizes::
24702470-24712471-#: map kitty_mod+f6 change_font_size all 10.0
24722472-24732473-#: To setup shortcuts to change only the current OS window's font
24742474-#: size::
24752475-24762476-#: map kitty_mod+f6 change_font_size current 10.0
24772477-#: }}}
24782478-24792479-#: Select and act on visible text {{{
24802480-24812481-#: Use the hints kitten to select text and either pass it to an
24822482-#: external program or insert it into the terminal or copy it to the
24832483-#: clipboard.
24842484-24852485-#: Open URL
24862486-24872487-# map kitty_mod+e open_url_with_hints
24882488-24892489-#:: Open a currently visible URL using the keyboard. The program used
24902490-#:: to open the URL is specified in open_url_with.
24912491-24922492-#: Insert selected path
24932493-24942494-# map kitty_mod+p>f kitten hints --type path --program -
24952495-24962496-#:: Select a path/filename and insert it into the terminal. Useful,
24972497-#:: for instance to run git commands on a filename output from a
24982498-#:: previous git command.
24992499-25002500-#: Open selected path
25012501-25022502-# map kitty_mod+p>shift+f kitten hints --type path
25032503-25042504-#:: Select a path/filename and open it with the default open program.
25052505-25062506-#: Insert selected line
25072507-25082508-# map kitty_mod+p>l kitten hints --type line --program -
25092509-25102510-#:: Select a line of text and insert it into the terminal. Useful for
25112511-#:: the output of things like: `ls -1`.
25122512-25132513-#: Insert selected word
25142514-25152515-# map kitty_mod+p>w kitten hints --type word --program -
25162516-25172517-#:: Select words and insert into terminal.
25182518-25192519-#: Insert selected hash
25202520-25212521-# map kitty_mod+p>h kitten hints --type hash --program -
25222522-25232523-#:: Select something that looks like a hash and insert it into the
25242524-#:: terminal. Useful with git, which uses SHA1 hashes to identify
25252525-#:: commits.
25262526-25272527-#: Open the selected file at the selected line
25282528-25292529-# map kitty_mod+p>n kitten hints --type linenum
25302530-25312531-#:: Select something that looks like filename:linenum and open it in
25322532-#:: your default editor at the specified line number.
25332533-25342534-#: Open the selected hyperlink
25352535-25362536-# map kitty_mod+p>y kitten hints --type hyperlink
25372537-25382538-#:: Select a hyperlink (i.e. a URL that has been marked as such by
25392539-#:: the terminal program, for example, by `ls --hyperlink=auto`).
25402540-25412541-25422542-#: The hints kitten has many more modes of operation that you can map
25432543-#: to different shortcuts. For a full description see hints kitten
25442544-#: <https://sw.kovidgoyal.net/kitty/kittens/hints/>.
25452545-#: }}}
25462546-25472547-#: Miscellaneous {{{
25482548-25492549-#: Show documentation
25502550-25512551-# map kitty_mod+f1 show_kitty_doc overview
25522552-25532553-#: Toggle fullscreen
25542554-25552555-# map kitty_mod+f11 toggle_fullscreen
25562556-# map ctrl+cmd+f toggle_fullscreen
25572557-25582558-#: Toggle maximized
25592559-25602560-# map kitty_mod+f10 toggle_maximized
25612561-25622562-#: Toggle macOS secure keyboard entry
25632563-25642564-# map opt+cmd+s toggle_macos_secure_keyboard_entry
25652565-25662566-#: Unicode input
25672567-25682568-# map kitty_mod+u kitten unicode_input
25692569-# map ctrl+cmd+space kitten unicode_input
25702570-25712571-#: Edit config file
25722572-25732573-# map kitty_mod+f2 edit_config_file
25742574-# map cmd+, edit_config_file
25752575-25762576-#: Open the kitty command shell
25772577-25782578-# map kitty_mod+escape kitty_shell window
25792579-25802580-#:: Open the kitty shell in a new window / tab / overlay / os_window
25812581-#:: to control kitty using commands.
25822582-25832583-#: Increase background opacity
25842584-25852585-# map kitty_mod+a>m set_background_opacity +0.1
25862586-25872587-#: Decrease background opacity
25882588-25892589-# map kitty_mod+a>l set_background_opacity -0.1
25902590-25912591-#: Make background fully opaque
25922592-25932593-# map kitty_mod+a>1 set_background_opacity 1
25942594-25952595-#: Reset background opacity
25962596-25972597-# map kitty_mod+a>d set_background_opacity default
25982598-25992599-#: Reset the terminal
26002600-26012601-# map kitty_mod+delete clear_terminal reset active
26022602-# map opt+cmd+r clear_terminal reset active
26032603-26042604-#:: You can create shortcuts to clear/reset the terminal. For
26052605-#:: example::
26062606-26072607-#:: # Reset the terminal
26082608-#:: map f1 clear_terminal reset active
26092609-#:: # Clear the terminal screen by erasing all contents
26102610-#:: map f1 clear_terminal clear active
26112611-#:: # Clear the terminal scrollback by erasing it
26122612-#:: map f1 clear_terminal scrollback active
26132613-#:: # Scroll the contents of the screen into the scrollback
26142614-#:: map f1 clear_terminal scroll active
26152615-#:: # Clear everything on screen up to the line with the cursor or the start of the current prompt (needs shell integration)
26162616-#:: map f1 clear_terminal to_cursor active
26172617-#:: # Same as above except cleared lines are moved into scrollback
26182618-#:: map f1 clear_terminal to_cursor_scroll active
26192619-26202620-#:: If you want to operate on all kitty windows instead of just the
26212621-#:: current one, use all instead of active.
26222622-26232623-#:: Some useful functions that can be defined in the shell rc files
26242624-#:: to perform various kinds of clearing of the current window:
26252625-26262626-#:: .. code-block:: sh
26272627-26282628-#:: clear-only-screen() {
26292629-#:: printf "\e[H\e[2J"
26302630-#:: }
26312631-26322632-#:: clear-screen-and-scrollback() {
26332633-#:: printf "\e[H\e[3J"
26342634-#:: }
26352635-26362636-#:: clear-screen-saving-contents-in-scrollback() {
26372637-#:: printf "\e[H\e[22J"
26382638-#:: }
26392639-26402640-#:: For instance, using these escape codes, it is possible to remap
26412641-#:: Ctrl+L to both scroll the current screen contents into the
26422642-#:: scrollback buffer and clear the screen, instead of just clearing
26432643-#:: the screen. For ZSH, in ~/.zshrc, add:
26442644-26452645-#:: .. code-block:: zsh
26462646-26472647-#:: ctrl_l() {
26482648-#:: builtin print -rn -- $'\r\e[0J\e[H\e[22J' >"$TTY"
26492649-#:: builtin zle .reset-prompt
26502650-#:: builtin zle -R
26512651-#:: }
26522652-#:: zle -N ctrl_l
26532653-#:: bindkey '^l' ctrl_l
26542654-26552655-#:: Alternatively, you can just add map ctrl+l clear_terminal
26562656-#:: to_cursor_scroll active to kitty.conf which works with no changes
26572657-#:: to the shell rc files, but only clears up to the prompt, it does
26582658-#:: not clear any text at the prompt itself.
26592659-26602660-#: Clear to start
26612661-26622662-# map cmd+k clear_terminal to_cursor active
26632663-26642664-#: Clear scrollback
26652665-26662666-# map option+cmd+k clear_terminal scrollback active
26672667-26682668-#: Clear screen
26692669-26702670-# map cmd+ctrl+l clear_terminal to_cursor_scroll active
26712671-26722672-#: Reload kitty.conf
26732673-26742674-# map kitty_mod+f5 load_config_file
26752675-# map ctrl+cmd+, load_config_file
26762676-26772677-#:: Reload kitty.conf, applying any changes since the last time it
26782678-#:: was loaded. Note that a handful of options cannot be dynamically
26792679-#:: changed and require a full restart of kitty. Particularly, when
26802680-#:: changing shortcuts for actions located on the macOS global menu
26812681-#:: bar, a full restart is needed. You can also map a keybinding to
26822682-#:: load a different config file, for example::
26832683-26842684-#:: map f5 load_config /path/to/alternative/kitty.conf
26852685-26862686-#:: Note that all options from the original kitty.conf are discarded,
26872687-#:: in other words the new configuration *replace* the old ones.
26882688-26892689-#: Debug kitty configuration
26902690-26912691-# map kitty_mod+f6 debug_config
26922692-# map opt+cmd+, debug_config
26932693-26942694-#:: Show details about exactly what configuration kitty is running
26952695-#:: with and its host environment. Useful for debugging issues.
26962696-26972697-#: Send arbitrary text on key presses
26982698-26992699-#:: E.g. map ctrl+shift+alt+h send_text all Hello World
27002700-27012701-#:: You can tell kitty to send arbitrary (UTF-8) encoded text to the
27022702-#:: client program when pressing specified shortcut keys. For
27032703-#:: example::
27042704-27052705-#:: map ctrl+alt+a send_text all Special text
27062706-27072707-#:: This will send "Special text" when you press the Ctrl+Alt+A key
27082708-#:: combination. The text to be sent decodes ANSI C escapes
27092709-#:: <https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-
27102710-#:: Quoting.html> so you can use escapes like \e to send control
27112711-#:: codes or \u21fb to send Unicode characters (or you can just input
27122712-#:: the Unicode characters directly as UTF-8 text). You can use
27132713-#:: `kitten show-key` to get the key escape codes you want to
27142714-#:: emulate.
27152715-27162716-#:: The first argument to send_text is the keyboard modes in which to
27172717-#:: activate the shortcut. The possible values are normal,
27182718-#:: application, kitty or a comma separated combination of them. The
27192719-#:: modes normal and application refer to the DECCKM cursor key mode
27202720-#:: for terminals, and kitty refers to the kitty extended keyboard
27212721-#:: protocol. The special value all means all of them.
27222722-27232723-#:: Some more examples::
27242724-27252725-#:: # Output a word and move the cursor to the start of the line (like typing and pressing Home)
27262726-#:: map ctrl+alt+a send_text normal Word\e[H
27272727-#:: map ctrl+alt+a send_text application Word\eOH
27282728-#:: # Run a command at a shell prompt (like typing the command and pressing Enter)
27292729-#:: map ctrl+alt+a send_text normal,application some command with arguments\r
27302730-27312731-#: Open kitty Website
27322732-27332733-# map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/
27342734-27352735-#: Hide macOS kitty application
27362736-27372737-# map cmd+h hide_macos_app
27382738-27392739-#: Hide macOS other applications
27402740-27412741-# map opt+cmd+h hide_macos_other_apps
27422742-27432743-#: Minimize macOS window
27442744-27452745-# map cmd+m minimize_macos_window
27462746-27472747-#: Quit kitty
27482748-27492749-# map cmd+q quit
27502750-27512751-#: }}}
27522752-27532753-#: }}}
+1-1
window_manager/README.md
···66- `waybar` - top bar
77- `fuzzel` - app launcher
88- `waypaper` and `hyprpaper` - for the wallpaper
99-- `kitty` - terminal
99+- `ghostty` - terminal
1010- Hyprland - my tiling WM of choice
1111- `nm-applet` - applet for controlling Wi-Fi
1212- `blueman` - Bluetooth stuff