Dieses Beispiel soll erklären wie grundsätzlich ein Plasmoid erstellt werden kann. Weitere Informationen über das Schreiben von Plasmoids und das anpassen des UIs werden in diesem Artikel nicht behandelt.
Als erste Adresse für weitere Informationen wird diese Seite empfohlen.
Plasmoids sind kleine Applets, die am Desktop oder in der Taskleiste von KDE4 angezeigt werden können.
Derzeit gibt es bereits eine große Menge verschiedenster Plasmoids, mit einem umfangreichen Funktionsangebot. Grundsätzlich existieren verschiedene Möglichkeiten wie Plasmoids erstellt werden können. Mit einer Skript-Sprache wie Python oder direkt in C++.
In diesem Artikel wird als Beispiel das Plasomid „Hello World!“ angelegt.
Bei der Erstellung von Plasmoids muss eine definierte Verzeichnisstruktur eingehalten werden. Dazu muss zuerst das Hauptverzeichnis mit dem Namen des Plasmoids angelegt werden. Darunter das Verzeichnis contents und darunter code.
Um die Verzeichnisstruktur für das Beispiel anzulegen kann folgender Befehl eingegeben werden:
$ mkdir -p hello-world/contents/code
Der Vollständigkeit halber sollte gleich das Verzeichnis ui unter contents hinzugefügt werden. In diesem Verzeichnis kann später die Konfiguration des User-Interface definiert werden.
$ mkdir -p hello-world/contents/ui
In dieser Verzeichnisstruktur müssen zumindest die beiden folgenden Dateien angelegt werden, deren Funktion und Inhalt noch weiter unten erläutert wird:
code
Die Datei metadata.desktop enthält alle Informationen über das Plasmoid. Sowohl Informationen welche Module von Python benötigt werden, als auch Name und Zweck des Plasmoids sind darin enthalten.
Der Inhalt von metadata.desktop für das Beispiel sieht wie folgt aus:
[Desktop Entry] Encoding=UTF-8 Name=Hello World Name[de]=Hallo Welt Type=Service ServiceTypes=Plasma/Applet Icon=pattern-network X-Plasma-API=python X-Plasma-MainScript=code/main.py X-KDE-PluginInfo-Author=Michael Mayer X-KDE-PluginInfo-Email=techwiki@kuhbox.net X-KDE-PluginInfo-Name=hello-world X-KDE-PluginInfo-Version=1.0 X-KDE-PluginInfo-Website=http://techwiki.kuhbox.net/ X-KDE-PluginInfo-Category=Examples X-KDE-PluginInfo-Depends= X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true
Eine detailierte Erklärung zum Inhalt der Datei gibt es hier
In main.py steht nun der Python-Quellcode der die Funktion des Plasmoids bestimmt. Diese Datei liegt im Unterverzeichnis code.
Hier wiederum der Quellcode für das Beispiel Hallo-Welt:
# -*- coding: utf-8 -*- # Autor: Michael Mayer # Lizenz: GPL v2 from PyQt4.QtCore import * from PyQt4.QtGui import * from PyKDE4.plasma import Plasma from PyKDE4 import plasmascript class HelloWorld(plasmascript.Applet): def __init__(self,parent,args=None): plasmascript.Applet.__init__(self,parent) def init(self): self.setHasConfigurationInterface(False) self.resize(150, 120) def paintInterface(self, painter, option, rect): painter.save() painter.setPen(Qt.white) painter.drawText(rect, Qt.AlignVCenter | Qt.AlignHCenter, "Hello World!") painter.restore() def CreateApplet(parent): return HelloWorld(parent)
Auch zu diesem Programm gibt es hier wieder eine genauere Erklärung.
Damit ist das erste Plasmoid bereits fast fertig. Es muss nur mehr ein Paket erzeugt werden, das direkt installiert werden kann. Das Paket ist eine einfache zip-Datei welche die gesamte Verzeichnisstruktur des Plasmoids, ausgehend von dem Verzeichnis in dem die Datei metadata.desktop liegt (Hauptverzeichnis), abwärts enthält.
Das Paket kann mit dem Befehl
$ zip -r ../<paketname>.zip .
direkt aus dem Hauptverzeichnis heraus erstellt werden. Um das Plasmoid in KDE verfügbar zu machen reicht dann der Befehl:
$ plasmapkg -i ../<paketname>.zip
Ebenso kann das Plasmoid mit einem Befehl wieder entfernt werden:
$ plasmapkg -r <paketname>
Nach der Installation kann das Plasmoid zur Arbeitsfläche hinzugefügt und verwendet werden.
Mit der Fehlersuche bei Plasmoids beschäftigt sich ein eigener Artikel.
Diskussion