Determine DBUS_SESSION_BUS_ADDRESS desde fuera de la session X

Tengo mate-protector de pantalla 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:

[email protected] ~ $ echo $DISPLAY :0.0 [email protected] ~ $ mate-screensaver-command -q The screensaver is inactive The screensaver is not inhibited 

Todo esto funciona bien y tiene sentido. Sin embargo, cuando me SSH en la misma máquina, no obtengo los resultados que espero:

 [email protected] ~ $ ssh box1 [email protected] ~ $ export DISPLAY=:0.0 [email protected] ~ $ echo $DISPLAY :0.0 [email protected] ~ $ 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 es registrarme en mis ~/.xsession-errors .

Después de leer esta respuesta , descubrí que configurar mi DBUS_SESSION_BUS_ADDRESS para unix:abstract=/tmp/dbus-ToCuEUyLn0,guid=9296df6ba791b044d4236e45545fbe55 (su valor en un 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 file que contenga el valor correcto para esa variable.

¿Por qué una de mis máquinas requeriría ese valor para ser cambiado, mientras que el rest no? Si ese comportamiento tiene sentido o es complicado de corregir, ¿dónde más searchía para encontrar el valor correcto para esa variable?

Utilizo esto para getlo, pero se basa en una session en ejecución:

 if [[ -z $DBUS_SESSION_BUS_ADDRESS ]]; then pgrep "gnome-session" -u "$USER" | while read -r line; do exp=$(cat /proc/$line/environ | grep -z "^DBUS_SESSION_BUS_ADDRESS=") echo export "$exp" > ~/.exports.sh break done if [[ -f ~/.exports.sh ]]; then source ~/.exports.sh fi fi 

Cambia 'gnome' a cualquier otra session que tengas (tiene que estar ejecutándose).