Plasma/Architecture

From KDE Community Wiki

Plasmoids

Plasmoids are applets that can be added to any containment, such as a panel or a desktop.

Applet

Applets are the visible part of Plasmoids and are related to DataEngines. They provide a visual and interactive interface to the user.

For each DataEngine, there may be multiple applets that present the data in different ways; for example, an analog clock and a digital clock, while looking different, both display the same data: Time.

DataEngine

DataEngines are an invisible part of Plasmoids. They serve as a data source and provide information that Applets may use.

Multiple applets may use a single DataEngine as their data source; for example, there exists 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

Containment

Containments are containers that allow grouping of elements.

Panel

The Panel, normally displayed at the bottom of the Desktop as a taskbar, is a container for various Plasmoids like the Application Launcher Menu that provides an interface to launch installed applications; the Task Manager that lists the running applications; the Pager that allows switching of the active Desktop; clock applets, etc.

The list of items contained in the panel is configurable and a user can add or remove Plasmoids to the panel. The panel itself is also configurable.

Compared to a Plasmoid, the Panel, while also being an applet, can contain other applets.

Desktop

The Desktop is a containment that can be used to contain Plasmoids, Panels etc. The default Desktop, that is displayed on startup of KDE4, normally contains icon applets.

Multiple desktop containments can coexist, each containing different applets. Since a Desktop is just a Container, there is no longer a special "Desktop" as there was in KDE3.

Examples of desktops include the aforementioned default Desktop that appears on startup of KDE4; different desktop containers displaying the output of multiple monitors; a TV-out desktop; a desktop configured to display the output of small devices or small form factors; a presentation desktop, etc.

Runner

Runners are task-orientated plugins that allow the user to complete 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 is the KRunner dialog (ALT+F2). This dialog not only serves as a quick way to launch your favorite application, but it also allows the user to perform simple mathematical calculations, search for bookmarks or execute shell commands.

User Interface

Compared to the Desktop, the user interface is what the user sees all the time. This may be a desktop or multiple of them, or just parts of the desktop--like a special area that has been selected.

An example here is the Zooming User Interface that allows the user to view a larger area beyond the current desktop, as one full screen area. This may be useful if you need to view multiple desktops simultaneously for easy selection.

ScriptEngine

The ScriptEngine provides an interface to integrate scripting plugins. Such scripting plugins can be attached to any applet to extend the functionality via a scripting language. Applets, DataEngines and Runner can be written using your favorite scripting language.

Two popular examples of scripting solutions currently supported using this framework are Apple's Dashboard Widgets and SuperKaramba Themes.