Linux : 외부 모니터가 연결되어있을 때 스크립트를 실행하는 방법은 무엇입니까?


10

리눅스에서 외부 모니터가 연결되어 있는지 어떻게 알 수 있습니까?

작업 공간을 설정하려면 다양한 스크립트를 실행해야합니다.

모니터 상태가 변경되었을 때 스크립트를 시작하는 영리한 방법이 있습니까?

Nvidia 디스플레이 드라이버를 사용하고 있습니다.


해킹 방법은 xrandr몇 초마다 출력 변경 사항을 쿼리 하고 차이가 발견되면 스크립트를 실행하는 스크립트를 작성하는 것입니다.
new123456

이상적으로는 udev에게 스크립트를 실행하도록 지시 할 수 있습니다. 시도하지는 않았지만 KMS가 지원 될 때까지 nvidia 드라이버로 작업 할 것으로 기대하지 않습니다. stackoverflow.com/questions/5469828/…
Andy

답변:


3

확장 디스플레이 식별 데이터 (EDID)를 구문 분석 할 수있는 read-edid 라는 도구 세트가 있습니다 . 이러한 도구로 외부 모니터가 실제로 감지되면 주기적으로 감지를 확인하고 출력을 사용하여 스크립트 등을 시작할 수 있습니다.

X가 실행 중인지 여부에 관계없이이 작업을 수행해야하는지 언급하지 않았습니다.


X에서만 필요합니다. 디스
퍼와

1

나는 같은 대답을 찾고있었습니다 : /
나는 disper ( http://willem.engen.nl/projects/disper )와 gconftool을 사용하여 두 번째 그놈 패널과 함께 두 번째 모니터를 활성화 / 비활성화합니다.
disper -l은 연결된 모든 모니터를 나열하므로이를 최후의 수단으로 폴링 할 수 있습니다.

# only primary display
disper -s
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen -- -1


# dual display (nvidia twinview)
disper -e
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen 0
killall gnome-panel


0

270.18 현재 nVidia 바이너리 드라이버는 여전히 최신 XRandR을 구현하지 않는 것처럼 보이므로 xrandr화면 크기 변경 과 같은 도구를 폴링하기 위해 new123456의 제안을 따라야 할 수도 있습니다 .

내 시스템에서, nVidia xrandr가 2560x1024 하나가 아닌 2 개의 1280x1024 모니터를 가지고 있음을 알릴 수있는 방법을 아직 찾지 못했습니다 . 해상도 변경에서 (그것은 내 바탕 화면 스티커를 뭉개 버린다)

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