web-dev-qa-db-fra.com

Comment puis-je avoir xfce ajuster automatiquement à changer les sorties disponibles?

Dans xfce, je peux exécuter Paramètres -> Affichage pour modifier mon moniteur de sortie préféré. Ce que je n'ai pas trouvé d'option, c'est de l'ajuster automatiquement à une modification des sorties disponibles.

Par exemple, si j'utilise un écran DVI tout en déconnectant mon ordinateur portable, XFCE ne réalisera pas automatiquement que je ne dispose plus d'un écran en état de marche et modifie la sortie. Gnome l'a fait, bien que je ne sois pas sûr de quel service. J'aimerais pouvoir m'assurer que j'ai toujours au moins une sortie de travail automatiquement.

NOTE LATÉRALE: Ceci est lié à une autre question de mon choix, Si j'utilise uniquement un gestionnaire de fenêtres et non un environnement de bureau, comment puis-je obtenir des mises à jour automatiques de la résolution d'ancrage/annulation? , mais c'est pour xfce, pas tout gestionnaire de fenêtres générique.

11
Ken Kinder
$ xrandr --auto

De la page de manuel de xrandr:

- auto: Pour les sorties connectées mais désactivées, cela leur permettra d'utiliser leur mode préféré (ou un paramètre proche de 96 dpi si elles n'ont pas de mode préféré). Pour les sorties déconnectées mais activées, cela les désactivera.

6
pl1nk

Unix StackExchange répond à cette question: https://unix.stackexchange.com/questions/101809/how-can-i-automatically-update-my-monitor-layout-in-xfce/120945#120945 Cependant, comme il n'est pas possible de marquer cette question comme un doublon d'une question sur un autre site, je vais simplement copier la réponse ici.


Une façon est de créer une règle udev, mais comme je voulais quelque chose de plus portable, j'ai ce script bash. Il repose sur le support inotifywait, n’a pas de boucle et est considéré comme efficace.

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 

N'oubliez pas de rendre le fichier exécutable (chmod +x external-lcd.sh). Ensuite, démarrez-le chaque fois que vous lancez votre DE.

J'utilise ceci sur archlinux, je pense donc que cela devrait fonctionner. Vous pouvez modifier les paramètres xrandr ou l'échanger pour utiliser plusieurs configurations.

0
Aleksandr Dubinsky