Open Source im professionellen Einsatz

KDE-Applikationen von der Kommandozeile aus bedienen

K-Steuerung

KDE-Programme mit Maus und Tastatur bedienen ist in vielen Fällen sehr zeitraubend. Hier hilft DCOP, das Desktop Communication Protocol. Es steuert GUI-Programme per Kommandozeile oder Skript.

DCOP ist KDEs Skripting-Backend, über das sämtliche KDE-Applikationen miteinander kommunizieren. Es veranlasst Anwendungen dazu, ihre Daten zu aktualisieren, wenn der Anwender die Einstellungen ändert, oder startet KMail nach einem Klick auf eine E-Mail-Adresse. Doch DCOP arbeitet nicht nur im Hintergrund. Es erlaubt Anwendern ihre Arbeit mit KDE zu automatisieren, auch von einem anderen Rechner aus. Ein Benutzer darf allerdings nur die Programme steuern, die mit seiner eigenen User-ID laufen.

Allen KDE-Anwendungen gemein ist ein grundlegendes DCOP-Interface, das es ermöglicht, Fenster in ihrer Größe zu verändern oder sie mit Eigenschaften wie »immer im Vordergrund« zu versehen. Die meisten Programme bieten darüber hinaus eigene Methoden; KMail besitzt Funktionen, um E-Mails abzufragen oder eine neue Nachricht zu erstellen, Konqueror öffnet per DCOP ein Fenster mit einer bestimmten URL und KWord erlaubt es, die Eigenschaften von Dokumenten zu ändern.

Interfaces mit Kdcop erkunden

Weil DCOP so viele Funktionen besitzt, wirkt es auf den ersten Blick etwas unübersichtlich. Das grafische Werkzeug »kdcop« verschafft Abhilfe: Es ordnet die einzelnen Applikationen in einer Hierarchie an. Die erste Ebene zeigt alle KDE-Programme, die im Moment laufen. In der zweiten Ebene liegen die vorhandenen Interfaces einer Applikation. Jedes Interface bietet in einer weiteren Ebene eine Liste von Methoden an.

Einige Applikationen erscheinen lediglich einmal in der Interface-Liste, das sind die so genannten Unique Applications wie KMail oder KWin, von denen immer nur eine Instanz läuft. Andere Programme finden sich möglicherweise mehrmals in der Liste, sie lassen sich aber anhand der Prozess-ID unterscheiden, die Kdcop anzeigt.

Nach dem Start einer Konqueror-Instanz erscheint in der Kdcop-Hierarchie der Eintrag »konqueror- PID«. Er bietet neben einer Reihe von Interfaces auch »KonquerorIface (Voreinstellung)« an. Dieses Interface enthält unter anderem die Methode »createNewWindow(QString url)«. Ein Doppelklick darauf öffnet ein Fenster (siehe Abbildung 1), in dem der Bediener eine URL angibt. Nach dem Bestätigen mit »OK« sendet Kdcop eine DCOP-Nachricht an den Konqueror, der die URL in einem neuen Fenster lädt.

Abbildung 1: Kdcop (links) ist eine grafische Oberfläche für DCOP-Operationen. Der Benutzer hat in diesem Beispiel die Methode »createNewWindow()« (linkes Fenster) durch Doppelklick ausgewählt. Im daraufhin erscheinenden Fenster (Vordergrund Mitte) gibt er die URL ein, die Konqueror in einem neuen Fenster öffnet.

Abbildung 1: Kdcop (links) ist eine grafische Oberfläche für DCOP-Operationen. Der Benutzer hat in diesem Beispiel die Methode »createNewWindow()« (linkes Fenster) durch Doppelklick ausgewählt. Im daraufhin erscheinenden Fenster (Vordergrund Mitte) gibt er die URL ein, die Konqueror in einem neuen Fenster öffnet.

KDE weckt mit Musik

Die Methoden, die Kdcop anzeigt, sind überall einsetzbar: Im Folgenden soll der Multimediaplayer Juk jeden Morgen zu einer bestimmten Zeit Musik abspielen. Juk selbst hat keine solche Alarmfunktion, dafür ist die zweite Applikation KAlarm zuständig. DCOP ist dazu prädestiniert, diese beiden Programme zusammenarbeiten zu lassen.

Ein Klick auf »Neu« in KAlarm öffnet einen Dialog, dort wählt der Anwender als Aktion »Befehl« aus und zieht per Drag & Drop die Methode »juk | Player | play()« aus Kdcop ins Eingabefeld. Dort erscheint dann »dcop juk Player play« (siehe Abbildung 2). Nach dem Einstellen der gewünschten Uhrzeit ist der Wecker fertig eingerichtet.

Abbildung 2: Kdcop unterstützt Drag & Drop. Die Methode »play()« wurde einfach vom Kdcop-Fenster in die Eingabezeile von KAlarm gezogen. Das Tool »dcop« ruft die Methode auf.

Abbildung 2: Kdcop unterstützt Drag & Drop. Die Methode »play()« wurde einfach vom Kdcop-Fenster in die Eingabezeile von KAlarm gezogen. Das Tool »dcop« ruft die Methode auf.

Es bietet sich mit dieser Methode ebenfalls an, Programme per Shellskript zu steuern. Das Tool, um DCOP von der Kommandozeile zu kontrollieren, heißt »dcop«. Dieses Programm stellt die Baumstruktur, die Kdcop anzeigt, auf der Kommandozeile dar. Ein einfacher Aufruf gibt eine Liste aller laufenden KDE-Applikationen aus.

Mit einem Anwendungsnamen als Argument zeigt »dcop« die zur Verfügung stehenden Interfaces an. Wenn das Tool zusätzlich als Argument noch den Namen eines Interface erhält, gibt es eine Liste an Methoden dieses Interface aus. Der folgende Aufruf veranlasst KDE beispielsweise dazu, zum zweiten virtuellen Desktop zu wechseln:

dcop kwin KWinInterface setCurrentDesktop 2

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook