Skip to content

Detached commands (e.g., Playnite Fullscreen) leave SPI_SETSCREENSAVEACTIVE disabled after session teardown #271

@wy1d

Description

@wy1d

Bug Symptoms

When launching a status-driven or detached command like Playnite Fullscreen, Vibepollo properly launches the target but loses the strict process tracking hook because the initial launcher process exits immediately (App exited with code [0] within 5 seconds of launch. Treating the app as a detached command.).

Because Playnite Fullscreen modifies the Windows system parameters via SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE) to prevent screensavers during active library browsing, this global OS flag is left orphaned when the Moonlight stream disconnects. Vibepollo executes its standard session teardown, but because the command was decoupled/placebo, it fails to toggle the screensaver flag back to TRUE.

The host PC's idle timer (GetLastInputInfo) continues to count up flawlessly and powercfg /requests returns entirely clear (DISPLAY: None), but the screensaver never fires because it has been globally turned off at the Win32 API level.

Diagnostic Verification / Proof:
While the issue was actively occurring, running a SystemParametersInfo query for SPI_GETSCREENSAVEACTIVE (0x0010) explicitly confirmed that the OS-level flag was disabled post-stream:

Was the screensaver enabled at the OS level? False
Screensaver successfully FORCED ON.

Expected Behavior

Vibepollo should cache the host's state of SPI_GETSCREENSAVEACTIVE before executing a command. Upon session teardown—regardless of whether the application status is active, detached, or placebo—Vibepollo should forcefully revert SPI_SETSCREENSAVEACTIVE back to its pre-stream state to ensure host display protection (OLED burn-in mitigation) remains functional.

Windows Version

25H2

Package

Windows - msi installer (recommended)

GPU Type

NVIDIA

GPU Model

5090

GPU Driver Version

596.49

Capture Method

SudoVDA virtual display

Apps

Logs (Optional but Recommended)

No response

Screenshot (Optional)


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions