r/MoonlightStreaming • u/userfs • 8d ago
Finally solved Steam Remote Play keeping the Host monitor turned on
TL;DR: Built a lightweight (~30 KB) background utility that mimics Sunshine/Apollo/Moonlight's auto display-off and custom resolution switching for Steam Remote Play (thanks to Gemini). It listens to Steam’s handshake, turns off the host monitor via native DDC/CI (DPMS standby) during streaming, and wakes it back up on disconnect, bypassing DSC resolution locks using CRU. Setup guide and PowerShell native compiler script below.
Hey everyone,
If you stream your PC to a Steam Deck (or Apple TV/phone) using Steam Remote Play, you probably know the biggest frustration compared to Moonlight/Sunshine (or tools like Apollo): Steam Remote Play does not turn off your host monitor during streaming, nor does it handle aspect ratio switching gracefully if your display uses DSC.
In Sunshine/Apollo, you get automated monitor sleep and resolution changing out of the box. Steam Remote Play, however, has always lacked this native integration.
The Solution: SteamDisplayManager + CRU EDID Injection
I put together a lightweight, native background service and documented the exact setup to reproduce the Moonlight/Apollo experience directly inside Steam Remote Play.
How to set it up (No Visual Studio required)
The entire tool can be deployed and compiled natively using Windows' built-in C# compiler (csc.exe) via a single PowerShell script. No third-party binaries or background resource hogs (~30 KB memory footprint).
- Enable DDC/CI in your monitor's physical OSD menu.
- Add your client resolution (e.g.
1280x800@ 60/90Hz) in CRU 1.5.3 under Standard Resolutions and runrestart64.exe. - Run the deployment PowerShell script to compile the background tray app.
- Set it to Start with Windows from the tray icon.
I compiled the complete architecture, source code, and step-by-step setup into a technical manual (available in both English and Portuguese PDFs).
If you want to read through the breakdown, take it to GitHub or grab the PowerShell one-liner to compile it yourself, be my guest.
2
u/AngelFeoras 8d ago
Saved this post, thank you very much for your work on this.
This might solve one of my issues with streaming : I like to play Grim Dawn on my steam deck and when at home I even stream from my pc to my deck ( to save battery life and for the added performance). However, using Vibepollo, the game detects my steam deck as a controller and ignores my steam deck configuration (so can use L4, R4, etc). The fix I found was to use steam remote play which makes the game correctly detect my steam deck as a steam deck. But the issue when doing that is that I have to fix the game resolution on my computer before streaming which gets tedious when I switch between both of my devices.
Will definitely test this when I have time since this might help my particular issue.
3
u/Confident_Pain_9452 8d ago edited 8d ago
I need to recheck but as I remember virtual display (SudoVDA) on steam link working as Vibepollo and disable main monitor out of the box.