Skip to content

miniex/dotfiles.kitty

Repository files navigation

Kitty Terminal Configuration

Polished Kitty config — Nerd Font integration, custom gradient tab bar, leader keychain, dark/light theme files.

Features

  • D2Coding — Korean-friendly monospace.
  • Nerd Font — PUA catch-all to Symbols Nerd Font Mono (Powerline, FA, MDI, Devicons, Codicons).
  • Themesthemes/dark.conf (default) / themes/light.conf. Swap the include, or kitten themes for auto dark/light (kitty 0.38+).
  • Mouse-hide on type, long-cmd notification (≥10s unfocused).
  • Quiet — bell off, no update ping.
  • Paste guarded — URL quote, control-code strip, confirm if large.
  • 100 k scrollback + 4096 MB pager cache.
  • Leader chordCtrl+Shift+Space prefix, then an action key.
  • Splits — splits is the default layout; leader bindings for hsplit/vsplit, h/j/k/; focus, arrow-key resize, zoom, close (Leader>L toggles splits ↔ stack).
  • Full theme palette — ANSI 16 + cursor/selection/url/marks/scrollbar handle, gradient-aligned.
  • Command paletteLeader>P fuzzy-finds every action.
  • Scrollback nav — hover scrollbar, [/] prompt jumps, / search, g/y last-cmd output/copy.
  • Ctrl-L — clears screen + scrollback in one shot.
  • Neovim scrollback pagerq to quit, full vim motions.
  • kitty @ remote controlsocket-only, per-PID socket at /tmp/kitty-{kitty_pid}.
  • kitten ssh — auto-pushes terminfo, recolors per host (ssh.conf).
  • Dropdown terminal — Quake-style quick-access-terminal.conf, toggled by a global shortcut.
  • File pickerLeader>F fuzzy choose-files; inserts the selected path at the prompt.
  • Startup sessionstartup.session opens the first window in the splits layout.
  • Kawaii Tab Bar (tab_bar.py):
    • Cell-level gradient #98ABCC#E890B0; tab N owns slice (N-1)/total → N/total, continuous at boundaries.
    • Rounded Powerline-Extra caps on the first/last tab; divider between tabs.
    • Glyphs: (→ on attention) · title · (→ superscript when >1 window group).
    • Active-tab fade muted ↔ white over 300 ms; bold persists.
    • Bar background follows the active theme via get_options().
    • Fixed-width tabs (FIXED_TAB_WIDTH = 24 cells); shrinks only when kitty's per-tab budget forces it.

Installation

sh -c "$(curl -fsSL https://raw.githubusercontent.com/miniex/dotfiles.kitty/main/install.sh)"

Clones to ~/.config/kitty, auto-detects Linux/macOS, writes os.conf. Then install D2Coding and Symbols Nerd Font Mono.

Configuration

Setting Value
Font D2Coding (size from OS profile)
Color Scheme themes/dark.conf
Tab Bar custom gradient #98ABCC#E890B0, bottom
Remote Control socket-only · unix:/tmp/kitty-{kitty_pid}
Scrollback 100 k lines · Neovim pager · 4096 MB cache · hover scrollbar
Paste Safety Quote URLs · strip control codes · confirm if large
Bell Audio off, window alert on
Window Close Confirm only if a non-shell program is running (-1)
Update Check Disabled
Cmd-finish Notify invisible (10s threshold)

Themes

Color-scheme only — opacity, fg/bg, borders, tab_bar_background, ANSI 16, cursor/selection/url/marks.

File Look
themes/dark.conf Cherry-blossom on near-black (default)
themes/light.conf Cherry-blossom on warm cream

Switch via the include line, or kitten themes --reload-in=all for system auto-switching.

OS Profiles

File Settings
os/linux.conf font_size 12.0
os/macos.conf font_size 18.0, titlebar blended into bg, Ctrl+Shift+Z zoom, Cmd+C/V copy/paste, remember window position/size

Re-run sh install.sh to switch, or edit os.conf directly.

Key Bindings

Tab moveCtrl+Shift+J/K (back/fwd) · Ctrl+Shift+1…9/0 jump to tab 1–10 · Ctrl+Shift+Z zoom (macOS).

ClipboardCtrl+Shift+C/V copy/paste; on macOS Cmd+C/V work too.

Font sizeCtrl+Shift+= / Ctrl+Shift+- step ±1.0 · Ctrl+Shift+Backspace reset.

Hints (custom)Ctrl+Shift+U URL · Ctrl+Shift+I IP · Leader>G git hash → clipboard. Ctrl+Shift+U shadows kitty's Unicode-input default, so it is rebound to Leader>U. Defaults still cover open/insert (Ctrl+Shift+E opens URL, etc.).

Shell-integrationCtrl+Shift+G/Y last-cmd output/copy · Ctrl+Shift+/ search scrollback · Ctrl+Shift+[/] prev/next prompt · Ctrl+Shift+L clear screen + scrollback.

Leader keychain — prefix Ctrl+Shift+Space, then:

Key Action Key Action
N New tab (cwd) R Reload config
W New window (cwd) T Themes picker
X Close tab L Next layout
E Edit kitty.conf C Clear scrollback
- Split horizontal \ Split vertical
H Focus left J Focus down
K Focus up ; Focus right
Z Zoom (stack) Q Close window
P Command palette G Git-hash hint
←/→ Resize narrow/wide ↑/↓ Resize tall/short
0 Reset split size U Unicode input
F File picker

SSH

ssh.conf is auto-loaded by kitten ssh. Alias ssh to it only inside kitty, so other terminals, TTYs, and remote hosts keep the real ssh:

# fish — ~/.config/fish/config.fish
if set -q KITTY_WINDOW_ID
    alias ssh='kitten ssh'
end
# bash/zsh — ~/.bashrc or ~/.zshrc
[ -n "$KITTY_WINDOW_ID" ] && alias ssh='kitten ssh'

For a host where kitten ssh misbehaves (restricted shells, network gear), bypass the alias with command ssh host (or \ssh host). git, rsync, and scp call the ssh binary directly, so they are unaffected.

Default schemes: cherry-blossom (*), Red Sands (prod-*/*.prod, safety net), Solarized Dark (staging-*).

Dropdown terminal

quick-access-terminal.conf defines a Quake-style drop-down terminal that inherits this config. It has no in-kitty binding — bind its toggle command to a global shortcut (run = show, run again = hide):

kitten quick-access-terminal

Linux: your desktop's custom-shortcut settings (GNOME/KDE). macOS: run it once, then System Settings → Keyboard → Shortcuts → Services.

Sessions

startup_session loads startup.session, which opens the first window in the splits layout. Edit that file to predefine panes, tabs, or startup programs — commented examples are included.

Companion repos

Contributing

See CONTRIBUTING.md. ./tools/format.sh and ./tools/lint.sh must pass clean.

License

MIT © 2026 Han Damin.