GNOME Bugzilla – Bug 768133
Make HighDPI limit configurable
Last modified: 2021-07-05 13:49:29 UTC
[Opening this bug based on a chat on #wayland with jadahl, SardemFF7, pq, raster, heftig, zubzub] I'm a Fedora 24 end-user, and have a laptop with an internal 1920x1080 LCD and bought an external 4k UHD 3840x2160 screen. I was hoping / expecting that with Wayland I could use both and have different scaling on them, but noticed it didn't work out of the box. http://pastebin.com/M2zmx9fE has the weston-info (there is a 3rd monitor listed there; ignore that one). On IRC jadahl & pq kindly explained in details (Thank You!) that this is because that ext. one is physically "too big", so it's DPI is too low for the hard-coded auto-magic HIDPI_LIMIT "minimum resolution at which we turn on a window-scale of 2" that's #defined in https://git.gnome.org/browse/mutter/tree/src/backends/native/meta-monitor-manager-kms.c#n372 to kick in. The purpose of this issue is to suggest that perhaps this HighDPI limit could be made end-user configurable, to make it easier to benefit from window-scale of 2 in such mixed resolution monitor settings? I understand that the "fractional scaling" which bug 765011 will eventually bring would also address this, but if that's a little further off, then perhaps this in the interim would be valuable to some?
I've since move on to other shores, but if I remember correctly, the suggested next step on the IRC chat (6 months ago), for anyone interested in contributing to moving this forward, was to start trying to even locally just change that hard-code constant (HIDPI_LIMIT), and report back if that helps. Then making it run-time configurable would be a next step..
Created attachment 343596 [details] [review] local temp hack Well, here's a hack to make 28" 4k screens double scale. There might be some argument towards calculating something like the "apparent dpi at the distance from the eyes required to fit the whole screen into a view X degrees l/r of your direct eyeline" or some such
FYI, The API introduced in bug 777732 will allow overriding the calculated scale.
You should not only be able to have different fractal scaling for each monitor, but you should also be able to have fractal scaling for each separate window you launch. Back around 2008, Mandriva released a desktop called Metisse that allowed (seemingly infinite) fractional scaling for each window! (much less is per monitor granularity) Here's a video of that in action: https://www.youtube.com/watch?v=dxsUKX6xXyE&t=40s To accomplish this, using Metisse, you'd simply hold down shift (or was it ctrl) while resizing the window. You could do almost anything to that window, and all your mouse actions on that window would still work accurately no matter how you scaled it. You could even do silly impractical things like turn the window up-side-down, pivot it, push the left side of the window deeper into the background than the right side, etc. And, all your interactions with that window would still work accurately. It was amazing (and done on Linux first -- 10 years ago). When will the world catch up with what Metisse accomplished in 2008? It was way ahead of its time. Here's an academic paper on Metisse: https://hal.inria.fr/inria-00533597/document
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME/mutter/-/issues/ Thank you for your understanding and your help.