With the amount of changes to the Lumina desktop environment and the increasing number of questions/comments we are receiving, I thought it would be a good time to post a status report about it and answer many of the commonly asked questions.
As always, please post any bug reports or feature requests on the PC-BSD Bug tracker.
If you wish to get involved in the development of the Lumina Desktop Environment, you can find the source code in our repository on GitHub.
Lumina Desktop FAQ/Status Update:
What is the Lumina Desktop Environment?
- The Lumina Desktop Environment (sometimes referred to as Lumina-DE or just Lumina) is a BSD-licensed, FreeDesktop-compliant graphical interface for a desktop operating system.
- It has been written from scratch in C++/Qt5 (it is not based on any existing DE code-base). It uses Fluxbox for the window management in the background and xscreensaver for screensaver/screenlocking functionality. The only other runtime dependencies are a couple of small X11 utilities (xnumlock, xbrightness, xterm, xrandr).
- This results in a very lightweight, very smooth desktop experience with minimal system overhead.
What is the current development status?
- While the current version (0.8.4) is still considered to be “Beta” quality, that is primarily because there are still a couple external utilities which have not had in-house replacements written yet (Fluxbox and xscreensaver primarily).
- In its current state it is very stable and completely usable on a daily basis for both developers and non-developers alike.
- The only caveat for its “beta” status is that since there are some backend systems which are still in major development, we reserve the right to break a user’s customized settings during the transition to these new systems (the window manager and screensaver settings are where I anticipate this happening once the replacement systems are in place). However, we already have a good track record of backwards compatibility with older settings formats, and will continue to work on ensuring a smooth transition between different versions of the desktop (even during heavy development/backend changes).
What are some of the features of Lumina?
- Restore files from ZFS snapshots directly through the Insight file manager (lumina-fm).
- View picture slideshows or play multimedia files through the Insight file manager.
- Completely configurable – the interface is designed around a plugin-based mentality where everything you see/use is a compiled-in plugin (ensuring that every plugin is guaranteed to work). This means that you can create an interface custom-tailored to your specific needs.
- Easy-to-use configuration utility (lumina-config). This single utility controls all the different configuration options for the desktop in one simple location.
- Total system search capabilities through the lumina-search utility (without having a daemon eating memory in the background).
- Screenshot functionality through the lumina-screenshot utility (also tied to the “print screen” key by default).
- Multi-monitor support through xrandr (every monitor is treated as a distinct screen, with it’s own background, interface, etc..). Lumina also provides a graphical utility for adding/removing monitors from within the Lumina session (lumina-xconfig).
- Simple system controls through the “System Dashboard” for things like audio volume, screen brightness, battery status/notifications, and workspace switching.
- Easily select which application to use when opening a file and set that as the default for the next time. If you happen to remove that default application, it will automatically re-open the application selection dialog the next time you open that type of file again. This utility (lumina-open) is also tied into the commonly used xdg-open utility so that 3rd party applications will automatically use this utility for opening files outside of the application scope.
How is it different from other desktop environments?
- Designed on PC-BSD, specifically for the BSD community at large (although it is easily ported to any OS, including Linux distros).
- Does not require any of the commonly-used desktop implementation frameworks (DBUS, policykit, consolekit, systemd, HALD, etc..).
- Does not come bundled with any “end-user” applications (web browsers, email clients, multimedia software, office suites, etc..). The only utilities that Lumina brings to the table by default are the ones written specifically for the project and are generally for background/utilitarian functionality (the largest utility is the file manager).
- Simple text-based configuration file for setting system-wide defaults for new users. This allows distributors of the desktop to easily pre-set the system defaults/interface so it just works for the end user.
- Plugin-based interface design. This allows the user to make the desktop as light/heavy as desired (within reason) simply by choosing which plugins to have running on their desktop/panels.
Are there any PC-BSD specific features?
- Hardware-level screen brightness control (sysctl control through pc-sysconfig on PC-BSD 10.1.2+).
- Links to the PC-BSD Control Panel and AppCafe are embedded directly into the Lumina interface for system control/modifications.
- Detects when system updates are in progress and prevents the user from shutting down the system until that is complete (you can log out of Lumina and then shutdown the computer from the PCDM login manager if absolutely necessary) .
- Designed to work hand-in-hand with the PC-BSD utilities (mounttray, AppCafe, Life Preserver, etc.) preventing conflicts between DE and OS utilities.
Is it available for any other operating systems?
- There are currently source files in the project for building/using Lumina on: FreeBSD/PC-BSD, OpenBSD, DragonFlyBSD, kFreeBSD, Debian, and generic “Linux” distributions.
- Please contact the package management/distribution team for your particular OS to determine the availability of pre-compiled packages.
What does it look like?
- Due to the flexibility of the interface design and the ease with which the themes may be customized, the Lumina desktop can take many various forms. Here are a just a few of the variations that I have assembled on my system:
- As we continue to create more plugins with every new version of Lumina, the variability of the interface just continues to grow. If you have a particular plugin/feature that you would like, please post a feature request on the PC-BSD bug tracker!
What plugins are currently available (as of version 0.8.4)?
- Panel Plugins: AppLauncher, AppMenu, BatteryMonitor, Clock, DesktopBar, DesktopSwitcher, HomeButton, Spacer, SystemDashboard, SystemTray, TaskManager(with or without grouping), UserButton.
- Desktop Plugins: AppLauncher, AudioPlayer, Calendar, DesktopView, Notepad
- Menu Plugins: AppLauncher, AppMenu, LineBreak, OpenTerminal, OpenFileManager, SettingsMenu, WindowList
- More plugins are being created all the time!
What is being worked on right now?
- Right now, we are mainly focused on expanding the scope of the desktop through creation of new plugins and enhancement of the existing plugins.
- The next “big” change planned is the move to a new window manager which is in the process of being written right now. This change will correspond with version 0.9.0.
- We are also working on tweaking the default themes and colors right now, and are looking into adding new themes & color schemes “out of box” for people to be able to simple select and use.
A new window manager? Is something wrong with Fluxbox?
- Fluxbox is a great WM, and the Lumina project will be still be using it for quite some time yet while the replacement is being written. The main reason a new WM is planned is for better integration with the Lumina desktop in the following areas:
- Interface/font scaling
- Keyboard shortcuts (particularly with using the default application registrations in Lumina)
- Addition of WM “modes” for use on various types of devices.
- Allow compositing between windows (for better transparency effects)
- Uniform Theme/Appearance
- In addition, having a custom WM specifically for Lumina allows us to be able to combine the functionality of a few common background daemons into a single utility (since at their core they all revolve around responding to particular base system events).
- Window Manager (ICCCM/EWMH events)
- Screensaver/Screen Locker (All Input Events – transparent watcher)
- Keyboard shortcuts (Keyboard Input Events)
- Application message logger/viewer (some EWMH events – transparent watcher)
- Power management (system events through devd/HALD/other)
- Having all these systems within the same utility allows us to be able to create a much tighter level of inter-functionality between them. For a few quick examples:
- Temporarily disable the screensaver while a window is full-screen (such as when watching a video)
- While the screen is locked, prevent the window manager from showing any new windows on the screen and stop all keyboard shortcut handling (preventing possible security issues), while still allowing some notifications and background procedures.
- Enable different levels of power management while the screen is locked or the screensaver is active.
- This is a fairly massive undertaking, so I want to re-iterate that I expect it to be quite some time until this new window manager is ready for use and we will continue to use Fluxbox in the meantime. The Lumina desktop will remain within the 0.8.x series of version numbers while this new utility is in development.
How can I get involved?
- If you are a C++/Qt developer, there are tons of areas where you could contribute! Some of them are: finding/fixing bugs, writing new interface plugins, adding functionality to existing plugins, and more!
- If you are a CSS developer, then you might be interested in making new themes for Lumina (using QSS: it is very similar to CSS but specifically for Qt applications/widgets). These themes can be created/modified directly within the Lumina configuration utility, and also provides an easy way to directly implement the user’s current color scheme. Once you have a theme put together that you like, you can just send us that file (located in ~/.lumina/themes) and we can get that included with any future versions of the desktop.
- If you want to create new color schemes, you can do so via the Lumina configuration utility. Once you have one that you like, just send in that file (located in ~/.lumina/colors) and we can get that included with any future versions of the desktop.
- If you found a bug or have an idea for a cool new feature, you can post bug reports or feature requests on the PC-BSD bug tracker!
How can I contact the developer(s) with questions/comments/snide remarks?
- IRC: The #Lumina-DE or #pcbsd channels on Freenode
- Mailing List: The PC-BSD “testing” mailing list
- GitHub: Post an issue on the Lumina source repository or directly contact me
The PC-BSD team is pleased to announce the availability of the next PC-BSD / TrueOS quarterly release, 10.1.2.
PC-BSD 10.1.2 Notable Changes:
- New PersonaCrypt Utility
- Allows moving all of users $HOME directory to an encrypted USB Drive. This drive can be connected at login, and used across different systems
- Stealth Mode – Allows login to a blank $HOME directory, which is encrypted with a one-time GELI key. This $HOME directory is then discarded at logout, or rendered unreadable after a reboot
- Tor mode – Switch firewall to running transparent proxy, blocking all traffic except what is routed through Tor.
- Migrated to IPFW firewall for enabling VIMAGE in 10.2
- Added sound configuration via the first boot utility
- Support for encrypted iSCSI backups via Life-Preserver, including support for bare-metal restores via installer media
- New HTML handbook, updated via normal package updates
- Media Center support allowing direct login to Kodi and PlexHomeTheater for the 10ft user experience
- Switch to new AppCafe interface, with remote support via web-browser
- Improvements to Online Updater, along with GRUB nested menus for Boot-Environments
- Migrate all ports to using LibreSSL instead of OpenSSL
- Switch from NTPD to OpenNTPD
- Lumina desktop 0.8.4
- Chromium 42.0.2311.135
- Firefox 38.0
- NVIDIA Driver 346.47
- Pkg 1.5.2
Users currently running the 10.1.1 release can now apply the updates via their Update Manager utility. Users running TrueOS or CLI can start the update with the following command:
# pc-updatemanager pkgupdate
10.1.2 DVD/USB media can be downloaded from the following URL via HTTP or Torrent. http://www.pcbsd.org/en/download.html
Found a bug in 10.1.2? Please report it (with as much detail as possible) to our bugs database. https://bugs.pcbsd.org
What else is new in PC-BSD 10.1.2? How about a new version of the Lumina Desktop Environment! PC-BSD users who stick to the “Production” branch of packages will find that the Lumina desktop has evolved/improved an incredible amount since the last quarterly update for PC-BSD (10.1.1), so I highly recommend that you try it out! The release notes for this new version are also listed at the bottom of this announcement for those of you who have been tracking along with its development, so please try it out and let us know what you think!
- Users currently running the EDGE package repo can now update their packages via the updater GUI or “pc-updatemanager” utility to be brought up to date. Updates for users on the PC-BSD 10.1.1 / PRODUCTION repo will be available once 10.1.2-RELEASE is announced.
- Found a bug in Lumina 0.8.4? Please report it (with as much detail as possible) to our bugs database. https://bugs.pcbsd.org
Lumina Desktop changes since version 0.8.3:
- Add mouse tracking support
- Add support for variable-length panels (a percentage of the screen edge length).
- Add support for pinning the panel to a particular location on the screen edge (either corner, or centered)
- Automatically re-scale the panel size if the monitor used in the previous session was a different screen resolution.
- For hidden panels, have 1% of the panel size be visible on the screen while it is “hidden” (rather than a hard-coded pixel size). This is better for high-resolution screens.
- Remove the restriction that panels be on opposite screen edges.
New options/usage for lumina-search:
- Easily change file/dir search preferences on a temporary basis
- New command-line flags for starting searches instantly
- Search functionality integrated into the Insight file manager. The Ctrl-F keyboard shortcut or the “Search” menu option will start a search for a file/directory with the current directory as the starting point.
- A “Search” button has been added to the home directory browser in the user menu. This will allow the user to easily start searching for a file/dir within the selected directory.
New “Favorites” system backend:
- This new backend is much faster and more reliable than the old system of sym-links.
- Your favorites should be automatically converted to the new format when you log into the new version of Lumina.
New Utility: lumina-fileinfo
- This utility allows the user to view basic file information, such as timestamps, owner/group info, file size, and read/write permissions.
- If the file is a XDG desktop shortcut (that the user has permission to modify), this utility also provides the ability to make changes to that shortcut.
- This can easily be used by right-clicking on files in the desktop view plugin or within the Insight file manager and selecting the “Properties” option.
- A big thank you to contributor William (william-os4y on GitHub) for writing this utility!!
Other Random Improvements:
- Better application recommendations for files/URL’s (especially for web browsers or email clients).
- Major cleanup of XCB library usage.
- Hardware-brightness controls now used for PC-BSD by default (if supported by the system hardware).
- Putting the system into the suspend state is now supported for PC-BSD/Debian.
- New clock display formats.
- A large number of session cleanup improvements
- A large number of session initialization improvements (including resetting the user’s previous screen brightness and audio volume settings).
- New default keyboard shortcuts for tiling the open windows on the screen (new user configurations only)
- Better support for the URL input format when required by an application.
- Make the user’s “log out” window appear much faster when activated.
- There is a known bug in Lumina 0.8.4 regarding “unlocked” desktop plugins. The close/maximize buttons for the plugin are unresponsive when using Qt 5.4.1, preventing the user from easily removing/maximizing a desktop plugin. We are still looking into this, but at the moment it appears to be a bug in Qt itself. As a temporary workaround, you can simply right-click on the titlebar for the unlocked plugin and select close/maximize from the menu instead.
The next version of the Lumina Desktop Environment has just been released!
This is mainly a bugfix release to correct an urgent issue with the system tray on FreeBSD 11, but there are a number of other slight improvements/updates included as well. The full list of changes is included at the bottom of this announcement, but the notable changes are as follows:
- New Panel Plugin: “Application Launcher”
- This allows the user to pin the shortcut for an application directly to a panel.
- New Utility: “lumina-xconfig”
- This utility allows the user to easily enable/disable additional monitors/screens within the desktop session.
- Fix the issue with transparent system tray icons on FreeBSD 11
- Add support for the XDG autostart specifications.
The FreeBSD port has already been updated and this version will be included in the next set of PC-BSD package updates (“Edge” packages being created now) as well as included in the next PC-BSD 11 image for April (coming soon).
Reminder: The Lumina desktop environment is still considered to be “beta-quality”, so if you find things that either don’t work or don’t work well, please report them on the PC-BSD bug tracker so that they can get fixed as soon as possible. Feel free to also post tickets for any feature requests or improvements that you think might be useful!
Changes Since 0.8.2
FreeDesktop Standards Compliance:
- A number of bugs related to detecting/using XDG mimetypes were fixed.
- Support for the XDG autostart specifications was added (usage only – more work is still necessary to convert the current Lumina autostart spec over)
- Add some additional fallback routines to account for possible errors in *.desktop files.
New Utility: “lumina-xconfig”
- This utility is a graphical front-end to xrandr, and allows the user to easily add/remove screens from the current X session.
- Shortcuts to this utility are available in the user button plugin, and the settings menu plugin
Insight File Manager:
- Add support for creating new (empty) files.
- Add an option for enabling/disabling the use of image thumbnails (useful if you have massive directories of pictures – just be sure you disable thumbnails *before* loading the directory).
- Add initial drag-and-drop support for moving files/dirs within a directory.
- Load the specific icon for any application shortcuts.
- Add the ability to view checksums of files.
- Add some additional checks/excludes for copy/move operations in the background to prevent the user from performing illegal operations (such as moving a directory into itself).
- Add support for listing statistics about the current directory on the window (number of files, total size of files, percent of the filesystem which is used).
- Streamline the frequency of the background directory checker – now it runs much less often.
- Disable the shutdown/restart options on PC-BSD if the system is in the middle of performing updates. The system may still be shutdown/restart from within PCDM – this just adds an extra layer of safety for users.
- Have the shutdown/restart options use the “-o” option on FreeBSD/PC-BSD so that the system performs the action much faster.
- Add support for thumbnails, increasing/decreasing icon sizes, removing files, and cut/copy files to the “desktopview” desktop plugin (the plugin which provides traditional desktop icons).
- Add support for increasing/decreasing the icon size for the application launcher desktop plugin.
- Update the icon used for the “favorites” system in the user button and the file manager.
- Add the ability to display alternate timezones in the system clock. This does *not* change the system time at the moment, it is just a setting for the visual clocks/plugins.
- Add a new panel plugin for pinning application shortcuts directly to the panel. (just like the “applauncher” desktop plugin, but on the panel).
- Perform the initial search for applications on the system within the session initialization. This ensure that buttons/plugins are responsive as soon as the desktop becomes visible.
- Fix an issue with transparent system tray icons on FreeBSD 11, and convert the system tray embed/unembed routines to use the XCB library instead of XLib.
The next version of the Lumina desktop environment has just been released! Version 0.8.2 is mainly a “spit-and-polish” release: focusing on bugfixes, overall appearances, and interface layout/design. The FreeBSD port has already been updated to the new version, and the PC-BSD “Edge” repository will be making the new version available within the next day or two (packages building now). If you are creating/distributing your own packages, you can find the source code for this release in the “qt5/0.8.2” branch in the Lumina repository on GitHub.
The major difference that people will notice is that the themes/colors distributed with the desktop have been greatly improved, and I have included a few examples below. The full details about the changes in this release are listed at the bottom of the announcement.
Reminder: The Lumina desktop environment is still considered to be “beta-quality”, so if you find things that either don’t work or don’t work well, please report them on the PC-BSD bug tracker so that they can get fixed as soon as possible.
Changes from 0.8.1 -> 0.8.2:
New Utility: “lumina-info”
- This utility provides basic information about the current version of the Lumina desktop as well as link to various information online (source repository, list of contributors, bug tracker, etc…).
- New Color Scheme: PCBSD10-Default (the default for new PC-BSD users)
- Lumina-[Red/Green/Gold/Purple] color schemes updated.
- “Lumina-Default” and “None” theme templates updated significantly.
- Make it easier for a distributor to set a default theme/color by just supplying the name instead of the full path (since paths can be different on different OS’s)
- Fix issue with some fonts not loading properly.
- Distinguish between “Save” and “Apply” in the theme template editor (“Save” to update the file but keep the editor open, “Apply” to update the file and close the editor). This makes it much easier to test changes to the current theme template as you don’t need to close/re-open the editor to try it out.
- Add the ability to distinguish between transparent/opaque desktop plugins in the theme template.
Configuration Utility Changes:
- Add a new dialog for selecting plugins of all kinds. This makes it easier to browse through and read the descriptions of the plugins before actually selecting one.
- Re-arrange the interface quite a bit. Now the general page arrangements make much more sense (Appearance [wallpaper/theme], Interface [desktop/panels], Applications [auto-start/file defaults], Shortcuts, Session [general options/window system] )
- Add the ability to set your preferred time/date format(s) in the general session options.
- Add the ability to reset your preferred file manager/terminal/web browser/email client back to defaults.
Insight File Manager Changes:
- Make all the file operations happen in a separate thread (does not lock the UI any more).
- Clean up the detection routine for Qt-editable files (for rotating images in the slideshow in particular).
- When removing a file in the slideshow, make it simply go to the next/previous image instead of the beginning of the list.
- Make the ZFS snapshot search functionality a lot faster if just refreshing the current directory.
Desktop Session Changes:
- For vertical panels, have the clock plugin try to use vertical space instead of horizontal.
- Clean up a few desktop plugin stability issues.
- Streamline the session cleanup functionality.
- Fix some issues with 2nd panel functionality.
- Reduce the number of backend filesystem watchers (only one per session instead of one per screen now).
Lumina Search Changes:
- When searching for files/directories, make the initial starting point user-configurable as well as add the ability to exclude directories from the search routine (also configurable by the user).
The next version of the Lumina desktop environment (0.8.1) has just been tagged in the source tree, the FreeBSD port has been updated, and pre-built packages will be available in the upcoming PC-BSD 10.1.1 release (or earlier if you are using the “Edge” package repository).
This version includes quite a number of quality-of-life improvements, new plugins, and the usual assortment of bugfixes. There is a full breakdown of the changes below, but for most of you a screenshot (or two) is worth a thousand words.
1) New Desktop Plugin: “Audio Player”
This plugin allows the user to play audio files directly from the desktop (with playlist randomization if desired).
2) New Panel Plugin: “Home Button”
This plugin will minimize all open windows so the desktop will be completely visible.
3) New Panel Plugin: “Start Menu”
This plugin is the classical alternative to the “User Button”, and provides a simple menu for quickly launching applications.
4) New Slideshow file interactions in the Insight File Manager
When viewing an image slideshow, the user now has the options to delete the current image file, or rotate that image file clockwise or counter-clockwise (automatically updating the image file as necessary).
5) New Backend distribution customization framework.
There is a new system file (<PREFIX>/etc/luminaDesktop.conf), that can be set by the distributor of the Lumina desktop or a system administrator to provide system-wide defaults. This allows full customization of the initial desktop experience for a new user (will not change existing settings), allowing the distributor of the desktop to easily create a customized experience for their users. Along with this comes the ability for a user to reset their desktop settings back to defaults should the need arise (either system defaults or the defaults set by the Lumina project itself). This can be performed through the desktop configuration utility (in the session settings).
1) Allow a customized user icon for the user button (this same icon will also be utilized for the user in PCDM). This option is available through the desktop configuration utility (in the session settings).
2) Have panels follow the current desktop theme by default. A customized color may still be specified through through the desktop configuration utility (in the panel settings), and any previous color setting for the panel is still saved as the customized color for that panel.
3) Have desktop plugins now follow the current theme. This allows for a much more unified look and feel, with simple user modification through locally saved modifications to any theme templates.
4) Convert the “Note Pad” desktop plugin to a file-based utility. Now all notes are automatically created in the ~/Notes directory (with the .note extension), and a generic non-note text file may also be loaded into the plugin for editing/watching. All notes in the previous format will be auto-converted to the new format the first time the new version is used. Warning: if you currently have multiple notepad plugins on your desktop, only one of them will have all the notes successfully converted to the new format. Before updating to the new version, it is a good idea to move all your notes into a single plugin instance (and remove the others) to ensure a proper conversion to the new format.
– Fix when auto-hidden panels are re-hidden. This fixes a Qt5 bug where moving the mouse over the system tray was re-hiding the panel, preventing access to the system tray applications.
– Make the userbutton open even faster than before (auto-updates the menu in the background if applications are added/removed from the system).
– Various stability fixes involving the removal of desktop plugins.
– Filenames with multiple “.”s in them will now be properly handled through lumina-open.
– Have the log-out window appear on the current screen (instead of always the left-most screen).
– Make sure the log-out window is closed at the start of the log out procedure.
– Various other small bugfixes