docs(display-management): keep_alive=forever (gaming-rig) shipped
§5.1 + §7 matrix: Windows `Pinned` is shipped (ccbd7e8), the mgmt reject is gone, the console
preset is enabled, and `/display/release` frees a pinned monitor (the §8 escape hatch). On-glass
validated on Linux (.116 KWin); Windows compile-verified on .173, on-glass Pinned pending.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -277,7 +277,11 @@ plumbing) does not. Concretely per backend, "the display survives" means:
|
||||
- **gamescope (managed)**: the policy duration replaces the hardcoded 5 s
|
||||
`RESTORE_DEBOUNCE` — the warm Steam session stays up for the window; `forever` means the TV
|
||||
session is never auto-restored (release via console/tray).
|
||||
- **Windows**: the existing linger, plus `forever` = the new `Pinned` state.
|
||||
- **Windows**: the existing linger, plus `forever` = the `Pinned` state — **shipped** (`ccbd7e8`,
|
||||
`MgrState::Pinned`; compile-verified on `.173`, on-glass Windows Pinned pending). Freed via
|
||||
`POST /display/release` (`force_release` handles Pinned) — the §8 escape hatch. `gaming-rig` (the
|
||||
`forever` preset) is no longer mgmt-rejected and is enabled in the console; **on-glass validated on
|
||||
Linux** (`.116` KWin: normal disconnect → `pinned`, no expiry; Release frees it).
|
||||
|
||||
**Rules.**
|
||||
- Input devices (uinput pads, libei/EIS contexts) stay session-scoped — a disconnect reads to
|
||||
@@ -575,7 +579,7 @@ out per-host instead of lying:
|
||||
|
||||
| Capability | KWin | gamescope spawn | gamescope managed | gamescope attach | Mutter | wlroots | Windows |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| keep-alive (linger/forever) | ✅ hold the vout thread; re-attach PipeWire consumer to the kept node — **validate** | ✅ nested session + game survive; re-discover node | ✅ policy replaces the 5 s debounce | — (never owned it) | ✅ hold the D-Bus session; consumer re-attach — **validate** | ✅ output persists; fresh portal capture per attach (cleanest) | ✅ shipped; add `Pinned` |
|
||||
| keep-alive (linger/forever) | ✅ hold the vout thread; re-attach PipeWire consumer to the kept node — **validate** | ✅ nested session + game survive; re-discover node | ✅ policy replaces the 5 s debounce | — (never owned it) | ✅ hold the D-Bus session; consumer re-attach — **validate** | ✅ output persists; fresh portal capture per attach (cleanest) | ✅ shipped incl. `Pinned` (forever) |
|
||||
| reconfigure kept display to a new mode | ✅ `set_custom_refresh` + kscreen mode | ✅ SIGKILL+respawn is the honest "reconfigure" (game restarts — docs say so) or decline → recreate | ✅ existing managed-mode set | — | ⚠ node is sized by negotiation; renegotiation unproven — fallback recreate | ✅ `output <n> mode --custom` | ✅ `reconfigure()` shipped |
|
||||
| topology: primary | ✅ | n/a | n/a | n/a | ✅ | ❌ → extend | ✅ (new, small) |
|
||||
| topology: exclusive | ✅ shipped (filter → group-aware) | n/a | n/a | n/a | ✅ shipped (→ group-aware) | ✅ (new, small) | ✅ shipped (→ group-aware) |
|
||||
|
||||
Reference in New Issue
Block a user