welcome: log in

Utilisation de DBus pour contrôler les applications KDE



1. Vocabulaire

DBUS est un concept objet dont mécanisme d'échange est basé sur des IPCs.

2. Outils

3. Connexion

4. Récupération de l'ID

4.1. Méthode 1

egrep '^DBUS_SESSION_BUS_ADDRESS=' ~/.dbus/session-bus/*

4.2. Méthode 2

for PID in $(pgrep -u $USER startkde) ; do
cat /proc/$PID/environ | tr '\0' '\n' | egrep '^DBUS_SESSION_BUS_ADDRESS='
done

5. Appels

5.1. Appels de méthodes

5.1.1. Exemples

5.1.1.1. qdbus

for PID in $(pgrep -u $USER startkde) ; do
  ID="$(cat /proc/$PID/environ | tr '\0' '\n' |awk -FDBUS_SESSION_BUS_ADDRESS= '/DBUS_SESSION_BUS_ADDRESS=/ {print $2}')"
  DBUS_SESSION_BUS_ADDRESS="$ID" qdbus org.kde.screensaver /ScreenSaver org.freedesktop.ScreenSaver.Lock
done

5.1.1.2. dbus-send

Les mêmes exemples d'appels avec dbus-send:

for PID in $(pgrep -u $USER startkde) ; do
  ID="$(cat /proc/$PID/environ | tr '\0' '\n' |awk -FDBUS_SESSION_BUS_ADDRESS= '/DBUS_SESSION_BUS_ADDRESS=/ {print $2}')"
  DBUS_SESSION_BUS_ADDRESS="$ID" dbus-send --print-reply --type=method_call --dest=org.kde.screensaver /ScreenSaver org.freedesktop.ScreenSaver.Lock
done

5.2. Appels des propriétés

5.2.1. qdbus

5.2.1.1. Exemples

5.2.2. dbus-send

5.2.2.1. Exemples

/!\ L'utilisation de dbus-send est plus claire dans cet exemple. En effet, l'appel d'une propriété se fait en passant des paramètres à la méthode org.freedesktop.DBus.Properties.Get


Index CategoryLinux CategoryDebian CategoryKde

KDEEtDBUS (last edited 22/07/2010 15:24:13 by glennie)