Tengo mate-screensaver instalado en una máquina con Linux Mint 16. En esa máquina, puedo abrir una terminal y consultar el estado del protector de pantalla:
dan@box1 ~ $ echo $DISPLAY
:0.0
dan@box1 ~ $ mate-screensaver-command -q
The screensaver is inactive
The screensaver is not inhibited
Todo esto funciona bien y tiene sentido. Sin embargo, cuando hago SSH en esa misma máquina, no obtengo los resultados que espero:
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!
Este mismo método funciona en todas mis otras computadoras, todas ejecutan varias versiones de Mint. Nada extraño se registra en mi ~/.xsession-errors
.
Después de leer esta respuesta , descubrí que configurar mi DBUS_SESSION_BUS_ADDRESS
a unix:abstract=/tmp/dbus-ToCuEUyLn0,guid=9296df6ba791b044d4236e45545fbe55
(su valor en una terminal local) hace que las cosas funcionen como espero en SSH. Sin embargo, ~/.dbus/session-bus/*-0
contiene un valor diferente, que no funciona, y no puedo encontrar un archivo que contenga el valor correcto para esa variable.
¿Por qué una de mis máquinas requeriría que se cambie ese valor, mientras que el resto no? Si ese comportamiento tiene sentido o es complicado de corregir, ¿dónde más buscaría encontrar el valor correcto para esa variable?
DBUS_SESSION_BUS_ADDRESS=$(ps -fwu $(whoami) | sed -n 's/.*[d]bus.*--address=\(.*\)/\1/p')
No es perfecto, no es confiable, pero debería funcionar la mayor parte del tiempo.