Aufmacher

Fortgeschrittenes Basteln

Plasmoiden für KDE 4 programmieren

01.10.2008
Plasmoiden erweitern den KDE-4-Desktop um sinnvolle Anwendungen. KDE-Entwickler Sebastian Kügler erklärt, wie Sie die kleinen Helfer programmieren.

In der letzten Ausgabe von LinuxUser haben Sie gelesen, was Plasmoiden sind, aus welchen Komponenten sie bestehen [1] und wie Sie eine Entwicklungsumgebung für KDE 4 aufsetzen [2]. Diesmal gehts ans Eingemachte: Sie lernen, wie Sie den KDE-Desktop um eigene Widgets bereichern. Der Artikel zeigt zunächst, aus welchen Komponenten Sie ein neues Plasmoid entwickeln und wie Sie es dann fachgerecht in KDE 4 einbetten. Der Desktop befindet sich allerdings weiterhin in der Entwicklung, so dass sich die API und das Build-System mitunter ändern. Bei Fehlermeldungen hilft unter anderem die KDE-Devel-Mailingliste [3] weiter.

Schritt für Schritt zum Plasmoid

Zur Illustration dient das Beispiel-Plasmoid "Dr. Ade", dessen Quellcode Sie auf der Heft-DVD sowie unserer Website finden [4]. Es zeigt einen Monitor, der sich einschaltet, sobald Sie einen USB-Stick einstöpseln (Abbildung 1). In einem Tooltip erscheinen weitere Informationen zum eingesteckten Stick. Sie platzieren "Dr. Ade" auf dem Desktop oder in der Fußleiste, indem Sie das Plasmoid vom Appletbrowser per Drag & Drop dorthin ziehen.

Abbildung 1: Sobald Sie einen USB-Stick in den passenden Port schieben, meldet sich das Plasmoid "Dr. Ade".

"Dr. Ade" demonstriert, wie Sie SVG-Grafiken einbinden und darin einzelne Elemente separat wiedergeben und animieren. Sie lesen zudem, wie Sie einen Konfigurationsdialog für das Plasmoid erstellen und die Konfiguration speichern.

Im Beispiel implementieren Sie das Widget in der Programmiersprache C++. Plasma unterstützt aber auch Plasmoiden in anderen Programmiersprachen wie Javascript, Ruby und Python.

Buildsystem und Co.

Beim Übersetzen und Installieren des Plasmoids spielen zwei Dateien eine Hauptrolle: plasma-drade-default.desktop und CMakeLists.txt.

Die Datei plasma-drade-default.desktop (Abbildung 2) enthält Metainformationen über das Widget. Hier tragen Sie Ihren Namen als Programmierer ein, bestimmen ein Icon für das Applet, die Lizenz sowie einige weitere Parameter. Über die installierte .desktop-Datei findet Plasma das Plasmoid später und stellt es den Anwendern über den Appletbrowser zur Verfügung.

Abbildung 2: Die "Desktop"-Datei des Plasmoids enthält die wichtigsten Eckdaten zu "Dr. Ade".

Aus der Datei CMakeLists.txt (Listing 1) erfährt das Build-System CMake, mit dem Sie den Code übersetzen, welche Dateien es kompilieren soll und in welches Verzeichnis diese jeweils gehören. Am einfachsten ist es, eine existierende Datei entsprechend anzupassen. Um sie etwa mit dem Benutzerinterface von "Dr. Ade" (dradeConfig.ui) zu übersetzen, verwenden Sie das CMake-Makro kde4_add_ui_files() aus Zeile 3. Um weitere Bibliotheken einzubinden, ergänzen Sie das Makro target_link_libraries() in der Zeile 5.

project(plasma-drade)
set(drade_SRCS drade.cpp)
kde4_add_ui_files(drade_SRCS dradeConfig.ui)
kde4_add_plugin(plasma_applet_drade ${drade_SRCS})
target_link_libraries(plasma_applet_drade plasma ${KDE4_KIO_LIBS}${KDE4_SOLID_LIBS})
install(TARGETS plasma_applet_drade DESTINATION ${PLUGIN_INSTALL_DIR})
install(FILES plasma-drade-default.desktop DESTINATION ${SERVICES_INSTALL_DIR})
install(FILES television.svg DESTINATION ${DATA_INSTALL_DIR}/desktoptheme/default/widgets/)

TIPP

Haben Sie nur Kleinigkeiten in der CPP-Datei geändert, überspringt CMake das Überprüfen der Abhängigkeiten, wenn Sie zum erneuten Übersetzen make -j3 install/fast verwenden.

Das CMake-Makro install kümmert sich um die Installation des übersetzten Applets, der .desktop-Datei und eventuell vorhandener SVG-Grafiken.

Letztere landen typischerweise im Verzeichnis mit dem Standard-Theme von KDE 4, das sie überlagern. Bringt das Plasmoid keine passende SVG-Datei mit, wählt Plasma automatisch die aus dem Default-Theme.

TIPP

Wählen Sie beim Erstellen des Applets Farben aus der Klasse Plasma::Theme, da andernfalls eventuell Kontrastprobleme auftreten. Dank dieser Funktion integriert sich Ihr Applet visuell gut in den Desktop, auch wenn neue Plasma-Themes eigene Farbpaletten mitbringen.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

title_2014_09

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...