Jump to content

# Display Power Management Signaling (Русский)

5 languages

- Deutsch
- English
- 日本語
- 中文（简体）
- 中文（繁體）

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Display Power Management Signaling. Дата последней синхронизации: 15 сентября 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

DPMS (Display Power Management Signaling, сигналы управления энергопотреблением дисплеев) - это технология, позволяющая управлять питанием монитора, когда компьютер не используется. Время неактивности, по истечении которого монитор уходит в режим энергосбережения, сна или отключается, может быть задано как описано в DPMSSetTimeouts(3). Имейте в виду, что DPMS разрабатывался для ЭЛТ-мониторов, а для ЖК-дисплеев обычно нет разницы между разными режимами экономии энергии.

## Настройка DPMS в X

Примечание: Начиная с Xorg 1.8, DPMS обнаруживается и включается автоматически, если ACPI также включен в ядре.

Добавьте следующие строки в `/etc/X11/xorg.conf`: в секцию `Monitor`:

    Option "DPMS" "true"

Добавьте следующие строки в секцию `ServerLayout`, измените, как считаете нужным время (в минутах):

    Option "StandbyTime" "10"
    Option "SuspendTime" "20"
    Option "OffTime" "30"

Примечание: Если опция `"OffTime"` не работает, используйте вместо неё затемнение экрана (screen blanking), который оставит монитор включенным, но с чёрной картинкой. В качестве альтернативы установите `"blanktime"` в `"0"` чтобы отключить screen blanking

    Option         "BlankTime" "30"

Пример файла `/etc/X11/xorg.conf.d/10-monitor.conf`, который может выглядеть примерно так.

    Section "Monitor"
        Identifier "LVDS0"
        Option "DPMS" "false"
    EndSection

    Section "ServerFlags"
        Option "StandbyTime" "0"
        Option "SuspendTime" "0"
        Option "OffTime" "0"
        Option "BlankTime" "0"
    EndSection

    Section "ServerLayout"
        Identifier "ServerLayout0"
    EndSection

## Отключение DPMS

Так как DPMS обычно включен по умолчанию в большинстве случаев, для его отключение нужно явное действие. Чтобы полностью отключить DPMS, добавьте в файл `/etc/X11/xorg.conf.d/10-monitor.conf`:

    Section "Extensions"
        Option      "DPMS" "Disable"
    EndSection

## Изменение настроек DPMS и хранителя экрана с помощью команд

Можно выключить монитор с помощью команды xset из пакета xorg-xset.

Примеры:

Команда | Описание
--- | ---
xset s off | Отключить затемнение экрана (screen blanking)
xset s 3600 3600 | Изменить время перехода в чёрный экран на 1 час
xset -dpms | Отключить DPMS
xset s off -dpms | Отключить DPMS и не уходить в чёрный экран
xset dpms force off | Немедленно отключить экран
xset dpms force standby | Перейти в режим standby
xset dpms force suspend | Перейти в режим suspend

Для просмотра текущих настроек:

    $ xset q

    ...
    Screen Saver:
      prefer blanking:  yes    allow exposures:  yes
      timeout:  600    cycle:  600
    DPMS (Energy Star):
      Standby: 600    Suspend: 600    Off: 600
      DPMS is Enabled
      Monitor is On

Для изучения всех доступных команд смотрите xset(1).

Примечание:

- XScreenSaver и xfce4-power-manager используют свои собственные настройки DPMS и перекрывают xset. Подробнее смотрите XScreenSaver#DPMS and blanking settings и Xfce#Display blanking.
- При ручном запуске команд вам может понадобиться приписать `sleep 1;` для корректной работы, например `sleep 1; xset dpms force off`
- Команда `xset dpms 0 0 0`, которая устанавливает все таймауты DPMS в ноль, может оказаться более хорошим способом «отключить» DPMS, так как эффект от `-dpms` может быть отменён, например, командой `xset dpms force off`.
- Если прописывание `xset` в xinitrc не работает, пропишите настройки в файле `/etc/X11/xorg.conf.d/`. Подробнее смотрите #Настройка DPMS в X.

## Взаимодействие с DPMS в Linux-консоли с setterm

Утилита setterm выводит escape-коды для взаимодействия с терминалом. По сути, она просто печатает escape-последовательности в текущем терминале, неважно где вы сейчас находитесь: в screen-сессии, в ssh, serial и т.д.

Синтаксис setterm: (0 отключает)

    setterm --blank [0-60|force|poke]
    setterm --powersave [on|vsync|hsync|powerdown|off]
    setterm --powerdown [0-60]

Примечание:

- Затемнение консоли само по себе не включает DPMS, и оно отключено по умолчанию. [1]
- `setterm --powerdown`, похоже, ни на что не влияет, если настройка ядра `APM_DISPLAY_BLANK` не включена. [2]
- Затемнение консоли также может быть включено параметром ядра `consoleblank`. Подробности смотрите в документации к ядру.

### Перенаправление вывода для просмотра escape-кодов

    $ setterm --powerdown 2>&1 | exec cat -v 2>&1 | sed "s/\\^\\[/\\\\033/g"

### Перенаправление escape-кодов в любой tty (с правами на запись) для его изменения

    $ setterm --powerdown 0 >> /dev/tty3

Примечание: Используется именно `>>`, а не `>`. В случае проблем с правами при использование sudo в скрипте или чём-то таком вы можете использовать программу tee для дозаписи вывода setterm в устройство tty, которое позволяет дозаписывать, но не перезаписывать.

#### цикл Bash для изменения ttys 0-256

    $ for i in {0..256}; do setterm --powerdown 0 >> /dev/tty$i; done; unset I;

## Смотрите также

- PC Monitor DPMS specification explanation
- DPMS control in X

Categories:

- Power management (Русский)
- X server (Русский)