diff --git a/family/how-to/htpc-steam-nonsteam-shortcuts.md b/family/how-to/htpc-steam-nonsteam-shortcuts.md index f5a2f9df..7c19ea74 100644 --- a/family/how-to/htpc-steam-nonsteam-shortcuts.md +++ b/family/how-to/htpc-steam-nonsteam-shortcuts.md @@ -6,24 +6,40 @@ ## Остановка Steam (Bazzite game session) -Простой `systemctl --user stop` недостаточно — Bazzite перезапускает game session. Нужно убить всю сессию: +Steam держит shortcuts.vdf в памяти и может перезаписать его при graceful shutdown. **Ключевое правило — не дать Steam сохранить состояние.** + +### Рабочий способ (проверено на FPC Atomic 2026-06-01) ```bash -# 1. Остановить Steam +# Остановить Steam systemctl --user stop gamescope-session-plus@steam.service +sleep 2 -# 2. Убить game session пользователя (Steam не стартанёт снова) -loginctl terminate-user bazzite -sleep 3 - -# 3. Проверить что не запустился: +# Убедиться что неактивен systemctl --user is-active gamescope-session-plus@steam.service -# Должен вернуть "inactive" +# Должен вернуть "inactive" (exit code 3) -# После правок VDF — машина сама залогинится и стартанёт Steam при следующей активности +# Редактировать VDF + +# Запустить Steam обратно: +systemctl --user start gamescope-session-plus@steam.service ``` -**Важно:** `loginctl terminate-user` завершит всю сессию пользователя — HTPC окажется на экране логина. Автологин включён, так что Steam стартанет при следующем входе (или при перезагрузке). +`systemctl --user stop` останавливает Steam без graceful shutdown — он не сохраняет состояние VDF. VDF не перетирается. + +**Важно:** `steamos-manager` может respawn-нуть Steam в течение 1–3 секунд. Если после stop он снова active — повторить stop и сразу приступить к редактированию в окне между respawn'ами. Если это неудобно — альтернатива ниже. + +### Альтернатива: terminate-user (на случай если respawn мешает) + +```bash +systemctl --user stop gamescope-session-plus@steam.service +loginctl terminate-user bazzite +sleep 3 +``` + +`loginctl terminate-user` убивает всю SSH сессию — придётся reconnect через пару секунд. После правок — HTPC сам залогинится, Steam стартанет. + +**Не надо ребутить HTPC после правок VDF.** Достаточно `systemctl --user start gamescope-session-plus@steam.service`. ## Единственный правильный способ — vdf.binary_load