Qdbus

Aus wiki.archlinux.de

qdbus ist ein Kommandozeilen Werkzeug für die Interprozesskommunikation (IPC) mittels d-bus.

Das Paket dbus aus dem core Repositorium ist Teil jeder Standardinstallation.

qdbus wird sowohl für die Suche als auch zum senden einer d-bus message genutzt.

Aufbau

Eine d-bus message besteht aus folgenten Teilen.

service path interface.method
 org.mpris.MediaPlayer2.spotify   /org/mpris/MediaPlayer2   org.mpris.MediaPlayer2.Player.Play 

Handling

qdebus gibt jeweils den nächsten Bestandteil der gesuchten d-bus message aus. Man kann Schrittweise vorgehen um passende messages zu finden. Hier am Bsp. Amarok.

qdbus

Gibt die Namen aller Services der zur Zeit laufenden Anwendungen aus.


qdbus | grep amarok

Filtert die Ausgabe zeilenweise nach der gewünschten Anwendung und gibt den service aus.


qdbus org.kde.amarok

Gibt die Pfade für die vorhandenen interfaces aus.


qdbus org.kde.amarok /org/mpris/MediaPlayer2

Gibt interfaces und methods aus.


qdbus org.kde.amarok /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Play

Die message ist nun komplett und wird gesendet. Amarok spielt einen Titel.

Bei Eindeutigkeit kann die message auch gekürzt werden.

qdbus org.kde.amarok /org/mpris/MediaPlayer2 Play

Spickzettel und Beispiele

qdbus org.mpris.amarok /amarok/MainWindow showNormal     #öffnet ein Amarok Fenster

MPRIS Media Player

Viele Mediaplayer lassen sich über die MPRIS D-Bus-Schnittstelle ansteuern. Als Beispiel dient hier Spotify.

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Play
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Stop
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous

Weblinks