Linux gajim bei suspend offline prügeln
Um zu vermeiden das man Jabbernachrichten verliert, muss man seinen Jabberstatus vor einem Suspend auf Offline setzen. Andernfalls merkt der Server nicht sofort das man offline ist. Dieses Feature haben viele Clients unter Windows und OSX (zB Psi), nicht aber unter Linux und vergleichbarem.
Gajim kann sowas mit gajim-remote. Die Kommunikation läuft über DBus. Der folgende Wrapper um gajim-remote setzt das Environment für den Session-Bus auf und führt dann gajim-remote aus.
gajim-remote-remote:
#!/bin/sh
# USAGE: gajim-remote-remote <display> <gajim-remote parameters>
DISPLAY=$1
shift
gajimopts=$*
eval $(DISPLAY=$DISPLAY dbus-launch --autolaunch=$(cat /var/lib/dbus/machine-id))
export DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID DBUS_SESSION_BUS_WINDOWID
shift
gajim-remote $gajimopts
Funktioniert nicht mit xdm (wohl aber mit gdm) aus Etch. Der Session-Bus will folgendermaßen aufgesetzt werden (zB in der ~/.xsession):
eval $(dbus-launch --autolaunch=$(cat /var/lib/dbus/machine-id))
export DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID DBUS_SESSION_BUS_WINDOWID
Weder noch. gajim lauscht am session-bus und gajim-remote-remote setzt DBUS_SESSION_BUS_ADDRESS bevor es gajim-remote ausführt.
Also vor dem Suspend zb gajim-remote-remote :0 change_status offline sleep ausführen.
Über den system-bus kommen keine Events bei einem Suspend (zumindest bei mir). Eine bessere Lösung wäre über den System-bus Events zu verschicken und mit Gajim darauf zu reagieren.
by nusse
2007, January 08 (Mon)@ 09:46
Braucht man dafür einen dbus-daemon mit –system und hald oder acpid?