XFCE'deki monitör düzenimi otomatik olarak nasıl güncelleyebilirim?


9

Normalde büyük bir monitöre yerleştirilmiş bir dizüstü bilgisayarım var. Yerleştirildiğinde, büyük ekranı birincil ekran olarak, dizüstü bilgisayar ekranı sağ tarafta ikincil ekran olarak kullanmak istiyorum. Çıkarıldığında, dizüstü bilgisayar ekranı tek ekrandır.

XFCE, bu tür bir çoklu monitör desteğine sahip gibi görünmüyor. Monitörlerimi istediğim gibi ayarlamama izin veren ARandR'yi buldum . Ben (çağırmak gerçekten sadece kabuk komut dosyaları demirledi ve sabitlenmemiş yapılandırmaları için profilleri kaydetmek için ARandR kullanabilirsiniz xrandr ).

Ancak dizüstü bilgisayar yerleştirildiğinde ve çıkarıldığında bu profillerin otomatik olarak uygulanmasını nasıl sağlayabilirim? Bağlantı istasyonunu algılayan bir udev kuralı oluşturmaya çalışmalı mıyım? Daha iyi bir yol var mı?


Henüz test etmedik, ancak x-on-resize , X geliştiricilerinden biri tarafından tam olarak bunu yapmak için geliştirildi.
Mikel

Yanıtlar:


5

Bunun bir yolu, bir udev kuralı oluşturmaktır, ancak daha taşınabilir bir şey istediğim için, bu bash betiğine sahibim. İnotifywait desteğine dayanır, bir çeşit döngüye sahip değildir ve verimli olarak kabul edilir.

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 

Dosyayı yürütülebilir ( chmod +x external-lcd.sh) yapmayı unutmayın . Sonra DE'nizi her başlattığınızda başlayın.

Bunu archlinux üzerinde kullanıyorum, bu yüzden çalışması gerektiğini düşünüyorum. Arandr yapılandırmalarını kullanmak için xrandr parametrelerini değiştirebilir veya değiştirebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.