XFCE에서 모니터 레이아웃을 자동으로 업데이트하려면 어떻게해야합니까?


9

일반적으로 대형 모니터에 도킹되어있는 랩톱이 있습니다. 도킹되면 큰 모니터를 기본 디스플레이로 사용하고 랩톱 화면을 보조 디스플레이로 오른쪽에서 끕니다. 도킹이 해제되면 랩톱 화면 만 표시됩니다.

XFCE에는 그런 종류의 멀티 모니터 지원 기능이 내장되어 있지 않은 것 같습니다. ARandR을 찾았 습니다. 원하는 모니터를 설정할 수 있습니다. ARandR을 사용하여 고정 및 도킹 해제 구성 ( xrandr 을 호출하는 쉘 스크립트)에 대한 프로파일을 저장할 수 있습니다 .

그러나 랩톱이 도킹 및 도킹 해제 될 때 해당 프로파일이 자동으로 적용되도록하려면 어떻게해야합니까? 도킹 스테이션을 감지하는 udev 규칙을 작성해야합니까? 더 좋은 방법이 있습니까?


아직 테스트하지는 않았지만 X 개발자 중 한 명이 x-on-resize 를 정확하게 개발했습니다.
Mikel

답변:


5

한 가지 방법은 udev 규칙을 만드는 것이지만 좀 더 이식성이 좋은 것을 원했기 때문에이 bash 스크립트가 있습니다. 그것은 inotifywait 지원에 의존하고, 어떤 종류의 루프가 없으며 효율적인 것으로 간주됩니다.

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 

파일을 실행 파일로 만드는 것을 잊지 마십시오 ( chmod +x external-lcd.sh). 그런 다음 DE를 시작할 때마다 시작하십시오.

나는 이것을 archlinux에서 사용하고 있으므로 작동해야한다고 생각합니다. xrandr 매개 변수를 변경하거나 arandr 구성을 사용하도록 스왑 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.