Development in 2023

Hey everyone,

welcome to my second (maybe this will become yearly now) overview of what projects I contributed to over the last year. You might remember that I already had enough projects for a filled up schedule but I can ensure you, I found something to derail my focus even more. But let’s call it another little gift to unwrap instead.

The graphical Messenger application only got a few fixes, mostly to patch package configurations. I also changed the build system from GNU Autotools to Meson. Hopefully that’s the last time I change the build system. The service in GNUnet got some more contributions from me lately. Partially because I got financial support from NLnet again which I’m thankfully for. Also because I want to bring my studies to an end and it’s a great topic for research. But honestly I want this project to become a practical option for messaging. So you can expect more contributions on this project in the next months as well as my monthly blog posts about its progress.

Anyway I started working with Github actions this year. Manuskript got some Github action to make a development build available for users on Windows. So I thought that feature could also be used to automatically build the VkCV Vulkan framework. I ended up fixing multiple build errors for Windows and macOS of course. But now the framework is being a pretty reliable option. I also replaced usage of the NVIDIA-exclusive extension for mesh shaders with the cross-compatible extension from Khronos once it released. So now there are no vendor-exclusive example applications anymore, all running fine with RADV under Linux.

Manuskript got quite a bit of my time. I tried to focus on reducing bugs and crashes. Still there have been three new releases with disclaimer about potential data loss. One of those releases introduced new crashes on Windows but I thought right before holidays, this might upset people. So one week later their was a hotfix release.

Honestly I would still like to have more time for Manuskript, finally finishing the GTK port which I haven’t really touched since June. But at least there was a lot of discussion regarding the implementation of it. So maybe next year can be more efficient on that front. I still doubt we see a testing release of it soon. But I could be wrong.

So what else did I do this year to “derail”? Well, I finally received my Librem 5 which I originally ordered in January 2020. Maybe you have heard of it before, maybe not. It’s a GNU Linux phone or better “mobile device” which runs PureOS, a Debian based Linux distribution with focus on free and open-source software. As gimmick it comes with removable battery, three hardware switches on the side to shut off components from power (like camera, microphone, modem and wifi) and you can plug it into an USB hub to use it as desktop computer.

From a developer’s perspective it is pretty neat and obviously I had to play around with it, write some software for it and in the end I replaced my Android device with it as daily driver. Don’t get me wrong, battery life is much worse and a lot of things are pretty complicated doing with it. So I don’t recommend anyone to get something like this as a phone. But looking at the progress of software running on it makes me pretty excited. Because originally my efforts towards developing the GNUnet Messenger started with the idea to have a privacy focused Linux device in the palm of my hands. Pretty awesome in my opinion.

What added to my shift of focus this year was something else though. Because I now had a mobile Linux device, I got me an nreal Air (the company has renamed to “xreal” now but I’ll keep using the name on my package). It’s an augmented reality glasses/headset which does not have a battery but connects to your device via USB connection. They advertise it for watching movies, playing games and such - essentially a virtual TV anywhere you want. But that’s kind of boring in my opinion.

So why did I get one then? Well, naturally I looked up Linux driver support before ordering one because I heard it would support the Steam Deck (which runs an Archlinux based OS). Audio seemed to work, display capabilities seemed to work and only the IMU sensors were out of reach. I had the Librem 5 in front of me and thought how neat it would be to fire up a TV size terminal in my field of view anywhere I go. So I bought one.

Obviously nothing worked out of the box. Only some devices from me got a usable output, depending on kernel, compositor and other settings. But I could realize this idea from me to some degree. However without the IMU sensor data, there was no orientation which means the virtual display would always be locked to your view. It was always fixed in front of you and you couldn’t look around with your head or turn the display. Only your eyes could scan over the display which isn’t very comfortable.

Since I kind of expected such issues, this started my efforts of developing a driver for Linux. The whole project got a lot bigger than originally expected. It ended up as base for a decky plugin which makes it usable for end-users on the Steam Deck. I implemented a driver based on my efforts in Monado, so the glasses can now be used in OpenXR application on Linux. For example you can make mixed reality applications with Godot on Linux now and they can utilize that.

So all of this totally went out of control. It should only be a tiny project of me but ended up pretty big. Which is why I have no idea what will happen this year honestly. I’m definitely looking forward to see all the efforts from other people in the free software community.

Best regards and happy hacking,
Jacki

Read original article

Popular posts from this blog

GNUnet Messenger API: March

GNUnet Messenger API: September

GNUnet Messenger API: December