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.