Командная строка для проверки, выключен ли монитор в Wayland?

Вопрос или проблема

Я раньше делал это в bash-скрипте, чтобы узнать, включен ли монитор или выключен (“выключен” означает выключен, или то, что происходит после выполнения xset dpms force off):

xset q | grep "Monitor is Off"

…какова эквивалентная команда в Wayland? Я нашел ddccontrol -p в другом ответе, и, похоже, это сработает, но это работает слишком медленно (возвращает результат за несколько секунд).

.

Ответ или решение

Подсчитывая переход от X11 к Wayland, многие пользователи сталкиваются с проблемами выполнения команд и сценариев, которые ранее работали на X. Одной из таких задач является определение состояния монитора — включен он или выключен. В X11 эта информация может быть получена с помощью команды xset, но в среде Wayland данный подход не является возможным.

Как определить состояние монитора в Wayland?

Wayland не предоставляет тех же интерфейсов для управления выводом дисплея, что и X. Поэтому для решения вашей задачи потребуется рассмотреть альтернативные методы. К сожалению, в момент написания данной статьи нет единой утилиты, аналогичной xset, которую можно было бы использовать, чтобы просто и быстро проверить, выключен ли монитор. Тем не менее, существуют обходные пути.

  1. Использование wlr-randr:
    Если ваша аппаратная среда поддерживает Wayland и вы используете compositors, такие как Sway или any other compositor, вы можете попробовать использовать wlr-randr. Эта утилита позволяет просматривать текущее состояние выходных устройств. Команды могут выглядеть так:

    wlr-randr --verbose

    Здесь будет отображена информация о состоянии мониторов, и вы сможете определить, какой из них выключен.

  2. Использование gammastep:
    Утилита gammastep может помочь вам управлять охватом цвета и состоянием мониторов. Вы можете установить её и использовать для проверки принимаемых данных о состоянии дисплея.

  3. Отслеживание с помощью системных журналов:
    В некоторых случаях можно отслеживать события включения и выключения мониторов через системные журналы с помощью journalctl. Используя фильтрацию по девушкам и проверяя, не произошло ли событие выключения монитора, вы можете получить необходимые данные.

    journalctl -f | grep 'monitor'

Проблемы с ddccontrol

Хотя ddccontrol может удовлетворить вашу потребность в считывании статуса монитора, его медлительность во время исполнения делает его неэффективным решением для сценариев, требующих быстрого ответа. Если время отклика является критическим, рассматривайте группировку вызовов, чтобы избежать задержек. Но, к сожалению, такой подход может привести к нестационарному считыванию состояния.

Заключение

Определение состояния монитора в окружении Wayland может быть более сложным, чем в X11, однако существуют различные подходы, такие как использование wlr-randr, gammastep, и отслеживание системных журналов. Каждое из этих решений имеет свои плюсы и минусы, и вам придется выбрать наиболее подходящий в зависимости от ваших потребностей. Надеюсь, эта информация окажется полезной, и позволит вам найти оптимальный способ для вашего сценария.

Оцените материал
Добавить комментарий

Капча загружается...