Turn Idle Devices Into Windows Extended Screens Using Sunshine, Moonlight, and Virtual-Display-Driver

🧰 Tool Introduction

1. Sunshine

  • GitHub Repository: https://github.com/LizardByte/Sunshine
  • Function: Sunshine is an open-source game streaming server that allows you to stream PC screens to other devices.
  • Installation Location: Install on the Windows host that you want to use as the “main computer”.

2. Moonlight

  • Official Website: https://moonlight-stream.org/
  • Function: Moonlight is a multi-platform streaming client that can run on Android, iOS, Linux, macOS, and other devices to receive Sunshine streaming content.
  • Installation Location: Install on the idle device you want to use as an “extended screen”.

3. Virtual-Display-Driver (VDD)

  • GitHub Repository: https://github.com/VirtualDrivers/Virtual-Display-Driver
  • Function: Creates a virtual display that makes the system recognize a real monitor connection, enabling software-level extended screen functionality.
  • Installation Location: Install on the Windows host to create virtual display output.

📌 Implementation Principle Overview

The solution works through the following steps:

  1. Use Virtual-Display-Driver to create a virtual display on Windows.
  2. Set this virtual display as an “extended desktop”.
  3. Use Sunshine to encode and stream the virtual display content.
  4. Use Moonlight on the extended screen device to receive the streaming content and display it in fullscreen.

✅ Prerequisites

  • A Windows host computer (Windows 10 or 11 recommended)
  • A device to serve as the extended screen (such as Android phone, tablet, or another computer)
  • Same local network environment
  • Download the 3 tools mentioned above

🛠️ Setup Steps

Step 1: Install Virtual-Display-Driver

  1. Download Virtual.Display.Driver-vxxx-setup-x64.exe from the project releases and install it.

  2. [Optional] Configure virtual screen resolution to match your extended screen device

    1. Edit "C:\VirtualDisplayDriver\vdd_settings.xml"

    2. Add configuration in <resolutions></resolutions>, for example:

      <resolutions>
        ...
        <resolution>
            <width>2880</width>
            <height>1920</height>
            <refresh_rate>30</refresh_rate>
        </resolution>
      </resolutions>
    3. Restart Drivers in VDD Control
      VDD Control
      If the driver shuts down correctly but fails to restart automatically, you can manually start the device in the system’s Device Manager Device Manager

    4. Configure the virtual screen resolution and refresh rate in system display settings

Step 2: Configure Sunshine

  1. Install the Sunshine program
  2. The first startup will guide you through initial configuration - select language and enter the pairing interface.
  3. Access Sunshine’s Web UI (default address is https://localhost:47990)
  4. Open the Troubleshooting page in the Web UI
  5. Search for Currently available display devices on the page to find the virtual screen’s device_id
  6. Fill in the found device_id in Settings > Audio/Video > Output Name
  7. Save and click Apply to restart Sunshine

Step 3: Configure Moonlight

  1. Install the Moonlight app on your device
  2. After opening the app, it will automatically search for Sunshine servers on the local network
  3. If discovery is successful, click the pair button and enter the PIN code
  4. Start streaming - you should now see the Windows host’s extended desktop screen.
0%