3. What is Plasma?
● A primary user interface:
● For desktops
● Netbooks
● Smartphones
● Tablets
● Media centers
● A framework:
● For data visualization and editing
● A touch friendly, QGraphicsView based widget library
● Useful to write sandboxed, simple web oriented applications
5. History
● Before Plasma: in KDE 2 and 3
● Window manager: Kwin
●
Desktop: Kdesktop: desop icons, no 3rd party
extensibility
● Panels: Kicker: components such as taskbar are
plugins, simple api, but limited to panels
● Superkaramba: desktop widget system, plugins
written in Python, not compatible with Kicker
7. KDE Workspace 4.0
● Qt4
● QGraphicsView
● Single API: no more 3 incompatible applications
8. Plasma
● Everything is a plugin
● Same widgets can run on panel and desktop:
the concept of formfactors
● Unified framework with strong model/view
emphasis
9. Plasma Desktop
● Even desktop icons become an optional plugin
● You can have multiple “desktop” folders in
different areas -> easy to work on different
projects
● The concept of “activities”: depending on “what
you are doing right now”
● completely different content in the desktop
● Different set of windows shown
● Different behaviour of individual applications
10. Plasma library
● The library that makes this possible has several
components
● Visual: facilities for data visualization, such as a
widget set and the management/layouting of
visual plugins
● Data: fetching and editing of any kind of data
trough plugins with a simple and unified api
11. Visualization
● Plasma::Applet: is a QGraphicsWidget basic visual component: all
visualization plugins inherit from it
● Containment: is an Applet: contains other applets, manages their position,
size, formfactor and lifetime
● Corona: it's a QGraphicsScene: only contaiments are directly inserted into
it, manages the association between containments and Viewports
● View: It's a QGraphicsView, it has an association 1:1 with a Containment,
their geometries are syncronized
● Widget set: set of standard (QGraphics) widgets, from pushbuttons to
flickable views, themed with an SVG engine
12. Data
● DataEngine and DataContainer: all data providing
plugins are instances of DataEngine
● Shared between applets
● A data item will be represented by an unique (in the
DataEngine context) identifier string and will be wrapped
in a DataContainer
● An applet can use more than one dataengine and
mash-up the resulting data
● Service: the way to write data
● If i want to post a twitter update i'll get the service
associated with the source that represents my account
13. Other features
● Package: an Applet can be packaged and distributed
around: it's called plasmoid and is managed by the
Package class, that can install and uninstall them per
user. They should be written with a scripted binding,
preferably Javascript
● Remote applets: A system can export its running
Applets trough the network, the Package will be sent
across o the client machine and the
dataengines/services will run on the sharing one:
● Remote control
14. Netbook: differences
● Not only power and screen size: different use
case from notebooks
● A “desktop” doesn't make sense
● The desktop is an “application”
● No border maximized windows
● Present windows is the taskbar
● Some other different default settings
16. Netbook: Search and launch
● Search more intuitive than browsing categories
● Reuses runners
● Simple menu, no trees
● Use of flicking and drag and drop
18. Netbook: newspaper
● Touchscreen friendly
● Primary place for widgets
● Biggest use case: PIM and webservice client
widgets
19. Plasma Mobile
● Can KDE technologies provided an unified, yet
different experience across diffrent devices?
● Part of the libraries and the look and feel are
preserved
● Here we want a different workspace and
applications UI, while maintaining the logic
behind
20. Challenges
● Smaller physical screen size
● Limited hardware resources
● Different user interaction flow
21. Mobile profiles
● Different slimmed down profiles
● KDE libraries modules become optional
● Solid
● Kioslave
● KnewStuff
● Smaller packages
● Smaller memory footprint
22. Plasma Mobile
● Devices are eterogeneous
● Need for flexibility
● Configuration
● Ease of development
● Test bench for the integration of QtQUICK in
Plasma
23. Plasma Mobile
● Smartphones today: grid of icons, sometimes a
space for “widgets”
● Difficult organization
● Plasma Mobile: “context aware”, who i am,
where i am, what i'm doing
● Set of “activities” like work, messaging, social,
games