Hi, I just downloaded the project and was reading the code and playing a bit with the examples. Not sure if it's just me, but I tried on Ghostty, Wezterm and Kitty and the demos that don't have some key handler don't render anything (for example alpha_demo, and similar others). The ones that have key bindings start to render after I hit some key.
For a while I've been working on some libraries for terminals and I implemented a VT500 parser that handles a bunch of ANSI sequences. One of them is the Kitty keyboard extension to better disambiguate keys (ctrl, alt, super, hyper, etc). You send the raw bytes and receive a parsed event.
There's another library that helps with unicode character width. Instead of checking each character against a bunch of conditions, it generates pre-calculated tables that resolve the character data in three nested lookups. It's an algorithm used by a bunch of libraries. In the readme there is a description and there is a link to an article with more depth.
They are termparser and termunicode if you want to take a look.
I'm super interested how the project evolve, all the best!
Hi, I just downloaded the project and was reading the code and playing a bit with the examples. Not sure if it's just me, but I tried on Ghostty, Wezterm and Kitty and the demos that don't have some key handler don't render anything (for example alpha_demo, and similar others). The ones that have key bindings start to render after I hit some key.
For a while I've been working on some libraries for terminals and I implemented a VT500 parser that handles a bunch of ANSI sequences. One of them is the Kitty keyboard extension to better disambiguate keys (ctrl, alt, super, hyper, etc). You send the raw bytes and receive a parsed event.
There's another library that helps with unicode character width. Instead of checking each character against a bunch of conditions, it generates pre-calculated tables that resolve the character data in three nested lookups. It's an algorithm used by a bunch of libraries. In the readme there is a description and there is a link to an article with more depth.
They are termparser and termunicode if you want to take a look.
I'm super interested how the project evolve, all the best!