The sad and strange tale of application launcher progress bars in Linux Mint

The situation with Linux Mint and application launcher progress bars is, as best I can tell, sad and strange. This is what an application launcher progress bar looks like, if you’re not familiar with them:



(Both those screenshots show badge count too, which are related).

Personally I really like this feature. It is provided by a library called libunity with an API developers can use without much difficulty. It was originally developed by Ubuntu for the Unity desktop, but now lives on in KDE, Gnome Shell extensions, and perhaps some other desktop environments too, in distros like openSUSE, Fedora, and of course Ubuntu. (Rather strangely, libunity never made it into Debian, for reasons which are a little opaque.)

In 2017, Linux Mint decided to do their own thing and implement their own unique API for the application launcher progress bar feature through their XApp initiative. The Linux Mint developers knew about libunity but ignored it, assuming it was going to die with the Ubuntu Unity desktop. I’d say their assumption has proven quite wrong: libunity hasn’t actually died and is being used in more distros now than back in 2017.

To be fair to the Linux Mint developers, they also wanted some specific features like per window progress bars, not per application — but one has to wonder if that need justified an entire new library and API, and not simply extending libunity.

Meanwhile, as best as I can tell, their own XApp API currently does not support non-Gtk applications at all (e.g. those written in Qt, etc.). So any application not written in Gtk cannot use it, as far as I can tell. Which is a shame as one of their goals for XApps is “to work everywhere (to be generic, desktop-agnostic and distro-agnostic)”. And application developers have to specifically write the code just to support the XApp API. How many bother to do this? I suspect the API doesn’t see much uptake outside of the Linux Mint developers (but hey, what do I know).

I filed an issue with the Linux Mint developers. Let’s see what they suggest.

Meanwhile I’m left with the sad feeling that the Linux Mint approach to this problem was simply wrong. I think they should have worked with the Linux desktop community, like figuring out why libunity was not in Debian, or extending its API, etc. It’s not like these are impossible tasks. I understand Linux Mint like to follow their own star, but they’re introducing needless fragmentation in doing things like this. And little things like that add up, which hurts Linux badly over time.

Please feel free to correct any errors or oversights if I’ve made some.