XRandR DPI on multihead linux

I have multiple screens with different correct DPI settings. I can use xrandr --dpi X to change DPI for all screens, is it possible to set different DPI for each screen? How do I make apps recalculate font sizes when they are moved to a different screen? xrandr --dpi X only affects new windows, old windows still use the old DPI value.


I haven't tried it out yet, but there is a good looking answer here which suggests using the xrandr option scale which should get you the effect you're after.

UPDATE: This does work, I've written summary instructions here.


I was able to solve this (with issues) using the details outlined in the following github discussion: https://github.com/linuxmint/Cinnamon/issues/3606

External Monitor QHD (2560X1440), Internal/Laptop Monitor 3200x1800

xrandr --output eDP-1 --scale 1x1 --pos 0x2880
xrandr --output DP-1 --mode 2560x1440 --scale 2x2 --fb 5120x4680

OR External Monitor FHD (1920x1080), Internal/Laptop Monitor 3200x1800

xrandr --output eDP-1 --scale 1x1 --pos 0x2160
xrandr --output DP-1 --mode 1920x1080 --scale 2x2 --fb 3840x3960

These work, but there is a significant amount to tearing in the high resolution monitor (laptop) when I move windows, resize screens or scroll on a browser. This feels like a software rending solution (which has all these issues of tearing, and slow refreshes).

Its 2017, Linux/Gnome needs to address the multi-monitor, mixed scaling solution. Both Windows 10 and OS X have this resolved without having to resort to command line band-aid fixes that partially work (the tearing issue isn't acceptable for gaming)


you can set different values for each screen with:

xrandr --output <Display1> --dpi X --output <Display2> --dpi Y

To se what are available use just xrandr,to restart the font. I think you could turn off the display and turn it on again with with:

xrandr --output <Display1> --off
xrandr --output <Display1> --auto

but am not really sure