I spend hours to solve this issue. I have a 4k laptop and 1080p external monitor. If I set scaling to "200%" external monitors displays enlarged icons text etc.
I tried xrandr commands with "--scale" but they didnt give me the expected results. So I have a xrandr command that works perfectly for me. I wish somebody else find it helpful.
xrandr --output HDMI-1-1 --mode 1920x1080 --pos 0x0 --rate 60.00 \
--transform 2,0,0,0,2,0,0,0,1 \
--output eDP-1-1 --mode 3840x2160 --pos 0x2160 --rate 60.00 --primary
This commands works as external monitor scaled to "100%" and built-in screen scaled to "200%". This commands places external monitor above the built-in. Keep in mind you probably will change --output names with yours.
--pos 0x2160 has nothing to do with the height of eDP-1-1 (it just happens by chance to be the same value in my case). That number is in fact the height of the upper monitor (
1080 in my case) corrected by the transformation (so
1080*2 in my case).
This is because
--pos refers to the position of the upper left corner in the virtual screen space, so the bottom screen has to be positioned relative to the height of the upper screen.
Finally, you can ignore --rate flags. The most important flag here is
--transform. And positions depends on screen resolutions and placements. Using this commands I have a Arandr preview like this;
1080p monitor is virtually adjusted to take up twice as much space. Thanks to monitors are perfectly aligned, when I move the mouse from one screen to another, it appears on same horizontal coordinate