Porting LXQt to Guix

I was a Unity and Gnome user for many years. But ever since I tried i3 window manager, I never look back.

i3 window manager is great, but it lacks XDG compatibility. It cannot automatically start apps within autostart directory upon login. I hate to add these random programs to my i3 config file, So I want to run i3 window manager within a light weight XDG compliant desktop environment. I know there are only three options: XFCE, LXDE, LXQt. XFCE and LXDE are old and popular, and they are already in Guix repository. But damn, I only want to try this new shiny LXQt and it’s not in Guix!

So, why not port LXQt to guix!

I wrote a package definition for i3blocks weeks before and it has been merged to Guix. That’s my first Guix package. Now let’s try something bigger.

I cost me about three days to wrote package definitions for LXQt apps and it’s dependencies. After that I tested these packages on my computer and tweaked some bugs for several days. In the end, everything works fine except lxqt-panel and lxqt-runner. They have bugs related to kwindowsystem. But hey, I am an i3 user, so these two apps are completely useless to me. I use i3blocks instead of lxqt-panel, and rofi instead of lxqt-runner. Things done.

I posted my work to guix-devel mailing list. These packages have been merged into Guix now.

It’s a really good experience to write package definitions for Guix. I knew little about scheme language but there was absolutely no obstacle. It’s far more comfortable than my tedious and painful experience with Debian packages.

Guix is rarely known compared to other Gnu/Linux distros. But if you are interested, try now!