Имея два или более монитора, работающих вместе, есть ли способ перевести один из них в режим ожидания / приостановки, выполнив команду типа xset dpms force suspend
:? или время, установленное для этой цели, например: xset dpms 100 0 0
которое работает на этих мониторах отдельно?
У меня работают два монитора, eDP1 (мой ноутбук) и VGA1 (внешний монитор).
Я хочу, чтобы каждый из них перешел в режим ожидания / ожидания по отдельности, если я не взаимодействую с ними напрямую, предположим, что я смотрю фильм на VGA1, и в течение полутора часов eDP1 ничего не делает.
Я не заинтересован в использовании, xrandor --off --output eDP1
потому что он недостаточно быстр для работы.
Я хочу, чтобы мой монитор был готов к работе простым движением мыши, чтобы я мог быстро переключаться между ними.
- Запуск: Ubuntu 18.04
- Диспетчер окон: OpenBox
Ответы:
Управление отдельными мониторами невозможно с помощью xset (и X11 на самом деле)
Как следует из названия, это невозможно по причинам, связанным со сборкой,
xset
и из-за функций X11, которые он использует. Если мы посмотрим на исходный код,xset
вызовыDPMSForceLevel(dpy,DPMSModeSuspend)
( строка 557 ) и переменную отображения,dpy
полученную изXOpenDisplay()
функции ( строка 203 ), и это по определению :Другими словами,
xset
настройки применяются глобально ко всему экрану, а не к отдельным экранам. Было бы необходимо изменитьxset
исходный код, чтобы это работало. Сами расширения DPMS чаще всего вызывают только весь экран, а не отдельные экраны, поэтому невозможно даже написать собственный код с библиотекой X11.Ручное управление этим параметром через
/sys
подсистему также не работаетЭкраны также выводятся из режима DPMS, когда происходят события клавиш или мыши, поэтому, учитывая, что вы можете перемещать мышь или использовать клавиатуру, любое из этих действий приведет к выходу монитора из режима DPMS.
Альтернативные обходные пути
Лучшая альтернатива (и фактически физически работающее решение)
xrandr
- это может быть использовано для контроля отдельных «результатов». В частности,отключит этот выход. Да, вы упомянули, что не хотите использовать это решение, поскольку оно недостаточно быстрое, однако пока оно является лучшим из доступных. У него есть пара преимуществ:
xset
xrandr --output VGA-1 --brightness 0.1
Будет раскрасить экран таким образом , что он появляется прочь, даже если--brightness
это программное решение, так что дисплей не фактически недоступен на аппаратном уровне, и он выключен на аппаратном уровне. Тем не менее, он выполняет работу по очистке экрана и устойчив к событиям нажатия клавиш / мыши.Я посмотрел исходный код скринсейверов Mate и Budgie, которые являются вилками заставки GNOME, однако в любом случае они кажутся программным решением, поскольку в исходном коде нет упоминания о DPMS.
источник
xrandr --off
сейчасxrandr -off
выключит ли даже монитор. Это может быть так же, какbrightness
установить на ноль? Что является еще одной проблемой, у меня есть программа, работающая 24/7, которая устанавливает яркость и гамму отдельно для 3 мониторов, чего не может сделать даже Windows. Не уверен, что это делает ночной свет, красное смещение или поток. В любом случае, эти программы могут быть испорчены xrandr off. Извините за угон вашего ответа с размышлениями :)В течение многих лет я настраивал свой ноутбук таким образом, чтобы при закрытой крышке ноутбук зависал, а внешние мониторы гасли.
Если вы хотите посмотреть видео на внешнем мониторе в течение 90 минут и оставить экран ноутбука пустым, я изменил параметр закрытия крышки на «Ничего не делать»:
Я не использую DPMS для внешних мониторов, но вы можете проверить настройки с помощью
xset q
команды:Обратите внимание на эти строки:
prefer blanking: no
Также обратите внимание на эти строки:
DPMS is enabled
установить монитор наStandby
когда это необходимо.Надеемся, что другие пользователи использовали эти опции и опубликовали подробный ответ для вас.
источник
Как насчет просто закрыть ноутбук?
Почему?
Эти два монитора представляют собой одну область отображения, поэтому при отключении одного из них возникает ряд проблем, таких как перерисовка экрана, перемещение приложений на основной монитор, ...
(Я пошел по этому пути несколько лет назад, и единственный надежный способ сделать то, что вы хотите сделать, это нажать кнопку на внешнем мониторе или закрыть ноутбук)
Просто убедитесь, что вы установили эти параметры питания с помощью
gsettings set
:источник
Временный комментарий
xrandr
. На более длительном тесте это сработало довольно плохо. Не так много, что отключение не удалось, но при повторной активации экрана, расположение экрана было полностью испорчено. Я был бы рад опубликовать его, чтобы увидеть, работает ли он в вашем случае, но мой совет не использовать его.В сценарии я вернулся к установке яркости на ноль вместо этого.
Тогда что я изменил в этой версии?
Время простоя теперь определяется как активностью клавиатуры, так и мыши по умолчанию. Пробуждение также совершается любым из них.
Автоматически затемнять неактивный экран
По словам моих коллег-ответчиков, отключение экранов отдельно от cli - это в лучшем случае проблема, и я также не нашел варианта.
То, что я нашел, это способ автоматического затемнения всех экранов, кроме того, на котором находится мышь, по прошествии времени.
Вот так
Как настроить
Настройка проста:
Убедитесь, что у вас есть
python3-gi
иxprintidle
установленыСкопируйте приведенный выше скрипт в пустой файл, сохраните его как
dim_inactive
и сделайте его исполняемымЗапустите его командой:
пример:
затемнит все экраны, где нет мыши, через две минуты
Дополнительная информация / объяснение
источник
xrandr --off
я думаю.xrandr --off
это то , что я бы предпочел в этом случае. Тем более что подсветка VGA не может контролироваться программно.1
при любых обстоятельствах. Когда я взаимодействую с внешним дисплеем с помощью клавиатуры и когда мышь находится на главном дисплее, внешний экран становится черным после простоя. Когда я не взаимодействую с основным дисплеем, а мышь находится там, он ничего не делает, и когда я перемещаю мышь на другой дисплей, основной экран становится черным.