Honestly I just had to switch window scaling to 2x in the Xfce appearance settings, then I run this to fix my layout on each login, giving me a consistent size and no weird rendering -
AFAICT this effectively renders the smaller screen as if it had a much larger resolution (2880x1800), then downscales, giving a good quality image, and then positions the 4k screen to the right of it. The key is the scale factor compensating for different DPI on the different screens.
I tried scaling the other way first, by giving a sub-1.0 scaling factor to the 4k screen, but that meant rendering a lower res and then upscaling, which looked terrible!
The only annoyance now that I have this set up is that occasionaly driver updates change which output is which and I have to update the script so it works again.
#!/bin/bash
xrandr --output HDMI-0 --mode 1920x1200 --pos 0x100 --scale 1.5x1.5 --output DP-4 --mode 3840x2160 --primary --scale 1x1 --pos 2880x-150
AFAICT this effectively renders the smaller screen as if it had a much larger resolution (2880x1800), then downscales, giving a good quality image, and then positions the 4k screen to the right of it. The key is the scale factor compensating for different DPI on the different screens.
I tried scaling the other way first, by giving a sub-1.0 scaling factor to the 4k screen, but that meant rendering a lower res and then upscaling, which looked terrible!
The only annoyance now that I have this set up is that occasionaly driver updates change which output is which and I have to update the script so it works again.