294 lines
9.2 KiB
Plaintext
294 lines
9.2 KiB
Plaintext
# vim:fileencoding=utf-8:foldmethod=marker
|
|
|
|
# https://sw.kovidgoyal.net/kitty/conf/
|
|
|
|
# To get a full list of supported fonts use the `kitty +list-fonts` command.
|
|
#font_family IosevkaTerm Nerd Font
|
|
font_family JetBrainsMono Nerd Font
|
|
# font_family JetBrains Mono NL
|
|
font_size 11.0
|
|
|
|
scrollback_lines 8000
|
|
|
|
paste_actions quote-urls-at-prompt
|
|
|
|
strip_trailing_spaces never
|
|
|
|
select_by_word_characters @-./_~?&=%+#
|
|
|
|
show_hyperlink_targets yes
|
|
|
|
remote_kitty if-needed
|
|
|
|
enable_audio_bell no
|
|
|
|
# https://sw.kovidgoyal.net/kitty/kittens/ssh/#opt-kitten-ssh.share_connections
|
|
share_connections yes
|
|
|
|
# unmap left click for open link (easy miss click)
|
|
mouse_map left click ungrabbed no-op
|
|
|
|
#: Click the link under the mouse or move the cursor
|
|
mouse_map ctrl+left click ungrabbed mouse_handle_click selection link prompt
|
|
|
|
mouse_map ctrl+left press ungrabbed mouse_selection normal
|
|
|
|
mouse_map right press ungrabbed copy_to_clipboard
|
|
|
|
remember_window_size yes
|
|
initial_window_width 640
|
|
initial_window_height 400
|
|
|
|
#: 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. You can use a
|
|
#: suffix of "c" on the width/height values to have them interpreted
|
|
#: as number of cells instead of pixels.
|
|
|
|
# fat -- One (or optionally more) windows are shown full width on the top, the rest of the windows are shown side-by-side on the bottom
|
|
# grid -- All windows are shown in a grid
|
|
# horizontal -- All windows are shown side-by-side
|
|
# splits -- Windows arranged in arbitrary patterns created using horizontal and vertical splits
|
|
# stack -- Only a single maximized window is shown at a time
|
|
# tall -- One (or optionally more) windows are shown full height on the left, the rest of the windows are shown one below the other on the right
|
|
# vertical -- All windows are shown one below the other
|
|
|
|
enabled_layouts splits,stack,fat,tall,grid
|
|
#enabled_layouts all
|
|
|
|
# https://sw.kovidgoyal.net/kitty/layouts/#the-splits-layout
|
|
include splits.conf
|
|
|
|
#: The enabled window layouts. A comma separated list of layout names.
|
|
#: The special value all means all layouts. The first listed layout
|
|
#: will be used as the startup layout. Default configuration is all
|
|
#: layouts in alphabetical order. For a list of available layouts, see
|
|
#: the https://sw.kovidgoyal.net/kitty/overview/#layouts.
|
|
|
|
window_resize_step_cells 2
|
|
window_resize_step_lines 2
|
|
|
|
#: The step size (in units of cell width/cell height) to use when
|
|
#: resizing kitty windows in a layout with the keyboard
|
|
#: (start_resizing_window). The cells value is used for horizontal
|
|
#: resizing and the lines value for vertical resizing.
|
|
|
|
window_border_width 0.5pt
|
|
|
|
|
|
|
|
visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
|
|
|
#: The list of characters to use for visual window selection (for
|
|
#: example for selecting a window to focus with focus_visible_window).
|
|
#: The value should be a series of unique numbers or alphabets, case
|
|
#: insensitive, from the set [0-9A-Z]. Specify your preference as a
|
|
#: string of characters.
|
|
|
|
# with Shell integration enabled, using negative values means windows sitting at a shell prompt are not counted,
|
|
# only windows where some command is currently running.
|
|
# see https://sw.kovidgoyal.net/kitty/conf/#opt-kitty.confirm_os_window_close
|
|
confirm_os_window_close -1
|
|
|
|
|
|
tab_bar_style powerline
|
|
|
|
|
|
|
|
# emoji from https://emojipedia.org/regional-indicator-symbol-letter-z/
|
|
# title parse see https://github.com/kovidgoyal/kitty/blob/587f44ad4eb7fe545b0e580168cf0c32117b87c7/kitty/tab_bar.py#L175
|
|
tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{index}:{'🇿' if layout_name == 'stack' and num_windows > 1 else ''}{title}"
|
|
|
|
|
|
|
|
#: The foreground and background colors
|
|
|
|
#background_opacity 0.95
|
|
background_opacity 1.0
|
|
|
|
|
|
|
|
background_image none
|
|
|
|
#: Path to a background image. Must be in PNG format.
|
|
|
|
background_image_layout tiled
|
|
|
|
#: Whether to tile, scale or clamp the background image. The value can
|
|
#: be one of tiled, mirror-tiled, scaled, clamped.
|
|
|
|
background_image_linear no
|
|
|
|
#: When background image is scaled, whether linear interpolation
|
|
#: should be used.
|
|
|
|
dynamic_background_opacity yes
|
|
|
|
#: Allow changing of the background_opacity dynamically, using either
|
|
#: keyboard shortcuts (increase_background_opacity and
|
|
#: decrease_background_opacity) or the remote control facility.
|
|
#: Changing this setting by reloading the config is not supported.
|
|
|
|
|
|
|
|
allow_remote_control yes
|
|
|
|
#: 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. You can chose to either allow any program running
|
|
#: within kitty to control it, with yes or only programs that connect
|
|
#: to the socket specified with the kitty --listen-on command line
|
|
#: option, if you use the value socket-only. The latter is useful if
|
|
#: you want to prevent programs running on a remote computer over ssh
|
|
#: from controlling kitty. Reloading the config will not affect this
|
|
#: setting.
|
|
|
|
#listen_on unix:$XDG_RUNTIME_DIR/kitty.sock
|
|
#listen_on tcp:localhost:12488
|
|
|
|
|
|
#: Tell kitty to listen to the specified unix/tcp socket for remote
|
|
#: control connections. Note that this will apply to all kitty
|
|
#: instances. It can be overridden by the kitty --listen-on command
|
|
#: line flag. This option accepts only UNIX sockets, such as
|
|
#: unix:${TEMP}/mykitty or (on Linux) unix:@mykitty. Environment
|
|
#: variables are expanded. If {kitty_pid} is present then it is
|
|
#: replaced by the PID of the kitty process, otherwise the PID of the
|
|
#: kitty process is appended to the value, with a hyphen. This option
|
|
#: is ignored unless you also set allow_remote_control to enable
|
|
#: remote control. See the help for kitty --listen-on for more
|
|
#: details. Changing this option by reloading the config is not
|
|
#: supported.
|
|
|
|
|
|
#startup_session none
|
|
startup_session session.conf
|
|
|
|
|
|
|
|
allow_hyperlinks yes
|
|
|
|
#: Process hyperlink (OSC 8) escape sequences. If disabled OSC 8
|
|
#: escape sequences are ignored. Otherwise they become clickable
|
|
#: links, that you can click by with the mouse or the hints kitten
|
|
#: </kittens/hints>. The special value of ``ask`` means that kitty
|
|
#: will ask before opening the link when clicked.
|
|
|
|
shell_integration enabled
|
|
|
|
#: Enable shell integration on supported shells. This enables features
|
|
#: such as jumping to previous prompts, browsing the output of the
|
|
#: previous command in a pager, etc. on supported shells. Set to
|
|
#: ``disabled`` to turn off shell integration, completely. See
|
|
#: https://sw.kovidgoyal.net/kitty/shell-integration/ for details.
|
|
|
|
#term xterm-kitty
|
|
term xterm-256color
|
|
|
|
|
|
|
|
kitty_mod ctrl+shift
|
|
|
|
# kitty_mod has to be modifiers not keys, see
|
|
# https://github.com/kovidgoyal/kitty/discussions/3457#discussioncomment-587511
|
|
# so you can NOT do this:
|
|
#kitty_mod ctrl+a
|
|
|
|
|
|
|
|
#map kitty_mod+enter new_window
|
|
# disable this as can lead to window created by accident via press by ctrl+shift+v paste command and then press enter
|
|
map kitty_mod+enter no-op
|
|
map cmd+enter no-op
|
|
|
|
|
|
|
|
map ctrl+a>x close_window
|
|
|
|
|
|
map ctrl+a>] next_window
|
|
|
|
|
|
|
|
map ctrl+a>[ previous_window
|
|
|
|
|
|
map ctrl+a>period move_window_forward
|
|
|
|
|
|
map ctrl+a>comma move_window_backward
|
|
|
|
|
|
|
|
# map kitty_mod+t new_tab_with_cwd
|
|
map kitty_mod+t new_tab
|
|
map ctrl+alt+t new_tab_with_cwd
|
|
|
|
map ctrl+alt+d detach_tab ask
|
|
# map kitty_mod+t launch --location=hsplit
|
|
# new_tab will not keep cwd, use `new_tab_with_cwd` instead or `launch --cwd=current --type=tab`
|
|
# see https://sw.kovidgoyal.net/kitty/faq/#how-do-i-open-a-new-window-or-tab-with-the-same-working-directory-as-the-current-window
|
|
# tmux like tab create via `--cwd=last_reported`, warning: this need kitty `shell_integration enabled`
|
|
map ctrl+a>c launch --cwd=last_reported --type=tab
|
|
|
|
map ctrl+a>, set_tab_title
|
|
|
|
|
|
#: Increase font size
|
|
|
|
map ctrl+equal change_font_size all +1.0
|
|
map ctrl+plus change_font_size all +1.0
|
|
map ctrl+kp_add change_font_size all +1.0
|
|
|
|
|
|
#: Decrease font size
|
|
|
|
map ctrl+minus change_font_size all -1.0
|
|
map ctrl+kp_subtract change_font_size all -1.0
|
|
|
|
|
|
#: Reset font size
|
|
|
|
map ctrl+0 change_font_size all 0
|
|
|
|
|
|
|
|
|
|
map f11 toggle_fullscreen
|
|
|
|
|
|
# map ctrl+a>e edit_config_file
|
|
map ctrl+a>e no-op
|
|
map ctrl+a>shift+e launch --type=tab nvim ~/.config/kitty/kitty.conf
|
|
|
|
|
|
#: Reload kitty.conf
|
|
|
|
map ctrl+a>shift+r combine : load_config_file : launch --type=overlay sh -c 'echo "kitty config reloaded."; echo; read -r -p "Press Enter to exit"; echo ""'
|
|
|
|
#: Debug kitty configuration
|
|
|
|
map ctrl+a>shift+d debug_config
|
|
|
|
|
|
|
|
# BEGIN_KITTY_THEME
|
|
# Dark One Nuanced
|
|
include current-theme.conf
|
|
include ./theme.conf
|
|
# END_KITTY_THEME
|
|
|
|
# default alphabet see https://github.com/kovidgoyal/kitty/blob/0c4b20aa4e6b29ccf7c389e15d7ff5189f8e98f5/kittens/hints/main.py#L125
|
|
# qwerty alphabets borrow from https://github.com/fcsonline/tmux-thumbs#Alphabets
|
|
map ctrl+a>space kitten hints --alphabet asdfqwerzxcvjklmiuopghtybn1234567890 --customize-processing custom-hints.py
|
|
|
|
map f3 kitten hints --program '*'
|
|
|
|
# https://github.com/console-rs/console/pull/85/files
|
|
# https://github.com/console-rs/console/pull/84
|
|
# map double ctrl+a to ctrl+a (home)
|
|
map ctrl+a>ctrl+a send_text all \x01
|