Published the 2023-01-03 on Willow's blog

Status update dec 2022

Here my first status update post. I would like to write some of those from now. Just to have a periodic public report of topics I'm working on and things I've done.

Personal situation

This end of year was a perfect occasion for me to take holidays. It's been some years I didn't gone 3 weeks free. This was a perfect moment to clear my todo list of things, to apply some important sxmo patchs and to code for fun.

sxmo-sway rebased over 1.8

Unfortunately we have to continue rebasing the touch seat operation patch above sway release for some time. I periodically ping sway folks for it to be reviewed and to land in master. The rebase wasn't hard and just some minor fixups was necessary. Nothing broke in the process and now some weeks has passed without issues.

Hare developments

The development of hare-ev arrived in a perfect moment for me to play with it. As I wrote bonsai, an final state machine we use on sxmo to trigger multikey actions, I learnt to hate polling over a list of file descriptor. I still lack some understanding of kernel basics but I slowly close the gap.

Hare-ev allow to write hare programs that responds to events, requests, responses in a very easy way. It basically does what you would expect. Register files, connect actions on writes / reads. Plus it arrived with some sugars to handle socket connections, timer triggers, etc.

Still I struggled with some issues. It took me some time to report them in a clean enough way to be analysed upstream. Now that most problems are fixed and merged I was able to re-implement some things in bonsai.

hare-ev

Bonsai improvements

Bonsai daemon and clients communicate over a unix socket. The daemon also had to handle delay transitions in an asynchronous way. I was using a very ugly way, forking to a sleeping process that would eventually be killed, or woke up to notice to the main process the state had to be updated. Noticing through a pipe I was barelly cleaning up afterward.

Rewriting all of this with hare-ev was a real pleasure and simplified all of that crap. I also took time to learn more in detail how to manage more cleanly some memory allocations. The v1 was full of big memory leaks…

I still have to wait for some dependency to be released to finalize this work. Until that point, I continue to run master on my local pinephone and didn't noticed problems for days now. The daemon is way more stable and light so I'm very impatient to release it.

Bonsai

Sxmo status reforged

In sxmo we used a very simple script sxmo_status.sh to show the bar, manage components, or to tail it to the Sway bar. Over time we added some pango markups to show some colors or font style. Pango markup doesn't works yet on the dwm bar, nor on plain tty.

I initially tried to handle it in with special components nomenclature, that would be stripped accordingly in those environments. The problem is that it make sxmo_status.sh too complex for a shell script. And worsely, the hook that compute the components became horrible to write and to maintain. It was very easy to forget some pango components and to break the global structure. It also broke the simple separator logic. In all ways, it wasn't the good approach.

Some days ago I initated a Hare program (again) to manage those use cases cleanly. The component structure got a name, priority, content, style enum, fg and bg color enums. The tail daemon will output in plain, tty or pango. Multiple daemons will be able to tail accordingly in Sway bar, tmux status line or wathever.

I hope to finish this work this week so that I can try it on sxmo very soon. I'll have to beta test it a lot cause a crash on the daemon would break completly the status bar without easy way to restart it.

Conky 1.16 released with Wayland support

A very surprising news came from the Conky folks recently. I received a mail noticing activities on a 2014 old ticket about Wayland support for conky. On sxmo we built a dedicated solution to display things on Sway desktop cause we wasn't expecting for it to arrive never.

I immediatly tried master to give early feedbacks. One of the main dev took time to cleanup builds and I updated the recipe in the Alpine side for it to land correctly. There still is some minor problems with colors and rescalling but the team seems very responsive to my tickets. I think this could be stable in a very short time.

Conky 1.16.0 release message

Plans for future

This year will not be easy for me. I'm planning to quit my job because I would like to live from foss development. Or at least to try to. It's been years now I'm doing this in my free time and I now feel a real dichotomy with my professional life. My current company has be bought recently and I'm now in a structure I really don't like. Using tools I never would have used before.

This is also why I took time to cleanup my websites and to refresh this blog. I must start to give public feedback of what I'm doing. And to detail why I think those matter.

Happy new year to you :) see ya !