Public bug reported: [Impact] Users on X11 are unable to set sane configurations for mixed hidpi/lowdpi multi-monitor setups. A limitation in Mutter prevents gnome-control-center (and any other users of the dbus api or monitors.xml) from changing even unrelated display settings unless 1x scaling factor is chosen. There is no user-facing reason why, the settings just won't apply.
This applies to X11 and not Wayland. All NVIDIA users and some others who require X for the time being are affected when using mixed-dpi setups. This especially affects System76 customers, since the patch is required for the automatic multi-monitor setup to work. [Description] When plugging in an external 1920 x 1080 monitor to a laptop with a hipdi screen (e.g. 13" 3200x1800), mutter automatically configures the two displays next to each other and keeps the 2x scale factor. If the user sets the scale factor (using the control center, the dbus api, or the monitors.xml file), they will be stuck at 1x and everything will be tiny on the internal display. It's not possible to set the scale factor back to 2x, and any attempts to do so will result in mutter complaining that "Logical monitor scales must be identical" or "Scale 2 not valid for resolution 1920x1080". The user can't even move the external display from the right of the internal to the left without selecting 1x scaling. The configuration simply won't apply. Mutter prevents applying a scale to a logical display if it would result in a logical resolution less than 800x600. On X11, all displays must have the same scaling factor. The primary reason to prevent setting a too-high a scale factor is that a user may get stuck in an unusable state. The proposed patch, enables Mutter to apply a given scale factor if at least one display supports it. [Test Case] 1) Install Ubuntu 17.10 on a laptop with a hidpi display. By default, Gnome should be correctly scaled at 2x. If you have previously configured this setup, you will have to delete the monitors.xml file and reboot. 2) Plug in a 1920x1080 monitor. At this point, both monitors should be scaled at 2x because Mutter has not received a request to change the display configuration. 3) Now open gnome-control center and attempt to change a display setting like moving the external 1920x1080 display from the right to the left side of the internal display. This should be a valid thing to do. However, there will be no apply button. 4) Now, set the scale factor from 2x to 1x. The apply button will now show. Clicking apply will make the external display the right scale, but everything will be very tiny on the internal display. With the patch, you should be able to make changes without switching from 2x to 1x. [Regression Potential] Potential regressions are likely to manifest in the checking of display scale factors. It's possible that corner cases exist where a user might be able to apply a scale factor that's too big/small for their use. However, the current situation is already a regression from Ubuntu 17.04 that prevents proper monitor configuration. [Upstream Bug] https://bugzilla.gnome.org/show_bug.cgi?id=788901 ** Affects: mutter (Ubuntu) Importance: Undecided Status: New ** Tags: hidpi multi-monitor mutter system76 ** Patch added: "monitor-managerxrandr-Use-a-single-supported-scale.patch" https://bugs.launchpad.net/bugs/1724024/+attachment/4972934/+files/monitor-managerxrandr-Use-a-single-supported-scale.patch -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1724024 Title: can't set usable scale for hidpi internal display if when using external display less than 1600x1200 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1724024/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs