Jak mogę automatycznie dostosować xfce do zmieniających się dostępnych wyjść?

11

W Xfce mogę uruchomić Ustawienia -> Wyświetlanie, aby zmienić preferowany monitor wyjściowy. To, czego nie znalazłem, to automatyczne dostosowanie się do zmiany dostępnych wyników.

Na przykład, jeśli używam wyświetlacza DVI, ale oddokowuję laptopa, XFCE nie zda sobie automatycznie sprawy, że nie mam już działającego wyświetlacza i nie zmienię wyjścia. Gnome to zrobił, chociaż nie jestem pewien, jaką usługą. Chciałbym mieć pewien sposób na upewnienie się, że zawsze mam co najmniej jedno działające wyjście automatycznie.

UWAGA BOCZNA: Jest to związane z innym moim pytaniem: jeśli korzystam tylko z menedżera okien, a nie ze środowiska graficznego, w jaki sposób mogę uzyskać automatyczne aktualizacje rozdzielczości dokowania / oddokowywania? , ale dotyczy xfce, a nie ogólnego menedżera okien.

Ken Kinder
źródło
1
najlepsze, jakie do tej pory widziałem: unix.stackexchange.com/a/120945/14907
akostadinov
@akostadinov Odpowiedzi powinny być odpowiedziami. Pójdę naprzód i zamienię to w jedno.
Aleksandr Dubinsky

Odpowiedzi:

6
$ xrandr --auto

Ze strony podręcznika użytkownika xrandr:

--auto : W przypadku podłączonych, ale wyłączonych wyjść, umożliwi im to używanie preferowanego trybu (lub czegoś zbliżonego do 96dpi, jeśli nie mają preferowanego trybu). W przypadku odłączonych, ale włączonych wyjść, spowoduje to ich wyłączenie.

pl1nk
źródło
Działa to dla mnie przynajmniej dla mojej konfiguracji.
pl1nk
Ale to jednorazowe polecenie, a nie usługa, prawda?
Aleksandr Dubinsky
0

Odpowiedzi na to pytanie można znaleźć na Unix StackExchange: /unix/101809/how-can-i-automatically-update-my-monitor-layout-in-xfce/120945#120945 Jednak, ponieważ nie jest można zaznaczyć to pytanie jako duplikat pytania w innej witrynie, po prostu skopiuję odpowiedź tutaj.


Jednym ze sposobów jest utworzenie reguły udev, ale ponieważ chciałem czegoś bardziej przenośnego, mam ten skrypt bash. Opiera się na wsparciu inotifywait, nie ma żadnych pętli i jest uważany za wydajny.

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 

Nie zapomnij, aby plik był wykonywalny ( chmod +x external-lcd.sh). Następnie po prostu uruchom go przy każdym uruchomieniu DE.

Używam tego na Archlinuxie, więc myślę, że powinien działać. Możesz zmienić parametry xrandr lub zamienić go, aby używać konfiguracji arandr.

Aleksandr Dubinsky
źródło
-1

Nie ma takiej opcji, ponieważ technologia stojąca za komputerowym wykrywaniem zdarzeń agnostycznych ( udev) jest raczej nowa w przypadku projektu hobbystycznego, takiego jak xfce.

Możesz uzyskać dobre wyniki, zagłębiając się w D-Busi udev. Zobacz, jak udev nie uruchamia usuwania zdarzeń na początek.

aquaherd
źródło