Ho mate-screensaver installato su una macchina che esegue Linux Mint 16. Su quella macchina, posso aprire un terminale e interrogare lo stato dello screensaver:
dan@box1 ~ $ echo $DISPLAY
:0.0
dan@box1 ~ $ mate-screensaver-command -q
The screensaver is inactive
The screensaver is not inhibited
Tutto funziona bene e ha senso. Tuttavia, quando SSH nella stessa macchina, non ottengo i risultati che mi aspetto:
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!
Questo stesso metodo funziona su tutti i miei altri computer, tutti con varie versioni di Mint. Niente di strano viene registrato nel mio ~/.xsession-errors
.
Dopo aver letto questa risposta , ho scoperto che la mia impostazione DBUS_SESSION_BUS_ADDRESS
a unix:abstract=/tmp/dbus-ToCuEUyLn0,guid=9296df6ba791b044d4236e45545fbe55
(il suo valore in un terminale locale) fa funzionare le cose come mi aspetto su SSH. Tuttavia, ~/.dbus/session-bus/*-0
contiene un valore diverso, che non funziona e non riesco a trovare un file contenente il valore corretto per quella variabile.
Perché una delle mie macchine dovrebbe cambiare quel valore, mentre il resto no? Se quel comportamento ha un senso o è complicato da correggere, dove altro potrei cercare il valore corretto per quella variabile?
DBUS_SESSION_BUS_ADDRESS=$(ps -fwu $(whoami) | sed -n 's/.*[d]bus.*--address=\(.*\)/\1/p')
non perfetto, non affidabile, ma dovrebbe funzionare la maggior parte del tempo.