# vim:fileencoding=utf-8:ft=conf:foldmethod=marker # ═══════════════════════════════════════════════════════════════════════════════ # KITTY TERMINAL CONFIGURATION # Following the μέτρον principle: measure, proportion, and what is fitting # # Philosophy: # - Performance without excess # - Visual clarity without distraction # - Keyboard efficiency without complexity # - Durable choices that age well # ═══════════════════════════════════════════════════════════════════════════════ #: Fonts {{{ # Font choice rationale: Dank Mono provides excellent readability with # tasteful ligatures that aid code comprehension without being excessive # font_family Dank Mono # bold_font Dank Mono #italic_font Dank Mono # bold_italic_font Dank Mono # Font choice rationale: Iosevka Term SS08 has ultra-consistent rhythm, beautiful slant, clear punctuation font_family Iosevka Term SS08 bold_font Iosevka Term SS08 italic_font Iosevka Term SS08 bold_italic_font Iosevka Term SS08 # 16pt provides optimal readability on modern displays without strain font_size 18.0 # Fallback fonts for symbols and special characters # This ensures proper rendering of powerline, nerd font icons, and unicode symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols symbol_map U+276F-U+2771,U+2500-U+259F Fira Code Nerd Font symbol_map U+E000-U+E00A,U+E100-U+E117,U+E200-U+E2A9,U+E300-U+E3E3,U+E400-U+E4CF,U+E500-U+E5FF,U+E600-U+E6FF,U+E700-U+E7C5,U+E800-U+E8FF,U+EA00-U+EBFF,U+EC00-U+EE0C,U+F000-U+F2E0,U+F300-U+F372,U+F400-U+F533,U+F600-U+F64F,U+F700-U+F7FF,U+F800-U+F8FF,U+F900-U+F9FF,U+FA00-U+FAFF,U+FB00-U+FBFF,U+FC00-U+FCFF,U+FD00-U+FDFF,U+FE00-U+FE0F,U+FE30-U+FE4F Fira Code Nerd Font # Mathematical symbols fallback symbol_map U+2200-U+22FF Fira Code Nerd Font # Box drawing and block elements with better alignment symbol_map U+2500-U+259F Fira Code Nerd Font # Powerline symbols (in case PowerlineSymbols font is not available) symbol_map U+E0A0-U+E0A2,U+E0B0-U+E0B3 Fira Code Nerd Font # Enable ligatures for better code readability (!=, =>, etc.) disable_ligatures never # Adjust vertical spacing for better readability (5% more line height) adjust_line_height 105% # Box drawing characters should align properly box_drawing_scale 0.001, 1, 1.5, 2 #: }}} #: Cursor customization {{{ # Block cursor for clear visibility cursor_shape block # Gentle blinking to locate cursor without distraction cursor_blink_interval 0.5 cursor_stop_blinking_after 15.0 #: }}} #: Scrollback {{{ # Generous but not excessive scrollback (10K lines) scrollback_lines 10000 # Use less with better options for scrollback viewing scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER # Fill new space when window is enlarged for continuity scrollback_fill_enlarged_window yes #: }}} #: Mouse {{{ # Hide mouse quickly when typing mouse_hide_wait 1.0 # URL handling with clear visual feedback url_color #0087bd url_style curly detect_urls yes # Smart clipboard behavior - copy on select for macOS workflow copy_on_select clipboard # Remove trailing spaces when copying (clean data) strip_trailing_spaces smart # Better word selection boundaries for programming select_by_word_characters @-./_~?&=%+# # Focus follows mouse for efficient window management focus_follows_mouse no #: }}} #: Performance tuning {{{ # Balanced performance settings repaint_delay 10 input_delay 3 # Sync to monitor to prevent tearing sync_to_monitor yes #: }}} #: Terminal bell {{{ # Visual bell instead of audio (less disruptive) enable_audio_bell no visual_bell_duration 0.1 window_alert_on_bell yes bell_on_tab yes #: }}} #: Window layout {{{ # Remember window size for consistency remember_window_size yes # Optimal initial window size for modern development # 120 columns: fits side-by-side code views, exceeds 80-char standard # 35 rows: comfortable viewing without overwhelming initial_window_width 120c initial_window_height 35c # All layouts available but start with stack enabled_layouts tall:bias=70,stack,fat,grid,horizontal,vertical # Subtle window borders for multi-window clarity window_border_width 1pt draw_minimal_borders yes # Small margin for visual breathing room window_margin_width 2 single_window_margin_width 0 # Padding inside windows for readability window_padding_width 8 # Center cell area when size doesn't divide evenly placement_strategy center # Nord-themed window border colors - gentle contrast active_border_color #88c0d0 inactive_border_color #4c566a bell_border_color #bf616a # Slight fade for inactive windows (maintains focus) inactive_text_alpha 0.8 # Hide decorations for more screen space hide_window_decorations no # Confirm before closing windows with multiple tabs confirm_os_window_close 2 #: }}} #: Tab bar {{{ # Tab bar at top (conventional placement) tab_bar_edge top # Minimal tab bar that appears only when needed tab_bar_min_tabs 2 tab_bar_style powerline tab_powerline_style slanted # Clear tab titles with index for easy navigation tab_title_template "{index}: {title}" active_tab_title_template "[{index}] {title}" # Nord-themed tab colors - easy on the eyes active_tab_foreground #d8dee9 active_tab_background #5e81ac active_tab_font_style bold inactive_tab_foreground #4c566a inactive_tab_background #3b4252 inactive_tab_font_style normal #: }}} #: Color scheme {{{ # Nord color scheme - gentle on eyes with excellent contrast # Specifically chosen for users with vision considerations foreground #d8dee9 background #2e3440 # Slightly more opacity for reduced eye strain background_opacity 0.92 # Subtle selection colors that don't shock selection_foreground #2e3440 selection_background #88c0d0 # ANSI colors (Nord palette - muted but clear) # Dark variants color0 #3b4252 color8 #4c566a # Red - muted but visible color1 #bf616a color9 #bf616a # Green - gentle on eyes color2 #a3be8c color10 #a3be8c # Yellow - warm, not glaring color3 #ebcb8b color11 #ebcb8b # Blue - calm but distinct color4 #81a1c1 color12 #81a1c1 # Magenta - subtle purple color5 #b48ead color13 #b48ead # Cyan - soothing blue-green color6 #88c0d0 color14 #8fbcbb # White/light grays color7 #e5e9f0 color15 #eceff4 #: }}} #: Advanced {{{ # Use user's default shell shell . # Use configured editor editor . # Keep terminal open after process exits (for debugging) close_on_child_death no # Allow remote control for automation allow_remote_control yes listen_on unix:/tmp/kitty-{kitty_pid} # Disable update checks (handle via homebrew) update_check_interval 0 # Secure clipboard settings clipboard_control write-clipboard write-primary read-clipboard # Standard terminfo term xterm-kitty #: }}} #: OS specific tweaks {{{ # macOS optimizations macos_titlebar_color background macos_option_as_alt yes macos_quit_when_last_window_closed no macos_window_resizable yes macos_thicken_font 0 macos_traditional_fullscreen no macos_show_window_title_in window #: }}} #: Keyboard shortcuts {{{ # Keep defaults minimal, add only essential customizations kitty_mod cmd+shift # Font size adjustments map cmd+plus change_font_size all +1.0 map cmd+minus change_font_size all -1.0 map cmd+0 change_font_size all 0 # Window management map kitty_mod+enter new_window_with_cwd map kitty_mod+n new_os_window_with_cwd # Tab management map cmd+t new_tab_with_cwd map cmd+w close_tab map cmd+] next_tab map cmd+[ previous_tab map cmd+1 goto_tab 1 map cmd+2 goto_tab 2 map cmd+3 goto_tab 3 map cmd+4 goto_tab 4 map cmd+5 goto_tab 5 map cmd+6 goto_tab 6 map cmd+7 goto_tab 7 map cmd+8 goto_tab 8 map cmd+9 goto_tab 9 # Layout management map kitty_mod+l next_layout map kitty_mod+z toggle_layout stack # Scrollback search (crucial for productivity) map kitty_mod+/ launch --type=overlay --stdin-source=@screen_scrollback /opt/homebrew/bin/fzf --no-sort --no-mouse --exact -i # URL/path hints map kitty_mod+e open_url_with_hints map kitty_mod+p>f kitten hints --type path --program - map kitty_mod+p>l kitten hints --type line --program - map kitty_mod+p>w kitten hints --type word --program - # Clear terminal properly map cmd+k clear_terminal reset active # Reload configuration map kitty_mod+f5 load_config_file # Window resizing - essential for split panes map kitty_mod+left resize_window narrower map kitty_mod+right resize_window wider map kitty_mod+up resize_window taller map kitty_mod+down resize_window shorter map kitty_mod+home resize_window reset #: }}} # ═══════════════════════════════════════════════════════════════════════════════ # Design Rationale: # # 1. Font: Iosevka Term SS08 has ultra-consistent rhythm, beautiful slant, clear punctuation # 2. Symbols: Comprehensive fallback chain for nerd fonts, powerline, unicode # 3. Colors: Dracula theme for proven readability and wide tool support # 4. Performance: Balanced settings that prioritize responsiveness # 5. Shortcuts: Minimal additions to defaults, focusing on frequent tasks # 6. Layout: Thoughtful spacing and borders for multi-window work # 7. macOS: Native integration while maintaining terminal efficiency # 8. Window Size: 120x35 chars - optimal for code reading and side-by-side splits # # The symbol_map entries ensure that powerline prompts, file icons, git symbols, # and other special characters render correctly even when not in the primary font. # # The 120-column width allows comfortable viewing of code up to 100 chars with # some margin, while 35 rows provides good context without overwhelming. # # This configuration embodies "what is fitting" - no more, no less. # ═══════════════════════════════════════════════════════════════════════════════