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
- 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”.
Fork
-
GitHub Address: https://github.com/ClassicOldSong/moonlight-android/
-
Features: Moonlight is a multi-platform streaming client that runs on Android, iOS, Linux, macOS, and other devices. It receives streams from Sunshine and offers more features than the official version, especially native Touch Passthrough support.
-
Installation Location: Install it on any unused 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:
- Use Virtual-Display-Driver to create a virtual display on Windows.
- Set this virtual display as an “extended desktop”.
- Use Sunshine to encode and stream the virtual display content.
- 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
-
Download
Virtual.Display.Driver-vxxx-setup-x64.exefrom the project releases and install it. -
[Optional] Configure virtual screen resolution to match your extended screen device
-
Edit
"C:\VirtualDisplayDriver\vdd_settings.xml" -
Add configuration in
<resolutions></resolutions>, for example:<resolutions> ... <resolution> <width>2880</width> <height>1920</height> <refresh_rate>30</refresh_rate> </resolution> </resolutions> -
Restart Drivers in
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
-
Configure the virtual screen resolution and refresh rate in system display settings
-
Step 2: Configure Sunshine
- Install the Sunshine program
- The first startup will guide you through initial configuration - select language and enter the pairing interface.
- Access Sunshine’s Web UI (default address is
https://localhost:47990) - Open the Troubleshooting page in the Web UI
- Search for
Currently available display deviceson the page to find the virtual screen’sdevice_id - Fill in the found
device_idin Settings > Audio/Video > Output Name - Save and click Apply to restart Sunshine
Step 3: Configure Moonlight
- Install the Moonlight app on your device
- After opening the app, it will automatically search for Sunshine servers on the local network
- If discovery is successful, click the pair button and enter the PIN code
- Start streaming - you should now see the Windows host’s extended desktop screen.