xrandr virtual splitscreen cookbook

17 March, 2020

As of xrandr version 1.5 it has become easy to divide your physical monitors into smaller virtual monitors. This is done with the following commands (without the '' quotation marks), scroll down for examples, explanations and even further down for more information.

xrandr --setmonitor 'vn' 'vw'/'pw'x'vh'/'ph'+'wo'+'ho' 'od'
This commands creates a virtual monitor

vn virtual monitor name
vw virtual monitor width in pixels
pw physical width on monitor in milimeters
vh virtual monitor height in pixels
ph physcical heigt on monitor in milimeters
wo width offset of the virutal monitor
ho height offset of the virtual monitor
od output device, the physical monitor on which the virtual monitor will be projected, specify none if your previous virtual entry is projected on the same monitor

xrandr --fb 'tw'x'th'
This command sets the total resolution of all the screens

tw The total width off all virtual monitors + their width offsets combined
th The total height off all virtual monitors + their height offsets combined

xrandr --delmonitor 'vn'
This command deletes a monitor

vn virtual monitor name

Identify your monitors(s)

Run the command xrandr in your terminal, you should see a list with all your output devices and for connected devices their supported modi. For my system it looks like this (shortened);

$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
DVI-D-1 disconnected (normal left inverted right x axis y axis)
VGA-2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 476mm x 268mm
...
VGA-1-1 connected (normal left inverted right x axis y axis)
...
HDMI-1-1 disconnected (normal left inverted right x axis y axis)
DP-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-2 connected (normal left inverted right x axis y axis)
...

We can see I have three monitors connected on my system, but only one is turned on and displaying, that is VGA-2.
As you may notice it looks like a virtual screen which xrandr created by default, lets look closer.

Home