Skip to main content
Not all applications behave the same way. This guide provides configuration examples to help you add games and applications to Sunshine.
Throughout these examples, fields not shown are left blank. You can enhance your experience by adding an image via the Image field or logging output via the Output field.
When a working directory is not specified, it defaults to the folder where the target application resides. Specify a working directory explicitly if the application requires specific paths for assets or configuration files.

Common Launchers

Desktop

The most basic configuration streams your entire desktop:

Steam Big Picture

Steam is launched as a detached command because Steam’s launcher process self-updates and the original process terminates.
On Linux and FreeBSD, use setsid to properly detach the Steam process from Sunshine’s control.

Steam Games

Steam games can be launched using URI schemes or direct binary execution. This method is the most consistent across platforms and games:
Find a game’s Steam App ID by visiting its store page. The ID is in the URL: https://store.steampowered.com/app/464920/

Using Game Binary with Working Directory

Using Game Binary with Full Path

Epic Games Store

The URI method provides the most consistent behavior:
Find the Epic Games URI by checking the game’s shortcut properties or looking in the Epic Games Launcher’s web requests.

Using Game Binary

Prep Commands

Prep commands execute before starting an application and can clean up when the application closes. Common uses include changing resolution, refresh rate, or launching supporting processes.

Resolution and Refresh Rate Changes

Dynamically adjust display settings based on Moonlight client capabilities using environment variables:
  • ${SUNSHINE_CLIENT_WIDTH} - Client’s requested width
  • ${SUNSHINE_CLIENT_HEIGHT} - Client’s requested height
  • ${SUNSHINE_CLIENT_FPS} - Client’s requested frame rate

Linux (X11)

Replace HDMI-1 with your display output name. Find it by running xrandr without arguments.

Linux (Wayland/wlroots)

For wlroots-based compositors (Hyprland, Sway, etc.):
wlr-xrandr only works with wlroots-based compositors. GNOME and KDE require different tools.

Linux (KDE Plasma)

Works on both Wayland and X11:
Find your display name and supported modes by running kscreen-doctor -o.
Display names differ between X11 and Wayland. A monitor might be HDMI-A-0 on X11 but HDMI-A-1 on Wayland.

Linux (GNOME on Wayland)

Requires displayconfig-mutter:
HDR support requires GNOME 48+. Check support with displayconfig-mutter list. Remove the --hdr flag if your display doesn’t support it.

Linux (NVIDIA GPUs)

For NVIDIA proprietary drivers:

macOS

Requires displayplacer:
Replace <screenId> with your display’s ID. Run displayplacer list to find it.

Windows

Sunshine has built-in support for resolution changes on Windows. For third-party tools, you can use QRes:
QRes must be downloaded separately.

Platform-Specific Considerations

Linux (Flatpak)

Flatpak packages run in a sandboxed environment. All commands must be prefixed with flatpak-spawn --host.
Example:

Windows (Elevated Commands)

If Sunshine is installed as a service (default), you can launch applications with administrative privileges without UAC prompts:
The elevated option can be set independently for the main command and each prep command.