GNOME Settings can't configure Mirror Mode when displays don't share a resolution, suggest using scaling as a fallback
It's debatable if this should be considered a bug or a feature request. I would consider the current behavior to be expected, so I'm filing as a feature request.
Mirror mode functions by setting the same resolution and position on both displays (analogous to xrandr --output DP-0 --mode 1280x1024 --output DP-2 --mode 1280x1024 --same-as DP-0
), causing them to show the same region of the desktop. This method only works when the displays have a resolution in common. Some displays support only one mode, which can easily lead to a situation where there are no shared resolutions and Mirror Mode fails.
RandR supports scaling, which can also be used to implement mirror mode: xrandr --output DP-0 --mode 1280x1024 --output DP-2 --scale-from 1280x1024 --same-as DP-0
. This may incur additional overhead from scaling, but works regardless of supported display resolutions. I suggest enhancing GNOME Settings to use this when a shared resolution isn't available. The best and most consistent results would likely be achieved by scaling the higher resolution display to match the lower resolution display, as we would when choosing a matching resolution.
Steps to reproduce:
- Connect two monitors that don't have overlap in supported resolutions, e.g. one supports only 3840x2160 and the other supports only up to 1280x1024.
- Open GNOME Settings, navigate to "Displays" panel.
- Attempt to configure mirror mode.
- Observe failure:
'Changes cannot be applied. This could be due to hardware limitations'
. In log:
(gnome-control-center:2985): display-cc-panel-WARNING **: 17:53:36.180: Config not applicable: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: Monitor modes in logical monitor conflict
Alternatively, configure mirror mode with Super+P or F7, which will fail silently.