J'ai installé mate-screensaver sur une machine exécutant Linux Mint 16. Sur cette machine, je peux ouvrir un terminal et interroger l'état de l'économiseur d'écran:
dan@box1 ~ $ echo $DISPLAY
:0.0
dan@box1 ~ $ mate-screensaver-command -q
The screensaver is inactive
The screensaver is not inhibited
Tout cela fonctionne bien et a du sens. Cependant, lorsque je SSH sur cette même machine, je n'obtiens pas les résultats attendus:
dan@box2 ~ $ ssh box1
dan@box1 ~ $ export DISPLAY=:0.0
dan@box1 ~ $ echo $DISPLAY
:0.0
dan@box1 ~ $ mate-screensaver-command -q
** Message: Screensaver is not running!
Cette même méthode fonctionne sur tous mes autres ordinateurs, exécutant tous différentes versions de Mint. Rien d'étrange ne me connecte ~/.xsession-errors
.
Après avoir lu cette réponse , j'ai découvert que définir mon DBUS_SESSION_BUS_ADDRESS
sur unix:abstract=/tmp/dbus-ToCuEUyLn0,guid=9296df6ba791b044d4236e45545fbe55
(sa valeur dans un terminal local) fait fonctionner les choses comme je m'y attendais via SSH. Cependant, ~/.dbus/session-bus/*-0
contient une valeur différente, qui ne fonctionne pas, et je ne trouve pas de fichier contenant la valeur correcte pour cette variable.
Pourquoi une de mes machines exigerait-elle que cette valeur soit modifiée, alors que les autres ne le font pas? Si ce comportement a du sens ou est compliqué à corriger, où pourrais-je chercher la valeur correcte pour cette variable?
DBUS_SESSION_BUS_ADDRESS=$(ps -fwu $(whoami) | sed -n 's/.*[d]bus.*--address=\(.*\)/\1/p')
Pas parfait, pas fiable, mais devrait fonctionner la plupart du temps.