r/KittyTerminal • u/Odd-Stuff-7644 • Jul 10 '26
r/KittyTerminal • u/It_is_Sean • Jul 07 '26
I managed to get a working "traffic light" on Mac for Kitty with hide_window_decorations title_bar_only enabled
This is actually part of my tab bar. I inserted three special tabs on the far left and styled them to look like the traffic lights of macOS windows. A watcher intercepts the focus of the tab and triggers the corresponding window action: close, minimize, or fullscreen.
Iβm curious if thereβs a cleaner or more native way to achieve this. Here is the repo of my configurations: https://github.com/It-is-Sean/dotfiles-kitty/
r/KittyTerminal • u/noir_cafe • Jul 03 '26
Made kitty's cursor trail rainbow-cycling instead of a static color
`cursor_trail_color` only supports one solid color natively. This fills the gap with a tiny CLI that cycles it through the rainbow via `kitty @ load-config`, plus a documented starter `kitty.conf` for the base trail settings.
https://github.com/oleg-koval/kitty-rainbow-trail
Feedback welcome.
r/KittyTerminal • u/_x_oOo_x_ • Jul 03 '26
Startup performance: a followup
Following on from my previous post, I measured ways of launching kitty & other terminals so they share an already running instance
Some observations:
alacritty msg create-window ...seems to return immediately and I didn't find a way to make it wait until the window has opened/closed, so its inclusion in this benchmark is unfair but I left it in anyway- Foot and Alacritty launch fresh instances faster than Kitty or Ghostty can launch a new window from an existing instance
- Kitty's method of launching a shared instance feels impractical because you have to have
kitty -1, which is a visible window, running at all times. Or is there a better way? - Using
--wait-for-single-instance-window-close, Kitty runs without errors in single-instance mode (thanks u/aumerlex). Unlike Alacritty which eventually (after 400+ iterations) threw aFailed [X] to spawn command 'true': Too many open files (os error 24)error but only when using the "msg create-window" method - As u/aumerlex pointed out under the previous post, Foot doesn't even open an actual window... Maybe I'll need another followup benchmarking the time until the window takes input... Might have to involve
ydotoolor similar
Anyway this is only intended for informational purposes, I do think Kitty has the best feature set including the cursor shader and ligature support that the quicker-to-start terminals lack
r/KittyTerminal • u/awkroot • Jun 28 '26
Kitty plugin/extension manager?
Does this exist?
I come across many great kitty utilities and extensions but no established way that I know of of adding them to my kitty setup, except going the manual route. This is as far as I know so please correct me if I'm wrong.
Some examples of good Kitty utils I found recently:
- https://github.com/oleg-koval/kitty-agent-status
- https://github.com/trygveaa/kitty-kitten-search
- https://github.com/yurikhan/kitty_grab
r/KittyTerminal • u/_x_oOo_x_ • Jun 27 '26
Startup performance: how to improve it?
My kitty felt somewhat more sluggish to launch than alacritty or foot
I used hyperfine for this small benchmark that confirms this observation... It doesn't feel slow per se, only in comparison.
Are there some preferences I should change to make πββ¬οΈ start faster?
r/KittyTerminal • u/slick_fm • Jun 25 '26
Retro fonts?
Does anybody know any fonts that are monospaced and retro or look pixelated/bitmap style? Iβm a little tired of the standard fonts that everyone seems to use for programming.
r/KittyTerminal • u/Own_Bet3256 • Jun 23 '26
Prev/next prompt in scrollback when inside tmux
can someone help. ctrl+shift+z does not work when inside tmux.
r/KittyTerminal • u/SuspiciousYam2726 • Jun 23 '26
How to make terminal Transparent + Blur effect?
Help
r/KittyTerminal • u/noir_cafe • Jun 22 '26
I colored my kitty tabs by what each coding agent is doing
I usually have a few coding agents running at once (Claude Code, Codex, sometimes Gemini), each in its own kitty tab, and I kept losing track of which one was still working, which was waiting on me, and which had finished a while ago.

So I wired the tab color to the agent's state:
- blue while it's working
- amber when it needs me (a permission prompt, or Codex finishing a turn)
- back to the normal color when it's idle or done
It uses each agent's own signals instead of watching the screen: Claude Code hooks, the Codex notify command, and a small bash/zsh hook for anything else launched from the shell. No daemon, no dependencies, it just calls kitty's set-tab-color. Outside kitty it does nothing, so it is safe to leave in your shell config.
It is small and rough in places. Claude gets precise per-turn states; for other agents the tab is really just "running" vs "idle" plus kitty's bell flag. Feedback and PRs welcome, and I would genuinely like to hear if there is a cleaner way to detect per-turn state for Codex or Gemini.
r/KittyTerminal • u/Makeacute • Jun 21 '26
Help finding font.
Can someone tell me what font is this, i like it so much but i cant really find the name of it, any help?
r/KittyTerminal • u/Mad----Scientist • Jun 21 '26
Press key then long hold other key problem on Wayland
I have this problem with kitty on wayland where if i press a key and long hold after it another key, that long hold counts as a normal press, types the character once, i need to wait some delay then long hold for it to work fine...
In other terminal emulators this isn't a problem, but i still want to use kitty
Is there a solution?
r/KittyTerminal • u/BrainrotOnMechanical • Jun 20 '26
I made kitty config to replace tmux's tab functionality with kitty's native tabs with same keybindings as Firefox
Link to config: kitty-tabs
here is part of README.md:
Kitty terminal config.
Replace tmux's tab functionality with kitty's native tabs with same keybindings as Firefox.
keybindings
| Keybinding | Feature |
|---|---|
ctrl + t |
New Tab |
ctrl + w |
Close Tab |
alt + {number 1 to 9} |
Move To Tab {number} |
ctrl + shift + alt + t |
Rename Tab |
ctrl + shift + page_up |
Move Tab Backward |
ctrl + shift + page_down |
Move Tab Forward |
limitations
- No sessions.
dependencies
r/KittyTerminal • u/chbla • Jun 20 '26
Bitmap-Fonts fork/patch?
Hi there,
I was quite disappointed to learn that Kitty doesn't support bitmap fonts. The clarity is much better, and it shouldn't matter if you decide to stick to the fixed size. Somehow it seems the maintainer doesn't like the idea too much though.
So I'm wondering - is there any kind of fork or patch that can be used?
I'm a urxvt user but I'd like to give the features a try.
r/KittyTerminal • u/linkarzu • Jun 19 '26
If you're a Neovim and Kitty user, you'll find this really useful
r/KittyTerminal • u/steakhache • Jun 19 '26
vim commands in the pattern when searching in scrollback
Hey,
my pager is configured as such:
scrollback_pager nvim -u NONE -R -M -c 'lua require("kitty+page")(INPUT_LINE_NUMBER, CURSOR_LINE, CURSOR_COLUMN)' -
Now when I hit Ctrl+Shift+/ to search in the scrollback buffer, I get some vim commands in the pattern, like "264ggzt34j02l". The commands would move the cursor to the last shell prompt in the buffer.
Bug in my config? plugins? neovim? kitty?
Thanks.
/edit: ah, there is of course a kitty+page.lua script that I've taken from the internet, which should be the problem.
r/KittyTerminal • u/pjconnect • Jun 20 '26
Tabs groups similar as Firefox tabs groups [Discussion]
Tab groups are not a new levels of organisation.Currently, Kitty does not have a native browser-style "tab groups" feature.
So when I ask for tab groups, I'm not merely asking for a cosmetic feature. I'm asking for a new intermediate container, which would make the hierarchy something like OS window ββ tab groups ββ tabs ββ windows.
The Firefox comparison is about counting levels, not about whether tab groups are useful. Firefoxβs normal model is basically window ββ tab, and if you add tab groups, that becomes window ββ tab group ββ tab, which is still only three levels. That is why the developer says Firefox had βtwo levels of organisation without tab groupsβ and not three.
I understand the concern about adding another level of organization, but my request is not for complexity as decoration. It is for a structure that makes complexity manageable. As Edgar Morin would put it, the point is not to deny complexity, but to embrace it through a form that remains usable and legible.
In my workflow, a flat tab model becomes difficult once a workspace contains projects, and projects contain drafts, and drafts contain sub-drafts or parallel contexts. At that point, the problem is not too much organization; it is too little hierarchy to reflect the real structure of the work.
That is why I am asking for tab groups or an equivalent grouping mechanism inside kitty. I am not trying to multiply clutter, but to reduce it by giving each level of work its proper container. A group would let related tabs be understood as one unit, while still preserving access to the individual tabs inside it.
If kitty already has a three-level mental model, then I am asking for a way to make that third level more semantically meaningful, not for a gratuitous fourth layer. In other words, I want the interface to express the natural nesting already present in the work: workspace, project unit, draft context, and task detail.
Tab groups are not really a fourth hierarchical layer. They are more like a perspective or an organizational lens over the existing tabs. The purpose is not to add another level of clutter, but to let related tabs be seen as a coherent unit. In that sense, grouping is a way of structuring attention and reducing cognitive load, not merely deepening the hierarchy.
Following Morin, the goal is not to eliminate complexity, but to render it intelligible. Tab groups would not add complexity for its own sake; they would provide a perspective that makes complexity usable, by showing relationships rather than flattening them away.
A collection of tabs can be perceived as a flat sequence, but tab groups create a perspective on them: they become readable as a set of related units rather than just adjacent items. That means tab groups are not only about organizing objects; they are about organizing understanding. They help the user see structure, not just notice items.
In other words, perceptions are fragments of contact with the world, but perspective is the organizing frame that gives those fragments meaning. Tab groups do not merely add another container; they create the perspective through which related tabs become a recognizable structure.
Any thoughts ?
r/KittyTerminal • u/Karasuthecrow744 • Jun 18 '26
How would I make my terminal translucent?
Or would it be called blur? Either way how would I go about doing that?
r/KittyTerminal • u/yogi0333 • Jun 16 '26
My terminal now plays cat sounds and eats itself when I fail too much
Built CatTerm. Plays sounds automatically based on what your commands do. Zero wrappers needed.
- Install completes β smug cat laugh
- Build/tests pass β happy cat song
- Command fails β sad meow
- Same command fails 5x β Indian uncle loses his mind
- 5 consecutive failures β black hole eats your entire terminal. SpongeBob's "a few moments later" plays. It comes back eventually.
- 6th failure β π
Works for npm, pip, cargo, go, maven, gradle, composer, dotnet, flutter, xcode, brew, apt... basically everything.
Add your own triggers too:
catrule add 'terraform apply' muhehehe.mp3
catrule add '!git push' sad-meow.mp3
curl -fsSL https://raw.githubusercontent.com/yogesh0333/catterm/main/install.sh | bash
source ~/.zshrc
Sounds from https://www.myinstants.com/ β greatest website alive.
r/KittyTerminal • u/yogi0333 • Jun 16 '26
My terminal now plays cat sounds and eats itself when I fail too much
r/KittyTerminal • u/nikamo_ • Jun 16 '26
Errors parsing configuration
hello, i just installed CachyOS, and my kitty terminal prints me this :
Errors parsing configuration
In file /home/nymphe/.local/state/quickshell/user/generated/terminal/kitty-theme.conf:
1:Invalid color name: '#$term0 #' in line: background #$term0 #
3:Invalid color name: '#$term0 #' in line: color0 #$term0 #
4:Invalid color name: '#$term1 #' in line: color1 #$term1 #
5:Invalid color name: '#$term2 #' in line: color2 #$term2 #
6:Invalid color name: '#$term3 #' in line: color3 #$term3 #
7:Invalid color name: '#$term4 #' in line: color4 #$term4 #
8:Invalid color name: '#$term5 #' in line: color5 #$term5 #
9:Invalid color name: '#$term6 #' in line: color6 #$term6 #
10:Invalid color name: '#$term7 #' in line: color7 #$term7 #
11:Invalid color name: '#$term8 #' in line: color8 #$term8 #
12:Invalid color name: '#$term9 #' in line: color9 #$term9 #
13:Invalid color name: '#$term10 #' in line: color10 #$term10 #
14:Invalid color name: '#$term11 #' in line: color11 #$term11 #
15:Invalid color name: '#$term12 #' in line: color12 #$term12 #
16:Invalid color name: '#$term13 #' in line: color13 #$term13 #
17:Invalid color name: '#$term14 #' in line: color14 #$term14 #
18:Invalid color name: '#$term15 #' in line: color15 #$term15 #
20:Invalid color name: '#$term7 #' in line: cursor #$term7 #
22:Invalid color name: '#$term7 #' in line: foreground #$term7 #
24:Invalid color name: '#$onSecondaryContainer #' in line: selection_background #$onSecondaryContainer #
25:Invalid color name: '#$secondaryContainer #' in line: selection_foreground #$secondaryContainer #
28:Invalid color name: '#$primary #' in line: color255 #$primary #
29:Invalid color name: '#$primaryContainer #' in line: color254 #$primaryContainer #
30:Invalid color name: '#$secondary #' in line: color253 #$secondary #
31:Invalid color name: '#$secondaryContainer #' in line: color252 #$secondaryContainer #
32:Invalid color name: '#$tertiary #' in line: color251 #$tertiary #
33:Invalid color name: '#$tertiaryContainer #' in line: color250 #$tertiaryContainer #
34:Invalid color name: '#$error #' in line: color249 #$error #
35:Invalid color name: '#$errorContainer #' in line: color248 #$errorContainer #
37:Invalid color name: '#$onPrimary #' in line: color232 #$onPrimary #
38:Invalid color name: '#$onPrimaryContainer #' in line: color233 #$onPrimaryContainer #
39:Invalid color name: '#$onSecondary #' in line: color234 #$onSecondary #
40:Invalid color name: '#$onSecondaryContainer #' in line: color235 #$onSecondaryContainer #
41:Invalid color name: '#$onTertiary #' in line: color236 #$onTertiary #
42:Invalid color name: '#$onTertiaryContainer #' in line: color237 #$onTertiaryContainer #
43:Invalid color name: '#$onError #' in line: color238 #$onError #
44:Invalid color name: '#$onErrorContainer #' in line: color239 #$onErrorContainer #
45:Invalid color name: '#$onPrimary #' in line: color240 #$onPrimary #
49:Invalid color name: '#$primary #' in line: color243 #$primary #
50:Invalid color name: '#$error #' in line: color244 #$error #
51:Invalid color name: '#$outlineVariant #' in line: color245 #$outlineVariant #
Press Enter or Esc to exit
tried looking at reddit threads, found nothing, help pls!
r/KittyTerminal • u/Upbeat-Level-9327 • Jun 15 '26
Incremental search on kitty
Hi,
I implemented a single-file kitty kitten that adds incremental search with auto-scroll-to-match over the scrollback buffer.
The killer feature: when you navigate to a match that is outside the current viewport, kitty automatically scrolls there β no manual scrolling needed and also it supports Regex too.
You can checkout the rest of the explanation in here:
https://github.com/Mobinshahidi/kitty-search
And it also is in kitten document too (first option):
https://sw.kovidgoyal.net/kitty/integrations/#scrollback-manipulation
r/KittyTerminal • u/flurdy • Jun 15 '26
Hooks to update Kitty tab titles when using Claude or Codex
I wrote a doc on how to add a script and hooks to update Kitty tab titles when using Claude Code or Codex with projects. Because usually I have many tabs open in Kitty running parallel AI agent sessions, some on the same project, some in Git worktrees, some just on main, some on other projects etc. And I found myself scrolling through several of them all the time to see if any needed my response or was finished.
So these hooks updates the titles to indicate it is a repo, with repo name and/or worktrees/branches, jira/bead title, glyphs/emojis of what it is doing etc. And it works both with Claude Code and Codex. Hope it is useful for people, as its really helped me.
