Plasmoids sind Widgets die direkt auf der KDE-Oberfläche platziert werden können. Beispiele für Plasmoids sind ein Notizblock, Kalender und eine Anzeige der Festplattenbelegung.
Neben QML können Plasmoids auch in C++, JavaScript, Ruby oder Python erstellt werden.
Um Plasmoids mit QML erstellen werden mindestens KDE 4.6 und das Qt-SDK in der Version 4.7.1 vorausgesetzt.
Unterhalb des Anwendungsverzeichnisses befindet sich eine Datei metadata.desktop, die allgemeine Informationen über das Plasmoid bereitstellt und ein Ordner content, der den eigentlichen Code der Oberfläche (Ordner ui) und dahzugehörige Daten (Ordner data) enthält. Der Code wird üblicherweise über eine Datei main.qml ausgeführt.
Nochmals die Struktur:
Ähnlich wie bei einem Debian-Paket, können auch bei Plasmoids Metadaten angegeben werden. Diese befinden sich in der Datei metadata.desktop.
Folgende Variablen stehen zur Verfügung:
| Variable | Bedeutung |
|---|---|
| Encoding | Encoding des Textes |
| Name | Name des Plasmoids |
| Name[Sprache] | Name des Plasmoids in der angegebenen Sprache |
| Type | |
| ServiceTypes | |
| Icon | Icon, das KDE für das Plasmoid anzeigt |
| Comment | Kommentar |
| X-Plasma-API | Sprache in der das Plasmoid geschrieben ist, für QML ist das declarativeappletscript |
| X-Plasma-MainScript | Haupt-Skript des Plasmoids, üblicherweise ui/main.qml |
| X-Plasma-DefaultSize | Standard-Größe des Plasmoids |
| X-KDE-PluginInfo-Author | Name des Autors |
| X-KDE-PluginInfo-Email | Mail-Addresse des Autors |
| X-KDE-PluginInfo-Website | Website des Plasmoids/Autors |
| X-KDE-PluginInfo-Category | Kategorie unter der das Plasmoid angezeigt wird |
| X-KDE-PluginInfo-Name | Installationspfad: ~/.kde/share/apps/plasma/<X-KDE-PluginInfo-Name>/ |
| X-KDE-PluginInfo-Version | Versionsnummer |
| X-KDE-PluginInfo-Depends | Abhängigkeiten |
| X-KDE-PluginInfo-License | Lizenz |
| X-KDE-PluginInfo-EnabledByDefault | Falls true, wird das Plasmoid von KDE in der Auswahl angezeigt |
Für unser Beispiel verwenden wir folgende Datei:
[Desktop Entry] Encoding=UTF-8 Name=Hello World! Name[de]=Hallo Welt! Type=Service ServiceTypes=Plasma/Applet,Plasma/PopupApplet Icon=contents/data/proggen-logo.png Comment=A simple QML-plasmoid. X-Plasma-API=declarativeappletscript X-Plasma-MainScript=ui/main.qml X-Plasma-DefaultSize=200,100 X-KDE-PluginInfo-Author=Daniel Marth X-KDE-PluginInfo-Email X-KDE-PluginInfo-Website=https://proggen.org/ X-KDE-PluginInfo-Category=Examples X-KDE-PluginInfo-Name=org.proggen.helloworld X-KDE-PluginInfo-Version=0.1 X-KDE-PluginInfo-Depends= X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true
Das komplette Beispiel kann hier heruntergeladen werden: helloworld.zip
Installiert kann das Plasmoid über den Befehl:
plasmapkg -i helloworld
Wobei helloworld der Name jenes Ordners ist, der unser Plasmoid enthält. Die Deinstallation erfolgt ähnlich:
plasmapkg -r helloworld
In diesem Fall steht der letzte Parameter jedoch für den Namen des Plasmoids, falls dieser vom Namen des Ordners abweicht. Eine Liste aller installierten Plasmoids kann ebenfalls abgefragt werden:
plasmapkg -l
Um sich das ständige neu Installieren während der Entwicklungsphase zu ersparen, kann auch plasmoidviewer verwendet werden:
plasmoidviewer helloworld
Mit dieser Methode können auch Fehlermeldungen ausgelesen werden.
Über das Kontextmenü des KDE-Desktops kann nun der Add Widgets…-Dialog aufgerufen werden, in diesem nun unser Plasmoid mit unserem Logo angezeigt wird. Eventuell müssen zuerst Widgets über das selbige Kontextmenü entsperrt werden.
Nun kann das Plasmoid per Drag-And-Drop auf dem Desktop platziert werden.