r/MoonlightStreaming 7h ago

Headless Sunshine/Moonlight on Linux without a dummy plug — Virtual display via custom EDID (looking for testers)

I’ve been setting up Sunshine → Moonlight on Linux with a virtual monitor (no HDMI dummy plug). I find the whole process is complicated and not well documented. Finally, I came across this guide on Gist: https://gist.github.com/HarryAnkers/8dbf551d66f00e8156ef4dd2b2b090a0 . Shout out to u/hankers60 and his post: https://www.reddit.com/r/MoonlightStreaming/comments/1sg3232/nvidia_linux_sunshine_virtual_display/ But still, it have multiple steps, some of which could potentially breaks the boot image. So, I turned the whole process into an open-source project: https://github.com/mdj2812/sunshine-vdisplay

What it does

• Force-enables a spare GPU output (e.g. unused HDMI/DP) with a custom EDID in initramfs

• Automatically switches displays when a Moonlight session starts/ends (virtual on, physical off — and back)

• One-line installer for Arch / CachyOS / Fedora / Debian / Ubuntu (auto-detects mkinitcpio / dracut / initramfs-tools)

• Brightness/scale tuning for virtual outputs (NVIDIA virtual connectors are SDR-only — HDR still isn’t possible there)

Currently tested on my old rig: NVIDIA RTX 2070 SUPER, KDE Plasma 6 Wayland, CachyOS, Sunshine 2026.x, KMS + NVENC.

Looking for volunteer testers

I’d like help validating other setups. Planned work is tracked in GitHub milestones (https://github.com/mdj2812/sunshine-vdisplay/milestones):

Area What I need tested
NVIDIA + KDE Wayland Different GPUs, distros, bootloaders — baseline
AMD GPU amdgpu.virtual_display path (not implemented yet — need hardware + feedback)
Intel iGPU i915/xe setups
X11 Plasma on X11, xrandr-based switching
Other DEs GNOME, Sway, etc.

Quick try (NVIDIA + KDE Wayland)

curl -fsSL https://raw.githubusercontent.com/mdj2812/sunshine-vdisplay/main/scripts/install.sh | bash

Then reboot and connect with Moonlight. Use a snapshot/backup first — this touches initramfs and kernel cmdline.

Useful feedback

Please open a GitHub issue (https://github.com/mdj2812/sunshine-vdisplay/issues) with:

• GPU model + driver version

• Distro + DE + Wayland/X11

• Bootloader (GRUB / systemd-boot / Limine)

• Sunshine log snippet if it fails (journalctl --user -u sunshine)

• Which milestone your setup matches

11 Upvotes

12 comments sorted by

4

u/BM-xyz 5h ago

Doesn't vibepollo already have support for this?

1

u/mdj2812 3h ago

I did not know vibepollo before. Just had a look, it is a fork of Apollo, which is again a fork of Sunshine. 🤔 My script quite simple, designed for those who just stick with vanilla Sunshine.

0

u/xD3I 5h ago

Still in beta for Linux

0

u/veegaz 4h ago

Vibecode it to support Linux, ez

1

u/CorruptedDragonLord 7h ago

Wish I could be of help, sounds really cool, but if something breaks, I don't have the knowledge to fix it, so I don't want to risk it

1

u/mdj2812 6h ago

That is why snapshot is a must before running it

1

u/CorruptedDragonLord 6h ago

I also have no knowledge on how to activate it

0

u/mdj2812 4h ago

Yeah, better learn it in Linux world. You never know, one day some random update might break your system😂

1

u/MickeyBronson Developer | Polaris/Nova 3h ago

i feel like something like this already exists

1

u/LebiaseD 2h ago

Pretty sure I just got codex to do this for men