“Study the past if you would define the future.” ~Confucius
Before we discuss the Lumina Desktop today, lets first go back and discuss the past. The Lumina Desktop was started in 2012 by Ken Moore. He started working on it in his free time. He wanted to design a small lightweight desktop for PC-BSD that didn’t come with the challenge of dealing with Linux-isms. However instead of designing a desktop that had BSD-isms, he decided to design the desktop to be as OS agnostic as possible with as few dependecies as possible. In time, Lumina became the default desktop for PC-BSD. In early 2014 the Lumina code from the PC-BSD git repo was moved to Github.
I met Ken for the first time in the summer of 2014 at Southeast Linuxfest. Myself and Noah Cheliah had gone to SELF to cover the conference for the LinuxActionShow which I was the producer of at the time. I chatted with Ken for about 10 minutes about a variety of things and when he learned that I was a Puppylinux developer and that I liked small effecient and minimal systems he asked what Desktop I used. While explaining the whys behind my use of Openbox he had this almost Schoolgirl-esque smirk on his face, so after a few minutes I stopped and asked him what was so funny. He chuckled and then let me know that he was writing a small minimal desktop, and proceded to show me his laptop where he had a very early version of it running. I asked him what version it was and he remarked that there weren’t even version numbers yet, and I replied, “Ok… so like 0.4?” to which he laughed and said “Sure.”
After getting home from SELF and getting settled back into my schedule I eventually got it compiling and running on my Slackware box. From that point on I helped Ken with fuzzing the desktop and reporting bugs. The Majority of the issues turned out to be really weird ones due to the differences between Qt on Linux and FreeBSD. I think the most hiliarious one was being able to crash the file manager, by opening it up and hitting Down-Down-Enter. I could reproduce it like clockwork on Linux, Ken was unable to on FreeBSD. Eventually the necessity of being able to reproduce each others bugs caused me to get involved with the PC-BSD project. I worked with that project up through its name change into TrueOS, and then the later sunsetting of the TrueOS Desktop. At this point Ken and I created Project Trident to give the current TrueOS Desktop users somewhere to land. The work continued on Project Trident up through 2019 and its transition to Linux as its base OS. Project Trident has lived on as a Desktop variant of Void Linux. Then of course 2020 happened, and now in 2021, life circumstances and priorities are different.
So where are things going from here. Well, there’s still a lot I want to do with Lumina, There’s a few things I’m in the middle of that I need to finish, and there’s a bunch of other thing that just haven’t been finished and there’s a few things that haven’t ever gotten started.
But before I go into a breakdown of the Future of Lumina let me address one thing that I’ve been hounded with the past week.
I gotta be honest, I didn’t expect to get so many questions about this so quickly. Ken has been asked a bunch over the past few years, but the number of times I’ve been asked this week has been kinda hilarious.
It’s almost as if someone got on the GPL-Bat-Phone and said “The BSD guy has stepped back, the Linux guy is in charge now… GO GO GO."
First off… Maintainer != Copyright holder. I can’t relicense code I didn’t write. Even if I wanted to, I cant. There are 76 contributers to Lumina-Desktop Repo. Each of those would either A) re-write all those submissions. B) have each of those contributers agree to relicense their code or C) turn over claim to the code copyright of their submissions to the project, as happens with contributer agreements that some projects use. Should Lumina have something like that, perhaps. It’s probably something that should be done sooner than later, as eventually people can’t be reached for a multitude of reasons… but honestly I’ve got to many other things to do within Lumina for me to spend time on that right now.
The other question I’ve been asked quite a bit is if Lumina will become a 1st part citizen on Linux. In a way it already is. Since Lumina was primarily designed to be OS Agnoistic as long as it’s running on a unix-like OS. It’s dependencies are very minimal, mostly X.org, Qt and a few other minor libraries. It was never designed to be BSD Only. It honestly super easy to build it on my Slackware box in 2014, and it still is today. My intentions are to keep Lumina as OS Agnostic as Ken designed it to be. Currently Lumina is the default desktop for Project-Trident, and one of these days I may work up a Fedora Spin for Lumina now that I’m the maintainer of Fedora-Jam.
So enough yammering on, what does the Future roadmap look like. I can break this down into two main catagories, minor changes and major changes.
In the minor camp, there are a bunch of things to make the Desktop work better.
Currently only a few are (User Menu Icon) they all should be able to be reset to whatever the user wants.
A simple wallpaper creator to take any image and crop/zoom to make a clean desktop wallpaper based on whatever resolution you want.
Just a little widget that’s a text box where you can enter something and it’ll open a browser tab and search for that string. Basically just streamline the multiple steps of opening a browser, going to a search engine, and then searching for whatever.
One already exists in my personal repo, it never got polished enough to move into Lumina.
These already exist in my personal reapo, but as with the Font viewer, they arent polished enough. The long term plan was to integrate these directly into the file manager, but it needs to be re-written first. (see below)
There are a lot of oddities with the current widgets. This is most likely because they were some of the first things written and havent been messed with since. Some have scaling problems, some only work if the panel is horizonal and go haywire if its vertical. All of these would probably be resolved if it was given a quick once over and designed better. I put this in the minor tasks area, because they’re all small individual bits that could be done individualy. We have also needed some new plugins written as well, so that’d fall under this as well.
Make the current Trident theme the default theme for Lumina.
Integrate Icon Theme:
The current icon theme we’re using in Trident is GPL, so we can’t just merge it in as the default. I’d like to find a icon designer who would be willing to work with me on a simple icon theme for Lumina as the default. It wouldn’t be many icons, I’m guessing maybe 50 total. I only want to cover what’s in Lumina/Trident and leave the rest to be filled in by a user as they add their own icon themes.
This was a small utility I made a long time ago as a quick drop in replacement for gtknotify that I learned to love when I was a PuppyLinux Dev. I think at some point it ended up getting dropped out of the build and it needs to get brought back in, as the plan was to use it for user notifications.
Not really desktop related, but this needs to be refreshed.
Right now there are a bunch of build issues on various Linux OSes because of some weird interaction between using Qmake with the .pro files and building them with make. Qt6 is moving away from qmake and going to cmake, and this will be resolved when that’s done.
This speaks for itself.
The file manager needs a re-write to use the qfilesystem class. I know there are bunch of other desktops that have already done this, but since they’re GPL, I cant take thier work. Besides the re-write there are a few features that are currently in the file manager that need to be re-implemented and a couple new features to be added.
I’m in the middle of re-writing the Lumina-Config utility, that will then enable different configuration options to be directly built into the Panel and the desktop right click menu.
Ken started working on this and it does technically work. There are issues though. His work needs to be finished. However this may need to finished with the following item in mind.
Wayland is coming… eventually.
If possible and if and only if it doesnt make the code a nasty mess, I’d like to work in ifdefs to resolve downstream issues between BSD/Linux OSes, instead of leaving it up to the OS/Distro devs to patch the sources before building. I’d like to get those things fixed upstream to make their life easier.
So that’s a quick brain dump of what’s in my head at the current moment as far as Lumina. If you’d like to help, please reach out, I’m easy to track down in all the usual places.
In the words of the Tenth Doctor, Allons-y.