The Lumina Desktop Environment (Lumina for short) is a lightweight, XDG-compliant, BSD-licensed desktop environment that focuses specifically on streamlining the ability to get work done while minimizing system overhead. It is specifically designed for PC-BSD® and FreeBSD, but has also been ported to many other BSD and Linux operating systems. It is based on the Qt graphical toolkit and the Fluxbox window manager, and uses a small number of X utilities for various tasks, such as numlockx and xscreensaver.
Lumina's features include:
- Very little system overhead.
- Intelligent "favorites" system for creating quick shortcuts to applications, files, and directories.
- ZFS file restore functionality through the "Insight" file manager.
- Desktop system is plugin-based, which is similar to Android or other modern operating systems.
- Simple access to operating system-specific functionality such as screen brightness, audio volume, and battery status.
Figure 6.9a shows a screenshot of Lumina on a PC-BSD® 10.0.3 system with the "User" button clicked.
The "User" button provides quick access for user interaction with the system. The left frame of this menu contains the following 4 tabs:
- Favorites: the yellow star icon allows the user to quickly launch anything that was setup as a "favorite". Favorites can be applications, files, or directories, and are separated into those three categories. Favorites can be removed by clicking the small button on the right side of the entry. If the button icon is a red minus sign, removing the favorite does not actually delete the file as just its link is removed. If the button icon is a trash can, the file will actually get deleted permanently. Note that anything that exists in the users Desktop folder (~/Desktop) is automatically treated as a favorite.
- System Applications: the white and blue gear icon lets the user browse all the applications currently registered on the system. By default, applications are listed alphabetically, but the list can be narrowed down by category using the drop-down list at the top of the tab. If you are running PC-BSD® or another operating system that has a pre-defined application "store", you will also have a shortcut at the top of the tab which will open up that application store. On a PC-BSD® system, the shortcut is to AppCafe®. Each application has a little "star" button on the right side of the entry. This allows you to mark an application as a favorite and have it appear on your personal list of quick shortcuts.
- Home Directory: the blue folder icon lets the user quickly browse through all the directories in their home and open any of them in the Insight file manager by clicking the "Browse" button. You also have the same little "star" on directories that can be clicked to mark that directory as a favorite if you want quick access to it later.
- Desktop Preferences: the yellow tool icon provides quick shortcuts to system and desktop configuration utilities. If you are on PC-BSD®, or a supported operating system, you should have links to the operating system's control panel, the desktop configuration utility (lumina-config), qt-config (if it is installed), and the screensaver configuration utility.
Any open windows or applications will have a button appear in the section of the panel near the "User" button. If the application provides an icon, the button will appear as that icon and if you mouse over it, the tooltip will show the name of the application. If you have multiple copies of an application running, it will combine all those entries into a single button and list the number of windows after the icon. If you click on a button, it will automatically make that window active. If there are multiple windows, you can select the particular window you want from a drop-down menu. The color of the button will change depending on the state of the window: grey for a hidden or minimized window, white for a visible but inactive window, yellow for the active window, and orange for a window that needs attention.
The system tray is located in the right portion of the panel. Any applications that register a tray icon will appear in this area. Clicking an icon to interact with that application directly. The current system time shown by the clock is in the default format for the current locale.
The "System Dashboard" button is located at the far right of the panel and shown in Figure 6.9b.
This button provides quick access to hardware-specific information or operations, as supported by your operating system. The possible menu entries are:
- A slider for changing the audio volume for the system from 0% to 100%. If the operating system provides a mixer utility, an icon will also appear. Click the icon to launch that mixer utility for advanced control of the audio system.
- A slider for changing the screen brightness from 0% to 100%.
- The current status of the battery, if your system has one, and the estimated time remaining if that battery is discharging.
- A listing of the number of virtual workspaces that are in use, with buttons to switch between the different workspaces.
- The log out button for ending the desktop session. When the log out button is clicked, a window of choices will be displayed in the middle of the screen. The choices include: Log Out, Restart (if the user has permission), Shutdown (if the user has permission), Cancel (to exit the choice menu), and Lock Screen.
If the user right-clicks on the desktop, a menu of quick shortcuts will appear for instant access and the title of the menu will indicate the name of the workspace. While this menu can be customized, here is a quick summary of the default items on the menu.
- Terminal: used to launch a system terminal. The default is xterm, but this can be customized.
- Browse System: launches the file manager. The default file manager, Insight, recommended, but this can be customized.
- Unlock/Lock Desktop: used to lock or unlock the desktop plugins. When unlocked, desktop plugins become "active" and can be moved, resized, or removed from the desktop. It is recommended to leave the desktop locked during normal operations.
- Snap Plugins to Grid: this option only appears when the desktop is unlocked. Used to align and resize all the desktop plugins on an invisible 32x32 pixel grid, with special adjustments to align on the bottom and right screen edges if necessary, in order to provide a uniform appearance.
- Log Out: opens the system log out window, with options to shutdown/restart the system (if the user has permission), log out of the desktop session, lock the system, or cancel the log out window.
Lumina Configuration Utility
The Lumina Configuration utility, shown in Figure 6.9c, allows the user to configure every aspect of the desktop and is the recommended way to make changes. To launch this utility, click the icon for "Desktop Preferences" → "Desktop Appearance/Plugins" or type lumina-config from an xterm.
Each of the tabs at the top configures a different area of the system, with the most frequently changed options on the left side. Once changes have been made, the "Save Changes" button at the bottom of the window will become active. This allows the user to setup multiple changes in any tabs and apply them all at the same time.
The following tabs are available:
Desktop: this tab is used to change the visual appearance and functionality of the desktop on a per-screen basis. It can be used to add or remove the image(s) to use for the desktop's wallpaper. If multiple images are selected, the "Rotate Background" button can be selected as well as a specified time interval in minutes to rotate to the next image.
New plugins can be added using the bottom of this tab. Select the type of plugin from the drop-down menu then click the "+" button to immediately add it to the desktop.
Panels: the "Panels" tab, shown in Figure 6.9d, allows the user to add, remove, and configure the desktop panel. Panels must be aligned along a screen edge, opposite screen edges in the case of two panels, and may have any width, color, or transparency. Use the "Location" drop-down menu to set the location of the panel and the "Size" and "Color" options to set the panel width and color. If you would like the panel to be hidden unless the mouse is hovered over it, check the box "Auto-hide Panel".
Once a panel's appearance has been configured, plugins can be added by clicking the "+" button and selecting a plugin from the list that appears. Similarly, clicking the "-" button will remove the selected plugin, and the arrow buttons can be used to move the location of the plugin on the panel. The top of the list corresponds to either the top of a vertical panel or the left side of a horizontal panel.
Menu: the "Menu" tab, shown in Figure 6.9e, allows the user to configure the right-click desktop menu. Click the "+" or "-" buttons to add or remove a plugin and the arrow buttons to change the selected plugin's order in the right-click menu.
Shortcuts: the "Shortcuts" tab, shown in Figure 6.9f, allows the user to configure various keyboard shortcuts for system or window tasks. Most of these options relate to window and workspace management, such as moving windows between workspaces, but there are also options for changing the system audio volume or screen brightness. Note that a shortcut that is already in use can not be assigned to another action. First, that shortcut needs to be cleared and saved, before that key press will be detectable when creating or changing a shortcut.
Defaults: the "Defaults" tab, shown in Figure 6.9g, allows the user to configure the default web browser, email client, file manager, and virtual terminal. It can also be used to set the default application for several categories of file types. To add an application, select the file type and either click "Set App", which will open a drop-down menu of common applications, or "Set Binary", which will open a file browser so that you can browse to the path of the application.
TIP: some applications, such as web browsers, keep their own internal lists of default applications for opening particular types of files. If you set that application to use the lumina-open or xdg-open utilities, it will use the default applications that are set here instead so that there is only a single list of default applications for the system.
Session: the "Session" tab, shown in Figure 6.9h, governs the general settings for the desktop session. These settings are usually not changed on a frequent basis. This section is further subdivided into tabs that are used for various areas of the system:
- Theme: this tab allows the user to change the default font, font size, theme template, color scheme, and icon pack. It is possible to create your own theme template or color scheme by clicking the buttons next to those options and changing the settings as necessary. Note that the theme templates are written as Qt stylesheets, so some scripting experience may be helpful when configuring a theme.
- General Options: this tab contains the following options: "Enable numlock on startup", "Play chimes on startup", and "Play chimes on exit". It can also be used to change the user's icon which appears in the login menu and to reset the desktop settings to either system defaults or Lumina defaults.
- Startup Routine: this tab is used to configure applications, files, or binaries to automatically run when the desktop session is started. This is useful if you always open a particular application or file every time you log in to the system and can streamline the workflow of the user.
- Window System: this tab allows the user to setup various configuration options for the window manager. These options include the number of workspaces, where new windows are placed on the screen, when windows receive focus, and the appearance of the frame around application windows.
This utility can be used to take screenshots of the desktop or applications and save them as PNG image files. To launch this utility, click the icon for "System Applications" → "Lumina Screenshot" or type lumina-screenshot from an xterm.
To take a screenshot, click the "Snap" button in the upper-right corner of the screen shown in Figure 6.9i. The settings at the bottom of the window can be used to select the "Entire Screen" or to "Select Window". The delay, in number of seconds, can also be configured in order to give time to setup the screenshot. If you like the look of the taken screenshot, as shown in the preview, click the "Save" button to open a window where you can specify the name and location of the saved screenshot.
Insight File Manager
The Insight file manager, shown in Figure 6.9j, allows the user to easily browse and modify files on the local system on a per-directory basis. To open Insight, right-click the desktop and select "Browse System" or type lumina-fm from an xterm.
It is possible to open up additional directories through the tab system (use "Ctrl-T" or click "File" → "New Tab"), allowing the user to easily manage multiple locations on the system. Insight also features the ability to "bookmark" locations on the system for instant access via the "star" button. Once a location has been bookmarked, it will be available via the "Bookmarks" menu at the top of the window. Any removable devices that are available on the system will show up in the "External Devices" menu, if supported by the operating system. When an item is selected, the options on the left side of the screen will show the possible actions that may be taken with regards to that item. Possible actions include: open, open with (will prompt for the application to use), add to favorites, rename, cut, copy, paste, and delete. By default, the actions buttons are visible. They can be made invisible by clicking "View" → "Show Action Buttons".
A few additional options may be available at the bottom of the window, depending on the directory being viewed and the types of files that are in it:
- New Dir: the ability to create a new directory will become available if the user has permission to modify the contents of the current directory.
- Slideshow: if there are image files in the directory, there is an option to view those image files as a slideshow.
- Play: will appear if there are supported multimedia files in the directory. The types of files that are supported depends on what multimedia plugins are installed on the system. If a particular file is not recognized as a multimedia file, install the associated multimedia codec using the operating system's application management software and restart the file manager.
- Backups: if the system is formatted with ZFS and snapshots of the current directory are available, this button will appear. Snapshots are organized from oldest to newest, with the most recent snapshot selected by default, and the contents of the directory at the time of that snapshot are displayed. To restore a file or multiple files, select them from the list and click the "Restore Selection" button. If those files still exist and you want to overwrite them, make sure the "Overwrite Existing Files" option is checked first. Otherwise, if a file with that name exists, the restore will append a number to the end of the filename. For example, the first restored version of testfile.txt will become testfile-1.txt.
To open a file, directory, or URL from the command line, use lumina-open followed by the full path to the file or the URL. This utility will look for an appropriate application to use to open the specified file or URL. If there is no default application registered for the input type, a small dialog will prompt the user to select which application to use, and optionally set it as the default application for this file type. As seen in Figure 6.9k, this dialog organizes the available applications into three types:
- Preferred: these applications have registered their Mime type with the system and can open that type of file. Also included are any applications that have been used to open this type of file before as it keeps track of the last three applications used for that file type.
- Available: displays all the applications installed on the system, organized by category and name.
- Custom: lets the user manually type in the binary name or path of the application to use. It also provides a small button to let the user graphically search the system for the binary. Whenever text is entered, a check is performed to determine whether that is a valid binary and the icon will change between a green checkmark or a red X as appropriate.
List of Changes
Updates in Lumina version 0.7.2:
- Streamlined startup process and utilities
- Enable login/logout chimes
- New Desktop Plugins: Note Pad and Desktop View
- New Utility: lumina-search
- New Color Schemes: Lumina-[Green, Gold, Purple, Red, Glass] (default: Glass)
- New Backend system for registering default applications:
- Uses mime-types instead of extensions now
- All lumina utilities have been updated to work with the new system
- WARNING: Previously registered defaults might not be transferred to the new system, so you may need to reset your default web browser/email client through lumina-config.
Updates in Lumina version 0.8.0:
- Converted to Qt5 w/ XCB (tested with 5.2)
- New task manager mode (no groups - traditional task manager functionality)
- Task manager action menu (right-click) now has many more options that are auto-generated based on the current window state.
- Better crash reporting through lumina-open
- Better multimedia support (no more Phonon, use the new QMultimedia framework in Qt5)
- New custom-written single-application framework (no external dependency, works on all OS's)
- Various bug fixes
- New windows no longer placed underneath Lumina panels (even on multi-monitor systems)
- Special localized characters now recognized when passed in from the CLI.
- Recursive file operations now function properly in lumina-fm
- XDG "Exec" field code replacements function better now (fixes KDE application shortcuts like Okular)
- Other various/tiny fixes.
Updates in Lumina version 0.8.1:
- New desktop plugin: "Audio Player" (play audio files from the desktop)
- New panel plugins: "Home Button" (hide all windows and show the desktop), and "Start Menu" (alternative to the user button for traditional system management)
- New ability to remove/rotate image files while viewing a slideshow in lumina-fm.
- New backend distribution framework for setting system-wide default arrangements for the Lumina desktop (new users only, existing settings will not be changed). Also add the ability for the user to reset back to system/project defaults through lumina-config.
- Updates to Features
- Allow a customizable user icon (also used in PCDM)
- Have panels and desktop plugins follow the current theme by default.
- Convert the "Note Pad" desktop plugin to a file-based utility. This means all notes can be found in ~/Notes for access by other utilities as necessary. Also add the ability for the plugin to be able to load a generic text file to treat like a note for watching/updating.
- Bug Fixes:
- Auto-hidden panels will now stay visible when the mouse moves over the system tray.
- The user button will open faster now (updates the widget on-demand in the background)
- Lumina-open fix for filenames with multiple "."s in it (was causing issues detecting the file extension)
- Have the log-out window open on the current screen
- Have the log-out window get hidden at the start of the log out procedure.
- Other various bug/stability fixes.
Updates in Lumina version 0.8.2:
- New Utility: "lumina-info" (display information about the Lumina desktop, such as version, license, link to source repo, etc..)
- Update Themes: Large overhaul of theme templates and color schemes available out-of-box.
- lumina-config updates:
- Re-arrange the UI to be more intuitive
- New dialog for selecting plugins
- Add ability to set preferred time/date formats.
- Add ability to reset default applications back to defaults (non-mimetype registrations)
- Insight file manager changes:
- Make all file operations happen in a separate thread (does not make the UI lag any more).
- Fix detection of Qt-editable image files.
- lumina-desktop updates:
- Update vertical panel display of the clock plugin
- Fix desktop plugin stability issues
- Streamline session cleanup routine.
- Fix 2nd panel functionality
- Reduce number of filesystem watcher to one per session instead of one per screen.
- lumina-search updates:
- Add ability to exclude directories from file/dir search.
- Add ability for the user to configure any excluded directories and set an alternate start directory.