Skip to content

Опция OwlIgnoreDisplay: сова не трогает монитор - #13

Merged
Oksion merged 1 commit into
mainfrom
oksion/owl-keep-display-option
Jul 29, 2026
Merged

Опция OwlIgnoreDisplay: сова не трогает монитор#13
Oksion merged 1 commit into
mainfrom
oksion/owl-keep-display-option

Conversation

@Oksion

@Oksion Oksion commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Зачем

«Режим совы» выставляет ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED, то есть вместе с запретом сна запрещает и гашение экрана. Но основной сценарий режима — «система не должна уснуть, пока я подключаюсь удалённо», — в экране не нуждается: подсвеченная матрица часами горит впустую.

Что сделано

Поле OwlIgnoreDisplay в config.json (правится руками, как тайминги Mi-кнопки и частоты Гц):

  • trueES_DISPLAY_REQUIRED не выставляется: экран гаснет по обычному таймауту схемы питания, система продолжает бодрствовать;
  • дефолт false → поведение существующих установок не меняется вообще. Опция описывает отклонение от текущего поведения, а не текущее поведение — поэтому ничего не ломается, пока поле не добавят в конфиг руками. Инвариант закреплён тестом.

Что опция не трогает:

  • крышку — закрытая крышка на питании от сети всё так же не усыпляет (это отдельный механизм, GUID_LIDCLOSE_ACTION, и он остаётся);
  • фильмы — медиаплееры запрашивают удержание экрана сами (ES_DISPLAY_REQUIRED — стандартный для этого API), так что воспроизведение не прервётся и с true.

В UI не выносим — редкая настройка, а лишний тумблер в «Функциях» это ровно то усложнение, от которого отговаривает CLAUDE.md.

Проверка

  • dotnet build XiControl.sln -c Release0 ошибок / 0 предупреждений
  • dotnet test170 зелёных (было 169; +1: дефолт OwlIgnoreDisplay = false)
  • Доки: README ru/en получили «не гасить экран (опционально)» с описанием поля; в CLAUDE.md уточнён AwakeMode; запись в CHANGELOG [Unreleased]

🤖 Generated with Claude Code

«Режим совы» всегда выставлял ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED, то есть
вместе со сном запрещал и гашение экрана. Для основного сценария — «система не
должна уснуть, пока я подключаюсь удалённо» — экран вторичен, и подсвеченная
матрица часами горит впустую.

Поле OwlIgnoreDisplay в config.json (правится руками, как тайминги Mi-кнопки):
true → флаг ES_DISPLAY_REQUIRED не выставляется, экран гаснет по обычному
таймауту схемы питания, система по-прежнему бодрствует.

Дефолт false — поведение существующих установок НЕ меняется, пока поле не
добавят: опция описывает отклонение, а не текущее поведение. Тест на дефолт
держит этот инвариант кодом.

Крышку опция не затрагивает (закрытая крышка на AC всё так же не усыпляет),
медиаплееры просят удержание экрана сами — фильмы не прерываются.
В UI не выносим: редкая настройка, не усложняем панель и настройки.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Oksion
Oksion merged commit e47a1f4 into main Jul 29, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant