Triple Monitor Setup with Two of them Being Mirrored

Good evening,

I’m new to Fedora and use Fedora 39. I am quite happy with it, but still have some difficulties.
What I would like to achieve is a specific configuration of the three displays I have. The first two screens should extend each other and be side by side, the third one though should mirror the first.

So far I have attempted two methods.

The first one is using “xrandr”. Just running the command by its own shows information about my displays:

DP-3 connected primary 2560x1440+3840+0
DVI-D-1 connected 1920x1080+6400+0
HDMI-1 connected 3840x2160+0+0

I tried using this command:

xrandr --output HDMI-1 --same-as DP-3 --output DVI-D-1 --right-of DP-3

But got this error:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  7 (RRSetScreenSize)
  Serial number of failed request:  37
  Current serial number in output stream:  38

The second method I tried was editing “~/.config/monitors.xml”
I moved the monitor section of “HDMI-1” into the “logicalmonitor” section of “DP-3” and then deleted the “HDMI-1” section completely. Here is the modified “monitors.xml” file.

<monitors version="2">
  <configuration>
    <logicalmonitor>
      <x>6400</x>
      <y>0</y>
      <scale>1</scale>
      <monitor>
        <monitorspec>
          <connector>DVI-D-1</connector>
          <vendor>ACR</vendor>
          <product>Acer S231HL</product>
          <serial>LNZ080064200</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60.000</rate>
        </mode>
      </monitor>
    </logicalmonitor>
    <logicalmonitor>
      <x>3840</x>
      <y>0</y>
      <scale>1</scale>
      <primary>yes</primary>
      <monitor>
        <monitorspec>
          <connector>DP-3</connector>
          <vendor>ACR</vendor>
          <product>KG271U</product>
          <serial>TATEE0048522</serial>
        </monitorspec>
        <mode>
          <width>2560</width>
          <height>1440</height>
          <rate>59.951</rate>
        </mode>
      </monitor>
      <monitor>
        <monitorspec>
          <connector>HDMI-1</connector>
          <vendor>GSM</vendor>
          <product>LG TV SSCR2</product>
          <serial>0x01010101</serial>
        </monitorspec>
        <mode>
          <width>3840</width>
          <height>2160</height>
          <rate>60.000</rate>
        </mode>
      </monitor>
    </logicalmonitor>
  </configuration>
</monitors>

These changes didn’t seem to have any effect though, even after a restart.

What mistakes could I have made, or are there better solutions for my problem? I would be very thankful for some help. Thank you in advance!

Assuming you’re using GNOME, you can use gnome-monitor-config, but the mirrored monitors must use the same resolution.

Please share the output of gnome-monitor-config list.

Thank you for the quick answer. Indeed, I am using gnome. Sorry for that!
Using the same resolution for both screens would be fine. Do they need to have the same refresh rate as well?

Here is the output of gnome-monitor-config list

gnome-monitor-config list
Monitor [ DP-3 ] ON
  display-name: Acer Technologies 27"
  2560x1440@143.856 [id: '2560x1440@143.856'] [preferred scale = 1 (1 2 3)]
  2560x1440@119.881 [id: '2560x1440@119.881'] [preferred scale = 1 (1 2 3)]
  2560x1440@99.9464 [id: '2560x1440@99.946'] [preferred scale = 1 (1 2 3)]
  2560x1440@84.9831 [id: '2560x1440@84.983'] [preferred scale = 1 (1 2 3)]
  2560x1440@59.9506 [id: '2560x1440@59.951'] [preferred scale = 1 (1 2 3)] PREFERRED CURRENT
  1920x1080@143.855 [id: '1920x1080@143.855'] [preferred scale = 1 (1 2)]
  1920x1080@60 [id: '1920x1080@60.000'] [preferred scale = 1 (1 2)]
  1920x1080@59.9394 [id: '1920x1080@59.939'] [preferred scale = 1 (1 2)]
  1920x1080@50 [id: '1920x1080@50.000'] [preferred scale = 1 (1 2)]
  1680x1050@59.9543 [id: '1680x1050@59.954'] [preferred scale = 1 (1 2)]
  1440x900@59.8874 [id: '1440x900@59.887'] [preferred scale = 1 (1)]
  1280x1024@75.0247 [id: '1280x1024@75.025'] [preferred scale = 1 (1)]
  1280x1024@60.0197 [id: '1280x1024@60.020'] [preferred scale = 1 (1)]
  1280x960@60 [id: '1280x960@60.000'] [preferred scale = 1 (1)]
  1280x800@59.8103 [id: '1280x800@59.810'] [preferred scale = 1 (1)]
  1280x720@60 [id: '1280x720@60.000'] [preferred scale = 1 (1)]
  1280x720@59.9434 [id: '1280x720@59.943'] [preferred scale = 1 (1)]
  1280x720@50 [id: '1280x720@50.000'] [preferred scale = 1 (1)]
  1152x864@75 [id: '1152x864@75.000'] [preferred scale = 1 (1)]
  1024x768@75.0286 [id: '1024x768@75.029'] [preferred scale = 1 (1)]
  1024x768@70.0694 [id: '1024x768@70.069'] [preferred scale = 1 (1)]
  1024x768@60.0038 [id: '1024x768@60.004'] [preferred scale = 1 (1)]
  800x600@75 [id: '800x600@75.000'] [preferred scale = 1 (1)]
  800x600@72.1876 [id: '800x600@72.188'] [preferred scale = 1 (1)]
  800x600@60.3165 [id: '800x600@60.317'] [preferred scale = 1 (1)]
  800x600@56.25 [id: '800x600@56.250'] [preferred scale = 1 (1)]
  720x576@50 [id: '720x576@50.000'] [preferred scale = 1 (1)]
Monitor [ DVI-D-1 ] ON
  display-name: Acer Technologies 23"
  1920x1080@60 [id: '1920x1080@60.000'] [preferred scale = 1 (1 2)] PREFERRED CURRENT
  1280x1024@75.0247 [id: '1280x1024@75.025'] [preferred scale = 1 (1)]
  1280x1024@60.0197 [id: '1280x1024@60.020'] [preferred scale = 1 (1)]
  1280x960@60 [id: '1280x960@60.000'] [preferred scale = 1 (1)]
  1280x800@59.8103 [id: '1280x800@59.810'] [preferred scale = 1 (1)]
  1280x720@60 [id: '1280x720@60.000'] [preferred scale = 1 (1)]
  1152x864@75 [id: '1152x864@75.000'] [preferred scale = 1 (1)]
  1024x768@75.0286 [id: '1024x768@75.029'] [preferred scale = 1 (1)]
  1024x768@70.0694 [id: '1024x768@70.069'] [preferred scale = 1 (1)]
  1024x768@60.0038 [id: '1024x768@60.004'] [preferred scale = 1 (1)]
  800x600@75 [id: '800x600@75.000'] [preferred scale = 1 (1)]
  800x600@72.1876 [id: '800x600@72.188'] [preferred scale = 1 (1)]
  800x600@60.3165 [id: '800x600@60.317'] [preferred scale = 1 (1)]
  800x600@56.25 [id: '800x600@56.250'] [preferred scale = 1 (1)]
Monitor [ HDMI-1 ] ON
  display-name: LG Electronics LG TV SSCR2
  4096x2160@59.9404 [id: '4096x2160@59.940'] [preferred scale = 1 (1 2 3 4)]
  4096x2160@50 [id: '4096x2160@50.000'] [preferred scale = 1 (1 2 3 4)]
  4096x2160@29.9697 [id: '4096x2160@29.970'] [preferred scale = 1 (1 2 3 4)]
  4096x2160@25 [id: '4096x2160@25.000'] [preferred scale = 1 (1 2 3 4)]
  4096x2160@24 [id: '4096x2160@24.000'] [preferred scale = 1 (1 2 3 4)]
  4096x2160@23.9758 [id: '4096x2160@23.976'] [preferred scale = 1 (1 2 3 4)]
  3840x2160@60 [id: '3840x2160@60.000'] [preferred scale = 1 (1 2 3 4)] PREFERRED CURRENT
  3840x2160@59.9404 [id: '3840x2160@59.940'] [preferred scale = 1 (1 2 3 4)]
  3840x2160@50 [id: '3840x2160@50.000'] [preferred scale = 1 (1 2 3 4)]
  3840x2160@29.9697 [id: '3840x2160@29.970'] [preferred scale = 1 (1 2 3 4)]
  3840x2160@25 [id: '3840x2160@25.000'] [preferred scale = 1 (1 2 3 4)]
  3840x2160@23.9758 [id: '3840x2160@23.976'] [preferred scale = 1 (1 2 3 4)]
  2560x1440@59.9506 [id: '2560x1440@59.951'] [preferred scale = 1 (1 2 3)]
  1920x1080@60 [id: '1920x1080@60.000'] [preferred scale = 1 (1 2)]
  1920x1080@59.9394 [id: '1920x1080@59.939'] [preferred scale = 1 (1 2)]
  1920x1080@50 [id: '1920x1080@50.000'] [preferred scale = 1 (1 2)]
  1920x1080@29.9717 [id: '1920x1080@29.972'] [preferred scale = 1 (1 2)]
  1920x1080@25 [id: '1920x1080@25.000'] [preferred scale = 1 (1 2)]
  1920x1080@23.9774 [id: '1920x1080@23.977'] [preferred scale = 1 (1 2)]
  1280x1024@60.0197 [id: '1280x1024@60.020'] [preferred scale = 1 (1)]
  1280x720@59.9434 [id: '1280x720@59.943'] [preferred scale = 1 (1)]
  1280x720@50 [id: '1280x720@50.000'] [preferred scale = 1 (1)]
  1152x864@59.9971 [id: '1152x864@59.997'] [preferred scale = 1 (1)]
  1024x768@60.0038 [id: '1024x768@60.004'] [preferred scale = 1 (1)]
  800x600@60.3165 [id: '800x600@60.317'] [preferred scale = 1 (1)]
  720x576@50 [id: '720x576@50.000'] [preferred scale = 1 (1)]
Logical monitor [ 3840x2160+0+0 ], scale = 1, transform = normal
  HDMI-1
Logical monitor [ 1920x1080+6400+0 ], scale = 1, transform = normal
  DVI-D-1
Logical monitor [ 2560x1440+3840+0 ], PRIMARY, scale = 1, transform = normal
  DP-3
Max screen size: unlimited

No two of those monitors are using the same resolution. They already share a refresh rate.

Monitor [ HDMI-1 ] ON
  display-name: LG Electronics LG TV SSCR2
  3840x2160@60 [id: '3840x2160@60.000'] [preferred scale = 1 (1 2 3 4)] PREFERRED CURRENT
Monitor [ DVI-D-1 ] ON
  display-name: Acer Technologies 23"
  1920x1080@60 [id: '1920x1080@60.000'] [preferred scale = 1 (1 2)] PREFERRED CURRENT
Monitor [ DP-3 ] ON
  display-name: Acer Technologies 27"
  2560x1440@59.9506 [id: '2560x1440@59.951'] [preferred scale = 1 (1 2 3)] PREFERRED CURRENT

AFAIK, yes. The best mode in common is 1440p@60. You can try:

gnome-monitor-config set -Lp -M DP-3 -M HDMI-1 -m '2560x1440@59.951' -L -M DVI-D-1 -x 2560
1 Like

Thank you very much. That worked!

Actually, whenever I watch YouTube videos in fullscreen after using this command, Firefox crashes. For now, I can’t really use this solution. Do you have any idea what could be causing this issue?

What does it output when it crashes? (either run in a terminal or check journalctl -b)

Here is the output

[Parent 4149, IPC I/O Parent] WARNING: Message needs unreceived descriptors channel:7fc1daf6c8a0 message-type:65531 header()->num_handles:1 num_fds:0 fds_i:0: file /builddir/build/BUILD/firefox-120.0/ipc/chromium/src/chrome/common/ipc_channel_posix.cc:467
Exiting due to channel error.
IPDL protocol Error: Received an invalid file descriptor
IPDL protocol Error: Received an invalid file descriptor
IPDL protocol Error: Received an invalid file descriptor
...
Parent 4149, IPDL Background] WARNING: failed to duplicate file descriptor: Too many open files: file /builddir/build/BUILD/firefox-120.0/ipc/chromium/src/base/shared_memory_posix.cc:540
IPDL protocol error: SharedMemory::WriterHandle failed
ExceptionHandler::GenerateDump sys_pipe failed:Too many open files
ExceptionHandler::GenerateDump cloned child 5226
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
ExceptionHandler::WaitForContinueSignal sys_read failed:ExceptionHandler::SendContinueSignalToChild sys_write failed:Bad file descriptor
Bad file descriptor
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
Exiting due to channel error.
Exiting due to channel error.
[GFX1-]: CompositorBridgeChild receives IPC close with reason=AbnormalShutdown
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
innerpeace@fedora:~$ Gdk-Message: 16:47:58.033: Unable to load split_v from the cursor theme

Does that also happen if you disable the third monitor and mirror the first two using the Settings UI?

Yes, it actually does. What does that mean?

Is this the Fedora Firefox package? Can you try the flatpak?

The official Firefox flatpak still uses X11 by default (until the next release finally changes that). If it works, you can force it to use Wayland by enabling fallback-x11 in Flatseal and see if that changes anything.

Yes, that works. Thank you!

The flatpak works? Does it still work in native Wayland mode?

I don’t seem to have any crashes when using the flat pack, with or without enabling fallback-x11. Is that what you are asking?

Yes, in that case you could file a downstream bug against the firefox package in Fedora.