# vim:fileencoding=utf-8:ft=conf # Font family. You can also specify different fonts for the # bold/italic/bold-italic variants. By default they are derived automatically, # by the OSes font system. Setting them manually is useful for font families # that have many weight variants like Book, Medium, Thick, etc. For example: # font_family Operator Mono Book # bold_font Operator Mono Medium # italic_font Operator Mono Book Italic # bold_italic_font Operator Mono Medium Italic # # You can get a list of full family names available on your computer by running # kitty list-fonts font_family Meslo LG M Regular italic_font auto bold_font auto bold_italic_font auto # Font size (in pts) font_size 10.0 # The amount the font size is changed by (in pts) when increasing/decreasing # the font size in a running terminal. font_size_delta 2 # Adjust the line height. # You can use either numbers, which are interpreted as pixels or percentages # (number followed by %), which are interpreted as percentages of the # unmodified line height. You can use negative pixels or percentages less than # 100% to reduce line height (but this might cause rendering artifacts). adjust_line_height 0 # Change the sizes of the lines used for the box drawing unicode characters # These values are in pts. They will be scaled by the monitor DPI to arrive at # a pixel value. There must be four values corresponding to thin, normal, thick, # and very thick lines; box_drawing_scale 0.001, 1, 1.5, 2 # The opacity of the background. A number between 0 and 1, where 1 is opaque and 0 is fully transparent. # This will only work if supported by the OS (for instance, when using a compositor under X11). Note # that it only sets the default background color's opacity. This is so that # things like the status bar in vim, powerline prompts, etc. still look good. # But it means that if you use a color theme with a background color in your # editor, it will not be rendered as transparent. Instead you should change the # default background color in your kitty config and not use a background color # in the editor color scheme. Or use the escape codes to set the terminals # default colors in a shell script to launch your editor. # Be aware that using a value less than 1.0 is a (possibly significant) performance hit. background_opacity 1.0 # The cursor shape can be one of (block, beam, underline) cursor_shape block # The interval (in seconds) at which to blink the cursor. Set to zero to # disable blinking. Note that numbers smaller than repaint_delay will be # limited to repaint_delay. cursor_blink_interval 0.0 # Stop blinking cursor after the specified number of seconds of keyboard inactivity. Set to # zero to never stop blinking. cursor_stop_blinking_after 15.0 # Number of lines of history to keep in memory for scrolling back scrollback_lines 10000 # Program with which to view scrollback in a new window. The scrollback buffer is passed as # STDIN to this program. If you change it, make sure the program you use can # handle ANSI escape sequences for colors and text formatting. scrollback_pager less +G -R # When viewing scrollback in a new window, put it in a new tab as well scrollback_in_new_tab no # Wheel scroll multiplier (modify the amount scrolled by the mouse wheel). Use negative # numbers to change scroll direction. wheel_scroll_multiplier 5.0 # The interval between successive clicks to detect double/triple clicks (in seconds) click_interval 0.5 # Characters considered part of a word when double clicking. In addition to these characters # any character that is marked as an alpha-numeric character in the unicode # database will be matched. select_by_word_characters :@-./_~?&=%+# # Hide mouse cursor after the specified number of seconds of the mouse not being used. Set to # zero to disable mouse cursor hiding. mouse_hide_wait 3.0 # Set the active window to the window under the mouse when moving the mouse around focus_follows_mouse no # The enabled window layouts. A comma separated list of layout names. The special value * means # all layouts. The first listed layout will be used as the startup layout. # For a list of available layouts, see the file layouts.py enabled_layouts * # If enabled, the window size will be remembered so that new instances of kitty will have the same # size as the previous instance. If disabled, the window will initially have size configured # by initial_window_width/height, in pixels. remember_window_size no initial_window_width 640 initial_window_height 400 # Delay (in milliseconds) between screen updates. Decreasing it, increases # frames-per-second (FPS) at the cost of more CPU usage. The default value # yields ~100 FPS which is more than sufficient for most uses. repaint_delay 10 # Delay (in milliseconds) before input from the program running in the terminal # is processed. Note that decreasing it will increase responsiveness, but also # increase CPU usage and might cause flicker in full screen programs that # redraw the entire screen on each loop, because kitty is so fast that partial # screen updates will be drawn. input_delay 3 # Visual bell duration. Flash the screen when a bell occurs for the specified number of # seconds. Set to zero to disable. visual_bell_duration 0.0 # Enable/disable the audio bell. Useful in environments that require silence. enable_audio_bell yes # The modifier keys to press when clicking with the mouse on URLs to open the URL open_url_modifiers ctrl+shift # The program with which to open URLs that are clicked on. The special value "default" means to # use the operating system's default URL handler. open_url_with default # The modifiers to use rectangular selection (i.e. to select text in a # rectangular block with the mouse) rectangle_select_modifiers ctrl+alt # Choose whether to use the system implementation of wcwidth() (used to # control how many cells a character is rendered in). If you use the system # implementation, then kitty and any programs running in it will agree. The # problem is that system implementations often are based on outdated unicode # standards and get the width of many characters, such as emoji, wrong. So if # you are using kitty with programs that have their own up-to-date wcwidth() # implementation, set this option to no, otherwise set it to yes. use_system_wcwidth no # The value of the TERM environment variable to set term xterm-kitty # The width (in pts) of window borders. Will be rounded to the nearest number of pixels based on screen resolution. # Note that borders are displayed only when more than one window is visible. They are meant to separate multiple windows. window_border_width 1 # The window margin (in pts) (blank area outside the border) window_margin_width 0 # The window padding (in pts) (blank area between the text and the window border) window_padding_width 0 # The color for the border of the active window active_border_color #00ff00 # The color for the border of inactive windows inactive_border_color #cccccc # Fade the text in inactive windows by the specified amount (a number between # zero and one, with 0 being fully faded). inactive_text_alpha 1.0 # Tab-bar customization active_tab_foreground #d3d4c4 active_tab_background #404552 active_tab_font_style normal inactive_tab_foreground #7c838f inactive_tab_background #383c4a inactive_tab_font_style normal tab_separator " ┇ " # The color and style for highlighting URLs on mouse-over. url_style can be one of: # none, single, double, curly url_color #0087BD url_style curly cursor #93a1a1 # The 16 terminal colors. There are 8 basic colors, each color has a dull and # bright version. # solarized dark higher contrast # https://github.com/dexpota/kitty-themes/blob/master/themes/Solarized_Dark_Higher_Contrast.conf # background #001e26 # foreground #9bc1c2 # cursor #f34a00 # selection_background #003747 # color0 #002731 # color8 #006388 # color1 #d01b24 # color9 #f4153b # color2 #6bbe6c # color10 #50ee84 # color3 #a57705 # color11 #b17e28 # color4 #2075c7 # color12 #178dc7 # color5 #c61b6e # color13 #e14d8e # color6 #259185 # color14 #00b29e # color7 #e9e2cb # color15 #fcf4dc # selection_foreground #001e26 # https://github.com/dexpota/kitty-themes/blob/master/themes/Relaxed_Afterglow.conf # Relaxed Afterglow by Michael Kühnel , https://github.com/Relaxed-Theme/relaxed-terminal-themes # This work is licensed under the terms of the MIT license. # For a copy, see https://opensource.org/licenses/MIT. background #353a44 foreground #d9d9d9 cursor #d9d9d9 selection_foreground #d8d8d8 selection_background #6a7984 color0 #151515 color1 #bc5653 color2 #909d63 color3 #ebc17a color4 #6a8799 color5 #b06698 color6 #c9dfff color7 #d9d9d9 color8 #636363 color9 #bc5653 color10 #a0ac77 color11 #ebc17a color12 #7eaac7 color13 #b06698 color14 #acbbd0 color15 #f7f7f7 # Key mapping # For a list of key names, see: http://www.glfw.org/docs/latest/group__keys.html # For a list of modifier names, see: http://www.glfw.org/docs/latest/group__mods.html # # You can use the special action no_op to unmap a keyboard shortcut that is # assigned in the default configuration. # # You can combine multiple actions to be triggered by a single shortcut, using the # syntax below: # map key combine action1 action2 action3 ... # For example: # map ctrl+shift+e combine : new_window : next_layout # this will create a new window and switch to the next available layout # Clipboard map ctrl+shift+v paste_from_clipboard map ctrl+shift+s no_op map ctrl+shift+c copy_to_clipboard map shift+insert no_op # You can also pass the contents of the current selection to any program using # pass_selection_to_program. By default, the system's open program is used, but # you can specify your own, for example: # map ctrl+shift+o pass_selection_to_program firefox map ctrl+shift+o no_op # Scrolling map ctrl+shift+up no_op map ctrl+shift+down no_op map ctrl+shift+k no_op map ctrl+shift+j no_op map ctrl+shift+page_up no_op map ctrl+shift+page_down no_op map ctrl+shift+home no_op map ctrl+shift+end no_op map ctrl+shift+h no_op # Window management map ctrl+shift+enter no_op # map ctrl+n new_os_window # map ctrl+w close_window map ctrl+shift+] no_op map ctrl+shift+[ no_op map ctrl+shift+f no_op map ctrl+shift+1 no_op map ctrl+shift+2 no_op map ctrl+shift+3 no_op map ctrl+shift+4 no_op map ctrl+shift+5 no_op map ctrl+shift+6 no_op map ctrl+shift+7 no_op map ctrl+shift+8 no_op map ctrl+shift+9 no_op map ctrl+shift+0 no_op # You can open a new window running an arbitrary program, for example: # map ctrl+shift+y new_window mutt # # You can pass the current selection to the new program by using the @selection placeholder # map ctrl+shift+y new_window less @selection # # You can even send the contents of the current screen + history buffer as stdin using # the placeholders @text (which is the plain text) and @ansi (which includes text styling escape codes) # For example, the following command opens the scrollback buffer in less in a new window. # map ctrl+shift+y new_window @ansi less +G -R # # You can open a new window with the current working directory set to the # working directory of the current window using # map ctrl+alt+enter new_window_with_cwd # Tab management map ctrl+shift+] next_tab map ctrl+shift+[ previous_tab # map ctrl+t new_tab # map ctrl+q close_tab map ctrl+shift+l no_op map ctrl+shift+. move_tab_forward map ctrl+shift+, move_tab_backward # You can also create shortcuts to go to specific tabs, with 1 being the first tab # map ctrl+alt+1 goto_tab 1 # map ctrl+alt+2 goto_tab 2 # Just as with new_window above, you can also pass the name of arbitrary # commands to run when using new_tab and use new_tab_with_cwd. # Miscellaneous # map ctrl+equal increase_font_size # map ctrl+minus decrease_font_size # map ctrl+0 restore_font_size # map ctrl+shift+f11 no_op # Sending arbitrary text on shortcut key presses # You can tell kitty to send arbitrary (UTF-8) encoded text to # the client program when pressing specified shortcut keys. For example: # map ctrl+alt+a send_text all Special text # This will send "Special text" when you press the Ctrl+Alt+a key combination. # The text to be sent is a python string literal so you can use escapes like # \x1b to send control codes or \u21fb to send unicode characters (or you can # just input the unicode characters directly as UTF-8 text). The first argument # to send_text is the keyboard modes in which to activate the shortcut. The possible # values are normal or application or kitty or a comma separated combination of them. # The special keyword all means all modes. The modes normal and application refer to # the DECCKM cursor key mode for terminals, and kitty refers to the special kitty # extended keyboard protocol. Another example, that outputs a word and then moves the cursor # to the start of the line (same as pressing the Home key): # map ctrl+alt+a send_text normal Word\x1b[H # map ctrl+alt+a send_text application Word\x1bOH # Symbol mapping (special font for specified unicode code points). Map the # specified unicode codepoints to a particular font. Useful if you need special # rendering for some symbols, such as for Powerline. Avoids the need for # patched fonts. Each unicode code point is specified in the form U+. You can specify multiple code points, separated by commas # and ranges separated by hyphens. symbol_map itself can be specified multiple times. # Syntax is: # # symbol_map codepoints Font Family Name # # For example: # # symbol_map U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols # OS specific tweaks # Hide the kitty window's title bar on macOS. macos_hide_titlebar no # Use the option key as an alt key. With this set to no, kitty will use # the macOS native Option+Key = unicode character behavior. This will # break any Alt+key keyboard shortcuts in your terminal programs, but you # can use the macOS unicode input technique. macos_option_as_alt yes # The number is a percentage of maximum volume. # See man XBell for details. x11_bell_volume 80 # Prefer color emoji fonts when available. Note that this only works # on systems such as Linux that use fontconfig. On other OSes, the emoji # font used is system dependent. It can be overriden using symbol_map in the kitty # configuration. prefer_color_emoji yes