Comment puis-je faire en sorte que xfce s'adapte automatiquement à la modification des sorties disponibles?

11

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

Par exemple, si j'utilise un écran DVI, mais que je déconnecte mon ordinateur portable, XFCE ne réalisera pas automatiquement que je n'ai plus d'écran en état de marche et ne modifiera pas la sortie. Gnome l'a fait, mais je ne sais pas par quel service. Je voudrais avoir un moyen de m'assurer d'avoir toujours au moins une sortie de travail automatiquement.

NOTE LATÉRALE: Ceci est lié à une autre de mes questions, si j'utilise simplement un gestionnaire de fenêtres et non un environnement de bureau, comment puis-je obtenir des mises à jour de résolution de dock / undock automatiques? , mais pour xfce, pas pour tout gestionnaire de fenêtres générique.

Ken Kinder
la source
1
mieux que j'ai vu jusqu'à présent: unix.stackexchange.com/a/120945/14907
akostadinov
@akostadinov Les réponses devraient être des réponses. Je vais aller de l'avant et en faire un.
Aleksandr Dubinsky

Réponses:

6
$ 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 quelque chose proche de 96 dpi s'ils n'ont pas de mode préféré). Pour les sorties déconnectées mais activées, cela les désactivera.

pl1nk
la source
Cela fonctionne pour moi au moins pour ma configuration.
pl1nk
Mais c'est une commande unique, pas un service, non?
Aleksandr Dubinsky
0

Cette question est répondue sur Unix StackExchange: /unix/101809/how-can-i-automatically-update-my-monitor-layout-in-xfce/120945#120945 Cependant, puisque ce n'est pas possible de marquer cette question comme un doublon d'une question sur un autre site, je vais juste 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 s'appuie sur le support inotifywait, n'a pas de boucles 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, lancez-le simplement lorsque vous lancez votre DE.

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

Aleksandr Dubinsky
la source
-1

Il n'y a pas une telle option car la technologie derrière la détection d'événements matériels agnostiques ( udev) est plutôt nouvelle pour un projet amateur comme xfce.

Vous pourriez obtenir de bons résultats en creusant dans D-Buset udev. Jetez un œil à udev qui n'exécute pas les événements de suppression pour commencer.

aquaherd
la source