2026-08-09 14:53:13 -04:00
|
|
|
# ── base.conf · shared ──
|
2026-10-13 09:45:51 -04:00
|
|
|
font_family VictorMono Nerd Font
|
2026-10-07 12:45:23 -04:00
|
|
|
font_size 13.0
|
2026-08-09 14:53:13 -04:00
|
|
|
bold_italic_font auto
|
|
|
|
|
window_padding_width 8
|
|
|
|
|
hide_window_decorations yes
|
2026-09-04 13:24:10 -04:00
|
|
|
# Transparency: kitty's own alpha, not the compositor's -- Hyprland fades a
|
2026-09-04 13:39:36 -04:00
|
|
|
# whole window (chrome included), kitty only makes the cell background
|
|
|
|
|
# translucent, so text stays fully opaque on top of it. This alpha is also what
|
|
|
|
|
# makes kitty the one window Hyprland blurs: hypr/looknfeel.lua enables blur
|
|
|
|
|
# globally and then opts every window out except the terminal classes, and an
|
|
|
|
|
# opaque window has no backdrop to blur. kitty's own `background_blur` does
|
|
|
|
|
# nothing here -- it rides ext-background-effect-v1, which Hyprland ignores
|
|
|
|
|
# while decoration:blur:enabled is false, and is redundant once it is true.
|
2026-08-09 14:53:13 -04:00
|
|
|
background_opacity 0.9
|
|
|
|
|
cursor_blink_interval 1
|
|
|
|
|
copy_on_select auto
|
|
|
|
|
strip_trailing_spaces smart
|
|
|
|
|
confirm_os_window_close 0
|
|
|
|
|
allow_remote_control socket-only
|
2026-08-15 13:35:58 -04:00
|
|
|
# socket-only remote control needs a socket: this also exports KITTY_LISTEN_ON
|
|
|
|
|
# into every pane, which is how nvim (config.pane_nav) knows kitty owns the
|
|
|
|
|
# panes and how it hands an at-edge <C-h/j/k/l> back to kitty.
|
|
|
|
|
listen_on unix:@kitty-{kitty_pid}
|
2026-08-09 14:53:13 -04:00
|
|
|
cursor_trail 10
|
|
|
|
|
cursor_trail_start_threshold 0
|
|
|
|
|
cursor_trail_decay 0.01 0.05
|
|
|
|
|
cursor_blink_interval 0
|
|
|
|
|
|
2026-08-13 21:04:38 -04:00
|
|
|
enabled_layouts splits:split_axis=vertical,stack
|
2026-08-09 14:53:13 -04:00
|
|
|
|
|
|
|
|
# launch aliases
|
|
|
|
|
action_alias launch_mn launch --cwd=current --type=overlay-main
|
|
|
|
|
action_alias launch_os launch --cwd=current --type=os-window
|
|
|
|
|
action_alias launch_ov launch --cwd=current --type=overlay
|
|
|
|
|
action_alias launch_tb launch --cwd=current --type=tab
|
2026-10-07 13:32:40 -04:00
|
|
|
action_alias launch_hs launch --cwd=current --location=hsplit --bias=25
|
2026-10-08 10:17:06 -04:00
|
|
|
action_alias launch_vs launch --cwd=current --location=vsplit --bias=33
|
2026-08-27 10:44:51 -04:00
|
|
|
action_alias launch_vs50 launch --cwd=current --location=vsplit --bias=50
|
2026-08-09 14:53:13 -04:00
|
|
|
|
|
|
|
|
# panes = kitty windows
|
2026-08-27 13:01:55 -04:00
|
|
|
map super+n launch_vs50
|
|
|
|
|
map super+z toggle_layout stack
|
2026-10-07 13:32:57 -04:00
|
|
|
map ctrl+shift+z toggle_layout stack
|
2026-08-20 14:12:31 -04:00
|
|
|
map ctrl+shift+t new_tab_with_cwd
|
2026-09-25 11:41:24 -04:00
|
|
|
map super+enter new_tab_with_cwd
|
2026-08-13 21:04:38 -04:00
|
|
|
map ctrl+space launch_hs
|
|
|
|
|
map ctrl+enter launch_vs
|
2026-08-09 14:53:13 -04:00
|
|
|
map ctrl+shift+space new_os_window
|
|
|
|
|
|
|
|
|
|
# Splits
|
|
|
|
|
map ctrl+shift+j launch_hs
|
|
|
|
|
map ctrl+shift+l launch_vs
|
|
|
|
|
map ctrl+shift+h previous_tab
|
|
|
|
|
map ctrl+shift+k next_tab
|
|
|
|
|
|
|
|
|
|
# Shortcuts
|
|
|
|
|
map ctrl+shift+g launch_ov lazygit
|
2026-08-27 13:01:55 -04:00
|
|
|
map ctrl+shift+f launch_tb yazi
|
2026-08-31 11:30:01 -04:00
|
|
|
# nvim in the current dir, split to the right of the active pane at 50/50
|
|
|
|
|
map ctrl+shift+e launch_vs50 nvim
|
2026-08-14 18:41:43 -04:00
|
|
|
# herdr host: a *separate* kitty process, own config (launch cannot take --config)
|
2026-08-15 15:10:36 -04:00
|
|
|
# tmux host: same trick — kitty stays dumb, tmux owns panes/windows/sessions
|
2026-08-14 13:58:17 -04:00
|
|
|
map ctrl+shift+p launch_hs atuin-pick
|
2026-08-09 14:53:13 -04:00
|
|
|
|
2026-08-20 14:12:31 -04:00
|
|
|
|
2026-08-09 14:53:13 -04:00
|
|
|
# Misc
|
|
|
|
|
map ctrl+shift+c copy_to_clipboard
|
|
|
|
|
map ctrl+shift+v paste_from_clipboard
|
|
|
|
|
|
|
|
|
|
# tabs
|
|
|
|
|
map alt+q goto_tab 1
|
|
|
|
|
map alt+w goto_tab 2
|
|
|
|
|
map alt+e goto_tab 3
|
|
|
|
|
map alt+r goto_tab 4
|
|
|
|
|
map alt+t goto_tab 5
|
|
|
|
|
map alt+y goto_tab 6
|
|
|
|
|
map alt+u goto_tab 7
|
|
|
|
|
map alt+i goto_tab 8
|
|
|
|
|
map alt+o goto_tab 9
|
|
|
|
|
|
2026-10-07 13:32:40 -04:00
|
|
|
# Daily sessions, archived per week (day_session.py):
|
|
|
|
|
# ~/.local/share/kitty-sessions/<monday>/<day>.kitty-session. Launching kitty
|
|
|
|
|
# reopens today's session unless another running kitty already owns it: tabs,
|
|
|
|
|
# splits, cwds, each shell's scrollback and the program running in it. Tabs
|
|
|
|
|
# made with *_with_cwd / --cwd=current join it and are saved ~1s after each
|
2026-10-08 10:17:06 -04:00
|
|
|
# change, and right before shutdown/reboot (kitty-day-save.service). `tv
|
|
|
|
|
# kitty-days` opens any earlier day in a new kitty.
|
2026-10-07 13:32:40 -04:00
|
|
|
geninclude day_session.py
|
|
|
|
|
watcher day_session.py
|
|
|
|
|
|
2026-08-09 14:53:13 -04:00
|
|
|
# split nav (vim-aware)
|
|
|
|
|
map ctrl+h kitten pass_keys.py neighboring_window left ctrl+h
|
|
|
|
|
map ctrl+j kitten pass_keys.py neighboring_window bottom ctrl+j
|
|
|
|
|
map ctrl+k kitten pass_keys.py neighboring_window top ctrl+k
|
|
|
|
|
map ctrl+l kitten pass_keys.py neighboring_window right ctrl+l
|
|
|
|
|
# resize
|
|
|
|
|
map super+left resize_window narrower
|
|
|
|
|
map super+right resize_window wider
|
|
|
|
|
map super+up resize_window taller
|
|
|
|
|
map super+down resize_window shorter 3
|
|
|
|
|
|
|
|
|
|
tab_bar_style powerline
|
2026-10-08 10:17:06 -04:00
|
|
|
tab_powerline_style angled
|
|
|
|
|
tab_bar_align left
|
2026-08-09 14:53:13 -04:00
|
|
|
tab_bar_edge top
|
2026-10-08 10:17:06 -04:00
|
|
|
# always shown, even with one tab: it carries the stack-layout pane indicator
|
|
|
|
|
tab_bar_min_tabs 1
|
2026-08-09 14:53:13 -04:00
|
|
|
|
2026-08-31 10:48:53 -04:00
|
|
|
# Titles come from ~/.config/kitty/tab_bar.py (`{custom}`): the repo the tab's
|
|
|
|
|
# cwd belongs to, or the file nvim is editing when nvim is the active process.
|
|
|
|
|
# Active and inactive tabs share the text; the powerline colors mark the focus.
|
2026-08-31 10:42:46 -04:00
|
|
|
tab_title_template "{custom}"
|
2026-08-09 14:53:13 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# BEGIN_KITTY_FONTS
|
|
|
|
|
font_family family="VictorMono Nerd Font Mono"
|
|
|
|
|
bold_font auto
|
|
|
|
|
italic_font auto
|
|
|
|
|
bold_italic_font auto
|
|
|
|
|
# END_KITTY_FONTS
|
2026-08-15 13:35:58 -04:00
|
|
|
#
|
2026-08-28 14:14:20 -04:00
|
|
|
# Colors + transparency come from the active Omarchy theme
|
|
|
|
|
# (~/.config/omarchy/themes/<name>/kitty.conf). Last include wins, so keep this
|
|
|
|
|
# at the bottom.
|
|
|
|
|
include ~/.local/state/omarchy/current/theme/kitty.conf
|
2026-09-21 16:34:26 -04:00
|
|
|
|
|
|
|
|
font_size 9.0
|