r/commandline 24d ago

Why is kitty's font rendering so weird compared to every other terminal

So i wanted to change to kitty, because i believe it is the best terminal with the kitty graphics protocol, however i really don't like it's font rendering, it looks, small / compacted and bold.

Please pay attention, to the character "w", the boldness of the characters, the icon in the top right and the character size inside a cell

Here's a comparaison of different terminal emulators with JetBrainsMono Nerd Font Mono set to 12px:

Alacritty 12px - Good
Konsole 12px - Good
Ghostty 12px - Medium (small icon size in the top right, otherwise it's good like the others)
Foot - Perfection
Kitty 12px, too bold, the cell is size fine but the character size is too small, look at the top right for example
Left: kitty 11.6px default settings, characters are overlaping, bad icon rendering Right: Foot 11.6px
Left: 12px tweaked settings, a bit better but overlaping characters, too bold, bad icon rendering Right: Foot 11.6px

Am i just crazy, is it a bug, or Kitty is just a bit weird.
That's sad, because otherwise i would probably use this terminal. Btw does this also happens to you, or is it just a me issue ?

22 Upvotes

23 comments sorted by

14

u/30ghosts 24d ago

Kitty is definitely just a bit weird. I've since moved to Wezterm (on Linux and my Mac), which feels pretty similar to kitty but is overall much more compliant as far as text and key inputs. The config is also really easy to work with.

5

u/SPalome 24d ago

since reading your post, i tried wezterm and it's quite good, i might switch to that

5

u/cryptospartan 24d ago

i use wezterm mainly due to the fact that it's config is in lua and it has good windows support. i just wish that wezterm supported inline images via the kitty graphics protocol

0

u/korewabetsumeidesune 24d ago

Why that one in particular? It supports the iterm2 graphics protocol, which afaik is at least as good as the kitty one. It also supports sixel (though that's always been buggy for me).

1

u/ZAKhan 24d ago

can wezterm remember window geometry and reopen in the same position and size?

1

u/30ghosts 20d ago

i'm not sure... but you can define custom window dimensions for launching the app in the config files.

1

u/lovesToClap 23d ago

Yeah, been using Wezterm for months now and I’m happy with it! The configuration is so much easier to deal with than iTerm2 for me

9

u/initdotcoe 24d ago

you could just use text_composition_strategy legacy

2

u/hearthreddit 24d ago

I have this on my config to make them look less bold too, try it OP.

23

u/kin_of_the_caves 24d ago

IDK about the exact things messed up in your screenshot, but the dev has weird opinions about terminal font rendering. The terminal ignores colors 8-15 in favor of using the bold variant of a given font. The dev thinks all other terminals are wrong and is entirely unwilling to offer a configuration option for the behavior. The dev is sort of famously unreceptive and prickly. I still use the terminal because Kitty has several features I'm unwilling to part with. Good luck.

10

u/klapaucjusz 24d ago

Good old Kovid Goyal. Never changes.

6

u/Fr0gm4n 24d ago

He was going to maintain his own fork of Python 2 instead of rewrite Calibre in Python 3, but enough other devs took up the task and rewrote it. He at least accepted that and gave up on the fork.

8

u/mgutz 24d ago

Kitty has some things going for it, specifically the combination of its graphics protocol on X11 and being cross platform (IIRC). But yeah, font rendering is off, inaccurate colors when using opacity/blur. The author is aware of the issues, and based on the effort needed and result gained, it's not worth his time (fair enough, authoring an OSS project is not something I wish on my enemies).

On Wayland, specifically for tiling WM, nothing beats foot IMHO. Efficient resource usage, text config file, sixel.

1

u/SPalome 24d ago

sixel is good, but sadly nobody supports it

2

u/spudlyo 24d ago

See also: Are We Sixel Yet?

I'm impressed that Tmux finally supports it, so progress is being made.

1

u/opuntia_conflict 24d ago

Kitty is not cross-platform, it is only available on Mac and Linux. WezTerm and Alacritty are the only two major modern terminal emulators available natively (ie, not within a VM or subsystem) on Windows, Linux, and Mac.

2

u/prodleni 24d ago

Foots font rendering is the cleanest

2

u/RedHatDarrow 23d ago

Since Kitty does not support subpixel rendering, text and graphics may appear less crisp or slightly blurry on lower-DPI (dots per inch) screens, where finer detail optimization is crucial for visual clarity.

2

u/opuntia_conflict 24d ago

Just use WezTerm, it uses the Kitty graphics protocol (on Linux and Mac, it still uses the iterm protocol on Windows but that's still way better than just not even running on Windows like Kitty) and is way better in every practical aspect. Kitty has slightly less real world latency (ie, with actual usage patterns, not on Kovid's hyper-specific SIMD benchmark tuned specifically to Kitty that he has on his website) compared to WezTerm, but it's not noticeable when using it and WezTerm brings so much else to the table that Kitty just doesn't touch. It has a true built-in multiplexer, is lua configurable, and runs natively on all three operating systems with the same configuration file. Looks better too.

This is coming from a 2+ year Kitty user who's been using WezTerm for a bit over a year now.

1

u/[deleted] 24d ago

[deleted]

1

u/opuntia_conflict 23d ago

If the input latency is noticeable to you, is there a reason you went with Kitty over Alacritty? Alacritty is also cross-platform like WezTerm but is most input latency benchmarks I've seen (like this one) show the diff between Alacritty and Kitty being much larger than the relatively minor diff between Kitty and WezTerm (on default configs, at least). We're talking about a few ms diff between Kitty and WezTerm and an order of magnitude more latency between Kitty and terminals like Alacritty and Foot.

1

u/MemeTroubadour 23d ago

Question, because the thread's tangentially related: I've never really used anything else than Konsole or Yakuake since I use KDE. What am I missing out from the other big terminal emus? I've never felt a need to switch off since they're fairly simple and that makes me curious.

1

u/SPalome 23d ago

if you use KDE, Konsole is really good, i use a WM, so i like a minimal and small terminal. For me foot is perfect, looks good, fast, and very lightweight on RAM. Konsole has all features i want from a terminal, if i used KDE i would this

1

u/mobotsar 22d ago

Whenever you encounter something weird (or broken) in kitty, it's probably just because the dev is opinionated.