GNOME Shell should support fractional (non-integer) Hi-DPI scaling

Bug #1687246 reported by Justin on 2017-04-30
254
This bug affects 58 people
Affects Status Importance Assigned to Milestone
Mutter
Fix Released
Medium
Ubuntu GNOME
Wishlist
Unassigned
gnome-shell (Ubuntu)
Wishlist
Marco Trevisan (Treviño)

Bug Description

https://trello.com/c/r12LY9iA (for 17.04 was https://trello.com/c/TvwNvXOo)

---

I'm using fully updated Ubuntu GNOME 17.04.

In Ubuntu Gnome, you only allow for integer scaling of things for high DPI monitors. While in theory this sounds good, on a 27 inch 4k monitor like mine, restricting it to integers is a problem. 1x is annoyingly small, and 2x is WAY too big. You need a 1.5x, and presumably to just allow most noninteger values to future proof the distribution given 8k monitors and all sorts of new and weird things coming out, like windows 10 has.

Photos of the two annoying sizes are available here (it won't let me attach two files):

http://i.imgur.com/vWrvZxq.jpg
http://i.imgur.com/11p19k7.jpg

I apologize for my photography skills in advance., you'll have to look at the ruler for scale to see the problem. Please contact me if you need any more information etc.

Workaround
==========
You can enable experimental fractional scaling in Ubuntu 17.10 or 18.04 LTS by running the following command in a terminal and then restarting your computer. Note that this is an experimental feature and is not fully supported by either Ubuntu or GNOME.

gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

After restarting your computer, you should find additional scale options in Settings > Devices > Displays.

If you change your mind and want to get back to supported status, run:

gsettings reset org.gnome.mutter experimental-features

Justin (justinkterry) wrote :
Jeremy Bicha (jbicha) on 2017-04-30
tags: added: gnome-1710
Changed in gnome-shell (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
Changed in ubuntu-gnome:
importance: Undecided → Medium
status: New → Triaged
milestone: none → artful
summary: - HiDPI Scaling Issue
+ GNOME Shell should support fractional (non-integer) Hi-DPI scaling
Changed in mutter:
importance: Unknown → Medium
status: Unknown → Confirmed
Justin (justinkterry) wrote :

It would probably also be a good idea to noninteger values under 1 as well, because that would be important to making raspberry pi type stuff function correctly, and with the IoT boom that's probably going to be a thing. It'd also just be nice on netbook sized laptops.

Jeremy Bicha (jbicha) wrote :

Yes, the GNOME developers know about this issue. My understanding is that they intend to work on this for GNOME 3.26.

Jeremy Bicha (jbicha) on 2017-05-06
tags: added: gnome-17.10
removed: gnome-1710
Changed in gnome-shell (Ubuntu):
assignee: nobody → Marco Trevisan (Treviño) (3v1n0)
Changed in gnome-shell (Ubuntu):
status: Triaged → In Progress
description: updated
Justin (justinkterry) wrote :

Should this bug be marked duplicate of this? https://bugs.launchpad.net/ubuntu-gnome/+bug/1687245

Daniel van Vugt (vanvugt) wrote :

No, I think bug 1687245 might be a slightly different issue. And even if it was the same issue as this one, this bug has more details so should remain the primary bug for fractional scaling. But again, it's possible the lock screen scaling is a different problem.

Justin (justinkterry) wrote :

One more potentially related bug just so it's on here: https://bugs.launchpad.net/ubuntu/+source/gnome-desktop/+bug/1687253

Changed in mutter:
status: Confirmed → In Progress
tags: added: gnome-18.04
removed: gnome-17.10
description: updated
tags: added: highdpi
Justin (justinkterry) wrote :

Any news on this?

Rocko (rockorequin) wrote :

It's working for me in Ubuntu 17.10 - gnome-settings lets me choose scaling between 100% and 200% in 25% increments for each monitor separately (and it defaults to 200% on my 4K screen with my 1920x1080 screen attached). You might have to change a setting for it to work - see http://www.omgubuntu.co.uk/2017/09/enable-fractional-scaling-gnome-linux.

tags: added: hidpi
Greg Williams (greg2lapa) wrote :

Will the work being done here benefit GNOME installs in general (e.g., Gnome-shell without Ubuntu), or does it only apply to Ubuntu installs)?

It's done at gnome-shell / mutter level and worked upstream, so everyone using GNOME (w/ wayland) will get it.

Justin (justinkterry) wrote :

Is this going to come to 18.04? I used the beta and it's not there.

Eduardo Silva (edsiper) wrote :

+1, using Ubuntu 18.04-beta here and it's not there.

This is my number one complaint for 18.04 and GNOME3. I'll be using 16.04.4 until 2021, or until it can compete with the perfection that is the Unity desktop (which supports fractal scaling).

Jeremy Bicha (jbicha) wrote :

I have updated the bug description with steps to enable the experimental feature. This feature is not fully complete in GNOME yet and will not be enabled by default or supported in Ubuntu 18.04 LTS. Apologies for the inconvenience.

description: updated
description: updated
Changed in ubuntu-gnome:
importance: Medium → Wishlist
Changed in gnome-shell (Ubuntu):
importance: Medium → Wishlist
Ken (kkinder) wrote :

I had it manually enabled in Gnome on 17.10 and just upgraded to 18.04. On Wayland, I'm noticing fractional scaling went from pretty good to broken; many fonts (even the datetime on the top of the screen) are now pixelated on 150% scaling.

Reece (reece) wrote :

Lack of fractional scaling is a significant feature regression relative to 17.10 with Unity for those of us with hidpi displays. What can users do to show support for getting solved?

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

Daniel van Vugt (vanvugt) wrote :

I also recall SGI workstations had some nice arbitrary scaling in the 1990's.

But this is not about the state of the art, it's about the state of gnome-shell :)

Rob Parker (rfdparker) wrote :

Another consideration are users with Nvidia graphics.

From what I understand, GNOME Shell's fractional scaling support only works with Wayland.

But Nvidia's proprietary driver doesn't yet support Wayland. Some may argue the fault for that situation lies with Nvidia.

But this is nonetheless a regression from Ubuntu 16.04 LTS, where the default desktop (Unity 7) has fractional scaling support which works with Nvidia's proprietary driver.

All that said, even for users without Nvidia graphics, I suppose the regression (of loosing fractional scaling support) also exists given that Ubuntu 18.04 LTS, for understandable reasons, has gone back to X.org by default.

Personally I'll probably be sticking with Ubuntu 16.04 LTS for the foreseeable future, due to this.

Daniel van Vugt (vanvugt) wrote :

Note to all readers:

1. A workaround to enable the (unfinished) feature is at the top of this bug in the Bug Description.

2. An alternative solution, which I've found works fine for many systems (lower than 3K resolution) is: gnome-tweaks > Fonts > Interface > choose your own font size(s)

Doesn't that work-around only apply to Wayland, while the default GNOME3 desktop in Ubuntu 18.04 is Xorg?

Daniel van Vugt (vanvugt) wrote :

No, the behaviour should be mostly identical between Wayland and Xorg sessions. You may notice some differences but if you do then that's probably a bug.

amias (amias) wrote :

I am having this problem on ubuntu 18.04 on my dell precision m3800

it has built in 13inch 4k screen which is perfectly setup and scaled
but i also have external 40in 4k screen on display port , this gets scaled
to the same settings as the 13inch screen which is waste.

under unity i could scale each independently and it was excellent

additionally my external screen now only runs at a horrible 30hz when it used to run at 60hz
the internal screen runs at 60hz . xrandr doesn't give me more options

I am using the nvidia driver in fulltime optimus mode with the built in

Pedro Côrte-Real (pedrocr) wrote :

To get the same effect in Ubuntu 18.04 as 16.04 I used the tweak tool to set a text scaling of 1.3. Additionally I had to set a scaling in Firefox's about:config in the layout.css.devPixelsPerPx property to the same 1.3 value. It's annoying that this has been removed from the normal UI as the underlying feature is still there and works fine.

I noticed that 18.04.1 has been released. Has there been any progress for providing fractional scaling (via the default GUI) like was offered in Ubuntu 16.04?

tags: added: bionic xenial
tags: removed: xenial
tags: added: cosmic
tags: added: highdpii
removed: highdpi
tags: added: highdpi
removed: highdpii
Daniel van Vugt (vanvugt) wrote :

Historically we use the tag 'hidpi' and not 'highdpi'. It doesn't hurt to have both but for searches you will find more under 'hidpi':

https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bugs?field.tag=hidpi

Mario Vukelic (mario-vukelic) wrote :

They had both been there from the start, but I typoed it into an ii when adding "cosmic" tag and so I restored the original

Omer Akram (om26er) wrote :

What is left of this issue to be sorted, is there a way to track upstream progress on this ? From my testing many apps (non-gnome) get blurry when fractional scaling is enabled. So is that something those app developers will have to fix in their apps ?

Omer Akram (om26er) wrote :

I may add that I believe we probably need more scaling steps than 125, 150, 175 and 200. On my Thinkpad X1C with 14" display and 1080p resolutions 125% is still "too small" and 150% is too large.

Mario Vukelic (mario-vukelic) wrote :

For my 15" display with 3840*2160, without the workaround I get 100, 200 (too small), 300 (too large), and 400. Is it intentional that with the experimental workaround from the first comment enabled, I have 125, 150, 175 and 200% but nothing above it?
The maximum of 200% is too small and I use a 1.20 font scaling in Tweaks, so I'd be looking for an option to scale by 240%.

Daniel van Vugt (vanvugt) wrote :

Mario: gnome-control-center seems to limit the scale to 200% on some machines, 300% on others. And I think I have seen 400% offered in some cases. I don't know why, but the inconsistency is definitely annoying. Please log a bug for it by running:

  ubuntu-bug gnome-control-center

Mario Vukelic (mario-vukelic) wrote :

Daniel, new gnome-control-center bug #1795483

SergeiS (sergei-redleafsoft) wrote :

I'd like to air some disappointment. Whoever decided that we should be happy with 100,200,300% options is WRONG. We should have a field to enter 135 or 150 or 177, whichever works best for the screen size. I'm not able to use any latest Ubuntu releases on my laptop because of this decision. I'm currently forced to stay with Xubuntu that allows setting custom DPI.

I agree with sergeiS 225%. Not 200%! Long live Ubuntu 16.04.5 and Unity 7!

Omer Akram (om26er) wrote :

I think 100,200 and 300% were the easiest to get done. The real issue is with fractional scaling, which KDE does better than others currently and then of course it depends how your GUI toolkit plays with fractional scaling.

Changed in mutter:
status: In Progress → Fix Released

Is this really fixed in Ubuntu 18.04? I don't want to waste my time upgrading again unless fractional scaling truly supported.

I just install Ubuntu 18.04 in a virtual machine and updated it. I don't see a fix, I see the same disappointment:
https://i.imgur.com/tTanPlv.png

Sebastien Bacher (seb128) wrote :

No, it's not fixed in any Ubuntu version yet. The first part of the work just landed upstream and for wayland sessions only, that should be in the incoming Ubuntu Disco version first and unsure it's going to be something that is possible to SRU since it involves quite some refactoring.

Mario Vukelic (mario-vukelic) wrote :

I have this now on Disco in Wayland and with update to mutter 3.32 (incl. proposed, except gnome-settings-daemon at 3.31.91-1ubuntu1), but apparently I had to add scale-monitor-framebuffer to the gsettings key org.gnome.mutter.experimental-features (as mentioned by https://www.omgubuntu.co.uk/2019/03/best-gnome-3-32-features). Is this expected?

I also still have the limited options as in gnome-control-center bug #1795483 from my comment #34 above. (100, 125, 150, 175, 200), with 200 still too small on this display (15" with 3840*2160)

Mario Vukelic (mario-vukelic) wrote :

(Note that adding scale-monitor-framebuffer to experimental mutter settings was already the workaround mentioned in Bug Description, so not new)

Mario Vukelic (mario-vukelic) wrote :

Sorry for spamming, I should have clicked the source link on OMGUbuntu, experimental is apparently expected: https://blog.3v1n0.net/informatica/linux/gnome-shell-fractional-scaling-in-wayland-landed/

So now we have another Ubuntu release: 19.04.

Xorg is still the default desktop and you cannot do fractional scaling. No progress to be seen!
https://bugs.launchpad.net/ubuntu-gnome/+bug/1723411

tags: added: disco
tags: removed: cosmic
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.