I am running 18.04 LTS with two monitors: a 24" 1920x1200 one and a 27" 3840x2160 one.

The text on the high-resolution monitor is too small to read.

I tried using the "Screen Display" setting screen to change the scaling to 200%, but it just makes everything HUGE and blurry. I have no idea why they have chosen only multiples of 100% as available options, but this type of UI scaling isn't what I'm after. I want to use the monitors at native resolutions, except with relatively larger font size on the high-res monitor so that it's readable. The rest of the UI should remain the same size.

The scaling option mentioned above scales both monitors at the same time, even though controls are shown separately for each monitor. Changing one automatically changes the other. Seems like a bug. There are posts and answers for custom scaling for each monitor using xrandr, but again, that's scaling the whole UI. That's not what I'm after.

Can I get monitor-specific font scaling options in Ubuntu like in Windows 10?

I would also love to have dpi-aware mouse movement between screens as enabled by https://github.com/mgth/LittleBigMouse on Windows.

  • You may find useful information regarding monitor scaling in askubuntu.com/questions/1191898/monitor-vs-notebook-display/… but as to inter-display dpi-aware mouse movement, I cannot say. The historical solution has been to select displays at selection time to match their resolution and dpi. – K7AAY Jan 17 at 17:26
  • 1
    Thanks @K7AAY. I hadn't noticed your comment until I posted my answer, but it looks like we were both on the same track. With scaling, the smaller display is trying to show a resolution which it doesn't have the hardware for, so it looks jagged, but it seems to be the best available option. Scaling automatically solves the mouse movement issue, which was a pleasant surprise. – Ashley Wilson Jan 18 at 3:13

The closest I have come to this is still using xrandr (display scaling). This is what I ran:

xrandr --output "DisplayPort-0" --auto --pos 3456x0 --scale 1x1  --output "DisplayPort-1" --auto --scale 1.8x1.8 --pos 0x0

Here's a more readable version:

    --output "DisplayPort-0"
        --pos 3456x0 
        --scale 1x1
    --output "DisplayPort-1" 
        --scale 1.8x1.8 
        --pos 0x0

Both my monitors are plugged in to DisplayPorts, with the 27" 3840x2160 monitor being DisplayPort-0 and the 24" 1920x1200 monitor being DisplayPort-1.

I scaled up the smaller monitor to be the same height as the bigger one by using a scaling factor of 1.8.

2160 / 1200 = 1.8.

This means that the mouse moves between the two displays seamlessly without getting caught in any edges. Use of full-display scaling means the text looks like font smoothing is turned off (although still readable), so I really hope someone comes up with a way to do per-display font scaling, but until then, this will suffice.

The only other calculation I had to do was to find the offset of the bigger display so as to move it to the right of the smaller one. After scaling, the smaller monitor has a resolution of 1.8 times its original resolution of 1920, which is (1920 x 1.8 =) 3456.

Edit: Forgot to mention, I've also used the accessibility setting for large text, so that the text on the larger monitor doesn't require squinting. But without the scaling above, this makes the text on the smaller monitor too large.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.