Files
dotfiles/.config/kitty/kitty.conf
2025-07-08 09:43:16 +03:00

392 lines
11 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# vim:fileencoding=utf-8:foldmethod=marker:foldlevel=0
# Fonts {{{
font_family Hack Nerd Font Regular
bold_font Hack Nerd Font Bold
italic_font Hack Nerd Font Italic
bold_italic_font Hack Nerd Font Bold Italic
font_size 19
force_ltr yes
text_composition_strategy 1 0
disable_ligatures cursor
# font_features none
# symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 FONT
# narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1
# modify_font underline_thickness 150%
# box_drawing_scale 0.001, 1, 1.5, 2
# undercurl_style thin-sparse
# }}}
# Cursor customization {{{
# cursor #cccccc
# cursor_text_color #111111
# cursor_shape block
# cursor_beam_thickness 1.5
# cursor_underline_thickness 2.0
cursor_blink_interval 0.5
cursor_stop_blinking_after 10
# }}}
# Scrollback {{{
scrollback_lines 2000
# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
scrollback_pager_history_size 100
scrollback_fill_enlarged_window yes
# wheel_scroll_multiplier 5.0
# wheel_scroll_min_lines 1
# touch_scroll_multiplier 1.0
# }}}
# Mouse {{{
# mouse_hide_wait 3.0
# url_color #0087bd
url_style straight
open_url_with default
# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
# detect_urls yes
# url_excluded_characters
show_hyperlink_targets yes
copy_on_select no
# paste_actions quote-urls-at-prompt
strip_trailing_spaces always
#select_by_word_characters @-./_~?&=%+#
select_by_word_characters_forward -_
click_interval 0.5
focus_follows_mouse no
# pointer_shape_when_grabbed arrow
# default_pointer_shape beam
# pointer_shape_when_dragging beam
# Mouse actions {{{
clear_all_mouse_actions yes
mouse_map left click ungrabbed mouse_handle_click selection link prompt
mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt
mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link
mouse_map ctrl+shift+left press grabbed discard_event
mouse_map middle release ungrabbed paste_from_selection
mouse_map left press ungrabbed mouse_selection normal
mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle
mouse_map left doublepress ungrabbed mouse_selection word
mouse_map left triplepress ungrabbed mouse_selection line
mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point
mouse_map right press ungrabbed mouse_selection extend
mouse_map shift+middle release ungrabbed,grabbed paste_selection
mouse_map shift+middle press grabbed discard_event
mouse_map shift+left press ungrabbed,grabbed mouse_selection normal
mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle
mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word
mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line
mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point
mouse_map shift+right press ungrabbed,grabbed mouse_selection extend
mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output
# }}}
# }}}
# Performance tuning {{{
# repaint_delay 10
# input_delay 3
sync_to_monitor yes
# }}}
# Terminal bell {{{
# enable_audio_bell yes
# visual_bell_duration 0.0
# visual_bell_color #9f60ff
# window_alert_on_bell yes
bell_on_tab "!"
# command_on_bell none
# bell_path none
# linux_bell_theme __custom
# }}}
# Window layout {{{
remember_window_size no
initial_window_width 930
initial_window_height 540
enabled_layouts grid,horizontal,vertical,stack
window_resize_step_cells 2
window_resize_step_lines 1
window_border_width 1px
# draw_minimal_borders yes
# window_margin_width 0
# single_window_margin_width -1
# window_padding_width 0
# placement_strategy center
# active_border_color #77ff77
# inactive_border_color #7777ff
# bell_border_color #ff0000
# inactive_text_alpha 1.0
hide_window_decorations yes
# window_logo_path none
# window_logo_position bottom-right
# window_logo_alpha 0.5
# resize_debounce_time 0.1
# resize_draw_strategy static
# resize_in_steps no
# visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
# confirm_os_window_close -1
# }}}
# Tab bar {{{
tab_bar_style custom
tab_bar_align center
tab_bar_min_tabs 2
tab_activity_symbol "!"
tab_title_max_length 50
tab_title_template "{fmt.fg.magenta}{bell_symbol}{fmt.fg.cyan}{activity_symbol}{fmt.fg._af77d7}{layout_name[0].upper()}{num_windows} {fmt.fg._8767d7}{title.split()[0]}{fmt.fg._884488}"
active_tab_title_template "{fmt.fg.magenta}{bell_symbol}{fmt.fg.cyan}{activity_symbol}{fmt.fg._e797ff}{layout_name[0].upper()}{num_windows} {fmt.fg._6fb7ff}{'/'+'/'.join(x[0] if x[0] != '.' else x[:2] for x in tab.active_wd.split('/') if x != '')} {fmt.fg._7777ff}{tab.active_exe}"
tab_powerline_style slanted
# tab_bar_edge bottom
# tab_bar_margin_width 0.0
# tab_bar_margin_height 0.0 0.0
# tab_switch_strategy previous
# tab_fade 0.25 0.5 0.75 1
# tab_separator " ┇"
# active_tab_foreground #000
# active_tab_background #e7e7ff
active_tab_font_style bold-italic
# inactive_tab_foreground #444
# inactive_tab_background #c7c7dd
# inactive_tab_font_style normal
# tab_bar_background #224
# tab_bar_margin_color #224
# }}}
# Color scheme {{{
# foreground #dddddd
# background #000000
background_opacity 0.65
# background_image none
# background_image_layout tiled
# background_image_linear no
# dynamic_background_opacity no
# background_tint 0.0
# background_tint_gaps 1.0
# dim_opacity 0.75
# selection_foreground #000000
# selection_background #fffacd
# The color table {{{
# color0 #000000
# color8 #767676
# color1 #cc0403
# color9 #f2201f
# color2 #19cb00
# color10 #23fd00
# color3 #cecb00
# color11 #fffd00
# color4 #0d73cc
# color12 #1a8fff
# color5 #cb1ed1
# color13 #fd28ff
# color6 #0dcdcd
# color14 #14ffff
# color7 #dddddd
# color15 #ffffff
# mark1_foreground black
# mark1_background #98d3cb
# mark2_foreground black
# mark2_background #f2dcd3
# mark3_foreground black
# mark3_background #f274bc
# }}}
# }}}
# Advanced {{{
# shell .
editor nvim
# close_on_child_death no
# remote_control_password
# allow_remote_control no
# listen_on none
# env
# watcher
# exe_search_path
# update_check_interval 24
# startup_session none
# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask
# clipboard_max_size 512
# file_transfer_confirmation_bypass
# allow_hyperlinks yes
# shell_integration enabled
# allow_cloning ask
# clone_source_strategies venv,conda,env_var,path
# term xterm-kitty
# }}}
# OS specific tweaks {{{
# wayland_titlebar_color system
# macos_titlebar_color system
# macos_option_as_alt no
# macos_hide_from_tasks no
# macos_quit_when_last_window_closed no
# macos_window_resizable yes
# macos_thicken_font 0
# macos_traditional_fullscreen no
# macos_show_window_title_in all
# macos_menubar_title_max_length 0
# macos_custom_beam_cursor no
# macos_colorspace srgb
linux_display_server auto
# }}}
# Keyboard shortcuts {{{
kitty_mod ctrl+shift
clear_all_shortcuts yes
# action_alias
# kitten_alias
# Miscellaneous {{{
map ctrl+[ send_text all 
map shift+space send_text all \033[32;2u
map kitty_mod+v paste_from_clipboard
map ctrl+alt+v paste_from_selection
map kitty_mod+u kitten unicode_input
map kitty_mod+c copy_to_clipboard
map kitty_mod+y open_url_with_hints
map kitty_mod+s launch firefox --search "@selection"
map ctrl+alt+s launch --stdin-source=@selection --type=tab nvim
map kitty_mod+p kitten hints --type path --program nemo
map ctrl+alt+p kitten hints --type hyperlink --program nemo
map kitty_mod+/ show_kitty_doc overview
map kitty_mod+equal change_font_size all +1.0
map kitty_mod+minus change_font_size all -1.0
map kitty_mod+backspace change_font_size all 0
map kitty_mod+g load_config_file
map ctrl+alt+g edit_config_file
map ctrl+shift+alt+g debug_config
map ctrl+shift+alt+/ clear_terminal reset active
# }}}
# Scrollback {{{
map kitty_mod+e scroll_line_down
map kitty_mod+i scroll_line_up
map ctrl+alt+e scroll_page_down
map ctrl+alt+i scroll_page_up
map ctrl+alt+down scroll_page_down
map ctrl+alt+up scroll_page_up
map ctrl+shift+alt+e scroll_end
map ctrl+shift+alt+i scroll_home
map ctrl+shift+alt+down scroll_end
map ctrl+shift+alt+up scroll_home
map kitty_mod+z scroll_to_prompt -1
map kitty_mod+x scroll_to_prompt 1
map kitty_mod+k show_scrollback
map kitty_mod+b show_last_visited_command_output
map ctrl+alt+b show_last_non_empty_command_output
# }}}
# Window management {{{
map kitty_mod+enter new_os_window
map ctrl+alt+enter new_os_window_with_cwd
map kitty_mod+w new_window
map ctrl+alt+w new_window_with_cwd
map kitty_mod+q close_window_with_confirmation
map kitty_mod+r start_resizing_window
map kitty_mod+n previous_window
map kitty_mod+o next_window
map kitty_mod+, move_window_backward
map kitty_mod+. move_window_forward
map kitty_mod+` move_window_to_top
map kitty_mod+d detach_window ask
map kitty_mod+f focus_visible_window
map kitty_mod+m swap_with_window
map kitty_mod+l next_layout
map ctrl+alt+l toggle_layout stack
map kitty_mod+1 first_window
map kitty_mod+2 second_window
map kitty_mod+3 third_window
map kitty_mod+4 fourth_window
map kitty_mod+5 fifth_window
map kitty_mod+6 sixth_window
map kitty_mod+7 seventh_window
map kitty_mod+8 eighth_window
map kitty_mod+9 ninth_window
map kitty_mod+0 tenth_window
# }}}
# Tab management {{{
map kitty_mod+t new_tab
map ctrl+alt+t new_tab_with_cwd !neighbor
map ctrl+alt+q close_tab
map ctrl+alt+n previous_tab
map ctrl+alt+o next_tab
map ctrl+alt+left previous_tab
map ctrl+alt+right next_tab
map ctrl+alt+, move_tab_backward
map ctrl+alt+. move_tab_forward
map ctrl+alt+d detach_tab ask
map ctrl+alt+r set_tab_title
map ctrl+alt+1 goto_tab 1
map ctrl+alt+2 goto_tab 2
map ctrl+alt+3 goto_tab 3
map ctrl+alt+4 goto_tab 4
map ctrl+alt+5 goto_tab 5
map ctrl+alt+6 goto_tab 6
map ctrl+alt+7 goto_tab 7
map ctrl+alt+8 goto_tab 8
map ctrl+alt+9 goto_tab 9
map ctrl+alt+0 goto_tab 10
map ctrl+alt+- goto_tab -1
map ctrl+alt+= goto_tab 100
# }}}
# Hints {{{
map kitty_mod+h>n kitten hints --type linenum nvim +{line} {path}
# paste to cmd
map kitty_mod+h>w kitten hints --type word --program -
map kitty_mod+h>l kitten hints --type line --program -
map kitty_mod+h>p kitten hints --type path --program -
map kitty_mod+h>i kitten hints --type ip --program -
map kitty_mod+h>h kitten hints --type hash --program -
# copy to clipboard
map ctrl+alt+h>w kitten hints --type word --program @
map ctrl+alt+h>l kitten hints --type line --program @
map ctrl+alt+h>p kitten hints --type path --program @
map ctrl+alt+h>i kitten hints --type ip --program @
map ctrl+alt+h>h kitten hints --type hash --program @
# }}}
# }}}