Files
seth-linux-theme/Kitty-setup.md
T
Mortdecai 98f6a38373 feat: kitty-colors.conf — Sethian terminal palette, cursor trail, padding, opacity
Moved from vjtop's machine-only overlay now that steel141 runs it too.
install-kitty-theme.sh copies + includes it after kitty-theme.conf.
Deployed: steel141 (seth) + vjtop.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-29 16:38:46 -04:00

3.6 KiB

Kitty Terminal Setup

Custom kitty terminal theme with a status bar showing system info.

What You Get

  • Borderless window (no titlebar)
  • Dark theme with orange (#D35400) accent
  • Custom tab/status bar at top with:
    • Flat tab style (0-indexed)
    • user@ prefix for non-seth users
    • Right-aligned status: git branch, CPU%, memory, uptime, hostname, clock
    • Nerd Font icons
  • F12 to hide tab bar, Shift+F12 to show it

Prerequisites

  • kitty terminal (>= 0.41)
  • JetBrainsMono Nerd Font (for status bar icons)
  • git (for branch display in status bar)
  • Linux (CPU/memory/uptime read from /proc)

Quick Install

git clone https://git.sethpc.xyz/Seth/seth-linux-theme.git
cd seth-linux-theme
./install-kitty-theme.sh

Or for a specific user's home:

./install-kitty-theme.sh /home/username

Manual Install

1. Install the Nerd Font

mkdir -p /tmp/nerdfonts && cd /tmp/nerdfonts
curl -fLO https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip
sudo mkdir -p /usr/local/share/fonts/NerdFonts
sudo unzip -o JetBrainsMono.zip -d /usr/local/share/fonts/NerdFonts/
sudo fc-cache -f

Verify:

fc-list | grep -i "JetBrains.*Nerd"

2. Copy theme files

cp kitty/kitty-theme.conf ~/.config/kitty/
cp kitty/kitty-colors.conf ~/.config/kitty/
cp kitty/tab_bar.py ~/.config/kitty/
cp kitty/tab-bar-hide.conf ~/.config/kitty/
cp kitty/tab-bar-show.conf ~/.config/kitty/

3. Set the font in kitty.conf

# In ~/.config/kitty/kitty.conf, set:
font_family      JetBrainsMono Nerd Font
font_size        11.0

4. Include the theme

Add these lines to the end of ~/.config/kitty/kitty.conf:

include kitty-theme.conf
include kitty-colors.conf

5. Restart kitty

Close and reopen kitty. Ctrl+Shift+F5 does NOT reload tab bar or font changes.

Files

File Purpose
kitty-theme.conf Tab bar settings, keybindings
kitty-colors.conf Terminal palette, orange cursor + trail, padding, 0.94 opacity (colors reload live; tab bar doesn't)
tab_bar.py Custom tab bar renderer (flat tabs + status area)
tab-bar-hide.conf Config snippet to hide tab bar
tab-bar-show.conf Config snippet to show tab bar

Keybindings

Key Action
F12 Hide tab/status bar
Shift+F12 Show tab/status bar

Status Bar Items

All read from /proc (no subprocess overhead except git):

Item Source Icon
Git branch git rev-parse (1s timeout)
CPU % /proc/stat (delta between refreshes)
Memory /proc/meminfo (used/total in GB) 󰍛
Uptime /proc/uptime
Hostname os.uname().nodename
Clock datetime.now() (HH:MM)

Customization

  • Colors: Edit _ORANGE, _DIM, _TAB_BG, _BAR_BG in tab_bar.py
  • Status items: Add/remove cells in the if is_last: block in tab_bar.py
  • Refresh rate: Change REFRESH_SECS in tab_bar.py (seconds)
  • User prefix: The _prefix logic in tab_bar.py shows user@ for non-seth users

Troubleshooting

  • Icons show as boxes: Nerd Font not installed or kitty not using it. Check font_family in kitty.conf.
  • Status bar not updating: REFRESH_SECS timer in tab_bar.py drives redraws (kitty has no tab_bar_timeout option); check kitty stderr for tab_bar.py errors.
  • F12 does nothing: Ensure allow_remote_control yes and listen_on unix:/tmp/kitty-{kitty_pid} are in config. Restart kitty (not just reload).
  • CPU shows "...": Normal on first draw — needs two samples to compute delta.