Mam potrójną konfigurację monitora (xorg.conf wygenerowaną przez amdcccle: http://pastebin.com/gWSVEyLa ) działającą na Arch Linux z Xmonad jako moim menedżerem okien. Fizycznie po lewej stronie znajduje się telewizor HDTV, ładny monitor Dell w środku i obrócony monitor w prawo. Ponieważ mój telewizor HDTV ma tylko jedno wejście HDMI, używam przełącznika wyjścia 4, 2 wyjścia z niektórymi innymi urządzeniami. Mój telewizor HD nie zawsze jest podłączony, co powoduje wyłączenie tej sekcji mojego wirtualnego pulpitu. Powoduje to wiele niedogodności:
- Irytujące migotanie ekranu ze względu na zdarzenie hotplug sterownika (które w zasadzie uruchamia xrandr --auto).
- Fizyczna kolejność ekranów ulega zmianie (hdtv staje się trzecim monitorem zamiast pierwszego), co powoduje, że moje skróty klawiszowe do ustawiania ostrości na ekranie są nieprawidłowe. Zrobiłem to bez problemu z moją konfiguracją xmonad, ale powiązania wciąż się zmieniają, gdy wykryte są tylko dwa monitory.
- Jeśli uruchomię komputer bez podłączonego telewizora HDTV, ta sekcja wirtualnego pulpitu nie będzie użyteczna, dopóki nie zostanie połączona ze zdarzeniem hotplug lub uruchomię xrandr, aby ją włączyć.
- Okna z obszaru roboczego na odłączonym monitorze są przenoszone do innych obszarów roboczych na widocznych monitorach. Zasadniczo oznacza to, że wszystkie okna, które były wyświetlane na moim telewizorze HDTV, są wyrzucane losowo, co jest bezcelowe ze względu na sposób, w jaki Xmonad obsługuje obszary robocze.
- Nie mogę przełączać jednego lub dwóch monitorów w tryb gotowości dpms ani ręcznie wyłączać wyświetlacza,
xrandr --off
ponieważ inne będą wariować. Na przykład, jeśli tylko oglądałem telewizję, niekoniecznie chcę, aby pozostałe dwa monitory były włączone, ale chcę, aby ich pozycje w oknie pozostały nienaruszone.
Kiedy przełączam wejścia na przełączniku HDMI, włączam / wyłączam go lub fizycznie odłączam kable, mój sterownik wideo interpretuje to jako odłączenie monitora i usunięcie go z wirtualnego pulpitu. Chcę, aby X zawsze zachowywał się tak, jakby wszystkie trzy z tych monitorów były podłączone i nie reagował na żadne zdarzenia związane z podłączaniem monitora. To wspaniale, że Linux jest w stanie pracować z całkowicie automatyczną konfiguracją xorg, ale chcę tę dokładną konfigurację przez cały czas, dopóki nie zmienię sprzętu. Wydarzenia hotplug wyglądają następująco w moich dziennikach xorg:
When disconnected:
[ 1684.459] (II) fglrx(0): Hot-plug event occurs on device: 1:0:0
[ 1684.459] (II) fglrx(0): EDID vendor "DEL", prod id 40993
+-- 3 lines: [ 1684.459] (II) fglrx(0): Using hsync ranges from config file-----------------------------------------------------------------------------------------------------
+-- 11 lines: [ 1684.459] (II) fglrx(0): Modeline "1600x1200"x0.0 162.00 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync (75.0 kHz eP)----------------------------------
[ 1684.468] (II) fglrx(0): xdl_xs113_atiddxDisplayScreenEnableDisplays
[ 1684.468] (II) fglrx(0): User Preference Output DFP1 using refresh rate 60.0 Hz.
[ 1684.537] (II) fglrx(0): User Preference Output DFP10 using refresh rate 60.0 Hz.
When reconnected:
[ 1694.077] (II) fglrx(0): Hot-plug event occurs on device: 1:0:0
[ 1694.210] (II) fglrx(0): EDID vendor "DEL", prod id 40993
+-- 3 lines: [ 1694.210] (II) fglrx(0): Using hsync ranges from config file-----------------------------------------------------------------------------------------------------
+-- 9 lines: [ 1694.210] (II) fglrx(0): Modeline "1600x1200"x0.0 162.00 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync (75.0 kHz eP)----------------------------------
[ 1694.219] (II) fglrx(0): xdl_xs113_atiddxDisplayScreenEnableDisplays
[ 1694.219] (II) fglrx(0): User Preference Output DFP1 using refresh rate 60.0 Hz.
[ 1694.288] (II) fglrx(0): User Preference Output DFP9 using refresh rate 60.0 Hz.
[ 1694.359] (II) fglrx(0): User Preference Output DFP10 using refresh rate 60.0 Hz.
Naprawdę nie dbam o hotplugging, ponieważ używam Xmonada i wolę zawsze wyświetlać dane na tych trzech urządzeniach, niezależnie od tego, czy są one uważane za połączone. Może być jakiś sposób skonfigurowania sterownika wideo do robienia tego, co chcę, ale nie jestem pewien, czy istnieje taka opcja i nie znalazłem jeszcze żadnych dobrych informacji, więc pytam tutaj. Gdyby to działało poprawnie, dane wyjściowe tych dwóch poleceń byłyby identyczne i nie spowodowałyby niczego wizualnego oprócz wyłączenia / włączenia HDTV:
$ xrandr | grep 'DFP.* connected'
DFP1 connected 2560x1600+1920+0 (normal left inverted right x axis y axis) 641mm x 401mm
DFP9 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 708mm x 398mm
DFP10 connected 1200x1600+4480+0 left (normal left inverted right x axis y axis) 367mm x 275mm
$ xrandr --verbose --output 'DFP9' --off
screen 0: 3760x1600 994x423 mm 96.08dpi
crtc 0: 2560x1600 60.0 +0+0 "DFP1"
crtc 2: 1600x1200 60.0 +2560+0 "DFP10"
$ xrandr | grep 'DFP.* connected'
DFP1 connected 2560x1600+0+0 (normal left inverted right x axis y axis) 641mm x 401mm
DFP9 connected (normal left inverted right x axis y axis)
DFP10 connected 1200x1600+2560+0 left (normal left inverted right x axis y axis) 367mm x 275mm
$ xrandr --verbose --output 'DFP9' --preferred --pos 0x0 --output 'DFP1' --preferred --pos 1920x0 --output DFP10 --preferred --pos 4480x0
screen 0: 5680x1600 1501x423 mm 96.08dpi
crtc 0: 2560x1600 60.0 +1920+0 "DFP1"
crtc 1: 1920x1080 60.0 +0+0 "DFP9"
crtc 2: 1600x1200 60.0 +4480+0 "DFP10"
$ xrandr | grep 'DFP.* connected'
DFP1 connected 2560x1600+1920+0 (normal left inverted right x axis y axis) 641mm x 401mm
DFP9 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 708mm x 398mm
DFP10 connected 1200x1600+4480+0 left (normal left inverted right x axis y axis) 367mm x 275mm