To add a virtual display on Linux Mint 22.3 Cinnamon, use one of these methods, depending on your GPU:
If you have an Intel GPU, the driver already supports virtual outputs (VIRTUAL1, VIRTUAL2), but they may be disabled by default.
Create a config file to enable virtual heads:
bashsudo nano /usr/share/X11/xorg.conf.d/20-intel.conf
Add this content (adjust VirtualHeads count as needed):
iniSection "Device" Identifier "intelgpu0" Driver "intel" Option "VirtualHeads" "2" EndSection
Reboot your system:
bashsudo reboot
Verify the virtual displays are available:
bashxrandr
You should see VIRTUAL1 and VIRTUAL2 listed as disconnected.
Enable and configure the virtual display (e.g., 1920x1080 to the right of your primary display):
bashxrandr --output VIRTUAL1 --mode 1920x1080 --right-of eDP1
Replace eDP1 with your primary display name (check with xrandr).
xrandr --setmonitor (Works with xrandr ≥1.5)If you want to split an existing output into virtual monitors (e.g., for screen sharing or multi-region setups):
Check your current display name:
bashxrandr
Example output: HDMI-A-0 connected primary 1920x1080+0+0
Create a virtual monitor (e.g., split HDMI-A-0 into two 1280x1024 regions):
bashxrandr --setmonitor "VIRTUAL-LEFT" 1280/338x1024/270+0+0 HDMI-A-0 xrandr --setmonitor "VIRTUAL-RIGHT" 1280/338x1024/270+1280+0 none
--setmonitor "NAME" W/HxH+X+Y OUTPUTnone = no physical output (purely virtual).Verify with:
bashxrandr --current
If your GPU exposes disconnected outputs (e.g., HDMI-2, DP-1, VIRTUAL1):
List disconnected outputs:
bashxrandr | grep disconnected
Example: VIRTUAL1 disconnected (normal left inverted right x axis y axis)
Add a custom mode (if needed):
bashxrandr --newmode "1920x1080_60" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync xrandr --addmode VIRTUAL1 "1920x1080_60"
Enable the virtual display:
bashxrandr --output VIRTUAL1 --mode 1920x1080 --right-of eDP1
xserver-xorg-video-dummy (Fallback)If the above methods fail, install the dummy driver:
Install the dummy driver:
bashsudo apt install xserver-xorg-video-dummy
Create a config file:
bashsudo nano /usr/share/X11/xorg.conf.d/10-dummy.conf
Add:
iniSection "Device" Identifier "DummyDevice" Driver "dummy" VideoRam 256000 EndSection Section "Screen" Identifier "DummyScreen" Device "DummyDevice" Monitor "DummyMonitor" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1920x1080" EndSubSection EndSection
Reboot and enable with xrandr:
bashxrandr --output Dummy-0 --mode 1920x1080 --right-of eDP1
--setmonitor) or Method 3 (disconnected outputs).xrandr command to Startup Applications or ~/.xprofile to auto-enable on login.xrandr for configuration.The error occurs because 1920x1080 is not a predefined mode for VIRTUAL1. You need to create the mode first, then add it to the output.
Run these commands in order:
bash# 1. Create a new mode for 1920x1080 @ 60Hz xrandr --newmode "1920x1080_60" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync # 2. Add the mode to VIRTUAL1 xrandr --addmode VIRTUAL1 "1920x1080_60" # 3. Enable VIRTUAL1 with the new mode xrandr --output VIRTUAL1 --mode "1920x1080_60" --right-of eDP1
--autoIf you just want to enable VIRTUAL1 with a default mode (no need to specify resolution):
bashxrandr --output VIRTUAL1 --auto --right-of eDP1
Check if it worked:
bashxrandr
You should see VIRTUAL1 connected 1920x1080+2256+0 (or similar).
Add the commands to Startup Applications or ~/.xprofile:
bashecho 'xrandr --newmode "1920x1080_60" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync && xrandr --addmode VIRTUAL1 "1920x1080_60" && xrandr --output VIRTUAL1 --mode "1920x1080_60" --right-of eDP1' >> ~/.xprofile
Vibe can make mistakes. Check answers. Learn more