Bohdan's terminal configuration
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

implemented "Everblush" color scheme in Neovim and Kitty.

bpavuk 0d89278a 6e772b6e

+40 -2727
+1 -1
nvim/.config/nvim/lua/chadrc.lua
··· 6 6 local M = {} 7 7 8 8 M.base46 = { 9 - theme = "scaryforest", 9 + theme = "everblush", 10 10 transparency = true, 11 11 12 12 -- hl_override = {
+2 -2
window_manager/.config/hypr/hyprland/look_and_feel.conf
··· 8 8 border_size = 3 9 9 10 10 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors 11 - col.active_border = rgba(00df81ff) rgba(032221ff) rgba(03624cff) rgba(2cc295ff) rgba(00df81ff) 45deg 12 - col.inactive_border = rgba(595959aa) 11 + col.active_border = rgb(6cbfbf) 12 + col.inactive_border = rgb(595959) 13 13 14 14 # Set to true enable resizing windows by clicking and dragging on borders and gaps 15 15 resize_on_border = true
+37 -4
window_manager/.config/kitty/kitty.conf
··· 1267 1267 1268 1268 #: }}} 1269 1269 1270 - #: Color scheme {{{ 1270 + #: Color scheme - Everblush {{{ 1271 + 1272 + # Base colors 1273 + foreground #dadada 1274 + background #141b1e 1275 + selection_foreground #dadada 1276 + selection_background #2d3437 1277 + 1278 + # Cursor colors 1279 + cursor #2d3437 1280 + cursor_text_color #dadada 1281 + 1282 + # Normal colors 1283 + color0 #232a2d 1284 + color1 #e57474 1285 + color2 #8ccf7e 1286 + color3 #e5c76b 1287 + color4 #67b0e8 1288 + color5 #c47fd5 1289 + color6 #6cbfbf 1290 + color7 #b3b9b8 1271 1291 1272 - # foreground #dddddd 1273 - # background #000000 1292 + # Bright colors 1293 + color8 #2d3437 1294 + color9 #ef7e7e 1295 + color10 #96d988 1296 + color11 #f4d67a 1297 + color12 #71baf2 1298 + color13 #ce89df 1299 + color14 #67cbe7 1300 + color15 #bdc3c2 1301 + 1302 + # Tab colors 1303 + active_tab_foreground #e182e0 1304 + active_tab_background #1b2224 1305 + inactive_tab_foreground #cd69cc 1306 + inactive_tab_background #232a2c 1274 1307 1275 1308 #: The foreground and background colors. 1276 1309 1277 - background_opacity 0.7 1310 + background_opacity 0.9 1278 1311 1279 1312 #: The opacity of the background. A number between zero and one, where 1280 1313 #: one is opaque and zero is fully transparent. This will only work if
-2720
window_manager/.config/kitty/kitty.conf.bak
··· 1 - # vim:fileencoding=utf-8:foldmethod=marker 2 - 3 - # BEGIN_KITTY_FONTS 4 - font_family family="JetBrainsMono Nerd Font Mono" 5 - bold_font auto 6 - italic_font auto 7 - bold_italic_font auto 8 - # END_KITTY_FONTS 9 - 10 - #: Fonts {{{ 11 - 12 - #: kitty has very powerful font management. You can configure 13 - #: individual font faces and even specify special fonts for particular 14 - #: characters. 15 - 16 - # font_family monospace 17 - # bold_font auto 18 - # italic_font auto 19 - # bold_italic_font auto 20 - 21 - #: You can specify different fonts for the bold/italic/bold-italic 22 - #: variants. The easiest way to select fonts is to run the `kitten 23 - #: choose-fonts` command which will present a nice UI for you to 24 - #: select the fonts you want with previews and support for selecting 25 - #: variable fonts and font features. If you want to learn to select 26 - #: fonts manually, read the font specification syntax 27 - #: <https://sw.kovidgoyal.net/kitty/kittens/choose-fonts/#font-spec- 28 - #: syntax>. 29 - 30 - # font_size 11.0 31 - 32 - #: Font size (in pts). 33 - 34 - # force_ltr no 35 - 36 - #: kitty does not support BIDI (bidirectional text), however, for RTL 37 - #: scripts, words are automatically displayed in RTL. That is to say, 38 - #: in an RTL script, the words "HELLO WORLD" display in kitty as 39 - #: "WORLD HELLO", and if you try to select a substring of an RTL- 40 - #: shaped string, you will get the character that would be there had 41 - #: the string been LTR. For example, assuming the Hebrew word ירושלים, 42 - #: selecting the character that on the screen appears to be ם actually 43 - #: writes into the selection buffer the character י. kitty's default 44 - #: behavior is useful in conjunction with a filter to reverse the word 45 - #: order, however, if you wish to manipulate RTL glyphs, it can be 46 - #: very challenging to work with, so this option is provided to turn 47 - #: it off. Furthermore, this option can be used with the command line 48 - #: program GNU FriBidi <https://github.com/fribidi/fribidi#executable> 49 - #: to get BIDI support, because it will force kitty to always treat 50 - #: the text as LTR, which FriBidi expects for terminals. 51 - 52 - # symbol_map 53 - 54 - #: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols 55 - 56 - #: Map the specified Unicode codepoints to a particular font. Useful 57 - #: if you need special rendering for some symbols, such as for 58 - #: Powerline. Avoids the need for patched fonts. Each Unicode code 59 - #: point is specified in the form `U+<code point in hexadecimal>`. You 60 - #: can specify multiple code points, separated by commas and ranges 61 - #: separated by hyphens. This option can be specified multiple times. 62 - #: The syntax is:: 63 - 64 - #: symbol_map codepoints Font Family Name 65 - 66 - # narrow_symbols 67 - 68 - #: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1 69 - 70 - #: Usually, for Private Use Unicode characters and some symbol/dingbat 71 - #: characters, if the character is followed by one or more spaces, 72 - #: kitty will use those extra cells to render the character larger, if 73 - #: the character in the font has a wide aspect ratio. Using this 74 - #: option you can force kitty to restrict the specified code points to 75 - #: render in the specified number of cells (defaulting to one cell). 76 - #: This option can be specified multiple times. The syntax is:: 77 - 78 - #: narrow_symbols codepoints [optionally the number of cells] 79 - 80 - # disable_ligatures never 81 - 82 - #: Choose how you want to handle multi-character ligatures. The 83 - #: default is to always render them. You can tell kitty to not render 84 - #: them when the cursor is over them by using cursor to make editing 85 - #: easier, or have kitty never render them at all by using always, if 86 - #: you don't like them. The ligature strategy can be set per-window 87 - #: either using the kitty remote control facility or by defining 88 - #: shortcuts for it in kitty.conf, for example:: 89 - 90 - #: map alt+1 disable_ligatures_in active always 91 - #: map alt+2 disable_ligatures_in all never 92 - #: map alt+3 disable_ligatures_in tab cursor 93 - 94 - #: Note that this refers to programming ligatures, typically 95 - #: implemented using the calt OpenType feature. For disabling general 96 - #: ligatures, use the font_features option. 97 - 98 - # font_features 99 - 100 - #: E.g. font_features none 101 - 102 - #: Choose exactly which OpenType features to enable or disable. Note 103 - #: that for the main fonts, features can be specified when selecting 104 - #: the font using the choose-fonts kitten. This setting is useful for 105 - #: fallback fonts. 106 - 107 - #: Some fonts might have features worthwhile in a terminal. For 108 - #: example, Fira Code includes a discretionary feature, zero, which in 109 - #: that font changes the appearance of the zero (0), to make it more 110 - #: easily distinguishable from Ø. Fira Code also includes other 111 - #: discretionary features known as Stylistic Sets which have the tags 112 - #: ss01 through ss20. 113 - 114 - #: For the exact syntax to use for individual features, see the 115 - #: HarfBuzz documentation <https://harfbuzz.github.io/harfbuzz-hb- 116 - #: common.html#hb-feature-from-string>. 117 - 118 - #: Note that this code is indexed by PostScript name, and not the font 119 - #: family. This allows you to define very precise feature settings; 120 - #: e.g. you can disable a feature in the italic font but not in the 121 - #: regular font. 122 - 123 - #: On Linux, font features are first read from the FontConfig database 124 - #: and then this option is applied, so they can be configured in a 125 - #: single, central place. 126 - 127 - #: To get the PostScript name for a font, use the `fc-scan file.ttf` 128 - #: command on Linux or the `Font Book tool on macOS 129 - #: <https://apple.stackexchange.com/questions/79875/how-can-i-get-the- 130 - #: postscript-name-of-a-ttf-font-installed-in-os-x>`__. 131 - 132 - #: Enable alternate zero and oldstyle numerals:: 133 - 134 - #: font_features FiraCode-Retina +zero +onum 135 - 136 - #: Enable only alternate zero in the bold font:: 137 - 138 - #: font_features FiraCode-Bold +zero 139 - 140 - #: Disable the normal ligatures, but keep the calt feature which (in 141 - #: this font) breaks up monotony:: 142 - 143 - #: font_features TT2020StyleB-Regular -liga +calt 144 - 145 - #: In conjunction with force_ltr, you may want to disable Arabic 146 - #: shaping entirely, and only look at their isolated forms if they 147 - #: show up in a document. You can do this with e.g.:: 148 - 149 - #: font_features UnifontMedium +isol -medi -fina -init 150 - 151 - # modify_font 152 - 153 - #: Modify font characteristics such as the position or thickness of 154 - #: the underline and strikethrough. The modifications can have the 155 - #: suffix px for pixels or % for percentage of original value. No 156 - #: suffix means use pts. For example:: 157 - 158 - #: modify_font underline_position -2 159 - #: modify_font underline_thickness 150% 160 - #: modify_font strikethrough_position 2px 161 - 162 - #: Additionally, you can modify the size of the cell in which each 163 - #: font glyph is rendered and the baseline at which the glyph is 164 - #: placed in the cell. For example:: 165 - 166 - #: modify_font cell_width 80% 167 - #: modify_font cell_height -2px 168 - #: modify_font baseline 3 169 - 170 - #: Note that modifying the baseline will automatically adjust the 171 - #: underline and strikethrough positions by the same amount. 172 - #: Increasing the baseline raises glyphs inside the cell and 173 - #: decreasing it lowers them. Decreasing the cell size might cause 174 - #: rendering artifacts, so use with care. 175 - 176 - # box_drawing_scale 0.001, 1, 1.5, 2 177 - 178 - #: The sizes of the lines used for the box drawing Unicode characters. 179 - #: These values are in pts. They will be scaled by the monitor DPI to 180 - #: arrive at a pixel value. There must be four values corresponding to 181 - #: thin, normal, thick, and very thick lines. 182 - 183 - # undercurl_style thin-sparse 184 - 185 - #: The style with which undercurls are rendered. This option takes the 186 - #: form (thin|thick)-(sparse|dense). Thin and thick control the 187 - #: thickness of the undercurl. Sparse and dense control how often the 188 - #: curl oscillates. With sparse the curl will peak once per character, 189 - #: with dense twice. Changing this option dynamically via reloading 190 - #: the config or remote control is undefined. 191 - 192 - # underline_exclusion 1 193 - 194 - #: By default kitty renders gaps in underlines when they overlap with 195 - #: descenders (the parts of letters below the baseline, such as for y, 196 - #: q, p etc.). This option controls the thickness of the gaps. It can 197 - #: be either a unitless number in which case it is a fraction of the 198 - #: underline thickness as specified in the font or it can have a 199 - #: suffix of px for pixels or pt for points. Set to zero to disable 200 - #: the gaps. Changing this option dynamically via reloading the config 201 - #: or remote control is undefined. 202 - 203 - # text_composition_strategy platform 204 - 205 - #: Control how kitty composites text glyphs onto the background color. 206 - #: The default value of platform tries for text rendering as close to 207 - #: "native" for the platform kitty is running on as possible. 208 - 209 - #: A value of legacy uses the old (pre kitty 0.28) strategy for how 210 - #: glyphs are composited. This will make dark text on light 211 - #: backgrounds look thicker and light text on dark backgrounds 212 - #: thinner. It might also make some text appear like the strokes are 213 - #: uneven. 214 - 215 - #: You can fine tune the actual contrast curve used for glyph 216 - #: composition by specifying up to two space-separated numbers for 217 - #: this setting. 218 - 219 - #: The first number is the gamma adjustment, which controls the 220 - #: thickness of dark text on light backgrounds. Increasing the value 221 - #: will make text appear thicker. The default value for this is 1.0 on 222 - #: Linux and 1.7 on macOS. Valid values are 0.01 and above. The result 223 - #: is scaled based on the luminance difference between the background 224 - #: and the foreground. Dark text on light backgrounds receives the 225 - #: full impact of the curve while light text on dark backgrounds is 226 - #: affected very little. 227 - 228 - #: The second number is an additional multiplicative contrast. It is 229 - #: percentage ranging from 0 to 100. The default value is 0 on Linux 230 - #: and 30 on macOS. 231 - 232 - #: If you wish to achieve similar looking thickness in light and dark 233 - #: themes, a good way to experiment is start by setting the value to 234 - #: 1.0 0 and use a dark theme. Then adjust the second parameter until 235 - #: it looks good. Then switch to a light theme and adjust the first 236 - #: parameter until the perceived thickness matches the dark theme. 237 - 238 - # text_fg_override_threshold 0 239 - 240 - #: A setting to prevent low contrast between foreground and background 241 - #: colors. Useful when working with applications that use colors that 242 - #: do not contrast well with your preferred color scheme. The default 243 - #: value is 0, which means no color overriding is performed. There are 244 - #: two modes of operation: 245 - 246 - #: A value with the suffix ratio represents the minimum accepted 247 - #: contrast ratio between the foreground and background color. 248 - #: Possible values range from 0.0 ratio to 21.0 ratio. For example, to 249 - #: meet WCAG level AA 250 - #: <https://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines> 251 - #: a value of 4.5 ratio can be provided. The algorithm is implemented 252 - #: using HSLuv <https://www.hsluv.org/> which enables it to change the 253 - #: perceived lightness of a color just as much as needed without 254 - #: really changing its hue and saturation. 255 - 256 - #: A value with the suffix % represents the minimum accepted 257 - #: difference in luminance between the foreground and background 258 - #: color, below which kitty will override the foreground color. It is 259 - #: percentage ranging from 0 % to 100 %. If the difference in 260 - #: luminance of the foreground and background is below this threshold, 261 - #: the foreground color will be set to white if the background is dark 262 - #: or black if the background is light. 263 - 264 - #: WARNING: Some programs use characters (such as block characters) 265 - #: for graphics display and may expect to be able to set the 266 - #: foreground and background to the same color (or similar colors). If 267 - #: you see unexpected stripes, dots, lines, incorrect color, no color 268 - #: where you expect color, or any kind of graphic display problem try 269 - #: setting text_fg_override_threshold to 0 to see if this is the cause 270 - #: of the problem or consider using the ratio mode of operation 271 - #: described above instead of the % mode of operation. 272 - 273 - #: }}} 274 - 275 - #: Text cursor customization {{{ 276 - 277 - # cursor #cccccc 278 - 279 - #: Default text cursor color. If set to the special value none the 280 - #: cursor will be rendered with a "reverse video" effect. Its color 281 - #: will be the color of the text in the cell it is over and the text 282 - #: will be rendered with the background color of the cell. Note that 283 - #: if the program running in the terminal sets a cursor color, this 284 - #: takes precedence. Also, the cursor colors are modified if the cell 285 - #: background and foreground colors have very low contrast. Note that 286 - #: some themes set this value, so if you want to override it, place 287 - #: your value after the lines where the theme file is included. 288 - 289 - # cursor_text_color #111111 290 - 291 - #: The color of text under the cursor. If you want it rendered with 292 - #: the background color of the cell underneath instead, use the 293 - #: special keyword: `background`. Note that if cursor is set to none 294 - #: then this option is ignored. Note that some themes set this value, 295 - #: so if you want to override it, place your value after the lines 296 - #: where the theme file is included. 297 - 298 - # cursor_shape block 299 - 300 - #: The cursor shape can be one of block, beam, underline. Note that 301 - #: when reloading the config this will be changed only if the cursor 302 - #: shape has not been set by the program running in the terminal. This 303 - #: sets the default cursor shape, applications running in the terminal 304 - #: can override it. In particular, shell integration 305 - #: <https://sw.kovidgoyal.net/kitty/shell-integration/> in kitty sets 306 - #: the cursor shape to beam at shell prompts. You can avoid this by 307 - #: setting shell_integration to no-cursor. 308 - 309 - # cursor_shape_unfocused hollow 310 - 311 - #: Defines the text cursor shape when the OS window is not focused. 312 - #: The unfocused cursor shape can be one of block, beam, underline, 313 - #: hollow and unchanged (leave the cursor shape as it is). 314 - 315 - # cursor_beam_thickness 1.5 316 - 317 - #: The thickness of the beam cursor (in pts). 318 - 319 - # cursor_underline_thickness 2.0 320 - 321 - #: The thickness of the underline cursor (in pts). 322 - 323 - # cursor_blink_interval -1 324 - 325 - #: The interval to blink the cursor (in seconds). Set to zero to 326 - #: disable blinking. Negative values mean use system default. Note 327 - #: that the minimum interval will be limited to repaint_delay. You can 328 - #: also animate the cursor blink by specifying an easing function. For 329 - #: example, setting this to option to 0.5 ease-in-out will cause the 330 - #: cursor blink to be animated over a second, in the first half of the 331 - #: second it will go from opaque to transparent and then back again 332 - #: over the next half. You can specify different easing functions for 333 - #: the two halves, for example: -1 linear ease-out. kitty supports all 334 - #: the CSS easing functions <https://developer.mozilla.org/en- 335 - #: US/docs/Web/CSS/easing-function>. Note that turning on animations 336 - #: uses extra power as it means the screen is redrawn multiple times 337 - #: per blink interval. See also, cursor_stop_blinking_after. 338 - 339 - # cursor_stop_blinking_after 15.0 340 - 341 - #: Stop blinking cursor after the specified number of seconds of 342 - #: keyboard inactivity. Set to zero to never stop blinking. 343 - 344 - # cursor_trail 0 345 - 346 - #: Set this to a value larger than zero to enable a "cursor trail" 347 - #: animation. This is an animation that shows a "trail" following the 348 - #: movement of the text cursor. It makes it easy to follow large 349 - #: cursor jumps and makes for a cool visual effect of the cursor 350 - #: zooming around the screen. The actual value of this option controls 351 - #: when the animation is triggered. It is a number of milliseconds. 352 - #: The trail animation only follows cursors that have stayed in their 353 - #: position for longer than the specified number of milliseconds. This 354 - #: prevents trails from appearing for cursors that rapidly change 355 - #: their positions during UI updates in complex applications. See 356 - #: cursor_trail_decay to control the animation speed and 357 - #: cursor_trail_start_threshold to control when a cursor trail is 358 - #: started. 359 - 360 - # cursor_trail_decay 0.1 0.4 361 - 362 - #: Controls the decay times for the cursor trail effect when the 363 - #: cursor_trail is enabled. This option accepts two positive float 364 - #: values specifying the fastest and slowest decay times in seconds. 365 - #: The first value corresponds to the fastest decay time (minimum), 366 - #: and the second value corresponds to the slowest decay time 367 - #: (maximum). The second value must be equal to or greater than the 368 - #: first value. Smaller values result in a faster decay of the cursor 369 - #: trail. Adjust these values to control how quickly the cursor trail 370 - #: fades away. 371 - 372 - # cursor_trail_start_threshold 2 373 - 374 - #: Set the distance threshold for starting the cursor trail. This 375 - #: option accepts a positive integer value that represents the minimum 376 - #: number of cells the cursor must move before the trail is started. 377 - #: When the cursor moves less than this threshold, the trail is 378 - #: skipped, reducing unnecessary cursor trail animation. 379 - 380 - #: }}} 381 - 382 - #: Scrollback {{{ 383 - 384 - # scrollback_lines 2000 385 - 386 - #: Number of lines of history to keep in memory for scrolling back. 387 - #: Memory is allocated on demand. Negative numbers are (effectively) 388 - #: infinite scrollback. Note that using very large scrollback is not 389 - #: recommended as it can slow down performance of the terminal and 390 - #: also use large amounts of RAM. Instead, consider using 391 - #: scrollback_pager_history_size. Note that on config reload if this 392 - #: is changed it will only affect newly created windows, not existing 393 - #: ones. 394 - 395 - # scrollback_indicator_opacity 1.0 396 - 397 - #: The opacity of the scrollback indicator which is a small colored 398 - #: rectangle that moves along the right hand side of the window as you 399 - #: scroll, indicating what fraction you have scrolled. The default is 400 - #: one which means fully opaque, aka visible. Set to a value between 401 - #: zero and one to make the indicator less visible. 402 - 403 - # scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER 404 - 405 - #: Program with which to view scrollback in a new window. The 406 - #: scrollback buffer is passed as STDIN to this program. If you change 407 - #: it, make sure the program you use can handle ANSI escape sequences 408 - #: for colors and text formatting. INPUT_LINE_NUMBER in the command 409 - #: line above will be replaced by an integer representing which line 410 - #: should be at the top of the screen. Similarly CURSOR_LINE and 411 - #: CURSOR_COLUMN will be replaced by the current cursor position or 412 - #: set to 0 if there is no cursor, for example, when showing the last 413 - #: command output. 414 - 415 - # scrollback_pager_history_size 0 416 - 417 - #: Separate scrollback history size (in MB), used only for browsing 418 - #: the scrollback buffer with pager. This separate buffer is not 419 - #: available for interactive scrolling but will be piped to the pager 420 - #: program when viewing scrollback buffer in a separate window. The 421 - #: current implementation stores the data in UTF-8, so approximately 422 - #: 10000 lines per megabyte at 100 chars per line, for pure ASCII, 423 - #: unformatted text. A value of zero or less disables this feature. 424 - #: The maximum allowed size is 4GB. Note that on config reload if this 425 - #: is changed it will only affect newly created windows, not existing 426 - #: ones. 427 - 428 - # scrollback_fill_enlarged_window no 429 - 430 - #: Fill new space with lines from the scrollback buffer after 431 - #: enlarging a window. 432 - 433 - # wheel_scroll_multiplier 5.0 434 - 435 - #: Multiplier for the number of lines scrolled by the mouse wheel. 436 - #: Note that this is only used for low precision scrolling devices, 437 - #: not for high precision scrolling devices on platforms such as macOS 438 - #: and Wayland. Use negative numbers to change scroll direction. See 439 - #: also wheel_scroll_min_lines. 440 - 441 - # wheel_scroll_min_lines 1 442 - 443 - #: The minimum number of lines scrolled by the mouse wheel. The scroll 444 - #: multiplier wheel_scroll_multiplier only takes effect after it 445 - #: reaches this number. Note that this is only used for low precision 446 - #: scrolling devices like wheel mice that scroll by very small amounts 447 - #: when using the wheel. With a negative number, the minimum number of 448 - #: lines will always be added. 449 - 450 - # touch_scroll_multiplier 1.0 451 - 452 - #: Multiplier for the number of lines scrolled by a touchpad. Note 453 - #: that this is only used for high precision scrolling devices on 454 - #: platforms such as macOS and Wayland. Use negative numbers to change 455 - #: scroll direction. 456 - 457 - #: }}} 458 - 459 - #: Mouse {{{ 460 - 461 - # mouse_hide_wait 3.0 462 - 463 - #: Hide mouse cursor after the specified number of seconds of the 464 - #: mouse not being used. Set to zero to disable mouse cursor hiding. 465 - #: Set to a negative value to hide the mouse cursor immediately when 466 - #: typing text. Disabled by default on macOS as getting it to work 467 - #: robustly with the ever-changing sea of bugs that is Cocoa is too 468 - #: much effort. 469 - 470 - # url_color #0087bd 471 - # url_style curly 472 - 473 - #: The color and style for highlighting URLs on mouse-over. url_style 474 - #: can be one of: none, straight, double, curly, dotted, dashed. 475 - 476 - # open_url_with default 477 - 478 - #: The program to open clicked URLs. The special value default will 479 - #: first look for any URL handlers defined via the open_actions 480 - #: <https://sw.kovidgoyal.net/kitty/open_actions/> facility and if non 481 - #: are found, it will use the Operating System's default URL handler 482 - #: (open on macOS and xdg-open on Linux). 483 - 484 - # url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh 485 - 486 - #: The set of URL prefixes to look for when detecting a URL under the 487 - #: mouse cursor. 488 - 489 - # detect_urls yes 490 - 491 - #: Detect URLs under the mouse. Detected URLs are highlighted with an 492 - #: underline and the mouse cursor becomes a hand over them. Even if 493 - #: this option is disabled, URLs are still clickable. See also the 494 - #: underline_hyperlinks option to control how hyperlinks (as opposed 495 - #: to plain text URLs) are displayed. 496 - 497 - # url_excluded_characters 498 - 499 - #: Additional characters to be disallowed from URLs, when detecting 500 - #: URLs under the mouse cursor. By default, all characters that are 501 - #: legal in URLs are allowed. Additionally, newlines are allowed (but 502 - #: stripped). This is to accommodate programs such as mutt that add 503 - #: hard line breaks even for continued lines. \n can be added to this 504 - #: option to disable this behavior. Special characters can be 505 - #: specified using backslash escapes, to specify a backslash use a 506 - #: double backslash. 507 - 508 - # show_hyperlink_targets no 509 - 510 - #: When the mouse hovers over a terminal hyperlink, show the actual 511 - #: URL that will be activated when the hyperlink is clicked. 512 - 513 - # underline_hyperlinks hover 514 - 515 - #: Control how hyperlinks are underlined. They can either be 516 - #: underlined on mouse hover, always (i.e. permanently underlined) or 517 - #: never which means that kitty will not apply any underline styling 518 - #: to hyperlinks. Note that the value of always only applies to real 519 - #: (OSC 8) hyperlinks not text that is detected to be a URL on mouse 520 - #: hover. Uses the url_style and url_color settings for the underline 521 - #: style. Note that reloading the config and changing this value 522 - #: to/from always will only affect text subsequently received by 523 - #: kitty. 524 - 525 - # copy_on_select no 526 - 527 - #: Copy to clipboard or a private buffer on select. With this set to 528 - #: clipboard, selecting text with the mouse will cause the text to be 529 - #: copied to clipboard. Useful on platforms such as macOS that do not 530 - #: have the concept of primary selection. You can instead specify a 531 - #: name such as a1 to copy to a private kitty buffer. Map a shortcut 532 - #: with the paste_from_buffer action to paste from this private 533 - #: buffer. For example:: 534 - 535 - #: copy_on_select a1 536 - #: map shift+cmd+v paste_from_buffer a1 537 - 538 - #: Note that copying to the clipboard is a security risk, as all 539 - #: programs, including websites open in your browser can read the 540 - #: contents of the system clipboard. 541 - 542 - # clear_selection_on_clipboard_loss no 543 - 544 - #: When the contents of the clipboard no longer reflect the current 545 - #: selection, clear it. This is primarily useful on platforms such as 546 - #: Linux where selecting text automatically copies it to a special 547 - #: "primary selection" clipboard or if you have copy_on_select set to 548 - #: clipboard. 549 - 550 - #: Note that on macOS the system does not provide notifications when 551 - #: the clipboard owner is changed, so there, copying to clipboard in a 552 - #: non-kitty application will not clear selections even if 553 - #: copy_on_select is enabled. 554 - 555 - # paste_actions quote-urls-at-prompt,confirm 556 - 557 - #: A comma separated list of actions to take when pasting text into 558 - #: the terminal. The supported paste actions are: 559 - 560 - #: quote-urls-at-prompt: 561 - #: If the text being pasted is a URL and the cursor is at a shell prompt, 562 - #: automatically quote the URL (needs shell_integration). 563 - #: replace-dangerous-control-codes 564 - #: Replace dangerous control codes from pasted text, without confirmation. 565 - #: replace-newline 566 - #: Replace the newline character from pasted text, without confirmation. 567 - #: confirm: 568 - #: Confirm the paste if the text to be pasted contains any terminal control codes 569 - #: as this can be dangerous, leading to code execution if the shell/program running 570 - #: in the terminal does not properly handle these. 571 - #: confirm-if-large 572 - #: Confirm the paste if it is very large (larger than 16KB) as pasting 573 - #: large amounts of text into shells can be very slow. 574 - #: filter: 575 - #: Run the filter_paste() function from the file paste-actions.py in 576 - #: the kitty config directory on the pasted text. The text returned by the 577 - #: function will be actually pasted. 578 - #: no-op: 579 - #: Has no effect. 580 - 581 - # strip_trailing_spaces never 582 - 583 - #: Remove spaces at the end of lines when copying to clipboard. A 584 - #: value of smart will do it when using normal selections, but not 585 - #: rectangle selections. A value of always will always do it. 586 - 587 - # select_by_word_characters @-./_~?&=%+# 588 - 589 - #: Characters considered part of a word when double clicking. In 590 - #: addition to these characters any character that is marked as an 591 - #: alphanumeric character in the Unicode database will be matched. 592 - 593 - # select_by_word_characters_forward 594 - 595 - #: Characters considered part of a word when extending the selection 596 - #: forward on double clicking. In addition to these characters any 597 - #: character that is marked as an alphanumeric character in the 598 - #: Unicode database will be matched. 599 - 600 - #: If empty (default) select_by_word_characters will be used for both 601 - #: directions. 602 - 603 - # click_interval -1.0 604 - 605 - #: The interval between successive clicks to detect double/triple 606 - #: clicks (in seconds). Negative numbers will use the system default 607 - #: instead, if available, or fallback to 0.5. 608 - 609 - # focus_follows_mouse no 610 - 611 - #: Set the active window to the window under the mouse when moving the 612 - #: mouse around. On macOS, this will also cause the OS Window under 613 - #: the mouse to be focused automatically when the mouse enters it. 614 - 615 - # pointer_shape_when_grabbed arrow 616 - 617 - #: The shape of the mouse pointer when the program running in the 618 - #: terminal grabs the mouse. 619 - 620 - # default_pointer_shape beam 621 - 622 - #: The default shape of the mouse pointer. 623 - 624 - # pointer_shape_when_dragging beam crosshair 625 - 626 - #: The default shape of the mouse pointer when dragging across text. 627 - #: The optional second value sets the shape when dragging in 628 - #: rectangular selection mode. 629 - 630 - #: Mouse actions {{{ 631 - 632 - #: Mouse buttons can be mapped to perform arbitrary actions. The 633 - #: syntax is: 634 - 635 - #: .. code-block:: none 636 - 637 - #: mouse_map button-name event-type modes action 638 - 639 - #: Where button-name is one of left, middle, right, b1 ... b8 with 640 - #: added keyboard modifiers. For example: ctrl+shift+left refers to 641 - #: holding the Ctrl+Shift keys while clicking with the left mouse 642 - #: button. The value b1 ... b8 can be used to refer to up to eight 643 - #: buttons on a mouse. 644 - 645 - #: event-type is one of press, release, doublepress, triplepress, 646 - #: click, doubleclick. modes indicates whether the action is performed 647 - #: when the mouse is grabbed by the program running in the terminal, 648 - #: or not. The values are grabbed or ungrabbed or a comma separated 649 - #: combination of them. grabbed refers to when the program running in 650 - #: the terminal has requested mouse events. Note that the click and 651 - #: double click events have a delay of click_interval to disambiguate 652 - #: from double and triple presses. 653 - 654 - #: You can run kitty with the kitty --debug-input command line option 655 - #: to see mouse events. See the builtin actions below to get a sense 656 - #: of what is possible. 657 - 658 - #: If you want to unmap a button, map it to nothing. For example, to 659 - #: disable opening of URLs with a plain click:: 660 - 661 - #: mouse_map left click ungrabbed 662 - 663 - #: See all the mappable actions including mouse actions here 664 - #: <https://sw.kovidgoyal.net/kitty/actions/>. 665 - 666 - #: .. note:: 667 - #: Once a selection is started, releasing the button that started it will 668 - #: automatically end it and no release event will be dispatched. 669 - 670 - # clear_all_mouse_actions no 671 - 672 - #: Remove all mouse action definitions up to this point. Useful, for 673 - #: instance, to remove the default mouse actions. 674 - 675 - #: Click the link under the mouse or move the cursor 676 - 677 - # mouse_map left click ungrabbed mouse_handle_click selection link prompt 678 - 679 - #:: First check for a selection and if one exists do nothing. Then 680 - #:: check for a link under the mouse cursor and if one exists, click 681 - #:: it. Finally check if the click happened at the current shell 682 - #:: prompt and if so, move the cursor to the click location. Note 683 - #:: that this requires shell integration 684 - #:: <https://sw.kovidgoyal.net/kitty/shell-integration/> to work. 685 - 686 - #: Click the link under the mouse or move the cursor even when grabbed 687 - 688 - # mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt 689 - 690 - #:: Same as above, except that the action is performed even when the 691 - #:: mouse is grabbed by the program running in the terminal. 692 - 693 - #: Click the link under the mouse cursor 694 - 695 - # mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link 696 - 697 - #:: Variant with Ctrl+Shift is present because the simple click based 698 - #:: version has an unavoidable delay of click_interval, to 699 - #:: disambiguate clicks from double clicks. 700 - 701 - #: Discard press event for link click 702 - 703 - # mouse_map ctrl+shift+left press grabbed discard_event 704 - 705 - #:: Prevent this press event from being sent to the program that has 706 - #:: grabbed the mouse, as the corresponding release event is used to 707 - #:: open a URL. 708 - 709 - #: Paste from the primary selection 710 - 711 - # mouse_map middle release ungrabbed paste_from_selection 712 - 713 - #: Start selecting text 714 - 715 - # mouse_map left press ungrabbed mouse_selection normal 716 - 717 - #: Start selecting text in a rectangle 718 - 719 - # mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle 720 - 721 - #: Select a word 722 - 723 - # mouse_map left doublepress ungrabbed mouse_selection word 724 - 725 - #: Select a line 726 - 727 - # mouse_map left triplepress ungrabbed mouse_selection line 728 - 729 - #: Select line from point 730 - 731 - # mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point 732 - 733 - #:: Select from the clicked point to the end of the line. If you 734 - #:: would like to select the word at the point and then extend to the 735 - #:: rest of the line, change `line_from_point` to 736 - #:: `word_and_line_from_point`. 737 - 738 - #: Extend the current selection 739 - 740 - # mouse_map right press ungrabbed mouse_selection extend 741 - 742 - #:: If you want only the end of the selection to be moved instead of 743 - #:: the nearest boundary, use move-end instead of extend. 744 - 745 - #: Paste from the primary selection even when grabbed 746 - 747 - # mouse_map shift+middle release ungrabbed,grabbed paste_selection 748 - # mouse_map shift+middle press grabbed discard_event 749 - 750 - #: Start selecting text even when grabbed 751 - 752 - # mouse_map shift+left press ungrabbed,grabbed mouse_selection normal 753 - 754 - #: Start selecting text in a rectangle even when grabbed 755 - 756 - # mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle 757 - 758 - #: Select a word even when grabbed 759 - 760 - # mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word 761 - 762 - #: Select a line even when grabbed 763 - 764 - # mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line 765 - 766 - #: Select line from point even when grabbed 767 - 768 - # mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point 769 - 770 - #:: Select from the clicked point to the end of the line even when 771 - #:: grabbed. If you would like to select the word at the point and 772 - #:: then extend to the rest of the line, change `line_from_point` to 773 - #:: `word_and_line_from_point`. 774 - 775 - #: Extend the current selection even when grabbed 776 - 777 - # mouse_map shift+right press ungrabbed,grabbed mouse_selection extend 778 - 779 - #: Show clicked command output in pager 780 - 781 - # mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output 782 - 783 - #:: Requires shell integration 784 - #:: <https://sw.kovidgoyal.net/kitty/shell-integration/> to work. 785 - 786 - #: }}} 787 - 788 - #: }}} 789 - 790 - #: Performance tuning {{{ 791 - 792 - # repaint_delay 10 793 - 794 - #: Delay between screen updates (in milliseconds). Decreasing it, 795 - #: increases frames-per-second (FPS) at the cost of more CPU usage. 796 - #: The default value yields ~100 FPS which is more than sufficient for 797 - #: most uses. Note that to actually achieve 100 FPS, you have to 798 - #: either set sync_to_monitor to no or use a monitor with a high 799 - #: refresh rate. Also, to minimize latency when there is pending input 800 - #: to be processed, this option is ignored. 801 - 802 - # input_delay 3 803 - 804 - #: Delay before input from the program running in the terminal is 805 - #: processed (in milliseconds). Note that decreasing it will increase 806 - #: responsiveness, but also increase CPU usage and might cause flicker 807 - #: in full screen programs that redraw the entire screen on each loop, 808 - #: because kitty is so fast that partial screen updates will be drawn. 809 - #: This setting is ignored when the input buffer is almost full. 810 - 811 - # sync_to_monitor yes 812 - 813 - #: Sync screen updates to the refresh rate of the monitor. This 814 - #: prevents screen tearing 815 - #: <https://en.wikipedia.org/wiki/Screen_tearing> when scrolling. 816 - #: However, it limits the rendering speed to the refresh rate of your 817 - #: monitor. With a very high speed mouse/high keyboard repeat rate, 818 - #: you may notice some slight input latency. If so, set this to no. 819 - 820 - #: }}} 821 - 822 - #: Terminal bell {{{ 823 - 824 - # enable_audio_bell yes 825 - 826 - #: The audio bell. Useful to disable it in environments that require 827 - #: silence. 828 - 829 - # visual_bell_duration 0.0 830 - 831 - #: The visual bell duration (in seconds). Flash the screen when a bell 832 - #: occurs for the specified number of seconds. Set to zero to disable. 833 - #: The flash is animated, fading in and out over the specified 834 - #: duration. The easing function used for the fading can be 835 - #: controlled. For example, 2.0 linear will casuse the flash to fade 836 - #: in and out linearly. The default if unspecified is to use ease-in- 837 - #: out which fades slowly at the start, middle and end. You can 838 - #: specify different easing functions for the fade-in and fade-out 839 - #: parts, like this: 2.0 ease-in linear. kitty supports all the CSS 840 - #: easing functions <https://developer.mozilla.org/en- 841 - #: US/docs/Web/CSS/easing-function>. 842 - 843 - # visual_bell_color none 844 - 845 - #: The color used by visual bell. Set to none will fall back to 846 - #: selection background color. If you feel that the visual bell is too 847 - #: bright, you can set it to a darker color. 848 - 849 - # window_alert_on_bell yes 850 - 851 - #: Request window attention on bell. Makes the dock icon bounce on 852 - #: macOS or the taskbar flash on Linux. 853 - 854 - # bell_on_tab "🔔 " 855 - 856 - #: Some text or a Unicode symbol to show on the tab if a window in the 857 - #: tab that does not have focus has a bell. If you want to use leading 858 - #: or trailing spaces, surround the text with quotes. See 859 - #: tab_title_template for how this is rendered. 860 - 861 - #: For backwards compatibility, values of yes, y and true are 862 - #: converted to the default bell symbol and no, n, false and none are 863 - #: converted to the empty string. 864 - 865 - # command_on_bell none 866 - 867 - #: Program to run when a bell occurs. The environment variable 868 - #: KITTY_CHILD_CMDLINE can be used to get the program running in the 869 - #: window in which the bell occurred. 870 - 871 - # bell_path none 872 - 873 - #: Path to a sound file to play as the bell sound. If set to none, the 874 - #: system default bell sound is used. Must be in a format supported by 875 - #: the operating systems sound API, such as WAV or OGA on Linux 876 - #: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound). 877 - 878 - # linux_bell_theme __custom 879 - 880 - #: The XDG Sound Theme kitty will use to play the bell sound. Defaults 881 - #: to the custom theme name specified in the XDG Sound theme 882 - #: specification <https://specifications.freedesktop.org/sound-theme- 883 - #: spec/latest/sound_lookup.html>, falling back to the default 884 - #: freedesktop theme if it does not exist. To change your sound theme 885 - #: desktop wide, create 886 - #: :file:~/.local/share/sounds/__custom/index.theme` with the 887 - #: contents: 888 - 889 - #: [Sound Theme] 890 - 891 - #: Inherits=name-of-the-sound-theme-you-want-to-use 892 - 893 - #: Replace name-of-the-sound-theme-you-want-to-use with the actual 894 - #: theme name. Now all compliant applications should use sounds from 895 - #: this theme. 896 - 897 - #: }}} 898 - 899 - #: Window layout {{{ 900 - 901 - # remember_window_size yes 902 - # initial_window_width 640 903 - # initial_window_height 400 904 - 905 - #: If enabled, the OS Window size will be remembered so that new 906 - #: instances of kitty will have the same size as the previous 907 - #: instance. If disabled, the OS Window will initially have size 908 - #: configured by initial_window_width/height, in pixels. You can use a 909 - #: suffix of "c" on the width/height values to have them interpreted 910 - #: as number of cells instead of pixels. 911 - 912 - # enabled_layouts * 913 - 914 - #: The enabled window layouts. A comma separated list of layout names. 915 - #: The special value all means all layouts. The first listed layout 916 - #: will be used as the startup layout. Default configuration is all 917 - #: layouts in alphabetical order. For a list of available layouts, see 918 - #: the layouts <https://sw.kovidgoyal.net/kitty/overview/#layouts>. 919 - 920 - # window_resize_step_cells 2 921 - # window_resize_step_lines 2 922 - 923 - #: The step size (in units of cell width/cell height) to use when 924 - #: resizing kitty windows in a layout with the shortcut 925 - #: start_resizing_window. The cells value is used for horizontal 926 - #: resizing, and the lines value is used for vertical resizing. 927 - 928 - # window_border_width 0.5pt 929 - 930 - #: The width of window borders. Can be either in pixels (px) or pts 931 - #: (pt). Values in pts will be rounded to the nearest number of pixels 932 - #: based on screen resolution. If not specified, the unit is assumed 933 - #: to be pts. Note that borders are displayed only when more than one 934 - #: window is visible. They are meant to separate multiple windows. 935 - 936 - # draw_minimal_borders yes 937 - 938 - #: Draw only the minimum borders needed. This means that only the 939 - #: borders that separate the window from a neighbor are drawn. Note 940 - #: that setting a non-zero window_margin_width overrides this and 941 - #: causes all borders to be drawn. 942 - 943 - # window_margin_width 0 944 - 945 - #: The window margin (in pts) (blank area outside the border). A 946 - #: single value sets all four sides. Two values set the vertical and 947 - #: horizontal sides. Three values set top, horizontal and bottom. Four 948 - #: values set top, right, bottom and left. 949 - 950 - # single_window_margin_width -1 951 - 952 - #: The window margin to use when only a single window is visible (in 953 - #: pts). Negative values will cause the value of window_margin_width 954 - #: to be used instead. A single value sets all four sides. Two values 955 - #: set the vertical and horizontal sides. Three values set top, 956 - #: horizontal and bottom. Four values set top, right, bottom and left. 957 - 958 - # window_padding_width 0 959 - 960 - #: The window padding (in pts) (blank area between the text and the 961 - #: window border). A single value sets all four sides. Two values set 962 - #: the vertical and horizontal sides. Three values set top, horizontal 963 - #: and bottom. Four values set top, right, bottom and left. 964 - 965 - # single_window_padding_width -1 966 - 967 - #: The window padding to use when only a single window is visible (in 968 - #: pts). Negative values will cause the value of window_padding_width 969 - #: to be used instead. A single value sets all four sides. Two values 970 - #: set the vertical and horizontal sides. Three values set top, 971 - #: horizontal and bottom. Four values set top, right, bottom and left. 972 - 973 - # placement_strategy center 974 - 975 - #: When the window size is not an exact multiple of the cell size, the 976 - #: cell area of the terminal window will have some extra padding on 977 - #: the sides. You can control how that padding is distributed with 978 - #: this option. Using a value of center means the cell area will be 979 - #: placed centrally. A value of top-left means the padding will be 980 - #: only at the bottom and right edges. The value can be one of: top- 981 - #: left, top, top-right, left, center, right, bottom-left, bottom, 982 - #: bottom-right. 983 - 984 - # active_border_color #00ff00 985 - 986 - #: The color for the border of the active window. Set this to none to 987 - #: not draw borders around the active window. 988 - 989 - # inactive_border_color #cccccc 990 - 991 - #: The color for the border of inactive windows. 992 - 993 - # bell_border_color #ff5a00 994 - 995 - #: The color for the border of inactive windows in which a bell has 996 - #: occurred. 997 - 998 - # inactive_text_alpha 1.0 999 - 1000 - #: Fade the text in inactive windows by the specified amount (a number 1001 - #: between zero and one, with zero being fully faded). 1002 - 1003 - # hide_window_decorations no 1004 - 1005 - #: Hide the window decorations (title-bar and window borders) with 1006 - #: yes. On macOS, titlebar-only and titlebar-and-corners can be used 1007 - #: to only hide the titlebar and the rounded corners. Whether this 1008 - #: works and exactly what effect it has depends on the window 1009 - #: manager/operating system. Note that the effects of changing this 1010 - #: option when reloading config are undefined. When using titlebar- 1011 - #: only, it is useful to also set window_margin_width and 1012 - #: placement_strategy to prevent the rounded corners from clipping 1013 - #: text. Or use titlebar-and-corners. 1014 - 1015 - # window_logo_path none 1016 - 1017 - #: Path to a logo image. Must be in PNG/JPEG/WEBP/GIF/TIFF/BMP format. 1018 - #: Relative paths are interpreted relative to the kitty config 1019 - #: directory. The logo is displayed in a corner of every kitty window. 1020 - #: The position is controlled by window_logo_position. Individual 1021 - #: windows can be configured to have different logos either using the 1022 - #: launch action or the remote control 1023 - #: <https://sw.kovidgoyal.net/kitty/remote-control/> facility. 1024 - 1025 - # window_logo_position bottom-right 1026 - 1027 - #: Where to position the window logo in the window. The value can be 1028 - #: one of: top-left, top, top-right, left, center, right, bottom-left, 1029 - #: bottom, bottom-right. 1030 - 1031 - # window_logo_alpha 0.5 1032 - 1033 - #: The amount the logo should be faded into the background. With zero 1034 - #: being fully faded and one being fully opaque. 1035 - 1036 - # window_logo_scale 0 1037 - 1038 - #: The percentage (0-100] of the window size to which the logo should 1039 - #: scale. Using a single number means the logo is scaled to that 1040 - #: percentage of the shortest window dimension, while preserving 1041 - #: aspect ratio of the logo image. 1042 - 1043 - #: Using two numbers means the width and height of the logo are scaled 1044 - #: to the respective percentage of the window's width and height. 1045 - 1046 - #: Using zero as the percentage disables scaling in that dimension. A 1047 - #: single zero (the default) disables all scaling of the window logo. 1048 - 1049 - # resize_debounce_time 0.1 0.5 1050 - 1051 - #: The time to wait (in seconds) before asking the program running in 1052 - #: kitty to resize and redraw the screen during a live resize of the 1053 - #: OS window, when no new resize events have been received, i.e. when 1054 - #: resizing is either paused or finished. On platforms such as macOS, 1055 - #: where the operating system sends events corresponding to the start 1056 - #: and end of a live resize, the second number is used for redraw- 1057 - #: after-pause since kitty can distinguish between a pause and end of 1058 - #: resizing. On such systems the first number is ignored and redraw is 1059 - #: immediate after end of resize. On other systems only the first 1060 - #: number is used so that kitty is "ready" quickly after the end of 1061 - #: resizing, while not also continuously redrawing, to save energy. 1062 - 1063 - # resize_in_steps no 1064 - 1065 - #: Resize the OS window in steps as large as the cells, instead of 1066 - #: with the usual pixel accuracy. Combined with initial_window_width 1067 - #: and initial_window_height in number of cells, this option can be 1068 - #: used to keep the margins as small as possible when resizing the OS 1069 - #: window. Note that this does not currently work on Wayland. 1070 - 1071 - # visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ 1072 - 1073 - #: The list of characters for visual window selection. For example, 1074 - #: for selecting a window to focus on with focus_visible_window. The 1075 - #: value should be a series of unique numbers or alphabets, case 1076 - #: insensitive, from the set 0-9A-Z\-=[];',./\\`. Specify your 1077 - #: preference as a string of characters. 1078 - 1079 - # confirm_os_window_close -1 1080 - 1081 - #: Ask for confirmation when closing an OS window or a tab with at 1082 - #: least this number of kitty windows in it by window manager (e.g. 1083 - #: clicking the window close button or pressing the operating system 1084 - #: shortcut to close windows) or by the close_tab action. A value of 1085 - #: zero disables confirmation. This confirmation also applies to 1086 - #: requests to quit the entire application (all OS windows, via the 1087 - #: quit action). Negative values are converted to positive ones, 1088 - #: however, with shell_integration enabled, using negative values 1089 - #: means windows sitting at a shell prompt are not counted, only 1090 - #: windows where some command is currently running. You can also have 1091 - #: backgrounded jobs prevent closing, by adding count-background to 1092 - #: the setting, for example: -1 count-background. Note that if you 1093 - #: want confirmation when closing individual windows, you can map the 1094 - #: close_window_with_confirmation action. 1095 - 1096 - #: }}} 1097 - 1098 - #: Tab bar {{{ 1099 - 1100 - # tab_bar_edge bottom 1101 - 1102 - #: The edge to show the tab bar on, top or bottom. 1103 - 1104 - # tab_bar_margin_width 0.0 1105 - 1106 - #: The margin to the left and right of the tab bar (in pts). 1107 - 1108 - # tab_bar_margin_height 0.0 0.0 1109 - 1110 - #: The margin above and below the tab bar (in pts). The first number 1111 - #: is the margin between the edge of the OS Window and the tab bar. 1112 - #: The second number is the margin between the tab bar and the 1113 - #: contents of the current tab. 1114 - 1115 - # tab_bar_style fade 1116 - 1117 - #: The tab bar style, can be one of: 1118 - 1119 - #: fade 1120 - #: Each tab's edges fade into the background color. (See also tab_fade) 1121 - #: slant 1122 - #: Tabs look like the tabs in a physical file. 1123 - #: separator 1124 - #: Tabs are separated by a configurable separator. (See also 1125 - #: tab_separator) 1126 - #: powerline 1127 - #: Tabs are shown as a continuous line with "fancy" separators. 1128 - #: (See also tab_powerline_style) 1129 - #: custom 1130 - #: A user-supplied Python function called draw_tab is loaded from the file 1131 - #: tab_bar.py in the kitty config directory. For examples of how to 1132 - #: write such a function, see the functions named draw_tab_with_* in 1133 - #: kitty's source code: kitty/tab_bar.py. See also 1134 - #: this discussion <https://github.com/kovidgoyal/kitty/discussions/4447> 1135 - #: for examples from kitty users. 1136 - #: hidden 1137 - #: The tab bar is hidden. If you use this, you might want to create 1138 - #: a mapping for the select_tab action which presents you with a list of 1139 - #: tabs and allows for easy switching to a tab. 1140 - 1141 - # tab_bar_align left 1142 - 1143 - #: The horizontal alignment of the tab bar, can be one of: left, 1144 - #: center, right. 1145 - 1146 - # tab_bar_min_tabs 2 1147 - 1148 - #: The minimum number of tabs that must exist before the tab bar is 1149 - #: shown. 1150 - 1151 - # tab_switch_strategy previous 1152 - 1153 - #: The algorithm to use when switching to a tab when the current tab 1154 - #: is closed. The default of previous will switch to the last used 1155 - #: tab. A value of left will switch to the tab to the left of the 1156 - #: closed tab. A value of right will switch to the tab to the right of 1157 - #: the closed tab. A value of last will switch to the right-most tab. 1158 - 1159 - # tab_fade 0.25 0.5 0.75 1 1160 - 1161 - #: Control how each tab fades into the background when using fade for 1162 - #: the tab_bar_style. Each number is an alpha (between zero and one) 1163 - #: that controls how much the corresponding cell fades into the 1164 - #: background, with zero being no fade and one being full fade. You 1165 - #: can change the number of cells used by adding/removing entries to 1166 - #: this list. 1167 - 1168 - # tab_separator " ┇" 1169 - 1170 - #: The separator between tabs in the tab bar when using separator as 1171 - #: the tab_bar_style. 1172 - 1173 - # tab_powerline_style angled 1174 - 1175 - #: The powerline separator style between tabs in the tab bar when 1176 - #: using powerline as the tab_bar_style, can be one of: angled, 1177 - #: slanted, round. 1178 - 1179 - # tab_activity_symbol none 1180 - 1181 - #: Some text or a Unicode symbol to show on the tab if a window in the 1182 - #: tab that does not have focus has some activity. If you want to use 1183 - #: leading or trailing spaces, surround the text with quotes. See 1184 - #: tab_title_template for how this is rendered. 1185 - 1186 - # tab_title_max_length 0 1187 - 1188 - #: The maximum number of cells that can be used to render the text in 1189 - #: a tab. A value of zero means that no limit is applied. 1190 - 1191 - # tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{tab.last_focused_progress_percent}{title}" 1192 - 1193 - #: A template to render the tab title. The default just renders the 1194 - #: title with optional symbols for bell and activity. If you wish to 1195 - #: include the tab-index as well, use something like: {index}:{title}. 1196 - #: Useful if you have shortcuts mapped for goto_tab N. If you prefer 1197 - #: to see the index as a superscript, use {sup.index}. All data 1198 - #: available is: 1199 - 1200 - #: title 1201 - #: The current tab title. 1202 - #: index 1203 - #: The tab index usable with goto_tab N goto_tab shortcuts. 1204 - #: layout_name 1205 - #: The current layout name. 1206 - #: num_windows 1207 - #: The number of windows in the tab. 1208 - #: num_window_groups 1209 - #: The number of window groups (a window group is a window and all of its overlay windows) in the tab. 1210 - #: tab.active_wd 1211 - #: The working directory of the currently active window in the tab 1212 - #: (expensive, requires syscall). Use tab.active_oldest_wd to get 1213 - #: the directory of the oldest foreground process rather than the newest. 1214 - #: tab.active_exe 1215 - #: The name of the executable running in the foreground of the currently 1216 - #: active window in the tab (expensive, requires syscall). Use 1217 - #: tab.active_oldest_exe for the oldest foreground process. 1218 - #: max_title_length 1219 - #: The maximum title length available. 1220 - #: keyboard_mode 1221 - #: 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. 1222 - #: tab.last_focused_progress_percent 1223 - #: If a command running in a window reports the progress for a task, show this progress as a percentage 1224 - #: from the most recently focused window in the tab. Empty string if no progress is reported. 1225 - #: tab.progress_percent 1226 - #: If a command running in a window reports the progress for a task, show this progress as a percentage 1227 - #: from all windows in the tab, averaged. Empty string is no progress is reported. 1228 - 1229 - #: Note that formatting is done by Python's string formatting 1230 - #: machinery, so you can use, for instance, {layout_name[:2].upper()} 1231 - #: to show only the first two letters of the layout name, upper-cased. 1232 - #: If you want to style the text, you can use styling directives, for 1233 - #: example: 1234 - #: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`. 1235 - #: Similarly, for bold and italic: 1236 - #: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`. 1237 - #: The 256 eight terminal colors can be used as `fmt.fg.color0` 1238 - #: through `fmt.fg.color255`. Note that for backward compatibility, if 1239 - #: {bell_symbol} or {activity_symbol} are not present in the template, 1240 - #: they are prepended to it. 1241 - 1242 - # active_tab_title_template none 1243 - 1244 - #: Template to use for active tabs. If not specified falls back to 1245 - #: tab_title_template. 1246 - 1247 - # active_tab_foreground #000 1248 - # active_tab_background #eee 1249 - # active_tab_font_style bold-italic 1250 - # inactive_tab_foreground #444 1251 - # inactive_tab_background #999 1252 - # inactive_tab_font_style normal 1253 - 1254 - #: Tab bar colors and styles. 1255 - 1256 - # tab_bar_background none 1257 - 1258 - #: Background color for the tab bar. Defaults to using the terminal 1259 - #: background color. 1260 - 1261 - # tab_bar_margin_color none 1262 - 1263 - #: Color for the tab bar margin area. Defaults to using the terminal 1264 - #: background color for margins above and below the tab bar. For side 1265 - #: margins the default color is chosen to match the background color 1266 - #: of the neighboring tab. 1267 - 1268 - #: }}} 1269 - 1270 - #: Color scheme {{{ 1271 - 1272 - # foreground #dddddd 1273 - # background #000000 1274 - 1275 - #: The foreground and background colors. 1276 - 1277 - # background_opacity 1.0 1278 - 1279 - #: The opacity of the background. A number between zero and one, where 1280 - #: one is opaque and zero is fully transparent. This will only work if 1281 - #: supported by the OS (for instance, when using a compositor under 1282 - #: X11). Note that it only sets the background color's opacity in 1283 - #: cells that have the same background color as the default terminal 1284 - #: background, so that things like the status bar in vim, powerline 1285 - #: prompts, etc. still look good. But it means that if you use a color 1286 - #: theme with a background color in your editor, it will not be 1287 - #: rendered as transparent. Instead you should change the default 1288 - #: background color in your kitty config and not use a background 1289 - #: color in the editor color scheme. Or use the escape codes to set 1290 - #: the terminals default colors in a shell script to launch your 1291 - #: editor. See also transparent_background_colors. Be aware that using 1292 - #: a value less than 1.0 is a (possibly significant) performance hit. 1293 - #: When using a low value for this setting, it is desirable that you 1294 - #: set the background color to a color the matches the general color 1295 - #: of the desktop background, for best text rendering. Note that to 1296 - #: workaround window managers not doing gamma-corrected blending kitty 1297 - #: makes background_opacity non-linear which means, especially for 1298 - #: light backgrounds you might need to make the value much lower than 1299 - #: you expect to get good results, see 6218 1300 - #: <https://github.com/kovidgoyal/kitty/issues/6218> for details. 1301 - 1302 - #: If you want to dynamically change transparency of windows, set 1303 - #: dynamic_background_opacity to yes (this is off by default as it has 1304 - #: a performance cost). Changing this option when reloading the config 1305 - #: will only work if dynamic_background_opacity was enabled in the 1306 - #: original config. 1307 - 1308 - # background_blur 0 1309 - 1310 - #: Set to a positive value to enable background blur (blurring of the 1311 - #: visuals behind a transparent window) on platforms that support it. 1312 - #: Only takes effect when background_opacity is less than one. On 1313 - #: macOS, this will also control the blur radius (amount of blurring). 1314 - #: Setting it to too high a value will cause severe performance issues 1315 - #: and/or rendering artifacts. Usually, values up to 64 work well. 1316 - #: Note that this might cause performance issues, depending on how the 1317 - #: platform implements it, so use with care. Currently supported on 1318 - #: macOS and KDE. 1319 - 1320 - # background_image none 1321 - 1322 - #: Path to a background image. Must be in PNG/JPEG/WEBP/TIFF/GIF/BMP 1323 - #: format. 1324 - 1325 - # background_image_layout tiled 1326 - 1327 - #: Whether to tile, scale or clamp the background image. The value can 1328 - #: be one of tiled, mirror-tiled, scaled, clamped, centered or 1329 - #: cscaled. The scaled and cscaled values scale the image to the 1330 - #: window size, with cscaled preserving the image aspect ratio. 1331 - 1332 - # background_image_linear no 1333 - 1334 - #: When background image is scaled, whether linear interpolation 1335 - #: should be used. 1336 - 1337 - # transparent_background_colors 1338 - 1339 - #: A space separated list of upto 7 colors, with opacity. When the 1340 - #: background color of a cell matches one of these colors, it is 1341 - #: rendered semi-transparent using the specified opacity. 1342 - 1343 - #: Useful in more complex UIs like editors where you could want more 1344 - #: than a single background color to be rendered as transparent, for 1345 - #: instance, for a cursor highlight line background or a highlighted 1346 - #: block. Terminal applications can set this color using The kitty 1347 - #: color control <https://sw.kovidgoyal.net/kitty/color-stack/#color- 1348 - #: control> escape code. 1349 - 1350 - #: The syntax for specifying colors is: color@opacity, where the 1351 - #: @opacity part is optional. When unspecified, the value of 1352 - #: background_opacity is used. For example:: 1353 - 1354 - #: transparent_background_colors red@0.5 #00ff00@0.3 1355 - 1356 - # dynamic_background_opacity no 1357 - 1358 - #: Allow changing of the background_opacity dynamically, using either 1359 - #: keyboard shortcuts (increase_background_opacity and 1360 - #: decrease_background_opacity) or the remote control facility. 1361 - #: Changing this option by reloading the config is not supported. 1362 - 1363 - # background_tint 0.0 1364 - 1365 - #: How much to tint the background image by the background color. This 1366 - #: option makes it easier to read the text. Tinting is done using the 1367 - #: current background color for each window. This option applies only 1368 - #: if background_opacity is set and transparent windows are supported 1369 - #: or background_image is set. 1370 - 1371 - # background_tint_gaps 1.0 1372 - 1373 - #: How much to tint the background image at the window gaps by the 1374 - #: background color, after applying background_tint. Since this is 1375 - #: multiplicative with background_tint, it can be used to lighten the 1376 - #: tint over the window gaps for a *separated* look. 1377 - 1378 - # dim_opacity 0.4 1379 - 1380 - #: How much to dim text that has the DIM/FAINT attribute set. One 1381 - #: means no dimming and zero means fully dimmed (i.e. invisible). 1382 - 1383 - # selection_foreground #000000 1384 - # selection_background #fffacd 1385 - 1386 - #: The foreground and background colors for text selected with the 1387 - #: mouse. Setting both of these to none will cause a "reverse video" 1388 - #: effect for selections, where the selection will be the cell text 1389 - #: color and the text will become the cell background color. Setting 1390 - #: only selection_foreground to none will cause the foreground color 1391 - #: to be used unchanged. Note that these colors can be overridden by 1392 - #: the program running in the terminal. 1393 - 1394 - #: The color table {{{ 1395 - 1396 - #: The 256 terminal colors. There are 8 basic colors, each color has a 1397 - #: dull and bright version, for the first 16 colors. You can set the 1398 - #: remaining 240 colors as color16 to color255. 1399 - 1400 - # color0 #000000 1401 - # color8 #767676 1402 - 1403 - #: black 1404 - 1405 - # color1 #cc0403 1406 - # color9 #f2201f 1407 - 1408 - #: red 1409 - 1410 - # color2 #19cb00 1411 - # color10 #23fd00 1412 - 1413 - #: green 1414 - 1415 - # color3 #cecb00 1416 - # color11 #fffd00 1417 - 1418 - #: yellow 1419 - 1420 - # color4 #0d73cc 1421 - # color12 #1a8fff 1422 - 1423 - #: blue 1424 - 1425 - # color5 #cb1ed1 1426 - # color13 #fd28ff 1427 - 1428 - #: magenta 1429 - 1430 - # color6 #0dcdcd 1431 - # color14 #14ffff 1432 - 1433 - #: cyan 1434 - 1435 - # color7 #dddddd 1436 - # color15 #ffffff 1437 - 1438 - #: white 1439 - 1440 - # mark1_foreground black 1441 - 1442 - #: Color for marks of type 1 1443 - 1444 - # mark1_background #98d3cb 1445 - 1446 - #: Color for marks of type 1 (light steel blue) 1447 - 1448 - # mark2_foreground black 1449 - 1450 - #: Color for marks of type 2 1451 - 1452 - # mark2_background #f2dcd3 1453 - 1454 - #: Color for marks of type 1 (beige) 1455 - 1456 - # mark3_foreground black 1457 - 1458 - #: Color for marks of type 3 1459 - 1460 - # mark3_background #f274bc 1461 - 1462 - #: Color for marks of type 3 (violet) 1463 - 1464 - #: }}} 1465 - 1466 - #: }}} 1467 - 1468 - #: Advanced {{{ 1469 - 1470 - # shell . 1471 - 1472 - #: The shell program to execute. The default value of . means to use 1473 - #: the value of of the SHELL environment variable or if unset, 1474 - #: whatever shell is set as the default shell for the current user. 1475 - #: Note that on macOS if you change this, you might need to add 1476 - #: --login and --interactive to ensure that the shell starts in 1477 - #: interactive mode and reads its startup rc files. Environment 1478 - #: variables are expanded in this setting. 1479 - 1480 - # editor . 1481 - 1482 - #: The terminal based text editor (such as vim or nano) to use when 1483 - #: editing the kitty config file or similar tasks. 1484 - 1485 - #: The default value of . means to use the environment variables 1486 - #: VISUAL and EDITOR in that order. If these variables aren't set, 1487 - #: kitty will run your shell ($SHELL -l -i -c env) to see if your 1488 - #: shell startup rc files set VISUAL or EDITOR. If that doesn't work, 1489 - #: kitty will cycle through various known editors (vim, emacs, etc.) 1490 - #: and take the first one that exists on your system. 1491 - 1492 - # close_on_child_death no 1493 - 1494 - #: Close the window when the child process (usually the shell) exits. 1495 - #: With the default value no, the terminal will remain open when the 1496 - #: child exits as long as there are still other processes outputting 1497 - #: to the terminal (for example disowned or backgrounded processes). 1498 - #: When enabled with yes, the window will close as soon as the child 1499 - #: process exits. Note that setting it to yes means that any 1500 - #: background processes still using the terminal can fail silently 1501 - #: because their stdout/stderr/stdin no longer work. 1502 - 1503 - # remote_control_password 1504 - 1505 - #: Allow other programs to control kitty using passwords. This option 1506 - #: can be specified multiple times to add multiple passwords. If no 1507 - #: passwords are present kitty will ask the user for permission if a 1508 - #: program tries to use remote control with a password. A password can 1509 - #: also *optionally* be associated with a set of allowed remote 1510 - #: control actions. For example:: 1511 - 1512 - #: remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab 1513 - 1514 - #: Only the specified actions will be allowed when using this 1515 - #: password. Glob patterns can be used too, for example:: 1516 - 1517 - #: remote_control_password "my passphrase" set-tab-* resize-* 1518 - 1519 - #: To get a list of available actions, run:: 1520 - 1521 - #: kitten @ --help 1522 - 1523 - #: A set of actions to be allowed when no password is sent can be 1524 - #: specified by using an empty password. For example:: 1525 - 1526 - #: remote_control_password "" *-colors 1527 - 1528 - #: Finally, the path to a python module can be specified that provides 1529 - #: a function is_cmd_allowed that is used to check every remote 1530 - #: control command. For example:: 1531 - 1532 - #: remote_control_password "my passphrase" my_rc_command_checker.py 1533 - 1534 - #: Relative paths are resolved from the kitty configuration directory. 1535 - #: See rc_custom_auth <https://sw.kovidgoyal.net/kitty/remote- 1536 - #: control/#rc-custom-auth> for details. 1537 - 1538 - # allow_remote_control no 1539 - 1540 - #: Allow other programs to control kitty. If you turn this on, other 1541 - #: programs can control all aspects of kitty, including sending text 1542 - #: to kitty windows, opening new windows, closing windows, reading the 1543 - #: content of windows, etc. Note that this even works over SSH 1544 - #: connections. The default setting of no prevents any form of remote 1545 - #: control. The meaning of the various values are: 1546 - 1547 - #: password 1548 - #: Remote control requests received over both the TTY device and the socket 1549 - #: are confirmed based on passwords, see remote_control_password. 1550 - 1551 - #: socket-only 1552 - #: Remote control requests received over a socket are accepted 1553 - #: unconditionally. Requests received over the TTY are denied. 1554 - #: See listen_on. 1555 - 1556 - #: socket 1557 - #: Remote control requests received over a socket are accepted 1558 - #: unconditionally. Requests received over the TTY are confirmed based on 1559 - #: password. 1560 - 1561 - #: no 1562 - #: Remote control is completely disabled. 1563 - 1564 - #: yes 1565 - #: Remote control requests are always accepted. 1566 - 1567 - # listen_on none 1568 - 1569 - #: Listen to the specified socket for remote control connections. Note 1570 - #: that this will apply to all kitty instances. It can be overridden 1571 - #: by the kitty --listen-on command line option. For UNIX sockets, 1572 - #: such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux). 1573 - #: Environment variables are expanded and relative paths are resolved 1574 - #: with respect to the temporary directory. If {kitty_pid} is present, 1575 - #: then it is replaced by the PID of the kitty process, otherwise the 1576 - #: PID of the kitty process is appended to the value, with a hyphen. 1577 - #: For TCP sockets such as tcp:localhost:0 a random port is always 1578 - #: used even if a non-zero port number is specified. See the help for 1579 - #: kitty --listen-on for more details. Note that this will be ignored 1580 - #: unless allow_remote_control is set to either: yes, socket or 1581 - #: socket-only. Changing this option by reloading the config is not 1582 - #: supported. 1583 - 1584 - # env 1585 - 1586 - #: Specify the environment variables to be set in all child processes. 1587 - #: Using the name with an equal sign (e.g. env VAR=) will set it to 1588 - #: the empty string. Specifying only the name (e.g. env VAR) will 1589 - #: remove the variable from the child process' environment. Note that 1590 - #: environment variables are expanded recursively, for example:: 1591 - 1592 - #: env VAR1=a 1593 - #: env VAR2=${HOME}/${VAR1}/b 1594 - 1595 - #: The value of VAR2 will be <path to home directory>/a/b. 1596 - 1597 - # filter_notification 1598 - 1599 - #: Specify rules to filter out notifications sent by applications 1600 - #: running in kitty. Can be specified multiple times to create 1601 - #: multiple filter rules. A rule specification is of the form 1602 - #: field:regexp. A filter rule can match on any of the fields: title, 1603 - #: body, app, type. The special value of all filters out all 1604 - #: notifications. Rules can be combined using Boolean operators. Some 1605 - #: examples:: 1606 - 1607 - #: filter_notification title:hello or body:"abc.*def" 1608 - #: # filter out notification from vim except for ones about updates, (?i) 1609 - #: # makes matching case insensitive. 1610 - #: filter_notification app:"[ng]?vim" and not body:"(?i)update" 1611 - #: # filter out all notifications 1612 - #: filter_notification all 1613 - 1614 - #: The field app is the name of the application sending the 1615 - #: notification and type is the type of the notification. Not all 1616 - #: applications will send these fields, so you can also match on the 1617 - #: title and body of the notification text. More sophisticated 1618 - #: programmatic filtering and custom actions on notifications can be 1619 - #: done by creating a notifications.py file in the kitty config 1620 - #: directory (~/.config/kitty). An annotated sample is available 1621 - #: <https://github.com/kovidgoyal/kitty/blob/master/docs/notifications.py>. 1622 - 1623 - # watcher 1624 - 1625 - #: Path to python file which will be loaded for watchers 1626 - #: <https://sw.kovidgoyal.net/kitty/launch/#watchers>. Can be 1627 - #: specified more than once to load multiple watchers. The watchers 1628 - #: will be added to every kitty window. Relative paths are resolved 1629 - #: relative to the kitty config directory. Note that reloading the 1630 - #: config will only affect windows created after the reload. 1631 - 1632 - # exe_search_path 1633 - 1634 - #: Control where kitty finds the programs to run. The default search 1635 - #: order is: First search the system wide PATH, then ~/.local/bin and 1636 - #: ~/bin. If still not found, the PATH defined in the login shell 1637 - #: after sourcing all its startup files is tried. Finally, if present, 1638 - #: the PATH specified by the env option is tried. 1639 - 1640 - #: This option allows you to prepend, append, or remove paths from 1641 - #: this search order. It can be specified multiple times for multiple 1642 - #: paths. A simple path will be prepended to the search order. A path 1643 - #: that starts with the + sign will be append to the search order, 1644 - #: after ~/bin above. A path that starts with the - sign will be 1645 - #: removed from the entire search order. For example:: 1646 - 1647 - #: exe_search_path /some/prepended/path 1648 - #: exe_search_path +/some/appended/path 1649 - #: exe_search_path -/some/excluded/path 1650 - 1651 - # update_check_interval 24 1652 - 1653 - #: The interval to periodically check if an update to kitty is 1654 - #: available (in hours). If an update is found, a system notification 1655 - #: is displayed informing you of the available update. The default is 1656 - #: to check every 24 hours, set to zero to disable. Update checking is 1657 - #: only done by the official binary builds. Distro packages or source 1658 - #: builds do not do update checking. Changing this option by reloading 1659 - #: the config is not supported. 1660 - 1661 - # startup_session none 1662 - 1663 - #: Path to a session file to use for all kitty instances. Can be 1664 - #: overridden by using the kitty --session =none command line option 1665 - #: for individual instances. See sessions 1666 - #: <https://sw.kovidgoyal.net/kitty/overview/#sessions> in the kitty 1667 - #: documentation for details. Note that relative paths are interpreted 1668 - #: with respect to the kitty config directory. Environment variables 1669 - #: in the path are expanded. Changing this option by reloading the 1670 - #: config is not supported. Note that if kitty is invoked with command 1671 - #: line arguments specifying a command to run, this option is ignored. 1672 - 1673 - # clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask 1674 - 1675 - #: Allow programs running in kitty to read and write from the 1676 - #: clipboard. You can control exactly which actions are allowed. The 1677 - #: possible actions are: write-clipboard, read-clipboard, write- 1678 - #: primary, read-primary, read-clipboard-ask, read-primary-ask. The 1679 - #: default is to allow writing to the clipboard and primary selection 1680 - #: and to ask for permission when a program tries to read from the 1681 - #: clipboard. Note that disabling the read confirmation is a security 1682 - #: risk as it means that any program, even the ones running on a 1683 - #: remote server via SSH can read your clipboard. See also 1684 - #: clipboard_max_size. 1685 - 1686 - # clipboard_max_size 512 1687 - 1688 - #: The maximum size (in MB) of data from programs running in kitty 1689 - #: that will be stored for writing to the system clipboard. A value of 1690 - #: zero means no size limit is applied. See also clipboard_control. 1691 - 1692 - # file_transfer_confirmation_bypass 1693 - 1694 - #: The password that can be supplied to the file transfer kitten 1695 - #: <https://sw.kovidgoyal.net/kitty/kittens/transfer/> to skip the 1696 - #: transfer confirmation prompt. This should only be used when 1697 - #: initiating transfers from trusted computers, over trusted networks 1698 - #: or encrypted transports, as it allows any programs running on the 1699 - #: remote machine to read/write to the local filesystem, without 1700 - #: permission. 1701 - 1702 - # allow_hyperlinks yes 1703 - 1704 - #: Process hyperlink escape sequences (OSC 8). If disabled OSC 8 1705 - #: escape sequences are ignored. Otherwise they become clickable 1706 - #: links, that you can click with the mouse or by using the hints 1707 - #: kitten <https://sw.kovidgoyal.net/kitty/kittens/hints/>. The 1708 - #: special value of ask means that kitty will ask before opening the 1709 - #: link when clicked. 1710 - 1711 - # shell_integration enabled 1712 - 1713 - #: Enable shell integration on supported shells. This enables features 1714 - #: such as jumping to previous prompts, browsing the output of the 1715 - #: previous command in a pager, etc. on supported shells. Set to 1716 - #: disabled to turn off shell integration, completely. It is also 1717 - #: possible to disable individual features, set to a space separated 1718 - #: list of these values: no-rc, no-cursor, no-title, no-cwd, no- 1719 - #: prompt-mark, no-complete, no-sudo. See Shell integration 1720 - #: <https://sw.kovidgoyal.net/kitty/shell-integration/> for details. 1721 - 1722 - # allow_cloning ask 1723 - 1724 - #: Control whether programs running in the terminal can request new 1725 - #: windows to be created. The canonical example is clone-in-kitty 1726 - #: <https://sw.kovidgoyal.net/kitty/shell-integration/#clone-shell>. 1727 - #: By default, kitty will ask for permission for each clone request. 1728 - #: Allowing cloning unconditionally gives programs running in the 1729 - #: terminal (including over SSH) permission to execute arbitrary code, 1730 - #: as the user who is running the terminal, on the computer that the 1731 - #: terminal is running on. 1732 - 1733 - # clone_source_strategies venv,conda,env_var,path 1734 - 1735 - #: Control what shell code is sourced when running clone-in-kitty in 1736 - #: the newly cloned window. The supported strategies are: 1737 - 1738 - #: venv 1739 - #: Source the file $VIRTUAL_ENV/bin/activate. This is used by the 1740 - #: Python stdlib venv module and allows cloning venvs automatically. 1741 - #: conda 1742 - #: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual 1743 - #: environments created by conda. 1744 - #: env_var 1745 - #: Execute the contents of the environment variable 1746 - #: KITTY_CLONE_SOURCE_CODE with eval. 1747 - #: path 1748 - #: Source the file pointed to by the environment variable 1749 - #: KITTY_CLONE_SOURCE_PATH. 1750 - 1751 - #: This option must be a comma separated list of the above values. 1752 - #: Only the first valid match, in the order specified, is sourced. 1753 - 1754 - # notify_on_cmd_finish never 1755 - 1756 - #: Show a desktop notification when a long-running command finishes 1757 - #: (needs shell_integration). The possible values are: 1758 - 1759 - #: never 1760 - #: Never send a notification. 1761 - 1762 - #: unfocused 1763 - #: Only send a notification when the window does not have keyboard focus. 1764 - 1765 - #: invisible 1766 - #: Only send a notification when the window both is unfocused and not visible 1767 - #: to the user, for example, because it is in an inactive tab or its OS window 1768 - #: is not currently visible (on platforms that support OS window visibility querying 1769 - #: this considers an OS Window visible iff it is active). 1770 - 1771 - #: always 1772 - #: Always send a notification, regardless of window state. 1773 - 1774 - #: There are two optional arguments: 1775 - 1776 - #: First, the minimum duration for what is considered a long running 1777 - #: command. The default is 5 seconds. Specify a second argument to set 1778 - #: the duration. For example: invisible 15. Do not set the value too 1779 - #: small, otherwise a command that launches a new OS Window and exits 1780 - #: will spam a notification. 1781 - 1782 - #: Second, the action to perform. The default is notify. The possible 1783 - #: values are: 1784 - 1785 - #: notify 1786 - #: Send a desktop notification. The subsequent arguments are optional and specify when 1787 - #: the notification is automatically cleared. The set of possible events when the notification is 1788 - #: cleared are: focus and next. focus means that when the notification 1789 - #: policy is unfocused or invisible the notification is automatically cleared 1790 - #: when the window regains focus. The value of next means that the previous notification 1791 - #: is cleared when the next notification is shown. The default when no arguments are specified 1792 - #: is: focus next. 1793 - 1794 - #: bell 1795 - #: Ring the terminal bell. 1796 - 1797 - #: command 1798 - #: Run a custom command. All subsequent arguments are the cmdline to run. 1799 - 1800 - #: Some more examples:: 1801 - 1802 - #: # Send a notification when a command takes more than 5 seconds in an unfocused window 1803 - #: notify_on_cmd_finish unfocused 1804 - #: # Send a notification when a command takes more than 10 seconds in a invisible window 1805 - #: notify_on_cmd_finish invisible 10.0 1806 - #: # Ring a bell when a command takes more than 10 seconds in a invisible window 1807 - #: notify_on_cmd_finish invisible 10.0 bell 1808 - #: # Run 'notify-send' when a command takes more than 10 seconds in a invisible window 1809 - #: # Here %c is replaced by the current command line and %s by the job exit code 1810 - #: notify_on_cmd_finish invisible 10.0 command notify-send "job finished with status: %s" %c 1811 - #: # Do not clear previous notification when next command finishes or window regains focus 1812 - #: notify_on_cmd_finish invisible 5.0 notify 1813 - 1814 - # term xterm-kitty 1815 - 1816 - #: The value of the TERM environment variable to set. Changing this 1817 - #: can break many terminal programs, only change it if you know what 1818 - #: you are doing, not because you read some advice on "Stack Overflow" 1819 - #: to change it. The TERM variable is used by various programs to get 1820 - #: information about the capabilities and behavior of the terminal. If 1821 - #: you change it, depending on what programs you run, and how 1822 - #: different the terminal you are changing it to is, various things 1823 - #: from key-presses, to colors, to various advanced features may not 1824 - #: work. Changing this option by reloading the config will only affect 1825 - #: newly created windows. 1826 - 1827 - # terminfo_type path 1828 - 1829 - #: The value of the TERMINFO environment variable to set. This 1830 - #: variable is used by programs running in the terminal to search for 1831 - #: terminfo databases. The default value of path causes kitty to set 1832 - #: it to a filesystem location containing the kitty terminfo database. 1833 - #: A value of direct means put the entire database into the env var 1834 - #: directly. This can be useful when connecting to containers, for 1835 - #: example. But, note that not all software supports this. A value of 1836 - #: none means do not touch the variable. 1837 - 1838 - # forward_stdio no 1839 - 1840 - #: Forward STDOUT and STDERR of the kitty process to child processes. 1841 - #: This is useful for debugging as it allows child processes to print 1842 - #: to kitty's STDOUT directly. For example, echo hello world 1843 - #: >&$KITTY_STDIO_FORWARDED in a shell will print to the parent 1844 - #: kitty's STDOUT. Sets the KITTY_STDIO_FORWARDED=fdnum environment 1845 - #: variable so child processes know about the forwarding. Note that on 1846 - #: macOS this prevents the shell from being run via the login utility 1847 - #: so getlogin() will not work in programs run in this session. 1848 - 1849 - # menu_map 1850 - 1851 - #: Specify entries for various menus in kitty. Currently only the 1852 - #: global menubar on macOS is supported. For example:: 1853 - 1854 - #: menu_map global "Actions::Launch something special" launch --hold --type=os-window sh -c "echo hello world" 1855 - 1856 - #: This will create a menu entry named "Launch something special" in 1857 - #: an "Actions" menu in the macOS global menubar. Sub-menus can be 1858 - #: created by adding more levels separated by the :: characters. 1859 - 1860 - #: }}} 1861 - 1862 - #: OS specific tweaks {{{ 1863 - 1864 - # wayland_titlebar_color system 1865 - 1866 - #: The color of the kitty window's titlebar on Wayland systems with 1867 - #: client side window decorations such as GNOME. A value of system 1868 - #: means to use the default system colors, a value of background means 1869 - #: to use the background color of the currently active kitty window 1870 - #: and finally you can use an arbitrary color, such as #12af59 or red. 1871 - 1872 - # macos_titlebar_color system 1873 - 1874 - #: The color of the kitty window's titlebar on macOS. A value of 1875 - #: system means to use the default system color, light or dark can 1876 - #: also be used to set it explicitly. A value of background means to 1877 - #: use the background color of the currently active window and finally 1878 - #: you can use an arbitrary color, such as #12af59 or red. WARNING: 1879 - #: This option works by using a hack when arbitrary color (or 1880 - #: background) is configured, as there is no proper Cocoa API for it. 1881 - #: It sets the background color of the entire window and makes the 1882 - #: titlebar transparent. As such it is incompatible with 1883 - #: background_opacity. If you want to use both, you are probably 1884 - #: better off just hiding the titlebar with hide_window_decorations. 1885 - 1886 - # macos_option_as_alt no 1887 - 1888 - #: Use the Option key as an Alt key on macOS. With this set to no, 1889 - #: kitty will use the macOS native Option+Key to enter Unicode 1890 - #: character behavior. This will break any Alt+Key keyboard shortcuts 1891 - #: in your terminal programs, but you can use the macOS Unicode input 1892 - #: technique. You can use the values: left, right or both to use only 1893 - #: the left, right or both Option keys as Alt, instead. Note that 1894 - #: kitty itself always treats Option the same as Alt. This means you 1895 - #: cannot use this option to configure different kitty shortcuts for 1896 - #: Option+Key vs. Alt+Key. Also, any kitty shortcuts using 1897 - #: Option/Alt+Key will take priority, so that any such key presses 1898 - #: will not be passed to terminal programs running inside kitty. 1899 - #: Changing this option by reloading the config is not supported. 1900 - 1901 - # macos_hide_from_tasks no 1902 - 1903 - #: Hide the kitty window from running tasks on macOS (⌘+Tab and the 1904 - #: Dock). Changing this option by reloading the config is not 1905 - #: supported. 1906 - 1907 - # macos_quit_when_last_window_closed no 1908 - 1909 - #: Have kitty quit when all the top-level windows are closed on macOS. 1910 - #: By default, kitty will stay running, even with no open windows, as 1911 - #: is the expected behavior on macOS. 1912 - 1913 - # macos_window_resizable yes 1914 - 1915 - #: Disable this if you want kitty top-level OS windows to not be 1916 - #: resizable on macOS. 1917 - 1918 - # macos_thicken_font 0 1919 - 1920 - #: Draw an extra border around the font with the given width, to 1921 - #: increase legibility at small font sizes on macOS. For example, a 1922 - #: value of 0.75 will result in rendering that looks similar to sub- 1923 - #: pixel antialiasing at common font sizes. Note that in modern kitty, 1924 - #: this option is obsolete (although still supported). Consider using 1925 - #: text_composition_strategy instead. 1926 - 1927 - # macos_traditional_fullscreen no 1928 - 1929 - #: Use the macOS traditional full-screen transition, that is faster, 1930 - #: but less pretty. 1931 - 1932 - # macos_show_window_title_in all 1933 - 1934 - #: Control where the window title is displayed on macOS. A value of 1935 - #: window will show the title of the currently active window at the 1936 - #: top of the macOS window. A value of menubar will show the title of 1937 - #: the currently active window in the macOS global menu bar, making 1938 - #: use of otherwise wasted space. A value of all will show the title 1939 - #: in both places, and none hides the title. See 1940 - #: macos_menubar_title_max_length for how to control the length of the 1941 - #: title in the menu bar. 1942 - 1943 - # macos_menubar_title_max_length 0 1944 - 1945 - #: The maximum number of characters from the window title to show in 1946 - #: the macOS global menu bar. Values less than one means that there is 1947 - #: no maximum limit. 1948 - 1949 - # macos_custom_beam_cursor no 1950 - 1951 - #: Use a custom mouse cursor for macOS that is easier to see on both 1952 - #: light and dark backgrounds. Nowadays, the default macOS cursor 1953 - #: already comes with a white border. WARNING: this might make your 1954 - #: mouse cursor invisible on dual GPU machines. Changing this option 1955 - #: by reloading the config is not supported. 1956 - 1957 - # macos_colorspace srgb 1958 - 1959 - #: The colorspace in which to interpret terminal colors. The default 1960 - #: of srgb will cause colors to match those seen in web browsers. The 1961 - #: value of default will use whatever the native colorspace of the 1962 - #: display is. The value of displayp3 will use Apple's special 1963 - #: snowflake display P3 color space, which will result in over 1964 - #: saturated (brighter) colors with some color shift. Reloading 1965 - #: configuration will change this value only for newly created OS 1966 - #: windows. 1967 - 1968 - # linux_display_server auto 1969 - 1970 - #: Choose between Wayland and X11 backends. By default, an appropriate 1971 - #: backend based on the system state is chosen automatically. Set it 1972 - #: to x11 or wayland to force the choice. Changing this option by 1973 - #: reloading the config is not supported. 1974 - 1975 - # wayland_enable_ime yes 1976 - 1977 - #: Enable Input Method Extension on Wayland. This is typically used 1978 - #: for inputting text in East Asian languages. However, its 1979 - #: implementation in Wayland is often buggy and introduces latency 1980 - #: into the input loop, so disable this if you know you dont need it. 1981 - #: Changing this option by reloading the config is not supported, it 1982 - #: will not have any effect. 1983 - 1984 - #: }}} 1985 - 1986 - #: Keyboard shortcuts {{{ 1987 - 1988 - #: Keys are identified simply by their lowercase Unicode characters. 1989 - #: For example: a for the A key, [ for the left square bracket key, 1990 - #: etc. For functional keys, such as Enter or Escape, the names are 1991 - #: present at Functional key definitions 1992 - #: <https://sw.kovidgoyal.net/kitty/keyboard-protocol/#functional>. 1993 - #: For modifier keys, the names are ctrl (control, ⌃), shift (⇧), alt 1994 - #: (opt, option, ⌥), super (cmd, command, ⌘). 1995 - 1996 - #: Simple shortcut mapping is done with the map directive. For full 1997 - #: details on advanced mapping including modal and per application 1998 - #: maps, see mapping <https://sw.kovidgoyal.net/kitty/mapping/>. Some 1999 - #: quick examples to illustrate common tasks:: 2000 - 2001 - #: # unmap a keyboard shortcut, passing it to the program running in kitty 2002 - #: map kitty_mod+space 2003 - #: # completely ignore a keyboard event 2004 - #: map ctrl+alt+f1 discard_event 2005 - #: # combine multiple actions 2006 - #: map kitty_mod+e combine : new_window : next_layout 2007 - #: # multi-key shortcuts 2008 - #: map ctrl+x>ctrl+y>z action 2009 - 2010 - #: The full list of actions that can be mapped to key presses is 2011 - #: available here <https://sw.kovidgoyal.net/kitty/actions/>. 2012 - 2013 - # kitty_mod ctrl+shift 2014 - 2015 - #: Special modifier key alias for default shortcuts. You can change 2016 - #: the value of this option to alter all default shortcuts that use 2017 - #: kitty_mod. 2018 - 2019 - # clear_all_shortcuts no 2020 - 2021 - #: Remove all shortcut definitions up to this point. Useful, for 2022 - #: instance, to remove the default shortcuts. 2023 - 2024 - # action_alias 2025 - 2026 - #: E.g. action_alias launch_tab launch --type=tab --cwd=current 2027 - 2028 - #: Define action aliases to avoid repeating the same options in 2029 - #: multiple mappings. Aliases can be defined for any action and will 2030 - #: be expanded recursively. For example, the above alias allows you to 2031 - #: create mappings to launch a new tab in the current working 2032 - #: directory without duplication:: 2033 - 2034 - #: map f1 launch_tab vim 2035 - #: map f2 launch_tab emacs 2036 - 2037 - #: Similarly, to alias kitten invocation:: 2038 - 2039 - #: action_alias hints kitten hints --hints-offset=0 2040 - 2041 - # kitten_alias 2042 - 2043 - #: E.g. kitten_alias hints hints --hints-offset=0 2044 - 2045 - #: Like action_alias above, but specifically for kittens. Generally, 2046 - #: prefer to use action_alias. This option is a legacy version, 2047 - #: present for backwards compatibility. It causes all invocations of 2048 - #: the aliased kitten to be substituted. So the example above will 2049 - #: cause all invocations of the hints kitten to have the --hints- 2050 - #: offset=0 option applied. 2051 - 2052 - #: Clipboard {{{ 2053 - 2054 - #: Copy to clipboard 2055 - 2056 - # map kitty_mod+c copy_to_clipboard 2057 - # map cmd+c copy_to_clipboard 2058 - 2059 - #:: There is also a copy_or_interrupt action that can be optionally 2060 - #:: mapped to Ctrl+C. It will copy only if there is a selection and 2061 - #:: send an interrupt otherwise. Similarly, 2062 - #:: copy_and_clear_or_interrupt will copy and clear the selection or 2063 - #:: send an interrupt if there is no selection. 2064 - 2065 - #: Paste from clipboard 2066 - 2067 - # map kitty_mod+v paste_from_clipboard 2068 - # map cmd+v paste_from_clipboard 2069 - 2070 - #: Paste from selection 2071 - 2072 - # map kitty_mod+s paste_from_selection 2073 - # map shift+insert paste_from_selection 2074 - 2075 - #: Pass selection to program 2076 - 2077 - # map kitty_mod+o pass_selection_to_program 2078 - 2079 - #:: You can also pass the contents of the current selection to any 2080 - #:: program with pass_selection_to_program. By default, the system's 2081 - #:: open program is used, but you can specify your own, the selection 2082 - #:: will be passed as a command line argument to the program. For 2083 - #:: example:: 2084 - 2085 - #:: map kitty_mod+o pass_selection_to_program firefox 2086 - 2087 - #:: You can pass the current selection to a terminal program running 2088 - #:: in a new kitty window, by using the @selection placeholder:: 2089 - 2090 - #:: map kitty_mod+y new_window less @selection 2091 - 2092 - #: }}} 2093 - 2094 - #: Scrolling {{{ 2095 - 2096 - #: Scroll line up 2097 - 2098 - # map kitty_mod+up scroll_line_up 2099 - # map kitty_mod+k scroll_line_up 2100 - # map opt+cmd+page_up scroll_line_up 2101 - # map cmd+up scroll_line_up 2102 - 2103 - #: Scroll line down 2104 - 2105 - # map kitty_mod+down scroll_line_down 2106 - # map kitty_mod+j scroll_line_down 2107 - # map opt+cmd+page_down scroll_line_down 2108 - # map cmd+down scroll_line_down 2109 - 2110 - #: Scroll page up 2111 - 2112 - # map kitty_mod+page_up scroll_page_up 2113 - # map cmd+page_up scroll_page_up 2114 - 2115 - #: Scroll page down 2116 - 2117 - # map kitty_mod+page_down scroll_page_down 2118 - # map cmd+page_down scroll_page_down 2119 - 2120 - #: Scroll to top 2121 - 2122 - # map kitty_mod+home scroll_home 2123 - # map cmd+home scroll_home 2124 - 2125 - #: Scroll to bottom 2126 - 2127 - # map kitty_mod+end scroll_end 2128 - # map cmd+end scroll_end 2129 - 2130 - #: Scroll to previous shell prompt 2131 - 2132 - # map kitty_mod+z scroll_to_prompt -1 2133 - 2134 - #:: Use a parameter of 0 for scroll_to_prompt to scroll to the last 2135 - #:: jumped to or the last clicked position. Requires shell 2136 - #:: integration <https://sw.kovidgoyal.net/kitty/shell-integration/> 2137 - #:: to work. 2138 - 2139 - #: Scroll to next shell prompt 2140 - 2141 - # map kitty_mod+x scroll_to_prompt 1 2142 - 2143 - #: Browse scrollback buffer in pager 2144 - 2145 - # map kitty_mod+h show_scrollback 2146 - 2147 - #:: You can pipe the contents of the current screen and history 2148 - #:: buffer as STDIN to an arbitrary program using launch --stdin- 2149 - #:: source. For example, the following opens the scrollback buffer in 2150 - #:: less in an overlay window:: 2151 - 2152 - #:: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R 2153 - 2154 - #:: For more details on piping screen and buffer contents to external 2155 - #:: programs, see launch <https://sw.kovidgoyal.net/kitty/launch/>. 2156 - 2157 - #: Browse output of the last shell command in pager 2158 - 2159 - # map kitty_mod+g show_last_command_output 2160 - 2161 - #:: You can also define additional shortcuts to get the command 2162 - #:: output. For example, to get the first command output on screen:: 2163 - 2164 - #:: map f1 show_first_command_output_on_screen 2165 - 2166 - #:: To get the command output that was last accessed by a keyboard 2167 - #:: action or mouse action:: 2168 - 2169 - #:: map f1 show_last_visited_command_output 2170 - 2171 - #:: You can pipe the output of the last command run in the shell 2172 - #:: using the launch action. For example, the following opens the 2173 - #:: output in less in an overlay window:: 2174 - 2175 - #:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R 2176 - 2177 - #:: To get the output of the first command on the screen, use 2178 - #:: @first_cmd_output_on_screen. To get the output of the last jumped 2179 - #:: to command, use @last_visited_cmd_output. 2180 - 2181 - #:: Requires shell integration 2182 - #:: <https://sw.kovidgoyal.net/kitty/shell-integration/> to work. 2183 - 2184 - #: }}} 2185 - 2186 - #: Window management {{{ 2187 - 2188 - #: New window 2189 - 2190 - # map kitty_mod+enter new_window 2191 - # map cmd+enter new_window 2192 - 2193 - #:: You can open a new kitty window running an arbitrary program, for 2194 - #:: example:: 2195 - 2196 - #:: map kitty_mod+y launch mutt 2197 - 2198 - #:: You can open a new window with the current working directory set 2199 - #:: to the working directory of the current window using:: 2200 - 2201 - #:: map ctrl+alt+enter launch --cwd=current 2202 - 2203 - #:: You can open a new window that is allowed to control kitty via 2204 - #:: the kitty remote control facility with launch --allow-remote- 2205 - #:: control. Any programs running in that window will be allowed to 2206 - #:: control kitty. For example:: 2207 - 2208 - #:: map ctrl+enter launch --allow-remote-control some_program 2209 - 2210 - #:: You can open a new window next to the currently active window or 2211 - #:: as the first window, with:: 2212 - 2213 - #:: map ctrl+n launch --location=neighbor 2214 - #:: map ctrl+f launch --location=first 2215 - 2216 - #:: For more details, see launch 2217 - #:: <https://sw.kovidgoyal.net/kitty/launch/>. 2218 - 2219 - #: New OS window 2220 - 2221 - # map kitty_mod+n new_os_window 2222 - # map cmd+n new_os_window 2223 - 2224 - #:: Works like new_window above, except that it opens a top-level OS 2225 - #:: window. In particular you can use new_os_window_with_cwd to open 2226 - #:: a window with the current working directory. 2227 - 2228 - #: Close window 2229 - 2230 - # map kitty_mod+w close_window 2231 - # map shift+cmd+d close_window 2232 - 2233 - #: Next window 2234 - 2235 - # map kitty_mod+] next_window 2236 - 2237 - #: Previous window 2238 - 2239 - # map kitty_mod+[ previous_window 2240 - 2241 - #: Move window forward 2242 - 2243 - # map kitty_mod+f move_window_forward 2244 - 2245 - #: Move window backward 2246 - 2247 - # map kitty_mod+b move_window_backward 2248 - 2249 - #: Move window to top 2250 - 2251 - # map kitty_mod+` move_window_to_top 2252 - 2253 - #: Start resizing window 2254 - 2255 - # map kitty_mod+r start_resizing_window 2256 - # map cmd+r start_resizing_window 2257 - 2258 - #: First window 2259 - 2260 - # map kitty_mod+1 first_window 2261 - # map cmd+1 first_window 2262 - 2263 - #: Second window 2264 - 2265 - # map kitty_mod+2 second_window 2266 - # map cmd+2 second_window 2267 - 2268 - #: Third window 2269 - 2270 - # map kitty_mod+3 third_window 2271 - # map cmd+3 third_window 2272 - 2273 - #: Fourth window 2274 - 2275 - # map kitty_mod+4 fourth_window 2276 - # map cmd+4 fourth_window 2277 - 2278 - #: Fifth window 2279 - 2280 - # map kitty_mod+5 fifth_window 2281 - # map cmd+5 fifth_window 2282 - 2283 - #: Sixth window 2284 - 2285 - # map kitty_mod+6 sixth_window 2286 - # map cmd+6 sixth_window 2287 - 2288 - #: Seventh window 2289 - 2290 - # map kitty_mod+7 seventh_window 2291 - # map cmd+7 seventh_window 2292 - 2293 - #: Eighth window 2294 - 2295 - # map kitty_mod+8 eighth_window 2296 - # map cmd+8 eighth_window 2297 - 2298 - #: Ninth window 2299 - 2300 - # map kitty_mod+9 ninth_window 2301 - # map cmd+9 ninth_window 2302 - 2303 - #: Tenth window 2304 - 2305 - # map kitty_mod+0 tenth_window 2306 - 2307 - #: Visually select and focus window 2308 - 2309 - # map kitty_mod+f7 focus_visible_window 2310 - 2311 - #:: Display overlay numbers and alphabets on the window, and switch 2312 - #:: the focus to the window when you press the key. When there are 2313 - #:: only two windows, the focus will be switched directly without 2314 - #:: displaying the overlay. You can change the overlay characters and 2315 - #:: their order with option visual_window_select_characters. 2316 - 2317 - #: Visually swap window with another 2318 - 2319 - # map kitty_mod+f8 swap_with_window 2320 - 2321 - #:: Works like focus_visible_window above, but swaps the window. 2322 - 2323 - #: }}} 2324 - 2325 - #: Tab management {{{ 2326 - 2327 - #: Next tab 2328 - 2329 - # map kitty_mod+right next_tab 2330 - # map shift+cmd+] next_tab 2331 - # map ctrl+tab next_tab 2332 - 2333 - #: Previous tab 2334 - 2335 - # map kitty_mod+left previous_tab 2336 - # map shift+cmd+[ previous_tab 2337 - # map ctrl+shift+tab previous_tab 2338 - 2339 - #: New tab 2340 - 2341 - # map kitty_mod+t new_tab 2342 - # map cmd+t new_tab 2343 - 2344 - #: Close tab 2345 - 2346 - # map kitty_mod+q close_tab 2347 - # map cmd+w close_tab 2348 - 2349 - #: Close OS window 2350 - 2351 - # map shift+cmd+w close_os_window 2352 - 2353 - #: Move tab forward 2354 - 2355 - # map kitty_mod+. move_tab_forward 2356 - 2357 - #: Move tab backward 2358 - 2359 - # map kitty_mod+, move_tab_backward 2360 - 2361 - #: Set tab title 2362 - 2363 - # map kitty_mod+alt+t set_tab_title 2364 - # map shift+cmd+i set_tab_title 2365 - 2366 - 2367 - #: You can also create shortcuts to go to specific tabs, with 1 being 2368 - #: the first tab, 2 the second tab and -1 being the previously active 2369 - #: tab, -2 being the tab active before the previously active tab and 2370 - #: so on. Any number larger than the number of tabs goes to the last 2371 - #: tab and any number less than the number of previously used tabs in 2372 - #: the history goes to the oldest previously used tab in the history:: 2373 - 2374 - #: map ctrl+alt+1 goto_tab 1 2375 - #: map ctrl+alt+2 goto_tab 2 2376 - 2377 - #: Just as with new_window above, you can also pass the name of 2378 - #: arbitrary commands to run when using new_tab and new_tab_with_cwd. 2379 - #: Finally, if you want the new tab to open next to the current tab 2380 - #: rather than at the end of the tabs list, use:: 2381 - 2382 - #: map ctrl+t new_tab !neighbor [optional cmd to run] 2383 - #: }}} 2384 - 2385 - #: Layout management {{{ 2386 - 2387 - #: Next layout 2388 - 2389 - # map kitty_mod+l next_layout 2390 - 2391 - 2392 - #: You can also create shortcuts to switch to specific layouts:: 2393 - 2394 - #: map ctrl+alt+t goto_layout tall 2395 - #: map ctrl+alt+s goto_layout stack 2396 - 2397 - #: Similarly, to switch back to the previous layout:: 2398 - 2399 - #: map ctrl+alt+p last_used_layout 2400 - 2401 - #: There is also a toggle_layout action that switches to the named 2402 - #: layout or back to the previous layout if in the named layout. 2403 - #: Useful to temporarily "zoom" the active window by switching to the 2404 - #: stack layout:: 2405 - 2406 - #: map ctrl+alt+z toggle_layout stack 2407 - #: }}} 2408 - 2409 - #: Font sizes {{{ 2410 - 2411 - #: You can change the font size for all top-level kitty OS windows at 2412 - #: a time or only the current one. 2413 - 2414 - #: Increase font size 2415 - 2416 - # map kitty_mod+equal change_font_size all +2.0 2417 - # map kitty_mod+plus change_font_size all +2.0 2418 - # map kitty_mod+kp_add change_font_size all +2.0 2419 - # map cmd+plus change_font_size all +2.0 2420 - # map cmd+equal change_font_size all +2.0 2421 - # map shift+cmd+equal change_font_size all +2.0 2422 - 2423 - #: Decrease font size 2424 - 2425 - # map kitty_mod+minus change_font_size all -2.0 2426 - # map kitty_mod+kp_subtract change_font_size all -2.0 2427 - # map cmd+minus change_font_size all -2.0 2428 - # map shift+cmd+minus change_font_size all -2.0 2429 - 2430 - #: Reset font size 2431 - 2432 - # map kitty_mod+backspace change_font_size all 0 2433 - # map cmd+0 change_font_size all 0 2434 - 2435 - 2436 - #: To setup shortcuts for specific font sizes:: 2437 - 2438 - #: map kitty_mod+f6 change_font_size all 10.0 2439 - 2440 - #: To setup shortcuts to change only the current OS window's font 2441 - #: size:: 2442 - 2443 - #: map kitty_mod+f6 change_font_size current 10.0 2444 - #: }}} 2445 - 2446 - #: Select and act on visible text {{{ 2447 - 2448 - #: Use the hints kitten to select text and either pass it to an 2449 - #: external program or insert it into the terminal or copy it to the 2450 - #: clipboard. 2451 - 2452 - #: Open URL 2453 - 2454 - # map kitty_mod+e open_url_with_hints 2455 - 2456 - #:: Open a currently visible URL using the keyboard. The program used 2457 - #:: to open the URL is specified in open_url_with. 2458 - 2459 - #: Insert selected path 2460 - 2461 - # map kitty_mod+p>f kitten hints --type path --program - 2462 - 2463 - #:: Select a path/filename and insert it into the terminal. Useful, 2464 - #:: for instance to run git commands on a filename output from a 2465 - #:: previous git command. 2466 - 2467 - #: Open selected path 2468 - 2469 - # map kitty_mod+p>shift+f kitten hints --type path 2470 - 2471 - #:: Select a path/filename and open it with the default open program. 2472 - 2473 - #: Insert selected line 2474 - 2475 - # map kitty_mod+p>l kitten hints --type line --program - 2476 - 2477 - #:: Select a line of text and insert it into the terminal. Useful for 2478 - #:: the output of things like: `ls -1`. 2479 - 2480 - #: Insert selected word 2481 - 2482 - # map kitty_mod+p>w kitten hints --type word --program - 2483 - 2484 - #:: Select words and insert into terminal. 2485 - 2486 - #: Insert selected hash 2487 - 2488 - # map kitty_mod+p>h kitten hints --type hash --program - 2489 - 2490 - #:: Select something that looks like a hash and insert it into the 2491 - #:: terminal. Useful with git, which uses SHA1 hashes to identify 2492 - #:: commits. 2493 - 2494 - #: Open the selected file at the selected line 2495 - 2496 - # map kitty_mod+p>n kitten hints --type linenum 2497 - 2498 - #:: Select something that looks like filename:linenum and open it in 2499 - #:: your default editor at the specified line number. 2500 - 2501 - #: Open the selected hyperlink 2502 - 2503 - # map kitty_mod+p>y kitten hints --type hyperlink 2504 - 2505 - #:: Select a hyperlink (i.e. a URL that has been marked as such by 2506 - #:: the terminal program, for example, by `ls --hyperlink=auto`). 2507 - 2508 - 2509 - #: The hints kitten has many more modes of operation that you can map 2510 - #: to different shortcuts. For a full description see hints kitten 2511 - #: <https://sw.kovidgoyal.net/kitty/kittens/hints/>. 2512 - #: }}} 2513 - 2514 - #: Miscellaneous {{{ 2515 - 2516 - #: Show documentation 2517 - 2518 - # map kitty_mod+f1 show_kitty_doc overview 2519 - 2520 - #: Toggle fullscreen 2521 - 2522 - # map kitty_mod+f11 toggle_fullscreen 2523 - # map ctrl+cmd+f toggle_fullscreen 2524 - 2525 - #: Toggle maximized 2526 - 2527 - # map kitty_mod+f10 toggle_maximized 2528 - 2529 - #: Toggle macOS secure keyboard entry 2530 - 2531 - # map opt+cmd+s toggle_macos_secure_keyboard_entry 2532 - 2533 - #: Unicode input 2534 - 2535 - # map kitty_mod+u kitten unicode_input 2536 - # map ctrl+cmd+space kitten unicode_input 2537 - 2538 - #: Edit config file 2539 - 2540 - # map kitty_mod+f2 edit_config_file 2541 - # map cmd+, edit_config_file 2542 - 2543 - #: Open the kitty command shell 2544 - 2545 - # map kitty_mod+escape kitty_shell window 2546 - 2547 - #:: Open the kitty shell in a new window / tab / overlay / os_window 2548 - #:: to control kitty using commands. 2549 - 2550 - #: Increase background opacity 2551 - 2552 - # map kitty_mod+a>m set_background_opacity +0.1 2553 - 2554 - #: Decrease background opacity 2555 - 2556 - # map kitty_mod+a>l set_background_opacity -0.1 2557 - 2558 - #: Make background fully opaque 2559 - 2560 - # map kitty_mod+a>1 set_background_opacity 1 2561 - 2562 - #: Reset background opacity 2563 - 2564 - # map kitty_mod+a>d set_background_opacity default 2565 - 2566 - #: Reset the terminal 2567 - 2568 - # map kitty_mod+delete clear_terminal reset active 2569 - # map opt+cmd+r clear_terminal reset active 2570 - 2571 - #:: You can create shortcuts to clear/reset the terminal. For 2572 - #:: example:: 2573 - 2574 - #:: # Reset the terminal 2575 - #:: map f1 clear_terminal reset active 2576 - #:: # Clear the terminal screen by erasing all contents 2577 - #:: map f1 clear_terminal clear active 2578 - #:: # Clear the terminal scrollback by erasing it 2579 - #:: map f1 clear_terminal scrollback active 2580 - #:: # Scroll the contents of the screen into the scrollback 2581 - #:: map f1 clear_terminal scroll active 2582 - #:: # Clear everything on screen up to the line with the cursor or the start of the current prompt (needs shell integration) 2583 - #:: map f1 clear_terminal to_cursor active 2584 - #:: # Same as above except cleared lines are moved into scrollback 2585 - #:: map f1 clear_terminal to_cursor_scroll active 2586 - 2587 - #:: If you want to operate on all kitty windows instead of just the 2588 - #:: current one, use all instead of active. 2589 - 2590 - #:: Some useful functions that can be defined in the shell rc files 2591 - #:: to perform various kinds of clearing of the current window: 2592 - 2593 - #:: .. code-block:: sh 2594 - 2595 - #:: clear-only-screen() { 2596 - #:: printf "\e[H\e[2J" 2597 - #:: } 2598 - 2599 - #:: clear-screen-and-scrollback() { 2600 - #:: printf "\e[H\e[3J" 2601 - #:: } 2602 - 2603 - #:: clear-screen-saving-contents-in-scrollback() { 2604 - #:: printf "\e[H\e[22J" 2605 - #:: } 2606 - 2607 - #:: For instance, using these escape codes, it is possible to remap 2608 - #:: Ctrl+L to both scroll the current screen contents into the 2609 - #:: scrollback buffer and clear the screen, instead of just clearing 2610 - #:: the screen. For ZSH, in ~/.zshrc, add: 2611 - 2612 - #:: .. code-block:: zsh 2613 - 2614 - #:: ctrl_l() { 2615 - #:: builtin print -rn -- $'\r\e[0J\e[H\e[22J' >"$TTY" 2616 - #:: builtin zle .reset-prompt 2617 - #:: builtin zle -R 2618 - #:: } 2619 - #:: zle -N ctrl_l 2620 - #:: bindkey '^l' ctrl_l 2621 - 2622 - #:: Alternatively, you can just add map ctrl+l clear_terminal 2623 - #:: to_cursor_scroll active to kitty.conf which works with no changes 2624 - #:: to the shell rc files, but only clears up to the prompt, it does 2625 - #:: not clear any text at the prompt itself. 2626 - 2627 - #: Clear to start 2628 - 2629 - # map cmd+k clear_terminal to_cursor active 2630 - 2631 - #: Clear scrollback 2632 - 2633 - # map option+cmd+k clear_terminal scrollback active 2634 - 2635 - #: Clear screen 2636 - 2637 - # map cmd+ctrl+l clear_terminal to_cursor_scroll active 2638 - 2639 - #: Reload kitty.conf 2640 - 2641 - # map kitty_mod+f5 load_config_file 2642 - # map ctrl+cmd+, load_config_file 2643 - 2644 - #:: Reload kitty.conf, applying any changes since the last time it 2645 - #:: was loaded. Note that a handful of options cannot be dynamically 2646 - #:: changed and require a full restart of kitty. Particularly, when 2647 - #:: changing shortcuts for actions located on the macOS global menu 2648 - #:: bar, a full restart is needed. You can also map a keybinding to 2649 - #:: load a different config file, for example:: 2650 - 2651 - #:: map f5 load_config /path/to/alternative/kitty.conf 2652 - 2653 - #:: Note that all options from the original kitty.conf are discarded, 2654 - #:: in other words the new configuration *replace* the old ones. 2655 - 2656 - #: Debug kitty configuration 2657 - 2658 - # map kitty_mod+f6 debug_config 2659 - # map opt+cmd+, debug_config 2660 - 2661 - #:: Show details about exactly what configuration kitty is running 2662 - #:: with and its host environment. Useful for debugging issues. 2663 - 2664 - #: Send arbitrary text on key presses 2665 - 2666 - #:: E.g. map ctrl+shift+alt+h send_text all Hello World 2667 - 2668 - #:: You can tell kitty to send arbitrary (UTF-8) encoded text to the 2669 - #:: client program when pressing specified shortcut keys. For 2670 - #:: example:: 2671 - 2672 - #:: map ctrl+alt+a send_text all Special text 2673 - 2674 - #:: This will send "Special text" when you press the Ctrl+Alt+A key 2675 - #:: combination. The text to be sent decodes ANSI C escapes 2676 - #:: <https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC- 2677 - #:: Quoting.html> so you can use escapes like \e to send control 2678 - #:: codes or \u21fb to send Unicode characters (or you can just input 2679 - #:: the Unicode characters directly as UTF-8 text). You can use 2680 - #:: `kitten show-key` to get the key escape codes you want to 2681 - #:: emulate. 2682 - 2683 - #:: The first argument to send_text is the keyboard modes in which to 2684 - #:: activate the shortcut. The possible values are normal, 2685 - #:: application, kitty or a comma separated combination of them. The 2686 - #:: modes normal and application refer to the DECCKM cursor key mode 2687 - #:: for terminals, and kitty refers to the kitty extended keyboard 2688 - #:: protocol. The special value all means all of them. 2689 - 2690 - #:: Some more examples:: 2691 - 2692 - #:: # Output a word and move the cursor to the start of the line (like typing and pressing Home) 2693 - #:: map ctrl+alt+a send_text normal Word\e[H 2694 - #:: map ctrl+alt+a send_text application Word\eOH 2695 - #:: # Run a command at a shell prompt (like typing the command and pressing Enter) 2696 - #:: map ctrl+alt+a send_text normal,application some command with arguments\r 2697 - 2698 - #: Open kitty Website 2699 - 2700 - # map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/ 2701 - 2702 - #: Hide macOS kitty application 2703 - 2704 - # map cmd+h hide_macos_app 2705 - 2706 - #: Hide macOS other applications 2707 - 2708 - # map opt+cmd+h hide_macos_other_apps 2709 - 2710 - #: Minimize macOS window 2711 - 2712 - # map cmd+m minimize_macos_window 2713 - 2714 - #: Quit kitty 2715 - 2716 - # map cmd+q quit 2717 - 2718 - #: }}} 2719 - 2720 - #: }}}