diff --git a/family/how-to/htpc-system.md b/family/how-to/htpc-system.md index 5197751d..b2189112 100755 --- a/family/how-to/htpc-system.md +++ b/family/how-to/htpc-system.md @@ -128,7 +128,15 @@ Sleep управляется `htpc-sleep-guard` — Python-скрипт + system | `htpc-sleep-guard` | **active/enabled** | актуальный guard (SSH + торренты + rsync-файл) | | `transmission-sleep-guard` | disabled | старый, отключён (дублировал и держал ингибитор постоянно) | -### Логика guard +### Редизайн guard — nudge вместо ингибитора (план 2026-10-11) + +**Инцидент 2026-10-11 14:10:** guard (правка 08.10 в рамках virfield) сам вызвал suspend через 30 мин после отпускания удержания — во время игровой сессии. Игровая активность в условиях guard не проверяется (только SSH/торренты/rsync-файл/чужие block-ингибиторы, которых gamescope не ставит). + +**Новый дизайн:** Steam (`-steamdeck`, gamescope) — единственный инициатор сна, его idle-таймер нативно уважает геймпад/игру (доказано 28.05 и инцидентом — за 1ч игры Steam не усыпил). Guard больше НЕ ставит systemd-inhibit и НЕ вызывает suspend. Пока выполняются условия удержания (SSH-сессия / дневные торренты+cooldown / `/tmp/rsync-active`) — guard каждые 60 с шлёт синтетический input (`xdotool key F13` на дисплей gamescope-сессии), сбрасывая idle-таймер Steam. Условия кончились → nudge прекращён → Steam сам усыпляет по своему таймауту. Ночь (23–11): без nudge даже с торрентами + RTC-wake 11:00 (как раньше). + +**Риски:** Steam-таймер может не смотреть X-keyboard → fallback uinput-геймпад; Sleep After=Never → таймер не выстрелит (проверить конфиг); XTest в gamescope-сессии (проверить живьём). + +### Логика guard (до 2026-10-11, заменяется) **Всегда (вне зависимости от времени):** - Активная SSH сессия → держит inhibitor (HTPC не спит)