The Computer Oracle

Emulating extra displays

--------------------------------------------------
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------

Music by Eric Matyas
https://www.soundimage.org
Track title: Ominous Technology Looping

--

Chapters
00:00 Emulating Extra Displays
00:21 Accepted Answer Score 12
01:03 Answer 2 Score 8
01:19 Answer 3 Score 1
01:42 Answer 4 Score 0
02:07 Thank you

--

Full question
https://superuser.com/questions/538789/e...

--

Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...

--

Tags
#linux #multiplemonitors #xorg

#avk47



ACCEPTED ANSWER

Score 12


I found the solution using Xephyr and Xdmx

First create the Xephyr displays

Xephyr -screen 1920x1080 -ac :1
Xephyr -screen 1920x1080 -ac :2
Xephyr -screen 1920x1080 -ac :3

This creates 3 windows 1920x1080, each of these will act as a monitor

Next add the xinerama layer onto these virtual displays

Xdmx +xinerama -xinput local -display :1 -display :2 -display :3 -ac :4

Next create a fresh terminal and start your window manager or application like so

DISPLAY=:4.0
xmonad

or if you just wanted to test an applications xinerama support instead of xmonad you could run xterm or thunar.




ANSWER 2

Score 8


You only need a single instance of Xephyr.

Xephyr +xinerama -screen 1920x1080 -screen 1920x1080 -screen 1920x1080 -ac :1

If you need RANDR extension, add +extension RANDR args.

Xephyr +extension RANDR +xinerama -screen 1920x1080 -screen 1920x1080 -screen 1920x1080 -ac :1




ANSWER 3

Score 1


This works for me:

Xephyr +xinerama +extension RANDR -screen 800x600+0+0 -screen 800x600+800+0 -ac :1

Although DISPLAY=:1 xrandr still returns only one screen, my C application calling XineramaQueryScreens(dpy, &new_num_mons); gives me the right geometry.




ANSWER 4

Score 0


I don't know if this was possible back when the other answers were posted, but here's how you create a 2x2 grid with three virtual monitors occupying the top-left, top-right, and bottom-left quadrants, and a blank space in the bottom-right quadrant to mess with things that assume there's no dead space:

Xephyr +xinerama -screen 640x480 -origin 640,0 -screen 640x480 -origin 0,480 -screen 640x480 :1 &