Study the past if you would define the future.
History
“Study the past if you would define the future.” ~Confucius
Before we discuss the Lumina Desktop today, let’s 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 dependencies 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 efficient 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 hilarious 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, but Ken was unable to on FreeBSD. Eventually, the necessity of being able to reproduce each other’s 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 are a few things I’m in the middle of that I need to finish, and there are a bunch of other things 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.
Will Lumina be relicensed to the GPL?
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 can’t. There are 76 contributors to Lumina-Desktop Repo. Each of those would either A) re-write all those submissions. B) have each of those contributors agree to relicense their code or C) turn over the claim to the code copyright of their submissions to the project, as happens with contributor agreements that some projects use. Should Lumina have something like that, perhaps? It’s probably something that should be done sooner rather than later, as eventually people can’t be reached for a multitude of reasons… but honestly, I’ve got too 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 Agnostic as long as it’s running on a UNIX-like OS. Its dependencies are very minimal, mostly X.org, Qt, and a few other minor libraries. It was never designed to be BSD Only. It was 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 categories, minor changes and major changes.
The minor tasks:
In the minor camp, there are a bunch of things to make the Desktop work better.
- Make all user icons customizable:
Currently only a few are (User Menu Icon) they all should be able to be reset to whatever the user wants.
- Wallpaper creator:
A simple wallpaper creator to take any image and crop/zoom to make a clean desktop wallpaper based on whatever resolution you want.
- A panel web search widget:
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.
- Clean up the Font viewer:
One already exists in my personal repo, it never got polished enough to move into Lumina.
- Quick Lumina Text View and Quick Lumina Image Viewer:
These already exist in my personal repo, but as with the Font viewer, they aren’t 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)
- Panel widgets improvements:
There are a lot of oddities with the current widgets. This is most likely because they were some of the first things written and haven’t been messed with since. Some have scaling problems, and some only work if the panel is horizontal and go haywire if it’s 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 individually. 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 an 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.
- Bring lumina-notify back in:
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.
- Lumina Website:
Not really desktop related, but this needs to be refreshed.
The major tasks:
- cmake conversion:
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.
- Qt6 conversion:
This speaks for itself.
- Lumina-FM:
The file manager needs a rewrite to use the qfilesystem class. I know there are a bunch of other desktops that have already done this, but since they’re GPL, I can’t take their work. Besides the rewrite, there are a few features that are currently in the file manager that need to be re-implemented and a couple of new features to be added.
- Lumina-Config:
I’m in the middle of re-writing the Lumina-Config utility, which will then enable different configuration options to be directly built into the Panel and the desktop right-click menu.
- 2.0 Window Manager:
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 be finished with the following items in mind.
- Wayland prep:
Wayland is coming… eventually.
- IFDEFS:
If possible and if and only if it doesn’t 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.
Final Thoughts
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.