Come posso aggiornare automaticamente il layout del mio monitor in XFCE?


9

Ho un laptop che è normalmente collegato a un monitor di grandi dimensioni. Quando ancorato, desidero utilizzare il monitor di grandi dimensioni come display principale, con lo schermo del laptop come display secondario spento a destra. Quando sganciato, lo schermo del laptop è l'unico display.

XFCE non sembra avere quel tipo di supporto multi-monitor integrato. Ho trovato ARandR , che mi ha permesso di impostare i miei monitor nel modo desiderato. Posso usare ARandR per salvare i profili per le configurazioni ancorate e non ancorate (che sono in realtà solo script di shell che invocano xrandr ).

Ma come posso applicare automaticamente quei profili quando il laptop è agganciato e sganciato? Dovrei provare a creare una regola udev che rilevi la docking station? Esiste un modo migliore?


Non l'ho ancora testato, ma x-on-resize è stato sviluppato da uno degli sviluppatori X per fare esattamente questo.
Mikel,

Risposte:


5

Un modo è quello di creare una regola udev, ma poiché volevo qualcosa di più portatile, ho questo script bash. Si basa sul supporto inotifywait, non ha alcun tipo di loop ed è considerato efficiente.

external-lcd.sh

#!/bin/sh
# inspired of:                                                                                            
#   http://unix.stackexchange.com/questions/4489/a-tool-for-automatically-applying-randr-configuration-   when-external-display-is-p                                                                                
#   http://ozlabs.org/~jk/docs/mergefb/                                                                   
#   http://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes/181543#181543  

export MONITOR2=/sys/class/drm/card0-VGA-1/status                                                         

while inotifywait -e modify,create,delete,open,close,close_write,access $MONITOR2;                        

dmode="$(cat $MONITOR2)"                                                                                  

do                                                                                                        
    if [ "${dmode}" = disconnected ]; then                                                                
         /usr/bin/xrandr --auto                                                                           
         echo "${dmode}"                                                                                  
    elif [ "${dmode}" = connected ];then                                                                  
         /usr/bin/xrandr --output VGA1 --auto --right-of LVDS1                                            
         echo "${dmode}"                                                                                  
    else /usr/bin/xrandr --auto                                                                           
         echo "${dmode}"                                                                                  
    fi                                                                                                    
done 

Non dimenticare di rendere il file eseguibile ( chmod +x external-lcd.sh). Quindi avvialo ogni volta che avvii il tuo DE.

Sto usando questo su Archlinux, quindi penso che dovrebbe funzionare. È possibile modificare i parametri xrandr o scambiarlo per utilizzare le configurazioni arandr.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.