Add virtual monitors to your Linux device! Works with VR, OBS, Sunshine, and/or any desktop sharing software.
Python
117
0 commits
updated Mar 30, 2026
A native Linux GUI application to create and manage virtual displays at any resolution and refresh rate.
Built with GTK3 and xrandr. Works with VR, OBS, Sunshine, and any desktop sharing software.
Part of the VirtualDrivers project.
| GPU | Method | Setup Required |
|---|---|---|
| AMD | xrandr (direct) | None — works out of the box |
| Intel | xrandr (direct) | None — works out of the box |
| NVIDIA | xorg.conf + xrandr | One-time setup + session restart |
NVIDIA's proprietary driver does not allow adding modes to disconnected outputs at runtime. The app handles this automatically:
HDMI-0)/etc/X11/xorg.conf.d/99-linux-vdd.conf — forces NVIDIA to treat the output as connected/usr/share/linux-vdd/virtual-edid.bin — virtual EDID supporting 24–240 Hz up to 4KTo remove the NVIDIA config: Menu > Remove NVIDIA Config, then restart your session.
These work immediately with no setup. The app uses standard xrandr to create modes and enable disconnected outputs directly.
Most desktop Linux distributions already have these installed.
git clone https://github.com/VirtualDrivers/Linux-Virtual-Display-Driver.git
cd Linux-Virtual-Display-Driver
python3 vdd.py
chmod +x install.sh
sudo ./install.sh
This installs the app to /opt/linux-vdd/, adds a launcher to your PATH, and creates a .desktop entry so it appears in your application menu. Supports apt, pacman, dnf, and zypper.
To uninstall:
chmod +x uninstall.sh
sudo ./uninstall.sh
The app uses xrandr to:
cvt binary)xrandr --newmode)xrandr --addmode)xrandr --output ... --mode ...)Virtual displays are created on disconnected outputs — most GPU drivers expose one or more of these (e.g., VIRTUAL1, DP-2, HDMI-2).
If the app reports no available outputs:
VIRTUAL1 / VIRTUAL2 outputs in xrandrxf86-video-dummy for a dummy output, or load the evdi kernel module (sudo modprobe evdi)xrandr output~/.config/linux-vdd/displays.json for saved stateVirtual display state is saved to ~/.config/linux-vdd/displays.json and restored on next launch.
NVIDIA xorg configuration is stored in /etc/X11/xorg.conf.d/99-linux-vdd.conf.
| Shortcut | Action |
|---|---|
Ctrl+N | Add virtual display |
linux_vdd/
__init__.py # Package metadata
modeline.py # CVT modeline calculator
display_manager.py # GPU detection, xrandr backend, NVIDIA setup
dialogs.py # Add Display + NVIDIA Setup dialogs
app.py # GTK3 Application, main window, CSS
vdd.py # Entry point
install.sh # System-wide installer
uninstall.sh # Uninstaller
Personal / Non-Commercial Use: GNU GPLv3 — free to use, modify, and redistribute.
Commercial Use: Requires a separate license. Contact VirtualDrivers for commercial licensing.
See LICENSE for full details.
42 followers · starred May 2025
Python
96.4%
Shell
3.6%
Add virtual monitors to your Linux device! Works with VR, OBS, Sunshine, and/or any desktop sharing software.
Python
117
0 commits
updated Mar 30, 2026
A native Linux GUI application to create and manage virtual displays at any resolution and refresh rate.
Built with GTK3 and xrandr. Works with VR, OBS, Sunshine, and any desktop sharing software.
Part of the VirtualDrivers project.
| GPU | Method | Setup Required |
|---|---|---|
| AMD | xrandr (direct) | None — works out of the box |
| Intel | xrandr (direct) | None — works out of the box |
| NVIDIA | xorg.conf + xrandr | One-time setup + session restart |
NVIDIA's proprietary driver does not allow adding modes to disconnected outputs at runtime. The app handles this automatically:
HDMI-0)/etc/X11/xorg.conf.d/99-linux-vdd.conf — forces NVIDIA to treat the output as connected/usr/share/linux-vdd/virtual-edid.bin — virtual EDID supporting 24–240 Hz up to 4KTo remove the NVIDIA config: Menu > Remove NVIDIA Config, then restart your session.
These work immediately with no setup. The app uses standard xrandr to create modes and enable disconnected outputs directly.
Most desktop Linux distributions already have these installed.
git clone https://github.com/VirtualDrivers/Linux-Virtual-Display-Driver.git
cd Linux-Virtual-Display-Driver
python3 vdd.py
chmod +x install.sh
sudo ./install.sh
This installs the app to /opt/linux-vdd/, adds a launcher to your PATH, and creates a .desktop entry so it appears in your application menu. Supports apt, pacman, dnf, and zypper.
To uninstall:
chmod +x uninstall.sh
sudo ./uninstall.sh
The app uses xrandr to:
cvt binary)xrandr --newmode)xrandr --addmode)xrandr --output ... --mode ...)Virtual displays are created on disconnected outputs — most GPU drivers expose one or more of these (e.g., VIRTUAL1, DP-2, HDMI-2).
If the app reports no available outputs:
VIRTUAL1 / VIRTUAL2 outputs in xrandrxf86-video-dummy for a dummy output, or load the evdi kernel module (sudo modprobe evdi)xrandr output~/.config/linux-vdd/displays.json for saved stateVirtual display state is saved to ~/.config/linux-vdd/displays.json and restored on next launch.
NVIDIA xorg configuration is stored in /etc/X11/xorg.conf.d/99-linux-vdd.conf.
| Shortcut | Action |
|---|---|
Ctrl+N | Add virtual display |
linux_vdd/
__init__.py # Package metadata
modeline.py # CVT modeline calculator
display_manager.py # GPU detection, xrandr backend, NVIDIA setup
dialogs.py # Add Display + NVIDIA Setup dialogs
app.py # GTK3 Application, main window, CSS
vdd.py # Entry point
install.sh # System-wide installer
uninstall.sh # Uninstaller
Personal / Non-Commercial Use: GNU GPLv3 — free to use, modify, and redistribute.
Commercial Use: Requires a separate license. Contact VirtualDrivers for commercial licensing.
See LICENSE for full details.
42 followers · starred May 2025
Python
96.4%
Shell
3.6%