Kitty 0.49 Terminal Emulator Lands With Custom Shaders and Faster Performance

Kitty 0.49 introduces official custom shader support alongside broad performance improvements, delivering 15–35% higher real-world throughput.

Kitty 0.49, the latest release of the GPU-accelerated terminal emulator, is now available with custom shader support, which opens the door to a wide range of visual effects directly inside Kitty. These can be used for animated backgrounds, focus highlighting, cursor movement effects, mouse-click animations, and other GPU-powered visual customizations.

On the performance side, the developer says that the new version’s real-world throughput should improve by 15% to 35%, depending on the workload.

Text-heavy workloads receive several optimizations. Processing large amounts of text with a scrollback buffer larger than the CPU cache is about 35% faster, while plain ASCII-heavy workloads see gains of roughly 50%. Unicode-heavy workloads improve by about 15%.

UTF-8 decoding has also been optimized through SIMD. ASCII decoding is about 20% faster, while multibyte text improves by roughly 50% on both x86 and ARM systems. Moreover, Kitty now includes an AVX-512 decoder that can provide another 75% improvement for multibyte text on supported CPUs, including Intel Ice Lake and newer processors as well as AMD Zen 4 and later.

Escape-code-heavy workloads also improve, with throughput increasing by about 30% due to changes in how Kitty handles input locking and parses CSI parameters. Additional SIMD-based optimizations for printable ASCII text add roughly 10% gain in large plain-text workloads.

Regarding graphics performance, alpha blending for graphics protocol images and animation frames is now two to 3.5 times faster, while glyph alpha masks use the same vectorized compositing primitives. Kitty caches HarfBuzz shaping results for repeated short runs of text, reducing unnecessary reshaping during redraws.

Beyond performance, Kitty 0.49 introduces several new configuration options and usability improvements. A new window_border_radius option enables rounded window borders, while remap_modifiers allows modifier keys to behave as different modifier keys.

The Splits layout gains an optional proportional sizing policy that preserves manually adjusted window proportions when panes are added, removed, or repositioned. The scrollbar also gets a new scrolled-or-hovered mode that displays it while scrolling or when the pointer moves over the scrollbar area.

Remote control functionality has been expanded with a new kitten @ screenshot command capable of taking pixel-perfect PNG screenshots of an entire OS window, tab, or individual kitty window. Another new command, kitten @ set-os-window-title, allows changing the title of an already-open OS window.

On top of that, you can now drag selected text into other windows or applications when the appropriate mouse action is configured. Vertical tabs handle multi-line titles better, while remember_window_size can now recall whether a window was maximized. Sessions also save and restore layouts other than the currently active one.

Finally, Linux users benefit from a fix for noticeable stalls when displaying screens containing many characters not available in the primary font. Plus, several Wayland-specific issues have been addressed, including high-resolution scroll wheel handling and clipboard sharing between kitty instances running in isolated containers.

For additional details, see the changelog.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Leave a Reply

Your email address will not be published. Required fields are marked *