xset (및 실제로 X11)에서는 개별 모니터를 제어 할 수 없습니다
제목에서 알 수 있듯이, 그것은 이유로 수 없습니다 방법 xset
이 사용하는 X11 기능에 내장 인해. 우리는 소스 코드를 보면, xset
호출 DPMSForceLevel(dpy,DPMSModeSuspend)
( 라인 557 ), 디스플레이 변수 dpy
에서 오는 XOpenDisplay()
기능 ( 라인 203 ), 그것은 것입니다 정의 :
화면 및 입력 장치와 함께 서버를 디스플레이라고합니다.
즉, xset
개별 화면이 아닌 전체 디스플레이에 전체적으로 설정을 적용합니다. xset
작동 하려면 소스 코드 를 변경 해야합니다. DPMS 확장 자체는 대부분 개별 화면이 아닌 전체 디스플레이 만 호출하는 것처럼 보이므로 X11 라이브러리로 사용자 지정 코드를 작성할 수도 없습니다.
/sys
하위 시스템을 통해 해당 설정을 수동으로 제어 해도 작동하지 않는 것 같습니다.
$ sudo bash -c 'echo Off > /sys/class/drm/card0-VGA-1/dpms'
[sudo] password for admin:
bash: /sys/class/drm/card0-VGA-1/dpms: Permission denied
키 또는 마우스 이벤트가 발생할 때 화면도 DPMS 모드에서 빠져 나옵니다. 따라서 마우스를 움직이거나 키보드를 사용할 수 있다는 점을 고려하면 모니터가 DPMS 모드를 종료하게됩니다.
대체 해결 방법
최선의 대안 (및 실제로 물리적으로 작동하는 솔루션)은 xrandr
개별 "출력"을 제어하는데 사용될 수 있습니다. 특히,
xrandr --output VGA-1 -off
출력을 해제합니다. 예,이 솔루션은 충분히 빠르지 않기 때문에이 솔루션을 사용하고 싶지 않다고 언급했지만 지금까지는 최상의 솔루션입니다. 몇 가지 장점이 있습니다.
- 키 및 마우스 이벤트에 면역
- 독립적으로 outpus를 제어
xset
은 xrandr --output VGA-1 --brightness 0.1
, 비록 그것이 떨어져 나타나는 등의 방식으로 화면 색상 화됩니다 --brightness
디스플레이가 실제로 하드웨어 수준에서 흐리게되지 않도록, 소프트웨어 솔루션입니다 않으며 하드웨어 수준에서 꺼져 있습니다. 그러나 화면을 비우는 작업을 수행하며 키 / 마우스 이벤트에도 저항합니다.
나는 그놈 스크린 세이버의 포크 인 Mate와 Budgie 스크린 세이버의 소스 코드를 보았지만 소스 코드에 DPMS에 대한 언급이 없기 때문에 소프트웨어 솔루션 인 것처럼 보입니다.