this post was submitted on 12 Mar 2024
10 points (100.0% liked)

Kitty Terminal Emulator

183 readers
1 users here now

"The fast, feature-rich, GPU based terminal emulator"

A place for discussion and questions about the kitty terminal emulator.

kitty feature overview:

Rules:

Links:

Supported OS:

founded 1 year ago
MODERATORS
10
submitted 8 months ago* (last edited 8 months ago) by [email protected] to c/[email protected]
 
  • 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 (#7005)
  • 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 (#7080)
  • Keyboard protocol: Fix the Enter, Tab and Backspace keys generating spurious release events even when report all keys as escape codes is not set (#7136)
  • macOS: The command line args from macos-launch-services-cmdline are now prefixed to any args from open --args rather than overwriting them (#7135)
  • Allow specifying where the new tab is created for detach_window (#7134)
  • hints kitten: The option to set the text color for hints now allows arbitrary colors (#7150)
  • icat kitten: Add a command line argument to override terminal window size detection (#7165)
  • A new action toggle_tab to easily switch to and back from a tab with a single shortcut (#7203)
  • When clearing 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 (#7080)
  • kitten @ ls: Return the timestamp at which the window was created (#7178)
  • hints kitten: Use default editor rather than hardcoding vim to open file at specific line (#7186)
  • Remote control: Fix --match argument not working for @ls, @send-key, @set-background-image (#7192)
  • Keyboard protocol: Do not deliver a fake key release events on OS window focus out for engaged modifiers (#7196)
  • Ignore startup_session when kitty is invoked with command line options specifying a command to run (#7198)
  • Box drawing: Specialize rendering for the Fira Code progress bar/spinner glyphs
top 2 comments
sorted by: hot top controversial new old
[โ€“] [email protected] 4 points 8 months ago* (last edited 8 months ago)

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:

Kitty old run #1
Results:
  Only ASCII chars         : 6.01s      @ 33.3    MB/s
  Unicode chars            : 5.12s      @ 34.6    MB/s
  CSI codes with few chars : 4.94s      @ 20.3    MB/s
  Long escape codes        : 18.08s     @ 43.4    MB/s
  Images                   : 2m12.09s   @ 4.0     MB/s

kitty new:
Results:
  Only ASCII chars         : 2.36s      @ 84.8    MB/s
  Unicode chars            : 2.06s      @ 86.0    MB/s
  CSI codes with few chars : 2.05s      @ 48.8    MB/s
  Long escape codes        : 3.68s      @ 213.0   MB/s
  Images                   : 2.28s      @ 234.4   MB/s

foot:
Results:
  Only ASCII chars         : 1.72s      @ 116.3   MB/s
  Unicode chars            : 2.51s      @ 70.6    MB/s
  CSI codes with few chars : 1.31s      @ 76.2    MB/s
  Long escape codes        : 5.48s      @ 143.0   MB/s
  Images                   : 2.44s      @ 218.2   MB/s

Kitty old run #2 (after all other runs, to see if poor performance was a fluke)
Results:
  Only ASCII chars         : 44.84s     @ 4.5     MB/s
  Unicode chars            : 19.11s     @ 9.3     MB/s
  CSI codes with few chars : 34.58s     @ 2.9     MB/s
  Long escape codes        : 14.06s     @ 55.8    MB/s
  Images                   : 2m12.08s   @ 4.0     MB/s

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

[โ€“] [email protected] 2 points 8 months ago* (last edited 8 months ago)

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