Erstellen eines JavaScript-Plasmoids

Plasmoiden kommen in einer einzigen Archivdatei verpackt, mit der Erweiterung .plasmoid. Das Archiv enthält den Code selbst, auch Bilder und Einstellungen, usw. – was auch immer für die komplette Anwendung erforderlich ist, um richtig zu funktionieren. Mein Musterplasmoid nenne ich hallo-linuxuser, zunächst lege ich also ein Verzeichnis mit diesem Namen an. In diesem Verzeichnis platziere ein Unterverzeichnis namens contents, und darunter noch eins mit dem Namen code.

mkdir -p hallo-linuxuser/contents/code

Eigentlich würde ein contents Verzeichnis vollkommen ausreichen, aber der Überschaubarkeit halber trennt die Konvention die einzelnen Bits und Bytes. Die diversen Verzeichnisse sorgen einfach für mehr Ordnung.

Erstellen Sie eine Datei mit dem Namen metadata.desktop im obersten Verzeichnis (hallo-linuxuser). Fügen Sie dann im Editor Ihrer Wahl (ich benutze immer noch Vi oder Vim) die Information aus Listing 1 ein.

Listing 1

<C>metadata.desktop<C>

[Desktop Entry]
Name=Hallo LinuxUser
Comment=Mein erstes Plasmoid
Icon=ksnapshot
Type=Service
X-KDE-ServiceTypes=Plasma/Applet
X-Plasma-API=javascript
X-Plasma-MainScript=code/main.js
X-Plasma-DefaultSize=200,100
X-KDE-PluginInfo-Author=Marcel Gagne
X-KDE-PluginInfo-Email=marcel@marcelgagne.com
X-KDE-PluginInfo-Name=hallo-linuxuser
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Website=http://plasma.kde.org/
X-KDE-PluginInfo-Category=Examples
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true

Die meisten Einträge sind auch für Normalsterbliche verständlich. Neben den zwingenden Angaben (Plasma braucht diese, um das Plasmoid zu starten) listet die .desktop-Datei nützliche Infos zum Plasmoid auf: wie es heißt, wer es geschrieben hat, und so weiter. Name und Beschreibung erscheinen beide im Dialog Miniprogramm hinzufügen. Das Icon kann entweder mit dem Plasmoid mitgeliefert werden (in diesem Fall müssen Sie den Pfad angeben), oder Sie nutzen eines der standard KDE-Icons – ich verwendete das Icon von KSnapshot.

Die darauffolgenden vier Zeilen unter Type=Service teilen Plasma mit, worum es sich beim Miniprogramm handelt, was damit zu tun, und wo der Hauptcode zu finden ist. Der nach X-Plasma-MainScript angegebene Pfad ist relativ zum Verzeichnis contents zu verstehen, das Sie früher angelegt haben. Hier wird auch die voreingestellte Darstellungsgröße des Miniprogramms definiert, in der es beim Start auf der Arbeitsfläche erscheinen soll.

Beachten Sie den Punkt X-KDE-PluginInfo-Category. Im Prinzip können Sie die Kategorie je nach Belieben benennen. Möchten Sie aber das Miniprogramms für die Community freigeben, muss dieser Wert einem Kategorienamen aus der Liste unter Projects/Plasma/PIG [4] exakt entsprechen. Die restlichen Informationen erscheinen nur in der Beschreibung des Plasmoids.

Und nun zum Code!

Neben dieser Metabeschreibung benötigen Sie natürlich ein Stück Code. Dieses Miniprogramm wird wirklich einfach sein. Das Hauptskript erstellen Sie im Texteditor Ihrer Wahl unter dem Namen, den Sie so eben in der Datei metadata.desktop definiert haben. Bei JavaScript-Plasmoiden heißt die Datei in der Regel code/main.js und liegt im Verzeichnis contents. Mein Skript enthält folgende Zeilen:

layout = new LinearLayout(plasmoid);
label = new Label();
layout.addItem(label);
label.text = 'Hallo LinuxUser!';

Es ist zugegeben ziemlich einfach. (Weiter unten folgen noch einige Tipps zur QtScript-API.) In diesem Beispiel konzentrierte ich mich eher auf die wichtigsten Grundlagen: Das Wort plasmoid ist eine globale Variable, und es steht für Ihr Miniprogramm. Zunächst erstellen Sie das Layout, indem Sie LinearLayout mit plasmoid ergänzen. So wird das Layout des Miniprogramms festgesetzt. Ich habe noch ein Label zum Layout hinzugefügt und den Label-Text gesetzt, das war's.

Plasmoiden kommen normalerweise als ZIP-Dateien verpackt. Es jetzt ohne Test zu packen, wäre allerdings noch etwas früh. Zum Glück lassen sich die KDE-Miniprogramme auch ohne Installation testen. Dazu dienst das kleine Tool namens plasmoidviewer. Hier sehen Sie, wie es funktioniert:

plasmoidviewer /pfad/zu/hallo-linuxuser

Abbildung 4. zeigt das Ergebnis.

Abbildung 4: Ein einfaches Plasmoid, das einfach einen Text anzeigt.

Fahren wir nun mit einem etwas interessantereren Beispiel fort. Dieses Mal werde ich eine SVG-Bilddatei laden und anzeigen lassen. Die Datei metadata.desktop kann für dieses Beispiel so bleiben wie sie ist. Schauen wir uns gleich den Code in Listing 2 an.

Listing 2

Arbeiten mit einer SVG-Datei

mainLayout = new LinearLayout(plasmoid);
svg = new PlasmaSvg('mein_logo')
plasmoid.action_myAction = function()
{
    plasmoid.update()
}
plasmoid.paintInterface = function(painter)
{
    rect = plasmoid.rect
    svg.resize(rect.width, rect.height)
    svg.paint(painter, rect.x, rect.y)
}

Das Ergebnis im Test mit dem KDE-Plasmoidviewer zeigt Abbildung 5.

Abbildung 5: Eine einfache SVG-Grafik in einem Plasmoid angezeigt.

Damit das Plasmoid die SVG-Grafik (hier mein_logo) tatsächlich anzeigt, muss die Datei mein_logo.svg im Verzeichnis hallo-linuxuser/contents/images abgelegt werden.

Sind Sie mit der Funktionalität Ihres Plasmoids zufrieden, können Sie daraus ein Paket bauen und es installieren. Um das Miniprogramm ohne Installation auf dem Desktop zu nutzen, installieren Sie es mit dem Befehl plasmapkg, verwenden Sie dabei den Parameter -i:

plasmapkg -i /pfad/zu/ihrem-plasmoid

Funktioniert alles tadellos, erhalten Sie die Nachricht Erfolgreich installiert: /pfad/zu/ihrem-plasmoid. Nun platzieren Sie Ihr Plasmoid auf der Arbeitsfläche mit dem Dialog Miniprogramme hinzufügen. Dazu klicken Sie zuerst mit der rechten Maustaste entweder auf Ihren Desktop oder auf die Cashew in der oberen rechten Bildschirmecke. Sind die Miniprogramme auf Ihrer Arbeitsfläche gerade gesperrt, wählen Sie zuerst noch den Eintrag Miniprogramme entsperren. Das neue Plasmoid erscheint dann in der Liste (Abbildung 6). Sie fügen es per Doppelklick oder Drag&Drop Ihrer Arbeitsfläche hinzu (Abbildung 7).

Abbildung 7: Das neue Logo-Plasmoid sitzt nun auf dem Desktop über dem Systemabschnitt des Panels.

Sind Sie mit dem Ergebnis Ihrer Arbeit so sehr zufrieden, dass Sie es mit der Welt teilen möchten, ist es jetzt Zeit, daraus ein Paket zu bauen. Dazu erstellen Sie aus sämtlichen Dateien ein ZIP-Archiv und hängen diesem die Dateiendung .plasmoid an.

cd hallo-linuxuser
zip -r hallo-linuxuser.zip .
mv hallo-linuxuser.zip hallo-linuxuser.plasmoid

Der Name für das Plasmoid muss exakt dem Namen entsprechen, den Sie unter X-KDE-PlugIn-Name in der Datei metadata.desktop angegeben haben. Um das neue Paket zu installieren, benutzen Sie den gleichen Befehl, wie früher. Anstatt des Verzeichnisses plasmapkg geben Sie als Parameter die Paketdatei an:

plasmapkg -i hallo-linuxuser.plasmoid

Mit diesen Grundlagen und der im Internet verfügbaren Dokumentation können Sie nun selbst KDE-Miniprogramme schreiben.

Ähnliche Artikel

  • KDE-Miniprogramme mit Plasmate programmieren
    Das KDE-Projekt hat eine erste Alphaversion von Plasmate veröffentlicht. Die kleine Entwicklungsumgebung ist zum Schreiben der Plasmoide genannten Applets für den KDE-4-Desktop gedacht.
  • Prickelndes KDE
    In der Standard-Konfiguration von KDE 4 bietet Plasma einen traditionellen Desktop mit Startmenü, Kontrollleiste und Arbeitsfläche. Damit sind die Fähigkeiten von Plasma jedoch noch lange nicht ausgeschöpft: Nur die Phantasie des Anwenders setzt den Möglichkeiten des neuen K-Desktops Grenzen.
  • Pläne machen für KDE 4.3
    Die Plasma-Entwickler haben sich am Wochenende auf der Tokamak II getroffen und zukünftige Entwicklungen geplant.
  • Schau und fühle
    KDE 4 kann die Vorgängerversion noch nicht in allen Belangen komplett ersetzen. In einem Bereich hat die alte Desktop-Umgebung aber klar das Nachsehen: Beim Look & Feel.
  • Für eine Handvoll Plasma
    Plasma haucht dem KDE-4-Desktop Leben ein. Die optisch beeindruckenden Widgets bringen Spaß und Informationen auf die KDE-Oberfläche.
Kommentare

Infos zur Publikation

LinuxUser-Spezial erscheint zwei bis vier mal jährlich und kostet 8,90 EUR pro Ausgabe. Weitere Informationen zum LinuxUser-Spezial finden Sie im Shop der Linux New Media AG.

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 3 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...