Fractional Scaling 18.04 LTS

Fractional scaling support in Ubuntu 19.04 and later:

  • The Wayland session can now be scaled between 100% and 200% in 25% increments.

  • Experimental support in the Xorg session can be enabled to achieve the same. Read more here.


Scaling Factor

To enable HiDPI, open Settings -> Devices -> Displays, or use gsettings:

gsettings set org.gnome.desktop.interface scaling-factor 2

Note: scaling-factor only allows whole numbers to be set. 1 = 100%, 2 = 200%, etc.

Fractional Scaling

A setting of 2, 3, etc., which is all you can do with scaling-factor, may not be ideal for certain HiDPI displays and smaller screens (e.g. small tablets).

wayland

Enable fractional scaling experimental-feature:

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

Then open Settings -> Devices -> Displays

enter image description here
fractional scaling experimental-feature in dconf Editor

xorg

You can achieve any non-integer scale factor by using a combination of GNOME's scaling-factor and xrandr. This combination keeps the TTF fonts properly scaled so that they do not become blurry if using xrandr alone. You specify zoom-in factor with gsettings and zoom-out factor with xrandr.

First scale GNOME up to the minimum size which is too big. Usually "2" is already too big, otherwise try "3", etc. Then start scaling down by setting zoom-out factor with xrandr. First get the relevant output name; the example below uses eDP1. Start e.g. with zoom-out 1.25 times. If the UI is still too big, increase the scale factor; if it is too small decrease the scale factor.

xrandr --output eDP1 --scale 1.25x1.25  

Source: revised from HiDPI – ArchWiki


Some applications do not support HDPI scaling. In this case you can call them from the terminal after forcing the scaling factor with xrandr first.

For example kid3 application without forcing scaling factor:

kid3 no scaling

The default scaling is 96 dpi. So we'll override it by using:

xrandr --dpi 144
kid3

And now we see:

kid3 with scaling