Kitty 0.33.0 released - Changelog

  • Cheetah speed with a redesigned render loop and a 2x faster escape code parser that uses SIMD CPU vector instruction to parse data in parallel ()
  • A new benchmark kitten (kitten __benchmark__) to measure terminal throughput performance
  • Graphics protocol: Add a new delete mode for deleting images whose ids fall within a range. Useful for bulk deletion ()
  • Keyboard protocol: Fix the Enter, Tab and Backspace keys generating spurious release events even when report all keys as escape codes is not set ()
  • macOS: The command line args from macos-launch-services-cmdline are now prefixed to any args from open –args rather than overwriting them ()
  • Allow specifying where the new tab is created for https://sw.kovidgoyal.net/kitty/actions/#action-detach_window ()
  • hints kitten: The option to set the text color for hints now allows arbitrary colors ()
  • icat kitten: Add a command line argument to override terminal window size detection ()
  • A new action https://sw.kovidgoyal.net/kitty/actions/#action-toggle_tab to easily switch to and back from a tab with a single shortcut ()
  • When https://sw.kovidgoyal.net/kitty/actions/#action-clear_terminal add a new type to_cursor_scroll which can be used to clear to prompt while moving cleared lines into the scrollback
  • Fix a performance bottleneck when dealing with thousands of small images ()
  • kitten @ ls: Return the timestamp at which the window was created ()
  • hints kitten: Use default editor rather than hardcoding vim to open file at specific line ()
  • Remote control: Fix –match argument not working for @ls, @send-key, @set-background-image ()
  • Keyboard protocol: Do not deliver a fake key release events on OS window focus out for engaged modifiers ()
  • Ignore https://sw.kovidgoyal.net/kitty/conf/#opt-kitty.startup_session when kitty is invoked with command line options specifying a command to run ()
  • Box drawing: Specialize rendering for the Fira Code progress bar/spinner glyphs
iiGxC, (edited )

This is really impressive! Since they didn’t have a comparison to foot, I ran it on my machine with sway. Here are my results:


<span style="color:#323232;">Kitty old run #1
</span><span style="color:#323232;">Results:
</span><span style="color:#323232;">  Only ASCII chars         : 6.01s      @ 33.3    MB/s
</span><span style="color:#323232;">  Unicode chars            : 5.12s      @ 34.6    MB/s
</span><span style="color:#323232;">  CSI codes with few chars : 4.94s      @ 20.3    MB/s
</span><span style="color:#323232;">  Long escape codes        : 18.08s     @ 43.4    MB/s
</span><span style="color:#323232;">  Images                   : 2m12.09s   @ 4.0     MB/s
</span><span style="color:#323232;">
</span><span style="color:#323232;">kitty new:
</span><span style="color:#323232;">Results:
</span><span style="color:#323232;">  Only ASCII chars         : 2.36s      @ 84.8    MB/s
</span><span style="color:#323232;">  Unicode chars            : 2.06s      @ 86.0    MB/s
</span><span style="color:#323232;">  CSI codes with few chars : 2.05s      @ 48.8    MB/s
</span><span style="color:#323232;">  Long escape codes        : 3.68s      @ 213.0   MB/s
</span><span style="color:#323232;">  Images                   : 2.28s      @ 234.4   MB/s
</span><span style="color:#323232;">
</span><span style="color:#323232;">foot:
</span><span style="color:#323232;">Results:
</span><span style="color:#323232;">  Only ASCII chars         : 1.72s      @ 116.3   MB/s
</span><span style="color:#323232;">  Unicode chars            : 2.51s      @ 70.6    MB/s
</span><span style="color:#323232;">  CSI codes with few chars : 1.31s      @ 76.2    MB/s
</span><span style="color:#323232;">  Long escape codes        : 5.48s      @ 143.0   MB/s
</span><span style="color:#323232;">  Images                   : 2.44s      @ 218.2   MB/s
</span><span style="color:#323232;">
</span><span style="color:#323232;">Kitty old run #2 (after all other runs, to see if poor performance was a fluke)
</span><span style="color:#323232;">Results:
</span><span style="color:#323232;">  Only ASCII chars         : 44.84s     @ 4.5     MB/s
</span><span style="color:#323232;">  Unicode chars            : 19.11s     @ 9.3     MB/s
</span><span style="color:#323232;">  CSI codes with few chars : 34.58s     @ 2.9     MB/s
</span><span style="color:#323232;">  Long escape codes        : 14.06s     @ 55.8    MB/s
</span><span style="color:#323232;">  Images                   : 2m12.08s   @ 4.0     MB/s
</span>

I expected foot to win, and it does win for Only ASCII chars and sci codes by a little bit, but not by much, and not by a meaningful amount, especially when you consider all the other features kitty has. Great work!

Also, this wasn’t a very rigorous test. I had a bunch of other stuff open, and I just ran them one after the other without much cooldown

iiGxC,

How do you run the benchmarks? kitten __benchmark__ says “benchmark is not a known subcommand for kitten”

Edit: I see now that the changelog says that the benchmark kitten was added in this release

  • All
  • Subscribed
  • Moderated
  • Favorites
  • kittyterminal@midwest.social
  • fightinggames
  • All magazines