나는 외부 모니터를 자동으로 구성하기 위해 한동안 다음 udev 규칙과 bash 스크립트를 사용해 왔지만 최근에는 스크립트가 신뢰할 수 없게 되었고 종종 예상했던 것과 반대되는 작업을 수행합니다(예: 외부 모니터를 연결할 때) 외부 모니터를 분리하면 데스크탑이 두 화면에 모두 펼쳐집니다.
HDMI 모니터를 연결 (분리)할 때마다 실행 중임을 알 수 있도록 스크립트에 노이즈를 추가하여 udev 규칙이 작동하고 있다고 확신합니다. xrandr이 너무 빨리 실행될 경우를 대비해 지연을 추가하고 로깅을 추가해 보았지만 xrandr이 오류를 출력하지 않는 것 같습니다. 스크립트를 수동으로 실행하면 스크립트가 제대로 작동합니다. 하드웨어 상태가 업데이트되기 전에 xrandr이 실행되고 스크립트가 업데이트를 차단하는 것이 가능합니까?
udev 규칙:
ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/bin/hdmi-plugged"
스크립트:
#!/bin/bash
export XAUTHORITY=/home/jamie/.Xauthority
export DISPLAY=:0
/usr/bin/xrandr --output eDP1 --auto --output HDMI1 --auto --above eDP1