Управление отдельными мониторами невозможно с помощью 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
отключит этот выход. Да, вы упомянули, что не хотите использовать это решение, поскольку оно недостаточно быстрое, однако пока оно является лучшим из доступных. У него есть пара преимуществ:
- невосприимчив к событиям клавиш и мыши
- самостоятельно контролирует выход в отличие
xset
xrandr --output VGA-1 --brightness 0.1Будет раскрасить экран таким образом , что он появляется прочь, даже если --brightnessэто программное решение, так что дисплей не фактически недоступен на аппаратном уровне, и он выключен на аппаратном уровне. Тем не менее, он выполняет работу по очистке экрана и устойчив к событиям нажатия клавиш / мыши.
Я посмотрел исходный код скринсейверов Mate и Budgie, которые являются вилками заставки GNOME, однако в любом случае они кажутся программным решением, поскольку в исходном коде нет упоминания о DPMS.