Mixed DPI setting on multiple monitors - Ubuntu 18.04 - how?

I have been running Ubuntu 16.04 on my old Dell XPS 9530 with 4K screen, with an external regular DPI screen, and it has been almost OK. I can set scale individually on each screen - and set what screen new apps should scale for.

Now I have a new Dell XPS 9570, also with 4K screen, and I wanted to go for Ubuntu 18.04 (for the best drivers). And I discover to my surprise that I can only scale either 100% or 200% (or 300 / 400%) and the setting is applied for ALL attached screens, not pr screen as for Ubuntu 16.04. Is there some kind of way to make this available on a pr screen basis? I just looked at xrender, and it does not look like anything I want to touch. (My time is unfortunately hugely limited)

Other solutions I've found are setting the 4K display to 1K resolution. (I'd like to avoid this solution)

Am I the only one with a 4K laptop screen running an external regular-DPI monitor? (Perhaps this is my queue for a monitor-upgrade?)

Don't mean to sound negative wrt Ubuntu 18.04 - it looks great and I love using it - as long as I don't attach an external regular-DPI screen to it...


Solution 1:

You need to run a command for your HI DPI monitor (if you execute it on the other monitor, your non hi DPI monitor will clog everything, rendering your desktop unusable but by keyboard and really grewsome stuff).

First detect the name in xrandr world of your monitor:

xrandr --current | grep -w connected

Example (on my Dell XPS 15 9550 with an external non HI DPI monitor and internal 4k):

$ xrandr --current | grep -w connected
eDP-1 connected 3840x2160+1920+0 (normal left inverted right x axis y axis) 346mm x 194mm
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm

For my machine I have run (eDP-1 is my 4k display of course):

xrandr --output eDP-1 --scale .5x.5

If you really need your 4k monitor to have bigger stuff you can run:

xrandr --output eDP-1 --scale .4x.4

And for really short-sighted people (my case) you can run:

xrandr --output eDP-1 --scale .3x.3

For resetting (in case you push it so hard everything might break) do:

xrandr --output eDP-1 --scale 1x1

Made this comment following comment guide from Change display properties

Solution 2:

See Multi-monitor setup with xrandr

In particular, there was a long-standing bug in xserver to do with multiple scaling that is fixed with a HWE update that you will not get in 18.04 LTS through the normal update/upgrade mechanism - you have to run sudo apt-get install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04.