#: Color scheme

# Kitty theme
# Add the theme at the top, any setting below the theme will be overriden
# include ~/github/dotfiles-latest/kitty/themes/themes/ChallengerDeep.conf
# include ~/github/dotfiles-latest/kitty/themes/themes/Catppuccin-Mocha.conf
# include ~/.config/kitty/themes/themes/everforest_dark_medium.conf
include ~/.config/kitty/themes/everforest_dark_medium.conf

background_opacity 1.0
dynamic_background_opacity no

#: Fonts

# font_family      JetBrainsMono Nerd Font Mono
# font_family      FiraCode Nerd Font
font_family      Iosevka
bold_font        auto
italic_font      auto
bold_italic_font auto

font_size 19.0

# Kitty's font was more spaced compared to alacritty's, tried font variations
# but it didn't change, so I went with this, it works fine
# modify_font cell_width 95%
# modify_font cell_height -5px

# adjust_line_height -8
# adjust_column_width 0
# adjust_baseline 0

disable_ligatures always

#: Cursor customization

cursor_shape block
# cursor_beam_thickness 1.5
# cursor_underline_thickness 2.0
cursor_shape_unfocused hollow
shell_integration no-cursor

cursor_blink_interval -1
cursor_stop_blinking_after 15.0

#: Scrollback

scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS -M -i -j5 +INPUT_LINE_NUMBER
scrollback_lines 5000

#: Mouse 

url_style curly

#: Window layout

# Make kitty borderless
# "yes" disables round corners and hides the title bar
# "titlebar-only" leaves round corners but hides title bar
hide_window_decorations yes
# hide_window_decorations titlebar-only
# window_logo_path window-logo.png
# window_logo_alpha 0.15
# enabled_layouts splits,stack

#: The window padding (in pts) (blank area between the text and the
#: window border). A single value sets all four sides. Two values set
#: the vertical and horizontal sides. Three values set top, horizontal
#: and bottom. Four values set top, right, bottom and left.
window_padding_width 2 0 0 0

#: Ask for confirmation when closing an OS window or a tab with at
#: least this number of kitty windows in it by window manager (e.g.
#: clicking the window close button or pressing the operating system
#: shortcut to close windows) or by the close_tab action. A value of
#: zero disables confirmation. This confirmation also applies to
#: requests to quit the entire application (all OS windows, via the
#: quit action). Negative values are converted to positive ones,
#: however, 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. Note that if you
#: want confirmation when closing individual windows, you can map the
#: close_window_with_confirmation action.
confirm_os_window_close 0

#: Keyboard shortcuts

kitty_mod ctrl+shift

clear_all_shortcuts yes

#: Clipboard

map kitty_mod+c copy_to_clipboard
map kitty_mod+v paste_from_clipboard

#: Scrolling

map kitty_mod+up scroll_line_up
map kitty_mod+down 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+s>h show_scrollback
# map kitty_mod+s>n scroll_to_prompt 1
# map kitty_mod+s>p scroll_to_prompt -1
# map kitty_mod+s>l show_last_command_output
# map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=window less +G -R

# #: Window management

map kitty_mod+enter new_window
map kitty_mod+n new_os_window
# map kitty_mod+w close_window
map kitty_mod+o close_other_windows_in_tab

map kitty_mod+z launch --location=hsplit
map kitty_mod+x launch --location=vsplit

map kitty_mod+k neighboring_window up
map kitty_mod+j neighboring_window down
map kitty_mod+h neighboring_window left
map kitty_mod+l neighboring_window right

# map kitty_mod+p nth_window -1

# 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

# map kitty_mod+` move_window_to_top
# map cmd+r start_resizing_window

# map kitty_mod+- focus_visible_window
# map cmd+s swap_with_window

#: Tab management

map control+t new_tab
# map control+w close_tab

map control+] next_tab
map control+[ previous_tab

map control+1 goto_tab 1
map control+2 goto_tab 2
map control+3 goto_tab 3
map control+4 goto_tab 4
map control+5 goto_tab 5
map control+6 goto_tab 6
map control+7 goto_tab 7
map control+8 goto_tab 8
map control+9 goto_tab 9

map control+. move_tab_forward
map control+, move_tab_backward

map kitty_mod+t set_tab_title

#: Layout management

map kitty_mod+z toggle_layout stack

#: Font sizes

map control+equal change_font_size all +1.0
map control+minus change_font_size all -1.0
map control+0 change_font_size all 0

# #: Select and act on visible text (the Hints kitten)
#
# map kitty_mod+i>u open_url_with_hints
#
# # Select a path/filename and open it with the default open program
# map kitty_mod+i>o kitten hints --type path
#
# # Select a path/filename and insert it into the terminal
# map kitty_mod+i>p kitten hints --type path --program -
#
# # Select a hyperlink (e.g., with ls --hyperlink=auto, we can open an item via
# # the defined application)
# map kitty_mod+i>l kitten hints --type hyperlink
#
# #:
#
# #: Miscellaneous
#
# map kitty_mod+m toggle_maximized
# map kitty_mod+escape kitty_shell window
#
# map cmd+, edit_config_file
# map ctrl+cmd+, load_config_file
#
# map ctrl+cmd+space kitten unicode_input
#
# map shift+enter send_text all \x1b[13;2u
# map ctrl+enter send_text all \x1b[13;5u

