-
-
Save wvengen/178642bbc8236c1bdb67 to your computer and use it in GitHub Desktop.
#!/bin/sh | |
# extend non-HiDPI external display on DP* above HiDPI internal display eDP* | |
# see also https://wiki.archlinux.org/index.php/HiDPI | |
# you may run into https://bugs.freedesktop.org/show_bug.cgi?id=39949 | |
# https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/883319 | |
EXT=`xrandr --current | sed 's/^\(.*\) connected.*$/\1/p;d' | grep -v ^eDP | head -n 1` | |
INT=`xrandr --current | sed 's/^\(.*\) connected.*$/\1/p;d' | grep -v ^DP | head -n 1` | |
ext_w=`xrandr | sed 's/^'"${EXT}"' [^0-9]* \([0-9]\+\)x.*$/\1/p;d'` | |
ext_h=`xrandr | sed 's/^'"${EXT}"' [^0-9]* [0-9]\+x\([0-9]\+\).*$/\1/p;d'` | |
int_w=`xrandr | sed 's/^'"${INT}"' [^0-9]* \([0-9]\+\)x.*$/\1/p;d'` | |
off_w=`echo $(( ($int_w-$ext_w)/2 )) | sed 's/^-//'` | |
xrandr --output "${INT}" --auto --pos ${off_w}x${ext_h} --scale 1x1 --output "${EXT}" --auto --scale 2x2 --pos 0x0 |
Thanks for this script! I typically have to run it twice, as well, but I'll take that over the alternative!
It's wierd. I seem to have a similar setup as many, a Surface Pro with a res of 2736x1824 and an external display in FHD, yet, if I run it as it is, the external display windows look very small. I want its scale to be 1 and the internal display to look better to the eye (i.e. scale of 0.5), this seems to do the opposite?
If I try to set the correct scaling, it looks weird, I guess I am not getting the formula, maybe I have to multiply by 2 rather than divide in the offset calculation?
Thanks a lot for this script! To have the full external screen area usable, I had to add theses bits :
Get internal screen height,
int_h=`xrandr | sed 's/^'"${INT}"' [^0-9]* [0-9]\+x\([0-9]\+\).*$/\1/p;d'`
Calculate total width calculation,
tot_w=$(( $ext_w+$int_w ))
And at last, append this option to the final xrandr
command.
xrandr [...] --fb ${tot_w}x${int_h}
I have an easy to modify python script here with arguably more options: https://github.com/ashwinvis/xrandr-extend
I see the same as above with gnome 3. Unfortunately sometimes it doesn't seem to actually work on the second run