SlideShare a Scribd company logo
1 of 22
Download to read offline
Lumina DE:
Redefining the Desktop
Environment for Modern
Hardware
Ken Moore
PC-BSD/iXsystems
BSDCan
June 12th
, 2015
Modern Problems
with Graphical Interfaces
From the OS-perspective, everything computer-related
is heading toward unification.
● No longer need custom-written OS's for each
individual device (not counting different builds for
various architectures)
● Users want cross-compatibility between all their
devices (not just files, but settings and preferences
when migrating from one device to another)
● The main differences seem to come down to
default/supported configurations, allowing the
same OS to be used in a small router as well as in a
supercomputer.
Modern Problems
with Graphical Interfaces
From the interface-perspective, this unification still
has not occured.
● Interfaces have traditionally been designed for
particular types of systems with little flexibility (just
like the old OS's)
● I think interface designs have not made the
transition to a general-purpose model for a few
reasons:
– Physical screen size variations
– Input method variations
– Hardware capabilities (CPU & memory in
particular)
Modern Problems:
Display Sizes
Smartphones
3” -> 5”
Tablets
7” → 11”
Laptops
10” → 18”
TVs
30+”
Desktops
16” → 30”
800x480 →
2048x1536
320x480 →
720x1280
800x600 →
1920x1080
800x600 →
4096x2160
720x480 →
4096x2160
● How large should a button/icon be?
● Should the screen have reserved
space?
● Clearly, the interface should not be
identical across all the types of
devices due to the differing physical
size limitations!
www.xkcd.com/732
Modern Problems:
Input Methods
● Some correlations can be made between different
input types
Quick Touch ←→ Mouse Left-Click
Touch & Hold ←→ Mouse Right-Click
● Virtual Keyboards also help bridge the gap
● Input methods determine the types of available
interface elements
– Can lists be scrolled easily? (mouse wheel)
– Must buttons be large enough to touch?
Smartphones Tablets Laptops Desktops TV/Console
Touch
Touch
Keyboard
Mouse
Keyboard
Mouse
Keyboard
Controller
(Keyboard)
Modern Problems:
Hardware Specs
Smartphone Tablet Laptop Desktop TV/Console
CPU Speed
(GHz)
1 to 2.5 1 to 2.5 1 to 2.5 2 to 5 1 to 3
CPU Cores
2 or 4 2 or 4 2 to 7 2 to 8 2 to 8
Memory
(GB)
1 to 2 1 to 2 2 to 16 2 to 32 0.5 to 8
Storage
(GB)
0.5 to 16 8 to 32 128 to 512 256+ 16 to 512
● Storage does not seem to be much of a problem – the
amount available in even tiny devices is rapidly increasing
● The trends seem to favor multiple low-power CPU's
● Memory available is still quite limited on small devices
compared to most desktop systems (particularly gaming
systems)
Modern Problems
with Graphical Interfaces
In order to fix all of these problems, we need to
perform a fundamental re-design of how a desktop
environment is assembled and distributed.
● Ensure that the minimum requirements easily
accomodate the least-powerful of the target
platforms (smartphones in this case)
● Eliminate any platform-specific dependencies (web
browsers, general-purpose applications). Let the
platform distributor add in those applications as
necessary.
● For every point of large variation, insert a generic
abstraction layer where the functionality can easily
be changed to support the current platform.
Modern Solutions:
Display Sizes
There are a few things that can be done to
accommodate all the various display sizes:
● Define all the element sizes by metrics which are
resolution-independant (such as point sizes for fonts
and percentage of screen for interface elements)
● Allow different window-placement algorithms for the
various platforms
● Create multiple interface elements with duplicate
functionality but tailored for different platforms
● Allow the interface to be initially created based on a
single configuration file provided by the distributor,
but able to be changed later by the user
Modern Solutions:
Input Methods
Accounting for all the various input methods is
actually not that difficult, it just needs a bit of
planning ahead of time.
● Provide an optional set of input conversion routines
in the background (touch/controller events to
keyboard/mouse events for example)
● Provide a virtual keyboard plugin/utility
● Create multiple interface elements with duplicate
functionality but tailored for different platforms
● Enforce a minimum size for buttons/actions as
necessary
Modern Solutions:
Hardware Specs
While available disk space does not appear to be a
major hurdle, the amount of available memory
seems to be the bigger issue that needs to be
addressed.
● Seperate the overall desktop session (which is
always running), from any optional
interfaces/plugins (which may require more
memory).
● Create multiple interface elements with duplicate
functionality but with different runtime overhead.
● Use a pre-compiled language for development
instead of an interpreted scripting language. Once
selected, use that language exclusively.
The Lumina Desktop
Environment
What is it?
● Created/distributed under the 3-clause BSD license
● Written from scratch in C++/Qt(5)
● Compliant with the FreeDesktop/XDG standards
● Currently version 0.8.4 (still in beta)
– Uses Fluxbox for window management
– Only requires some other X libs/utils – no Linux
toolkits (DBUS, ConsoleKit, policyKit, systemd,
HALD, etc)
● Already available for: PC-BSD, FreeBSD, OpenBSD,
Dragonfly BSD, kFreeBSD, Debian, and “Linux”.
The Lumina Desktop
Environment
How is it designed?
● Based on a plugin-oriented design philosophy.
● The main components of the DE are:
– The library (libLuminaUtils.so)
– The session (non graphical, background
management system)
– The desktop (graphical – one per output device)
– The interface plugins (desktop, panel, and menu)
– The “lumina-open” utility (tied into “xdg-open” for
cross-DE application usage)
– Other small utilities are available for traditional
desktop use
Lumina-DE: Utilities
xterm
lumina-fileinfo
lumina-fm
lumina-info
lumina-screenshot
lumina-xconfig
lumina-search
xscreensaver
Fluxbox
lumina-open
lumina-config
numlockx
Lumina-DE
Login Manager / X11 Startup
Optional
Functionality Required
Required
xbrightness
Lumina-DE: Session
Operating System
Display Server (X11)
Visual Interface(s)Window Manager
Screensaver
Lumina Session
System Tray Task Manager Config Watcher
LDesktop
LuminaX11
(ICCCM/EWMH)
Services &
Applications
LuminaOS
Lumina-DE: Interface
Desktop Interface (Virtual root window with wallpaper – one per X11 monitor)
Panel(s)
Desktop Plugin Area
LPanel
Panel Plugins
● Usually Visible
● Easy Access
● Limited Space
● 1D Arrangement
Context Menu
LPPlugin
Desktop Plugins
● Covered by Apps
● Size/Location Config
● 2D Arrangement
● “Embedded Apps”
LDPlugin &
LDPluginContainer
Menu Plugins
● Run on Demand
● Menus/Shortcuts
● Desktop Lock/Unlock
● Log Out Prompt
The Lumina Desktop
Environment
How is it configured?
● Text based configuration files located in the
~/.lumina directory.
● For new users, the configurations are generated
based on the system-default luminaDesktop.conf
file.
● For every new version of the desktop, the
session/config files are evaluated for any changes
that might be necessary for backwards
compatibility (and those changes are performed
automatically to prevent loss of service)
Lumina-DE: System Defaults
Located at: [/usr/local]/etc/luminaDesktop.conf
● Simple syntax: “<variable>=<value>” with “#”
before comments
● Examples:
– session.playlog[in/out]audio=[true/false]
– session.default.webbrowser=<path to *.desktop file>
– desktop.backgroundfiles=<list of files for wallpapers>
– desktop.backgroundrotateminutes=<positive integer>
– [desktop/panel/menu].plugins=<list of plugins to use>
– favorites.[add/remove]=<file/dir path>
● This routine is extremely easy to modify, so if there
is some particular configurable which you need
access to, just let me know!
The Lumina Desktop
Environment
Does the DE have a plan for supporting Wayland?
● The Lumina desktop project keeps the usage of all
non-Qt libraries/standards highly segrated within the
source code to attempt to ensure an easy transition to
other systems at a later date.
● These components are located in specialized classes
within the LuminaUtils library:
– LuminaX11 (X11/XCB library usage)
– LuminaXDG (FreeDesktop standards support)
– LuminaOS (Operating system support)
– LuminaThemes (Theme engine for the desktop/utilities)
– LuminaSingleApplication (Single application framework)
– LuminaUtils (General purpose functions)
Lumina-DE: OS Interface
PC-BSD FreeBSD OpenBSD DragonFly kFreeBSD Debian Linux
Control
Panel
Yes No No No No No No
App Store
Yes
AppCafe
No No No No
Yes
synaptic
No
Qt5 Config No No Qt4-only Qt4-only Qt4-only
Yes
qt5ct
Qt4-only
List Mounted
Devices
Yes Yes Yes Yes Yes Yes Yes
Screen
Brightness
Hardware &
Software
Software
Hardware w/
xbacklight
Software
Hardware w/
xbacklight
Hardware w/
xbacklight
Hardware w/
xbacklight
Audio
Volume
Yes Yes Yes Yes No Yes Yes
Audio Mixer
Yes
pc-mixer
No No
Yes
pc-mixer
Yes
pavucontrol
Yes
pavucontrol
Yes
pavucontrol
System
Suspend
Yes No No No No
Yes
dbus →
systemd
No
Battery
Monitor
Yes Yes Yes Yes No
Yes
No est. time
Yes
No est. time
Lumina-DE: OS Interface
PC-BSD FreeBSD OpenBSD DragonFly kFreeBSD Debian Linux
Filesystem
Capacity
Yes Yes Yes Yes No Yes Yes
Checksums Yes Yes Yes No No Yes Yes
CPU
Temperature
Yes Yes No No No Yes No
CPU Usage Yes Yes No No No Yes No
Memory
Usage
Yes Yes No No No Yes No
Shutdown
Access
Check
Yes, also
with update
process
checks
Yes Yes
No
(Always
enabled)
No
(Always
enabled)
Yes
dbus →
systemd
No
(Always
enabled)
Note: This chart is accurate as of Lumina version 0.8.5-devel (6/2/15)
Lumina-DE:
Near-Future Plans
● Create a new window manager (lumina-wm)
– Combines functionality of a WM, screensaver,
and power manager.
– This will remove Fluxbox and xscreensaver from
the dependencies.
● Integrate Capsicum usage on FreeBSD
– Still in evaluation period
– If you are familiar with this security framework
and want to help out, please talk to me!
● Continue to create additional plugins, color
schemes, and themes
Questions?
Slides available online at:
http://www.slideshare.net/beanpole135/

More Related Content

What's hot

Embedded Linux Basics
Embedded Linux BasicsEmbedded Linux Basics
Embedded Linux BasicsMarc Leeman
 
History of Operting System Windows and a simple comparision
History of Operting System Windows and a simple comparisionHistory of Operting System Windows and a simple comparision
History of Operting System Windows and a simple comparisionfarrukh ishaq choudhary
 
Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)Peter Tröger
 
Comparison of windows linux and mac os
Comparison of windows linux and mac osComparison of windows linux and mac os
Comparison of windows linux and mac osAli Zar
 
Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]Ionela
 
Win8 architecture for developers
Win8 architecture for developersWin8 architecture for developers
Win8 architecture for developersRobert MacLean
 
The Future of the Operating System - Keynote LinuxCon 2015
The Future of the Operating System -  Keynote LinuxCon 2015The Future of the Operating System -  Keynote LinuxCon 2015
The Future of the Operating System - Keynote LinuxCon 2015Steven Francia
 
Lubuntu a Lightweight Desktop
Lubuntu a Lightweight DesktopLubuntu a Lightweight Desktop
Lubuntu a Lightweight Desktopmahrukh rafique
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoSherif Mousa
 
Windows OS Architecture in Summery
Windows OS Architecture in SummeryWindows OS Architecture in Summery
Windows OS Architecture in SummeryAsanka Dilruk
 
Course 102: Lecture 25: Devices and Device Drivers
Course 102: Lecture 25: Devices and Device Drivers Course 102: Lecture 25: Devices and Device Drivers
Course 102: Lecture 25: Devices and Device Drivers Ahmed El-Arabawy
 
Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingStephan Cadene
 
Linux – an introduction
Linux – an introductionLinux – an introduction
Linux – an introductionWingston
 
8 th
8 th8 th
8 thErm78
 

What's hot (20)

Embedded Linux Basics
Embedded Linux BasicsEmbedded Linux Basics
Embedded Linux Basics
 
History of Operting System Windows and a simple comparision
History of Operting System Windows and a simple comparisionHistory of Operting System Windows and a simple comparision
History of Operting System Windows and a simple comparision
 
Linux Internals - Part I
Linux Internals - Part ILinux Internals - Part I
Linux Internals - Part I
 
Embedded Linux
Embedded LinuxEmbedded Linux
Embedded Linux
 
Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)
 
Comparison of windows linux and mac os
Comparison of windows linux and mac osComparison of windows linux and mac os
Comparison of windows linux and mac os
 
Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]Embedded Os [Linux & Co.]
Embedded Os [Linux & Co.]
 
Win8 architecture for developers
Win8 architecture for developersWin8 architecture for developers
Win8 architecture for developers
 
The Future of the Operating System - Keynote LinuxCon 2015
The Future of the Operating System -  Keynote LinuxCon 2015The Future of the Operating System -  Keynote LinuxCon 2015
The Future of the Operating System - Keynote LinuxCon 2015
 
Lubuntu a Lightweight Desktop
Lubuntu a Lightweight DesktopLubuntu a Lightweight Desktop
Lubuntu a Lightweight Desktop
 
Linux io
Linux ioLinux io
Linux io
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
Windows OS Architecture in Summery
Windows OS Architecture in SummeryWindows OS Architecture in Summery
Windows OS Architecture in Summery
 
Course 102: Lecture 25: Devices and Device Drivers
Course 102: Lecture 25: Devices and Device Drivers Course 102: Lecture 25: Devices and Device Drivers
Course 102: Lecture 25: Devices and Device Drivers
 
Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development Training
 
Linux – an introduction
Linux – an introductionLinux – an introduction
Linux – an introduction
 
Buntu
BuntuBuntu
Buntu
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
 
8 th
8 th8 th
8 th
 
Ubuntu-Overview
Ubuntu-OverviewUbuntu-Overview
Ubuntu-Overview
 

Similar to 2015 bsd can-luminade

Enlightenment Foundation Libraries (Overview)
Enlightenment Foundation Libraries (Overview)Enlightenment Foundation Libraries (Overview)
Enlightenment Foundation Libraries (Overview)Samsung Open Source Group
 
Linux fundamentals Training
Linux fundamentals TrainingLinux fundamentals Training
Linux fundamentals TrainingLove Steven
 
Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama..super...
Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama..super...Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama..super...
Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama..super...Mustafa AL-Timemmie
 
1.1.1.Introduction.pdf
1.1.1.Introduction.pdf1.1.1.Introduction.pdf
1.1.1.Introduction.pdfbemnitekalegn
 
Unit 1 computer concepts
Unit 1   computer conceptsUnit 1   computer concepts
Unit 1 computer conceptsMithun DSouza
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux MultimediaCaglar Dursun
 
Linux distro and its features by adam
Linux distro and its features by adamLinux distro and its features by adam
Linux distro and its features by adamMohammed Adam
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linuxplarsen67
 
Lumina: A Fresh Approach to Desktops
Lumina: A Fresh Approach to DesktopsLumina: A Fresh Approach to Desktops
Lumina: A Fresh Approach to DesktopsKen Moore
 
Syllable OS
Syllable OSSyllable OS
Syllable OSorly
 
Syllable OS
Syllable OSSyllable OS
Syllable OSnikkiann
 

Similar to 2015 bsd can-luminade (20)

Enlightenment Foundation Libraries (Overview)
Enlightenment Foundation Libraries (Overview)Enlightenment Foundation Libraries (Overview)
Enlightenment Foundation Libraries (Overview)
 
Linux fundamentals Training
Linux fundamentals TrainingLinux fundamentals Training
Linux fundamentals Training
 
Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama..super...
Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama..super...Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama..super...
Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama..super...
 
Linux
LinuxLinux
Linux
 
Intro to linux
Intro to linux Intro to linux
Intro to linux
 
1.1.1.Introduction.pdf
1.1.1.Introduction.pdf1.1.1.Introduction.pdf
1.1.1.Introduction.pdf
 
Unit 1 computer concepts
Unit 1   computer conceptsUnit 1   computer concepts
Unit 1 computer concepts
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux Multimedia
 
Linux distro and its features by adam
Linux distro and its features by adamLinux distro and its features by adam
Linux distro and its features by adam
 
Operating Systems
Operating SystemsOperating Systems
Operating Systems
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linux
 
Lumina: A Fresh Approach to Desktops
Lumina: A Fresh Approach to DesktopsLumina: A Fresh Approach to Desktops
Lumina: A Fresh Approach to Desktops
 
Syllable OS
Syllable OSSyllable OS
Syllable OS
 
Syllable OS
Syllable OSSyllable OS
Syllable OS
 
Syllable OS
Syllable OSSyllable OS
Syllable OS
 
Syllable OS
Syllable OSSyllable OS
Syllable OS
 
Syllable OS
Syllable OSSyllable OS
Syllable OS
 
Syllable OS
Syllable OSSyllable OS
Syllable OS
 
Why choose ubuntu server
Why choose ubuntu serverWhy choose ubuntu server
Why choose ubuntu server
 
Linux1
Linux1Linux1
Linux1
 

Recently uploaded

Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 

Recently uploaded (20)

Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 

2015 bsd can-luminade

  • 1. Lumina DE: Redefining the Desktop Environment for Modern Hardware Ken Moore PC-BSD/iXsystems BSDCan June 12th , 2015
  • 2. Modern Problems with Graphical Interfaces From the OS-perspective, everything computer-related is heading toward unification. ● No longer need custom-written OS's for each individual device (not counting different builds for various architectures) ● Users want cross-compatibility between all their devices (not just files, but settings and preferences when migrating from one device to another) ● The main differences seem to come down to default/supported configurations, allowing the same OS to be used in a small router as well as in a supercomputer.
  • 3. Modern Problems with Graphical Interfaces From the interface-perspective, this unification still has not occured. ● Interfaces have traditionally been designed for particular types of systems with little flexibility (just like the old OS's) ● I think interface designs have not made the transition to a general-purpose model for a few reasons: – Physical screen size variations – Input method variations – Hardware capabilities (CPU & memory in particular)
  • 4. Modern Problems: Display Sizes Smartphones 3” -> 5” Tablets 7” → 11” Laptops 10” → 18” TVs 30+” Desktops 16” → 30” 800x480 → 2048x1536 320x480 → 720x1280 800x600 → 1920x1080 800x600 → 4096x2160 720x480 → 4096x2160 ● How large should a button/icon be? ● Should the screen have reserved space? ● Clearly, the interface should not be identical across all the types of devices due to the differing physical size limitations! www.xkcd.com/732
  • 5. Modern Problems: Input Methods ● Some correlations can be made between different input types Quick Touch ←→ Mouse Left-Click Touch & Hold ←→ Mouse Right-Click ● Virtual Keyboards also help bridge the gap ● Input methods determine the types of available interface elements – Can lists be scrolled easily? (mouse wheel) – Must buttons be large enough to touch? Smartphones Tablets Laptops Desktops TV/Console Touch Touch Keyboard Mouse Keyboard Mouse Keyboard Controller (Keyboard)
  • 6. Modern Problems: Hardware Specs Smartphone Tablet Laptop Desktop TV/Console CPU Speed (GHz) 1 to 2.5 1 to 2.5 1 to 2.5 2 to 5 1 to 3 CPU Cores 2 or 4 2 or 4 2 to 7 2 to 8 2 to 8 Memory (GB) 1 to 2 1 to 2 2 to 16 2 to 32 0.5 to 8 Storage (GB) 0.5 to 16 8 to 32 128 to 512 256+ 16 to 512 ● Storage does not seem to be much of a problem – the amount available in even tiny devices is rapidly increasing ● The trends seem to favor multiple low-power CPU's ● Memory available is still quite limited on small devices compared to most desktop systems (particularly gaming systems)
  • 7. Modern Problems with Graphical Interfaces In order to fix all of these problems, we need to perform a fundamental re-design of how a desktop environment is assembled and distributed. ● Ensure that the minimum requirements easily accomodate the least-powerful of the target platforms (smartphones in this case) ● Eliminate any platform-specific dependencies (web browsers, general-purpose applications). Let the platform distributor add in those applications as necessary. ● For every point of large variation, insert a generic abstraction layer where the functionality can easily be changed to support the current platform.
  • 8. Modern Solutions: Display Sizes There are a few things that can be done to accommodate all the various display sizes: ● Define all the element sizes by metrics which are resolution-independant (such as point sizes for fonts and percentage of screen for interface elements) ● Allow different window-placement algorithms for the various platforms ● Create multiple interface elements with duplicate functionality but tailored for different platforms ● Allow the interface to be initially created based on a single configuration file provided by the distributor, but able to be changed later by the user
  • 9. Modern Solutions: Input Methods Accounting for all the various input methods is actually not that difficult, it just needs a bit of planning ahead of time. ● Provide an optional set of input conversion routines in the background (touch/controller events to keyboard/mouse events for example) ● Provide a virtual keyboard plugin/utility ● Create multiple interface elements with duplicate functionality but tailored for different platforms ● Enforce a minimum size for buttons/actions as necessary
  • 10. Modern Solutions: Hardware Specs While available disk space does not appear to be a major hurdle, the amount of available memory seems to be the bigger issue that needs to be addressed. ● Seperate the overall desktop session (which is always running), from any optional interfaces/plugins (which may require more memory). ● Create multiple interface elements with duplicate functionality but with different runtime overhead. ● Use a pre-compiled language for development instead of an interpreted scripting language. Once selected, use that language exclusively.
  • 11. The Lumina Desktop Environment What is it? ● Created/distributed under the 3-clause BSD license ● Written from scratch in C++/Qt(5) ● Compliant with the FreeDesktop/XDG standards ● Currently version 0.8.4 (still in beta) – Uses Fluxbox for window management – Only requires some other X libs/utils – no Linux toolkits (DBUS, ConsoleKit, policyKit, systemd, HALD, etc) ● Already available for: PC-BSD, FreeBSD, OpenBSD, Dragonfly BSD, kFreeBSD, Debian, and “Linux”.
  • 12. The Lumina Desktop Environment How is it designed? ● Based on a plugin-oriented design philosophy. ● The main components of the DE are: – The library (libLuminaUtils.so) – The session (non graphical, background management system) – The desktop (graphical – one per output device) – The interface plugins (desktop, panel, and menu) – The “lumina-open” utility (tied into “xdg-open” for cross-DE application usage) – Other small utilities are available for traditional desktop use
  • 14. Lumina-DE: Session Operating System Display Server (X11) Visual Interface(s)Window Manager Screensaver Lumina Session System Tray Task Manager Config Watcher LDesktop LuminaX11 (ICCCM/EWMH) Services & Applications LuminaOS
  • 15. Lumina-DE: Interface Desktop Interface (Virtual root window with wallpaper – one per X11 monitor) Panel(s) Desktop Plugin Area LPanel Panel Plugins ● Usually Visible ● Easy Access ● Limited Space ● 1D Arrangement Context Menu LPPlugin Desktop Plugins ● Covered by Apps ● Size/Location Config ● 2D Arrangement ● “Embedded Apps” LDPlugin & LDPluginContainer Menu Plugins ● Run on Demand ● Menus/Shortcuts ● Desktop Lock/Unlock ● Log Out Prompt
  • 16. The Lumina Desktop Environment How is it configured? ● Text based configuration files located in the ~/.lumina directory. ● For new users, the configurations are generated based on the system-default luminaDesktop.conf file. ● For every new version of the desktop, the session/config files are evaluated for any changes that might be necessary for backwards compatibility (and those changes are performed automatically to prevent loss of service)
  • 17. Lumina-DE: System Defaults Located at: [/usr/local]/etc/luminaDesktop.conf ● Simple syntax: “<variable>=<value>” with “#” before comments ● Examples: – session.playlog[in/out]audio=[true/false] – session.default.webbrowser=<path to *.desktop file> – desktop.backgroundfiles=<list of files for wallpapers> – desktop.backgroundrotateminutes=<positive integer> – [desktop/panel/menu].plugins=<list of plugins to use> – favorites.[add/remove]=<file/dir path> ● This routine is extremely easy to modify, so if there is some particular configurable which you need access to, just let me know!
  • 18. The Lumina Desktop Environment Does the DE have a plan for supporting Wayland? ● The Lumina desktop project keeps the usage of all non-Qt libraries/standards highly segrated within the source code to attempt to ensure an easy transition to other systems at a later date. ● These components are located in specialized classes within the LuminaUtils library: – LuminaX11 (X11/XCB library usage) – LuminaXDG (FreeDesktop standards support) – LuminaOS (Operating system support) – LuminaThemes (Theme engine for the desktop/utilities) – LuminaSingleApplication (Single application framework) – LuminaUtils (General purpose functions)
  • 19. Lumina-DE: OS Interface PC-BSD FreeBSD OpenBSD DragonFly kFreeBSD Debian Linux Control Panel Yes No No No No No No App Store Yes AppCafe No No No No Yes synaptic No Qt5 Config No No Qt4-only Qt4-only Qt4-only Yes qt5ct Qt4-only List Mounted Devices Yes Yes Yes Yes Yes Yes Yes Screen Brightness Hardware & Software Software Hardware w/ xbacklight Software Hardware w/ xbacklight Hardware w/ xbacklight Hardware w/ xbacklight Audio Volume Yes Yes Yes Yes No Yes Yes Audio Mixer Yes pc-mixer No No Yes pc-mixer Yes pavucontrol Yes pavucontrol Yes pavucontrol System Suspend Yes No No No No Yes dbus → systemd No Battery Monitor Yes Yes Yes Yes No Yes No est. time Yes No est. time
  • 20. Lumina-DE: OS Interface PC-BSD FreeBSD OpenBSD DragonFly kFreeBSD Debian Linux Filesystem Capacity Yes Yes Yes Yes No Yes Yes Checksums Yes Yes Yes No No Yes Yes CPU Temperature Yes Yes No No No Yes No CPU Usage Yes Yes No No No Yes No Memory Usage Yes Yes No No No Yes No Shutdown Access Check Yes, also with update process checks Yes Yes No (Always enabled) No (Always enabled) Yes dbus → systemd No (Always enabled) Note: This chart is accurate as of Lumina version 0.8.5-devel (6/2/15)
  • 21. Lumina-DE: Near-Future Plans ● Create a new window manager (lumina-wm) – Combines functionality of a WM, screensaver, and power manager. – This will remove Fluxbox and xscreensaver from the dependencies. ● Integrate Capsicum usage on FreeBSD – Still in evaluation period – If you are familiar with this security framework and want to help out, please talk to me! ● Continue to create additional plugins, color schemes, and themes
  • 22. Questions? Slides available online at: http://www.slideshare.net/beanpole135/