Domanda

Ho un laptop con Ubuntu al quale collego un monitor esterno quando sono in ufficio. Di solito questo mi richiede di eseguire xrandr --auto per consentire al laptop di ridimensionare il display per adattarlo al monitor esterno. Sarebbe bello se questo potesse essere fatto automaticamente, sia innescato quando il monitor è collegato, ma sarebbe sufficiente eseguire effettivamente xrandr --auto quando il laptop si sveglia dalla sospensione / ibernazione.

Ho creato uno script /etc/pm/sleep.d/00xrandr.sh contenente la riga

xrandr --auto

ma questo non riesce poiché lo script non ha accesso al display X.

Qualche idea?

È stato utile?

Soluzione

So che il problema è che lo script viene eseguito come root, senza accesso ai tuoi dati xauth. A seconda della configurazione, potrebbe funzionare qualcosa del genere:

xauth merge /home/your_username/.Xauthority
export DISPLAY=:0.0
xrandr --auto

Potresti usare qualcosa di più intelligente per scoprire da quale utente devi estrarre i dati xauth se necessario.

Altri suggerimenti

Hai provato a impostare correttamente la variabile DISPLAY nello script e hai concesso l'accesso ad altri utenti al tuo DISPLAY con xhost + localhost? Non so se questo aiuta, ma vale la pena provare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top