# kitty terminal configuration with Material You theming
# Generated by matugen from wallpaper colors

# Font configuration
font_family      JetBrainsMono Nerd Font
bold_font        JetBrainsMono Nerd Font Bold
italic_font      JetBrainsMono Nerd Font Italic
bold_italic_font JetBrainsMono Nerd Font Bold Italic
font_size        12.0

# Cursor
cursor_shape block
cursor_blink_interval 0.5
cursor_stop_blinking_after 15.0

# Scrollback
scrollback_lines 10000
scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER

# Mouse
mouse_hide_wait 3.0
url_color {{colors.primary.default.hex}}
url_style curly
open_url_with default
copy_on_select yes
strip_trailing_spaces never

# Performance
repaint_delay 10
input_delay 3
sync_to_monitor yes

# Window layout
remember_window_size yes
initial_window_width 100c
initial_window_height 30c
enabled_layouts *
window_resize_step_cells 2
window_resize_step_lines 2
window_border_width 1pt
draw_minimal_borders yes
window_margin_width 0
single_window_margin_width -1
window_padding_width 8
placement_strategy center
active_border_color {{colors.primary.default.hex}}
inactive_border_color {{colors.outline.default.hex}}
bell_border_color {{colors.error.default.hex}}

# Tab bar
tab_bar_edge bottom
tab_bar_margin_width 0.0
tab_bar_margin_height 0.0 0.0
tab_bar_style powerline
tab_bar_align left
tab_bar_min_tabs 2
tab_switch_strategy previous
tab_fade 0.25 0.5 0.75 1
tab_separator " ┇"
tab_powerline_style angled
tab_activity_symbol none
tab_title_template "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}"
active_tab_title_template none

# Tab bar colors
active_tab_foreground   {{colors.primary.default.hex}}
active_tab_background   {{colors.surface.default.hex}}
active_tab_font_style   bold-italic
inactive_tab_foreground {{colors.on_surface_variant.default.hex}}
inactive_tab_background {{colors.surface_variant.default.hex}}
inactive_tab_font_style normal
tab_bar_background      {{colors.surface_container.default.hex}}

# Material You Color Scheme
foreground {{colors.on_surface.default.hex}}
background {{colors.surface.default.hex}}
selection_foreground {{colors.on_primary.default.hex}}
selection_background {{colors.primary.default.hex}}

# Cursor colors
cursor {{colors.primary.default.hex}}
cursor_text_color {{colors.on_primary.default.hex}}

# URL underline color when hovering with mouse
url_color {{colors.primary.default.hex}}

# kitty window border colors
active_border_color {{colors.primary.default.hex}}
inactive_border_color {{colors.outline.default.hex}}
bell_border_color {{colors.error.default.hex}}

# OS Window titlebar colors
wayland_titlebar_color {{colors.surface_container.default.hex}}
macos_titlebar_color {{colors.surface_container.default.hex}}

# Tab bar colors
active_tab_foreground {{colors.on_primary_container.default.hex}}
active_tab_background {{colors.primary_container.default.hex}}
inactive_tab_foreground {{colors.on_surface_variant.default.hex}}
inactive_tab_background {{colors.surface_variant.default.hex}}
tab_bar_background {{colors.surface.default.hex}}

# Colors for marks (marked text in the terminal)
mark1_foreground {{colors.surface.default.hex}}
mark1_background {{colors.primary.default.hex}}
mark2_foreground {{colors.surface.default.hex}}
mark2_background {{colors.secondary.default.hex}}
mark3_foreground {{colors.surface.default.hex}}
mark3_background {{colors.tertiary.default.hex}}

# The 16 terminal colors

# normal colors
color0 {{colors.surface.default.hex}}
color1 {{colors.error.default.hex}}
color2 {{colors.primary.default.hex}}
color3 {{colors.tertiary.default.hex}}
color4 {{colors.secondary.default.hex}}
color5 {{colors.primary.default.hex}}
color6 {{colors.secondary.default.hex}}
color7 {{colors.on_surface.default.hex}}

# bright colors
color8  {{colors.outline.default.hex}}
color9  {{colors.error.default.hex}}
color10 {{colors.primary.default.hex}}
color11 {{colors.tertiary.default.hex}}
color12 {{colors.secondary.default.hex}}
color13 {{colors.primary.default.hex}}
color14 {{colors.secondary.default.hex}}
color15 {{colors.on_surface.default.hex}}

# Extended colors for better Material You integration
color16 {{colors.primary_container.default.hex}}
color17 {{colors.secondary_container.default.hex}}
color18 {{colors.tertiary_container.default.hex}}
color19 {{colors.error_container.default.hex}}
color20 {{colors.surface_variant.default.hex}}
color21 {{colors.outline_variant.default.hex}}

# Advanced features
allow_remote_control yes
listen_on unix:/tmp/kitty
shell_integration enabled
term xterm-kitty

# Keyboard shortcuts
kitty_mod ctrl+shift

# Clipboard
map kitty_mod+c copy_to_clipboard
map kitty_mod+v paste_from_clipboard
map kitty_mod+s paste_from_selection
map shift+insert paste_from_selection
map kitty_mod+o pass_selection_to_program

# Scrolling
map kitty_mod+up scroll_line_up
map kitty_mod+k scroll_line_up
map kitty_mod+down scroll_line_down
map kitty_mod+j scroll_line_down
map kitty_mod+page_up scroll_page_up
map kitty_mod+page_down scroll_page_down
map kitty_mod+home scroll_home
map kitty_mod+end scroll_end
map kitty_mod+h show_scrollback

# Window management
map kitty_mod+enter new_window
map kitty_mod+n new_os_window
map kitty_mod+w close_window
map kitty_mod+] next_window
map kitty_mod+[ previous_window
map kitty_mod+f move_window_forward
map kitty_mod+b move_window_backward
map kitty_mod+` move_window_to_top
map kitty_mod+r start_resizing_window
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+right next_tab
map kitty_mod+left previous_tab
map kitty_mod+t new_tab
map kitty_mod+q close_tab
map kitty_mod+. move_tab_forward
map kitty_mod+, move_tab_backward
map kitty_mod+alt+t set_tab_title

# Layout management
map kitty_mod+l next_layout

# Font sizes
map kitty_mod+equal change_font_size all +2.0
map kitty_mod+plus change_font_size all +2.0
map kitty_mod+kp_add change_font_size all +2.0
map kitty_mod+minus change_font_size all -2.0
map kitty_mod+kp_subtract change_font_size all -2.0
map kitty_mod+backspace change_font_size all 0

# Select and act on visible text
map kitty_mod+e kitten hints
map kitty_mod+p>f kitten hints --type path --program -
map kitty_mod+p>shift+f kitten hints --type path
map kitty_mod+p>l kitten hints --type line --program -
map kitty_mod+p>w kitten hints --type word --program -
map kitty_mod+p>h kitten hints --type hash --program -
map kitty_mod+p>n kitten hints --type linenum

# Miscellaneous
map kitty_mod+f11 toggle_fullscreen
map kitty_mod+f10 toggle_maximized
map kitty_mod+u kitten unicode_input
map kitty_mod+f2 edit_config_file
map kitty_mod+escape kitty_shell window

# Sending arbitrary text on key presses
map kitty_mod+alt+1 send_text all \x01
map kitty_mod+alt+2 send_text all \x02
map kitty_mod+alt+3 send_text all \x03

# Symbol mapping for better rendering
symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols
symbol_map U+E000-U+F8FF,U+F0000-U+FFFFD,U+100000-U+10FFFD Symbols Nerd Font Mono

# Performance tuning
sync_to_monitor yes
enable_audio_bell no
visual_bell_duration 0.0
window_alert_on_bell no
bell_on_tab no
command_on_bell none

# Advanced
allow_hyperlinks yes
shell_integration enabled
update_check_interval 0
startup_session none
clipboard_control write-clipboard write-primary
allow_cloning ask
clone_source_strategies venv,conda,env_var,path
