lumina1.3-2

Last week I sat down with Lead Developer Ken Moore of the TrueOS Project to get answers to some of the most frequently asked questions about Lumina Desktop from the open source community. Do you have a question for Ken and the rest of the team over at the TrueOS Project? Make sure to comment below and we’ll be glad to answer your questions!

What made you first decide to create Lumina Desktop and integrate it into TrueOS?

I started working on Lumina Desktop about two years ago after deciding that PC-BSD (now TrueOS) needed a reliable desktop interface which ran properly on FreeBSD. KDE was the most popular desktop of choice for PC-BSD, but as time went on, we kept having to disable components of the other desktop environments or write our own replacement utilities which worked properly on FreeBSD. This resulted in a “split-brain” syndrome where there would be two utilities installed for the same purpose but only one of them worked properly. Additionally, newer versions of KDE and GNOME were causing more and more incompatibilities with basic functionality on FreeBSD. We could see that a time may come when none of the Linux-based desktops would even work on FreeBSD, PC-BSD, and subsequently, TrueOS.

What makes Lumina different from other desktop environments?

Lumina is different than the other Linux-based desktop environments in a few areas. Lumina Desktop does not try to force the operating system to do anything. Instead, Lumina acts more as a relay to simply alert the user about things that the OS says are available and lets the user decide what to do with it (Removable device management is a good example of this). Lumina Desktop is also not an application-development framework. It works with virtually any application from any graphical toolkit and does not require any specific developer tools or frameworks. This allows for much greater flexibility on the part of the developer to use whatever toolkits or versions of the tools that they prefer. Lumina is designed as a single binary and not as a collection of disparate tools and services. This allows Lumina to be incredibly fast and lightweight without all the extra overhead from multiple utilities trying to detect and manage the same kind of things. Keep in mind that the differences will become even more distinct with Lumina 2.0 that will be released in spring of 2018.

How is Lumina’s cross-platform support?

Because Lumina is designed as just a system interface, it is incredibly portable. Currently, Lumina is available on all versions of BSD, most (if not all) Linux operating systems, and should be usable on any other unix-like system. In fact, Lumina uses just a single file which provides a client-side application interface to connect with the OS, just to provide some better integrations for system defaults and status reporting, all of which are optional.

Now that you’ve been developing Lumina for a few years, is there any advice you would give someone wanting to create their own desktop environment?

Before starting to create a desktop environment, I would recommend sitting down and working out the answers to a few simple questions first. First of all, what will make your desktop different from the other ones that are currently available? If the difference is in appearance only, it would be easier to just reskin an existing desktop. What type of hardware interface will your desktop support? Cellphones? Laptops? High-DPI Monitors? Arrays of monitors? Remote monitors? How will you support common functionality like: screensavers, screen lockers, window management, launching applications, application detection, localization, theming, session management, and more? What are the security and dependency implications based on these questions? Of course lastly, how much time are you willing to devote to this project?

TLDR: If you are the type of person that likes to build your own desktop from currently-existing utilities and you do not want to dig into source code and / or write new utilities, then creating a desktop is not for you.

Stay tuned next week for the continuation of this article and to find out all of the exciting new things to expect in Lumina 2.0