← Blog

Headless game streaming on Linux, without a dummy plug

Punktfunk creates a display at your device's resolution and refresh rate on KDE, GNOME, gamescope, sway and Hyprland. No monitor, no EDID file.

You want to stream a Linux PC that has no monitor, or whose monitor doesn't match the device you play on. A host that captures an existing screen then needs something to capture: a dummy HDMI plug, an EDID override, a hand-written modeline. Each of those breaks in its own way.

Sunshine captures a screen that already exists and has no virtual display on Linux. Apollo ships one, but builds only for Windows. The full list is on the comparison page.

A display per device

When a device connects, the Punktfunk host asks your desktop for a new output at that device's resolution and refresh rate, and streams it. After a dropped connection it keeps the screen for as long as you set, 10 seconds by default, so a quick reconnect lands straight back on it.

It works on these Linux desktops:

  • KDE Plasma 6 on Wayland. Above 60 Hz needs KWin 6.6.
  • GNOME 48 or newer on Wayland.
  • gamescope: SteamOS, Bazzite and other Game Mode boxes. The host starts or relaunches gamescope at your mode.
  • sway 1.8 or newer, and scroll.
  • Hyprland.

Cinnamon, COSMIC, niri, River and dwl have no virtual display. A Mint box can still stream games through a headless gamescope.

On Windows the host brings its own display driver, so the same applies there: see why we wrote our own virtual display driver.

A box nobody sits at

On the web console's Displays page, pick the Headless box preset. Your monitors, if any, turn off while you stream, and the streamed screen stays until you click Release. Then make the host start at boot without a login: enable linger and bring up a desktop session at boot. A gamescope box needs no session of its own; the host starts one per device.

If you do want a real monitor on the stream, Stream this monitor under Your monitors streams it as it is.

Full steps: Virtual displays and a headless, always-on host. To give each person their own game on one box, read multi-seat game streaming on Linux.