Difference between revisions of "Projects/Plasma/Architecture"

(Added section about ScriptEngine's)
(→‎Containment: add link to Aaron's blog post about containments)
Line 21: Line 21:
Containments are containers that allow to group elements.
[http://aseigo.blogspot.com/2008/03/power-of-containments.html Containments] are containers that allow to group elements.

Revision as of 10:01, 5 March 2008


Plasmoids are applets that can be added to any containment like a panel or the desktop.


Applets are compared to DataEngines the visible part of Plasmoids. They provide something the user sees and is able to interact with.

For one DataEngine there may multiple applets that present the data in different ways. As example there may a analog and a digital clock that both, while looking different, are showing one thing: Time.


DataEngines are compared to Applets the invisible part of Plasmoids. They are the data source and are information providers.

As example there exist only one DataEngine for the current time which can then be used by multiple clock applets to show the time.

So to have a Clock Plasmoid:

Plasma --> Time Data Engine --> Analog Clock Plasmoid and Digital Clock Plasmoid


Containments are containers that allow to group elements.


The panel displayed per default at the bottom of the desktop is a container for various Plasmoids like the application launcher startmenu, a list of tasks, a desktop-switcher or a clock applet.

What elements are in the panel is configurable. That means, that a user can add more Plasmoids to the panel or remove existing ones. the panel itself is also configurable, although the ui for this isn't done.

Compared to an Plasmoid the panel, while being itself an applet, can contain also other applets.


The desktop itself is also a containment. The default desktop, that will show up if you start KDE4, just contains icon applets.

The user may have multiple desktop containments with different applets in each. So, there is no longer "the desktop" but it's just a containment.

One example is the default desktop someone sees if KDE4 got started. Other examples are different desktops for different monitors, another one for tv-out, one for small devices aka small form factors, one for presentation, etc.


Runners are task-orientated plugins that allow to help the user to solve one special task. They try to guess what you or a program that uses them, tries to achieve with some input provided. Think of them as your friendly agent that tries to help you to find the solution for something.

An example here is the dialog you are able to see if you press ALT+F2. Those dialog is not only a fast way to start your favorite application, but also allows to do calculations, to search for bookmarks or to execute shell commands.

User Interface

Compared to the desktop, the user interface is what the user sees all the time. This may as example a desktop, multiple of them or just parts like a special area selected before.

An example here is the Zooming User Interface that allows to go beyond the desktop as one full screen area.


The ScriptEngine does provide an interface to integrate scripting plugins.

Such scripting plugins can be attached to any applet to extend the functionality with something written in a scripting language. Applets, DataEngines and Runner can be written using your favorite scripting language.

Two popular samples for scripting solutions already supported using this framework are Apple's Dashboard Widgets and SuperKaramba Themes.

This page was last edited on 5 March 2008, at 10:01. Content is available under Creative Commons License SA 4.0 unless otherwise noted.