[Fedora 35 GNOME] Per-Monitor Scaling on Framework?

Hi everyone,

I use my laptop with a 1080p external display. 100% scaling looks perfect on it, but makes the internal display content much too small to use as a second monitor. 200% looks perfect on the internal monitor, but makes the 1080p monitor look ridiculous.

Does anyone have success scaling their monitors separately? I’m not opposed to using xrandr if it accomplishes what I want. I’ve already tried the experimental mutter setting through dconf editor and it doesn’t even enable fractional scaling.

Any suggestions? Thanks!

2 Likes

Unfortunately this is still a real problem area when it comes to Linux in general. From the research I did on this in the past, the only two ways of accomplishing what you’re asking are the ones you already mentioned (mutter and xrandr) but even those are quite iffy when it comes to actually working.

When I first got my Framework I spend a good number of hours trying to do this on Fedora and eventually just gave up :confused:.

That all said, I hope you have more luck than I did!

I’m using Fedora 35’s standard Gnome with Wayland and “fractional scaling” has worked remarkably well for me: 1.5x on the Framework screen and 1.0x on a standard 1920 × 1080 24inch monitor. The combination of “good enough” and “works out of the box” made me quite happy about the solution.

The result is not pixel-for-pixel identical to what you’d get by directly rendering at the native resolutions of the screens. It cannot be, since that would require applications to render their window content at different resolutions if the window is spread over multiple monitors. Tricks like subpixel rendering would be really hard to make work too, but luckily this isn’t so important on HiDPI devices any more.

It did require me to tell Thunderbird to use direct wayland rendering (which it doesn’t do by default, as packaged by Fedora presently): X11 apps do look noticeably blurry on the 1.5x monitor (they’re fine on the 1.0x).

There are some other threads on the topic already, with some useful tips:

it does seem to be a topic some people feel passionate about, so you’ll have to read around some parts where emotions overflowed a bit.

1 Like

I haven’t been able to enable it. The widely accepted command for mutter to enable fractional scaling doesn’t work for me.

Per monitor scaling is a feature exclusive when using Wayland. If you use X11 I’m not sure that there is a solution.

You can enable fractional scaling with this command

gsettings set org.gnome.mutter experimental-features “[‘scale-monitor-framebuffer’]”

It is still technically in experimental mode and has some blurry issues with XWayland applications.

This page:

https://wiki.archlinux.org/title/HiDPI#Multiple_displays

does suggest a work-around using xrandr that should allow configuration of different scaling factors on different monitors even under X11. I haven’t tried it myself. I doubt that method would lead to acceptable results if your lower DPI monitor needs a scaling factor that is not integral (or one-over-integral, depending on how you express it) relative to the higher one. In that case you should probably use a desktop that is scaled up so that BOTH your monitors can be obtained via an integral downscaling from it – which is probably what Wayland does internally in such cases.