diff --git a/kitty/kitty.conf b/kitty/kitty.conf index b13d44ebf..38a67252c 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -1,5 +1,6 @@ # vim:fileencoding=utf-8:ft=conf +# Fonts {{{ # 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 @@ -33,12 +34,189 @@ font_size_delta 2 adjust_line_height 0 adjust_column_width 0 +# 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 + # 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 +# }}} + +# Cursor customization {{{ +# The cursor color +cursor #cccccc + +# 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.5 + +# 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 +# }}} + + +# Scrollback {{{ +# Number of lines of history to keep in memory for scrolling back +scrollback_lines 2000 + +# 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 + +# Wheel scroll multiplier (modify the amount scrolled by the mouse wheel). Use negative +# numbers to change scroll direction. +wheel_scroll_multiplier 5.0 +# }}} + + +# Mouse {{{ +# 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 + +# 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 + +# Copy to clipboard on select. With this enabled, simply selecting text with +# the mouse will cause the text to be copied to clipboard. Useful on platforms +# such as macOS/Wayland that do not have the concept of primary selections. Note +# that this is a security risk, as all programs, including websites open in your +# browser can read the contents of the clipboard. +copy_on_select no + +# The modifiers to use rectangular selection (i.e. to select text in a +# rectangular block with the mouse) +rectangle_select_modifiers ctrl+alt + +# 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 :@-./_~?&=%+# + +# The interval between successive clicks to detect double/triple clicks (in seconds) +click_interval 0.5 + +# 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 +# }}} + + +# Performance tuning {{{ +# 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. Note that to +# actually achieve 100FPS you have to either set sync_to_monitor to no or use a +# monitor with a high refresh rate. +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 + +# Sync screen updates to the refresh rate of the monitor. This prevents +# tearing (https://en.wikipedia.org/wiki/Screen_tearing) when scrolling. However, +# it limits the rendering speed to the refresh rate of your monitor. With a +# very high speed mouse/high keyboard repeat rate, you may notice some slight input latency. +# If so, set this to no. +sync_to_monitor yes +# }}} + + +# Audio/visual bell {{{ +# 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 +# }}} + + +# Window layout {{{ +# 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 yes +initial_window_width 640 +initial_window_height 400 + +# 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 README. +enabled_layouts * + +# 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 {{{ +# Which edge to show the tab bar on, top or bottom +tab_bar_edge bottom + +# The separator between tabs in the tab bar +tab_separator " ┇" + +# Tab bar colors and styles +active_tab_foreground #000 +active_tab_background #eee +active_tab_font_style bold-italic +inactive_tab_foreground #444 +inactive_tab_background #999 +inactive_tab_font_style normal +# }}} + + +# Color scheme {{{ # The foreground color foreground #dddddd @@ -63,164 +241,6 @@ selection_foreground #000000 # The background for selections selection_background #FFFACD -# 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 - -# The cursor color -cursor #cccccc - -# 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.5 - -# 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 2000 - -# 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 - -# 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 :@-./_~?&=%+# - -# The shell program to execute. The default value of . means -# to use whatever shell is set as the default shell for the current user. -# Note that on macOS if you change this, you might need to add --login to -# ensure that the shell starts in interactive mode and reads its rc files. -shell . - -# 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 README. -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 yes -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. Note that to -# actually achieve 100FPS you have to either set sync_to_monitor to no or use a -# monitor with a high refresh rate. -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 - -# Sync screen updates to the refresh rate of the monitor. This prevents -# tearing (https://en.wikipedia.org/wiki/Screen_tearing) when scrolling. However, -# it limits the rendering speed to the refresh rate of your monitor. With a -# very high speed mouse/high keyboard repeat rate, you may notice some slight input latency. -# If so, set this to no. -sync_to_monitor yes - -# Close the window when the child process (shell) exits. If no (the default), -# the terminal will remain open when the child exits as long as there are still -# processes outputting to the terminal (for example disowned or backgrounded -# processes). If yes, the window will close as soon as the child process exits. -# Note that setting it to yes means that any background processes still using -# the terminal can fail silently because their stdout/stderr/stdin no longer -# work. -close_on_child_death no - -# 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 - - -# Allow other programs to control kitty. If you turn this on other programs can -# control all aspects of kitty, including sending text to kitty windows, -# opening new windows, closing windows, reading the content of windows, etc. -# Note that this even works over ssh connections. -allow_remote_control 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 - -# Which edge to show the tab bar on, top or bottom -tab_bar_edge bottom - -# The separator between tabs in the tab bar -tab_separator " ┇" - -# Tab bar colors and styles -active_tab_foreground #000 -active_tab_background #eee -active_tab_font_style bold-italic -inactive_tab_foreground #444 -inactive_tab_background #999 -inactive_tab_font_style normal - - # The 16 terminal colors. There are 8 basic colors, each color has a dull and # bright version. @@ -255,9 +275,42 @@ color14 #14ffff # white color7 #dddddd color15 #ffffff +# }}} -# Key mapping +# Advanced {{{ + +# The shell program to execute. The default value of . means +# to use whatever shell is set as the default shell for the current user. +# Note that on macOS if you change this, you might need to add --login to +# ensure that the shell starts in interactive mode and reads its startup rc files. +shell . + +# Close the window when the child process (shell) exits. If no (the default), +# the terminal will remain open when the child exits as long as there are still +# processes outputting to the terminal (for example disowned or backgrounded +# processes). If yes, the window will close as soon as the child process exits. +# Note that setting it to yes means that any background processes still using +# the terminal can fail silently because their stdout/stderr/stdin no longer +# work. +close_on_child_death no + +# Allow other programs to control kitty. If you turn this on other programs can +# control all aspects of kitty, including sending text to kitty windows, +# opening new windows, closing windows, reading the content of windows, etc. +# Note that this even works over ssh connections. +allow_remote_control no + +# The value of the TERM environment variable to set. Changing this can break +# many terminal programs, only change it if you know what you are doing, not +# because you read some advice on Stack Overflow to change it. +term xterm-kitty + + +# }}} + + +# Keyboard shortcuts {{{ # 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 # @@ -271,7 +324,7 @@ color15 #ffffff # map ctrl+shift+e combine : new_window : next_layout # this will create a new window and switch to the next available layout -# Clipboard +# Clipboard {{{ map ctrl+shift+v paste_from_clipboard map ctrl+shift+s paste_from_selection map ctrl+shift+c copy_to_clipboard @@ -281,8 +334,9 @@ map shift+insert paste_from_selection # you can specify your own, for example: # map ctrl+shift+o pass_selection_to_program firefox map ctrl+shift+o pass_selection_to_program +# }}} -# Scrolling +# Scrolling {{{ map ctrl+shift+up scroll_line_up map ctrl+shift+down scroll_line_down map ctrl+shift+k scroll_line_up @@ -292,8 +346,9 @@ map ctrl+shift+page_down scroll_page_down map ctrl+shift+home scroll_home map ctrl+shift+end scroll_end map ctrl+shift+h show_scrollback +# }}} -# Window management +# Window management {{{ map ctrl+shift+enter new_window map ctrl+shift+n new_os_window map ctrl+shift+w close_window @@ -327,9 +382,9 @@ map ctrl+shift+0 tenth_window # 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 +# Tab management {{{ map ctrl+shift+right next_tab map ctrl+shift+left previous_tab map ctrl+shift+t new_tab @@ -343,23 +398,28 @@ map ctrl+shift+, move_tab_backward # 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. +# }}} - -# Layout management +# Layout management {{{ # You can create shortcuts to switch to specific layouts # map ctrl+alt+1 goto_layout tall # map ctrl+alt+2 goto_layout stack +# }}} - -# Miscellaneous +# Font sizes {{{ map ctrl+shift+equal increase_font_size map ctrl+shift+minus decrease_font_size -# map ctrl+shift+f6 set_font_size 20.0 map ctrl+shift+backspace restore_font_size +# To setup shortcuts for specific font sizes, follow the example below: +# map ctrl+shift+f6 set_font_size 10.0 +# map ctrl+shift+f7 set_font_size 20.5 +# }}} + +# Miscellaneous {{{ map ctrl+shift+f11 toggle_fullscreen map ctrl+shift+u input_unicode_character map ctrl+shift+f2 edit_config_file -# Open a currently visible URL using the keyboard. The program used ot open the URL is specified in open_url_with. +# Open a currently visible URL using the keyboard. The program used to open the URL is specified in open_url_with. # You can customize how the URLs are detected and opened by specifying command line options to # url_hints. For example: # map ctrl+shift+e run_simple_kitten text url_hints --program firefox --regex "http://[^ ]+" @@ -381,30 +441,12 @@ map ctrl+shift+e run_simple_kitten text url_hints # 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 - -# Copy to clipboard on select. With this enabled, simply selecting text with -# the mouse will cause the text to be copied to clipboard. Useful on platforms -# such as macOS/Wayland that do not have the concept of primary selections. Note -# that this is a security risk, as all programs, including websites open in your -# browser can read the contents of the clipboard. -copy_on_select no +# OS specific tweaks {{{ # Change the color of the kitty window's titlebar on macOS. A value of "system" # means to use the default system color, a value of "background" means to use @@ -424,3 +466,4 @@ macos_option_as_alt yes # The number is a percentage of maximum volume. # See man XBell for details. x11_bell_volume 80 +# }}}