Status update July 2023
Hey there, it's been a while! I've had much fun those months. Let's dig in.
With Marteen we worked a lot to improve Wvkbd, the virtual keyboard we use on Sxmo.
We had a look at existing layers, and we cleaned up a lot of them. Our goal was to reduce the miss-input frequency. We limited the number of keys per layers, and placed them in consistent positions.
To reduce miss-inputs, we had to give more feedbacks to the user. When you press a key, you don't really know if your finger touched the correct square, until you look at the typed key in the focused surface. To help on this, I added a new popup surface that display the typed key on top of your finger. This wasn't as easy as it looks like, because I had to figure out how to use xdg_popups with layer_shells. It feels very pleasant to use, and we hope it will help typing overhaul.
I also re-worked the Wayland surface initialization flows, and added fractional-scaling-v1 support. Now I expect for Wvkbd to appear perfect on the first frame. We still are waiting for a release of Sway for this problem to be fully closed.
I have spent most of the last month coding time with Hare. First to bump my personal projects to fix recent Hare API breaking changes. But also to clean up third-party libraries that I use, or that I want to use on new projects.
I am working on a Wayland GUI speed-running program in Hare. I mean a GUI program to time runs and splits, display gold splits, display time deltas, or compute the best possible time. This is the kind of program that the speed-runners use when they live streams, or record their tries.
The program is very simple and efficient, and need a single input data file INI formatted. Most aspects of the GUI are configurable like the font, colors, transparency. It is also possible to map global key-binds using the command line client. Both client and GUI communicate through a Unix socket. The code is almost done, and just need a bit of cleanup at this point.
This is one of the first serious Hare GUI program with a that broad scope. It is the result of the work of many developers, from Hare itself, to Hare libraries and sub-projects:
- hare-wayland give the interfaces to talks to the Wayland compositor. It depends on hare-xml.
- hare-cairo is the Cairo library bindings and allow us to draw colors and text on the buffers.
- hare-xkb is a library binding I wrote myself to interpret correctly keyboard typed key symbols.
- hare-ev as event-loop, because we need to redraw periodically the time values. We also need to connect the socket communications to it.
It takes a village!
I have contributed on those projects as I noticed missing features, or issues. I am very proud of this, cause it proves I understand Wayland as much as I thought, and that I can write a full GUI program from scratch by myself.
See you next time, in a month or two, or more :)