Lumina DE: 
A New Desktop 
Environment for PC-BSD 
Ken Moore 
PC-BSD/iXsystems 
Ohio LinuxFest 
October 24, 2014
Definitions: 
Panel Plugin 
(User Button) 
Desktop Plugins 
(App Launchers) 
Desktop Plugin 
(Calendar) 
Panel Plugins 
(System tray, clock, 
system dashboard) 
Panel 
Desktop
Definition: 
Desktop Environment 
● Common Definition (Wikipedia): 
“In computing, a desktop environment (DE) is 
an implementation of the desktop metaphor 
made of a bundle of programs running on top of 
a computer operating system, which share a 
common graphical user interface (GUI).” 
● Why does it have to be so complicated? 
– Does it need to include a bundle of 
applications? 
– Do all applications need to share a common 
interface?
Definition: 
Desktop Environment 
● Possibly a better definition: 
“A graphical interface providing user-level 
functionality of the operating system while 
simplifying the management and usage of 
applications.” 
● Visual Example: 
OS 
DE 
App 1 
App 2 
App 3 
User Input
Definition: 
Window Manager 
“A window manager is system software that controls 
the placement and appearance of windows within a 
windowing system in a graphical user interface. 
Most window managers are designed to help 
provide a desktop environment.” (Wikipedia) 
● Compliance with ICCCM/EWMH standards allows 
applications to work consistently between OS's 
● The level of integration between the DE and WM 
generally varies depending on the level of 
experience of the target user. 
● Most “full featured” DE's require/provide a specific 
WM for better user support and integration.
Define: Lumina-DE 
● Lumina is a lightweight, BSD-licensed 
desktop environment that focuses on 
streamlining the ability of the user to get 
work done (via 3rd-party applications) while 
minimizing system overhead. 
● Goals: 
– Minimize runtime dependencies. 
– Minimize the number of background daemons 
– Streamline launching/using applications 
– Simplify the usage of basic OS functionality 
– Strong focus on user-level customization
Define: Lumina-DE 
● What Lumina is NOT: 
– An application-development toolkit (uses Qt) 
– A graphical subsystem (uses X.org) 
– An application installation or runtime system 
(simply manages/uses applications that are 
registered with the system via the 
FreeDesktop standards) 
– An OS initialization/configuration system 
(uses pre-defined OS-specific interactions)
Dependencies 
● Runtime: 
– Fluxbox (WM) 
– X.org/Xlib with Qt 4.8+ (Graphical systems) 
– Xscreensaver, xterm, and numlockx 
– Oxygen Icon Theme 
– xbrightness or xbacklight (optional) 
● Does NOT use: 
– DBUS 
– HAL 
– Systemd 
Fresh PC-BSD 10.0.3 installation with Lumina 0.6.2 
Total System: ~0.5% CPU and ~120MB active memory use
Design Goal Example: 
Streamline App Launching 
● The UserButton 
– User Favorites 
(including desktop 
files/entries) 
– All Applications 
– Browse Home Dir 
– Configuration 
Utilities
Design Goal Example: 
Streamline OS Interface 
● The System 
Dashboard 
– Battery Status 
– Volume Control 
– Workspace 
Switching 
– Screen Brightness 
– Log Out Options
Design Goal Example: 
Enhanced Desktop 
● Panels with plugins 
● Desktop plugins 
● Right-click menu 
with plugins 
● Touch screen 
compatible with 
traditional desktop 
layout
Design Goal Example: 
Simplify Configuration 
● Single utility for most 
tasks 
– Appearance/theme 
– Desktop background 
– Panels 
– Plugins 
– Keyboard Shortcuts 
– Session options 
– Default applications
Design Goal Example: 
Easy Filesystem Usage 
● Standard file 
interaction 
● Multi-tab support 
● Simple multimedia 
player 
● Image slideshow 
● ZFS file recovery 
● Mark as favorite 
● Set/use bookmarks 
Options become available as necessary
Current Status 
● FreeDesktop (XDG) 
standards compliance 
– Application registration 
– Icon theme support 
– Environment variables 
– Mime-types 
– Localization 
– System tray 
● Multiple screen support 
● Multiple workspace support 
● OS-specific support 
– Control panel 
– Application “store” 
– QtConfig 
– External device detection 
– Screen Brightness 
– Audio Volume/Mixer 
– Battery status 
– Shutdown/Restart/Lock
Work In Progress 
● Theming 
– Simple to use 
– Color scheme 
independent 
– Custom Font size and 
appearance 
– Easily create new color 
schemes and apply to 
existing themes 
– Can extend to apply to 
all Qt applications 
system-wide 
● Search/Run Utility 
– Quick search 
● Run application 
● Open favorites 
– Full search 
● Home directory or 
system 
● Types of files 
● Search by partial 
name or file 
extension
Future Plans 
● Professional system modes 
– Kiosk mode 
– Whitelist-restricted access 
– Single-app 
– Daily/Weekly time restrictions 
● New “HUD” UI as an 
alternative to the panel 
system 
– Appears/disappears 
– Wraps around screen edges 
– Great for smaller screens or 
touchscreens 
– Retains “desktop” functionality 
w/ system tray, task manager, 
etc. 
● Qt-based window manager? 
● Distribution Configuration 
Standardization 
– Default theme 
– Default desktop layout and 
plugins 
– Default key bindings 
– Simple to setup for an 
administrator 
● Power savings 
– Suspend/resume plugins 
based on visibility 
– Internal Qt-based screensaver
Get Involved! 
● Full source repo available on GitHub 
https://github.com/pcbsd/lumina 
● Submit new plugins! (desktop/panel) 
● Porting to an OS? 
– Look in the “libLumina” subdirectory, and create 
a “LuminaOS-<OS-name>.cpp” file 
(Template available) 
– Already ported to: 
FreeBSD, OpenBSD, DragonFlyBSD, kFreeBSD, 
“Linux” (Debian, Ubuntu, Mint, Puppy, others?) 
● Test it out and submit bug reports! 
https://bugs.pcbsd.org/
Questions?

2014 - Lumina DE Overview

  • 1.
    Lumina DE: ANew Desktop Environment for PC-BSD Ken Moore PC-BSD/iXsystems Ohio LinuxFest October 24, 2014
  • 2.
    Definitions: Panel Plugin (User Button) Desktop Plugins (App Launchers) Desktop Plugin (Calendar) Panel Plugins (System tray, clock, system dashboard) Panel Desktop
  • 3.
    Definition: Desktop Environment ● Common Definition (Wikipedia): “In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system, which share a common graphical user interface (GUI).” ● Why does it have to be so complicated? – Does it need to include a bundle of applications? – Do all applications need to share a common interface?
  • 4.
    Definition: Desktop Environment ● Possibly a better definition: “A graphical interface providing user-level functionality of the operating system while simplifying the management and usage of applications.” ● Visual Example: OS DE App 1 App 2 App 3 User Input
  • 5.
    Definition: Window Manager “A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment.” (Wikipedia) ● Compliance with ICCCM/EWMH standards allows applications to work consistently between OS's ● The level of integration between the DE and WM generally varies depending on the level of experience of the target user. ● Most “full featured” DE's require/provide a specific WM for better user support and integration.
  • 6.
    Define: Lumina-DE ●Lumina is a lightweight, BSD-licensed desktop environment that focuses on streamlining the ability of the user to get work done (via 3rd-party applications) while minimizing system overhead. ● Goals: – Minimize runtime dependencies. – Minimize the number of background daemons – Streamline launching/using applications – Simplify the usage of basic OS functionality – Strong focus on user-level customization
  • 7.
    Define: Lumina-DE ●What Lumina is NOT: – An application-development toolkit (uses Qt) – A graphical subsystem (uses X.org) – An application installation or runtime system (simply manages/uses applications that are registered with the system via the FreeDesktop standards) – An OS initialization/configuration system (uses pre-defined OS-specific interactions)
  • 8.
    Dependencies ● Runtime: – Fluxbox (WM) – X.org/Xlib with Qt 4.8+ (Graphical systems) – Xscreensaver, xterm, and numlockx – Oxygen Icon Theme – xbrightness or xbacklight (optional) ● Does NOT use: – DBUS – HAL – Systemd Fresh PC-BSD 10.0.3 installation with Lumina 0.6.2 Total System: ~0.5% CPU and ~120MB active memory use
  • 9.
    Design Goal Example: Streamline App Launching ● The UserButton – User Favorites (including desktop files/entries) – All Applications – Browse Home Dir – Configuration Utilities
  • 10.
    Design Goal Example: Streamline OS Interface ● The System Dashboard – Battery Status – Volume Control – Workspace Switching – Screen Brightness – Log Out Options
  • 11.
    Design Goal Example: Enhanced Desktop ● Panels with plugins ● Desktop plugins ● Right-click menu with plugins ● Touch screen compatible with traditional desktop layout
  • 12.
    Design Goal Example: Simplify Configuration ● Single utility for most tasks – Appearance/theme – Desktop background – Panels – Plugins – Keyboard Shortcuts – Session options – Default applications
  • 13.
    Design Goal Example: Easy Filesystem Usage ● Standard file interaction ● Multi-tab support ● Simple multimedia player ● Image slideshow ● ZFS file recovery ● Mark as favorite ● Set/use bookmarks Options become available as necessary
  • 14.
    Current Status ●FreeDesktop (XDG) standards compliance – Application registration – Icon theme support – Environment variables – Mime-types – Localization – System tray ● Multiple screen support ● Multiple workspace support ● OS-specific support – Control panel – Application “store” – QtConfig – External device detection – Screen Brightness – Audio Volume/Mixer – Battery status – Shutdown/Restart/Lock
  • 15.
    Work In Progress ● Theming – Simple to use – Color scheme independent – Custom Font size and appearance – Easily create new color schemes and apply to existing themes – Can extend to apply to all Qt applications system-wide ● Search/Run Utility – Quick search ● Run application ● Open favorites – Full search ● Home directory or system ● Types of files ● Search by partial name or file extension
  • 16.
    Future Plans ●Professional system modes – Kiosk mode – Whitelist-restricted access – Single-app – Daily/Weekly time restrictions ● New “HUD” UI as an alternative to the panel system – Appears/disappears – Wraps around screen edges – Great for smaller screens or touchscreens – Retains “desktop” functionality w/ system tray, task manager, etc. ● Qt-based window manager? ● Distribution Configuration Standardization – Default theme – Default desktop layout and plugins – Default key bindings – Simple to setup for an administrator ● Power savings – Suspend/resume plugins based on visibility – Internal Qt-based screensaver
  • 17.
    Get Involved! ●Full source repo available on GitHub https://github.com/pcbsd/lumina ● Submit new plugins! (desktop/panel) ● Porting to an OS? – Look in the “libLumina” subdirectory, and create a “LuminaOS-<OS-name>.cpp” file (Template available) – Already ported to: FreeBSD, OpenBSD, DragonFlyBSD, kFreeBSD, “Linux” (Debian, Ubuntu, Mint, Puppy, others?) ● Test it out and submit bug reports! https://bugs.pcbsd.org/
  • 18.