LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Desktop
User Name
Password
Linux - Desktop This forum is for the discussion of all Linux Software used in a desktop context.

Notices


Reply
  Search this Thread
Old 06-01-2021, 03:15 PM   #1
obobskivich
Member
 
Registered: Jun 2020
Posts: 596

Rep: Reputation: Disabled
creating xrandr virtual displays


I've run into a bit of a roadblock trying to figure out the xrandr --setmonitor command - my goal is to create a virtual display constituted of three physical displays (similar to Eyefinity). I found this documentation (plus the manpage): http://www.straightrunning.com/tools/xrandr.html#sect3 and https://wiki.archlinux.org/title/Mul...irtual_display

I can run the --setmonitor command like so (via terminal emulator inside the XFCE session):

Code:
 
xrandr --setmonitor Test auto DisplayPort-1,DisplayPort-2,DisplayPort-3
And then when running
Code:
xrandr --listmonitors
it will show 'Test' as a valid monitor (as 'monitor 0' specifically), however nothing in XFCE nor ARandR 'sees' this virtual display, and it treats all three still as independent displays (1, 2, and 3, respectively). The 'setmonitor' also does not seem to survive reboot, and (probably should have been obvious) cannot be run without X running (e.g. from tty session with XFCE stopped - just returns 'cannot open display'). I get the sense I need this command running 'while' or 'before' XFCE starts, but I'm not clear on how to do that, or if that sense is indeed accurate. I tried googling around for this and found a patchwork of either very old threads or guides for slicing up a single physical display into multiple virtual monitors (to set 'boundaries' for full-screen applications I guess) but neither quite applied to my desired outcome (combining physical outputs into a single 'display'). Any help would be appreciated.

Specifics about this machine:
- Xubuntu 20.04.2 LTS with XFCE (DE: Xfce; WM: Xfwm4)
- Graphics card is a Radeon Vega Frontier Edition (and everything is attached here so there's no multi-GPU/GPU-switching/etc hijinks to work around)
- Graphics driver: amdgpu (I don't quite understand the versioning here but I believe '20.2.6' is correct if I am understanding it right)
- The monitors are all identical in specification/geometry.


Any help would be appreciated, thanks.


EDIT with solution:

So I poked around with it a bit more, and came up with a solution. To make this work:

Step 1:
Run the
Code:
xrandr --setmonitor
command with the displays you want to 'merge' - I called it 'Big' for this but it doesn't matter what you call it:

Code:
 xrandr --setmonitor Big auto [display names go here, separated by commas, with NO SPACES]
Step 2:
Confirm that it did it, by running
Code:
xrandr --listmonitors
You should see 'Big' as one of the options (or whatever you put in place of Big)

Step 3:
Send the 'framebuffer' command to xrandr - this is specified as width (pixels) x height (pixels), and has to encompass the entire Xscreen, so for this configuration (with a trio of 1080p displays) you would run

Code:
xrandr --fb 5760x1080
And voila - it will 'blink' and you've got one big surface, which windows will fullscreen across (as opposed to per-monitor), and which will behave more or less like Eyefinity (which was my goal).

To undo there's one extra command:

Code:
 xrandr --delmonitor Big
(or whatever you called it instead of Big)

Then re-run the framebuffer command from Step 3, and the monitors will 're-appear' as independent displays within the Xscreen.

Last edited by obobskivich; 06-01-2021 at 06:13 PM.
 
Old 06-02-2021, 08:15 AM   #2
boughtonp
Senior Member
 
Registered: Feb 2007
Location: UK
Distribution: Debian
Posts: 3,619

Rep: Reputation: 2555Reputation: 2555Reputation: 2555Reputation: 2555Reputation: 2555Reputation: 2555Reputation: 2555Reputation: 2555Reputation: 2555Reputation: 2555Reputation: 2555
Quote:
Originally Posted by obobskivich View Post
EDIT with solution:
It's better if you post solutions as a follow-up post, because:

1) it removes the thread from the list of "Zero Reply Threads".
2) it causes anyone who might have subscribed to get notified (which editing doesn't do).

 
Old 06-02-2021, 03:53 PM   #3
obobskivich
Member
 
Registered: Jun 2020
Posts: 596

Original Poster
Rep: Reputation: Disabled
I did not know that.

Thanks for the tip.
 
Old 06-05-2021, 01:38 AM   #4
mrmazda
LQ Guru
 
Registered: Aug 2016
Location: SE USA
Distribution: openSUSE 24/7; Debian, Knoppix, Mageia, Fedora, others
Posts: 5,852
Blog Entries: 1

Rep: Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074
I must not be understanding your goal. For quite some time now, the default with multiple displays is to position each side by side with the primary display the left-most, as an extended desktop, a single surface with no seams. IOW, no xrandr or xorg.con* is needed to produce this arrangement by default:
Code:
# hwinfo --monitor | grep Model
  Model: "DELL U2913WM"
  Model: "NEC EA243WM"
  Model: "K272HUL"
# inxi -Gay
Graphics:
  Device-1: Intel HD Graphics 630 vendor: Gigabyte driver: i915 v: kernel
  bus-ID: 00:02.0 chip-ID: 8086:5912 class-ID: 0300
  Display: server: X.Org 1.20.3 driver: loaded: modesetting
  unloaded: fbdev,vesa alternate: intel display-ID: :0 screens: 1
  Screen-1: 0 s-res: 7040x1440 s-dpi: 96 s-size: 1490x304mm (58.7x12.0") s-diag: 1521mm (59.9")
  Monitor-1: HDMI-1 res: 2560x1080 hz: 60 dpi: 97 size: 673x284mm (26.5x11.2") diag: 730mm (28.8")
  Monitor-2: HDMI-2 res: 1920x1200 hz: 60 dpi: 94 size: 519x324mm (20.4x12.8") diag: 612mm (24.1")
  Monitor-3: DP-1 res: 2560x1440 hz: 60 dpi: 109 size: 598x336mm (23.5x13.2") diag: 686mm (27")
  OpenGL: renderer: Mesa DRI Intel HD Graphics 630 (KBL GT2)
  v: 4.6 Mesa 20.2.4 compat-v: 3.0 direct render: Yes
# xrandr | egrep 'onnect|creen|\*' | grep -v disconn | sort -r
Screen 0: minimum 320 x 200, current 7040 x 1440, maximum 16384 x 16384
HDMI-2 connected 1920x1200+2560+0 (normal left inverted right x axis y axis) 519mm x 324mm
HDMI-1 connected 2560x1080+0+0 (normal left inverted right x axis y axis) 673mm x 284mm
DP-1 connected primary 2560x1440+4480+0 (normal left inverted right x axis y axis) 598mm x 336mm
   2560x1440     59.95*+  74.92
   2560x1080     60.00*+
   1920x1200     59.95*+
Normally with these three displays I stack them with largest at the bottom:
Code:
# xrandr --output DP-1 --primary --output HDMI-1 --above DP-1 --output HDMI-2 --above HDMI-1
# inxi -Gay
Graphics:
  Device-1: Intel HD Graphics 630 vendor: Gigabyte driver: i915 v: kernel
  bus-ID: 00:02.0 chip-ID: 8086:5912 class-ID: 0300
  Display: server: X.Org 1.20.3 driver: loaded: modesetting
  unloaded: fbdev,vesa alternate: intel display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x3720 s-dpi: 96 s-size: 677x984mm (26.7x38.7") s-diag: 1194mm (47")
  Monitor-1: HDMI-1 res: 2560x1080 hz: 60 dpi: 97 size: 673x284mm (26.5x11.2") diag: 730mm (28.8")
  Monitor-2: HDMI-2 res: 1920x1200 hz: 60 dpi: 94 size: 519x324mm (20.4x12.8") diag: 612mm (24.1")
  Monitor-3: DP-1 res: 2560x1440 hz: 60 dpi: 109 size: 598x336mm (23.5x13.2") diag: 686mm (27")
  OpenGL: renderer: Mesa DRI Intel HD Graphics 630 (KBL GT2)
  v: 4.6 Mesa 20.2.4 compat-v: 3.0 direct render: Yes
# xrandr | egrep 'onnect|creen|\*' | grep -v disconn | sort -r
Screen 0: minimum 320 x 200, current 2560 x 3720, maximum 16384 x 16384
HDMI-2 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 519mm x 324mm
HDMI-1 connected 2560x1080+0+1200 (normal left inverted right x axis y axis) 673mm x 284mm
DP-1 connected primary 2560x1440+0+2280 (normal left inverted right x axis y axis) 598mm x 336mm
   2560x1440     59.95*+  74.92
   2560x1080     60.00*+
   1920x1200     59.95*+
If I want largest resolution to left, and smallest to right:
Code:
# xrandr --output HDMI-1 --right-of DP-1 --output HDMI-2 --right-of HDMI-1
# inxi -Gay
Graphics:
  Device-1: Intel HD Graphics 630 vendor: Gigabyte driver: i915 v: kernel
  bus-ID: 00:02.0 chip-ID: 8086:5912 class-ID: 0300
  Display: server: X.Org 1.20.3 driver: loaded: modesetting
  unloaded: fbdev,vesa alternate: intel display-ID: :0 screens: 1
  Screen-1: 0 s-res: 7040x1440 s-dpi: 96 s-size: 1862x380mm (73.3x15.0")
  s-diag: 1900mm (74.8")
  Monitor-1: HDMI-1 res: 2560x1080 hz: 60 dpi: 97 size: 673x284mm (26.5x11.2") diag: 730mm (28.8")
  Monitor-2: HDMI-2 res: 1920x1200 hz: 60 dpi: 94 size: 519x324mm (20.4x12.8") diag: 612mm (24.1")
  Monitor-3: DP-1 res: 2560x1440 hz: 60 dpi: 109 size: 598x336mm (23.5x13.2") diag: 686mm (27")
  OpenGL: renderer: Mesa DRI Intel HD Graphics 630 (KBL GT2)
  v: 4.6 Mesa 20.2.4 compat-v: 3.0 direct render: Yes
# xrandr | egrep 'onnect|creen|\*' | grep -v disconn | sort -r
Screen 0: minimum 320 x 200, current 7040 x 1440, maximum 16384 x 16384
HDMI-2 connected 1920x1200+5120+0 (normal left inverted right x axis y axis) 519mm x 324mm
HDMI-1 connected 2560x1080+2560+0 (normal left inverted right x axis y axis) 673mm x 284mm
DP-1 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
   2560x1440     59.95*+  74.92
   2560x1080     60.00*+
   1920x1200     59.95*+
 
Old 06-08-2021, 03:26 PM   #5
obobskivich
Member
 
Registered: Jun 2020
Posts: 596

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by mrmazda View Post
I must not be understanding your goal. For quite some time now, the default with multiple displays is to position each side by side with the primary display the left-most, as an extended desktop, a single surface with no seams. IOW, no xrandr or xorg.con* is needed to produce this arrangement by default:[code]# hwinfo
That's a 'typical configuration' for these displays as well (they're all identical in this case but still run as extended displays), the goal here is to create a single virtual display with a resolution equal to the combined resolution of all three involved displays, so instead of 3x1920x1080 it becomes 5760x1080. 'But why?' because it means applications can be full-screen'd across the entirety of it.
 
Old 06-08-2021, 08:02 PM   #6
mrmazda
LQ Guru
 
Registered: Aug 2016
Location: SE USA
Distribution: openSUSE 24/7; Debian, Knoppix, Mageia, Fedora, others
Posts: 5,852
Blog Entries: 1

Rep: Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074Reputation: 2074
Quote:
Originally Posted by obobskivich View Post
it means applications can be full-screen'd across the entirety of it.
That's what
Quote:
current 7040 x 1440
and
Quote:
current 2560 x 3720
in post #4 mean.
 
  


Reply

Tags
xrandr



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Trouble creating multiple VNC virtual displays/session to create multi monitors. fullofentropy Debian 3 10-06-2015 06:58 AM
[SOLVED] less displays binary but cat displays ascii? ahtoot Linux - Newbie 3 01-25-2011 08:38 PM
radeon and dual head, to xrandr or not to xrandr, that's the question i92guboj Linux - Desktop 1 06-17-2009 05:48 AM
Dual monitors, separate X displays; want firefox in both displays bforbes Linux - Desktop 7 10-15-2008 09:26 PM
Intel driver with xrandr: Multiple displays not detected/reported corgi Linux - Hardware 6 06-03-2008 12:51 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Desktop

All times are GMT -5. The time now is 05:20 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration