Wie kann ich xfce automatisch an sich ändernde verfügbare Ausgänge anpassen lassen?

11

In xfce kann ich Einstellungen -> Anzeige ausführen, um meinen bevorzugten Ausgabemonitor zu ändern. Ich habe keine Option gefunden, um sie automatisch an eine Änderung der verfügbaren Ausgaben anzupassen.

Wenn ich beispielsweise ein DVI-Display verwende, aber meinen Laptop abdocke, erkennt XFCE nicht automatisch, dass ich kein funktionierendes Display mehr habe, und ändert die Ausgabe. Gnome hat dies getan, obwohl ich nicht sicher bin, durch welchen Dienst. Ich möchte auf irgendeine Weise sicherstellen, dass ich immer mindestens eine funktionierende Ausgabe automatisch habe.

SEITLICHER HINWEIS: Dies hängt mit einer anderen Frage von mir zusammen: Wenn ich nur einen Fenstermanager und keine Desktop-Umgebung verwende, wie erhalte ich automatische Aktualisierungen der Dock- / Undock-Auflösung? , ist aber für xfce kein generischer Fenstermanager.

Ken Kinder
quelle
1
Das Beste, was ich bisher gesehen habe: unix.stackexchange.com/a/120945/14907
akostadinov
@akostadinov Antworten sollten Antworten sein. Ich werde weitermachen und es in eins verwandeln.
Aleksandr Dubinsky

Antworten:

6
$ xrandr --auto

Von der xrandr-Manpage:

--auto : Bei verbundenen, aber deaktivierten Ausgängen können sie ihren bevorzugten Modus verwenden (oder etwas nahe 96 dpi, wenn sie keinen bevorzugten Modus haben). Bei getrennten, aber aktivierten Ausgängen werden diese deaktiviert.

pl1nk
quelle
Dies funktioniert für mich zumindest für mein Setup.
Pl1nk
Aber das ist ein einmaliger Befehl, kein Dienst, oder?
Aleksandr Dubinsky
0

Diese Frage wird unter Unix StackExchange beantwortet: /unix/101809/how-can-i-automatically-update-my-monitor-layout-in-xfce/120945#120945 Da dies jedoch nicht der Fall ist Wenn Sie diese Frage als Duplikat einer Frage auf einer anderen Website markieren können, kopiere ich die Antwort hier.


Eine Möglichkeit besteht darin, eine udev-Regel zu erstellen, aber da ich etwas Portableres wollte, habe ich dieses Bash-Skript. Es basiert auf inotifywait-Unterstützung, hat keine Schleifen und wird als effizient angesehen.

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 

Vergessen Sie nicht, die Datei ausführbar zu machen ( chmod +x external-lcd.sh). Starten Sie es dann einfach, wann immer Sie Ihr DE starten.

Ich benutze dies unter Archlinux, also denke ich, dass es funktionieren sollte. Sie können xrandr-Parameter ändern oder austauschen, um arandr-Konfigurationen zu verwenden.

Aleksandr Dubinsky
quelle
-1

Es gibt keine solche Option, da die Technologie hinter der Desktop-unabhängigen Hardware-Ereigniserkennung ( udev) für ein Hobby-Projekt wie xfce ziemlich neu ist.

Sie könnten einige gute Ergebnisse erzielen, wenn Sie sich in D-Busund vertiefen udev. Werfen Sie einen Blick auf udev, das nicht ausgeführt wird. Entfernen Sie Ereignisse für den Anfang.

Aquaherd
quelle