Skip to content

Instantly share code, notes, and snippets.

@flexiondotorg
Created November 13, 2018 23:14
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save flexiondotorg/088ea2306853cf8cb389a5e2f3232e4b to your computer and use it in GitHub Desktop.
Save flexiondotorg/088ea2306853cf8cb389a5e2f3232e4b to your computer and use it in GitHub Desktop.
xrandr script for ThinkPad P1/X1 Extreme and 2 externals monitors connected to ThinkPad Thunderbolt 3 Dock
#!/usr/bin/env bash
SCREENS=$(xrandr --query | grep connected | grep -v disconnected | cut -d' ' -f1)
INTERNAL=$(echo ${SCREENS} | grep eDP-1-1)
RET=$?
if [ ${RET} -eq 0 ]; then
echo "Internal panel detected."
xrandr --output eDP-1-1 --auto
exit
fi
TRIPLEHEAD=$(echo ${SCREENS} | grep DP-2 | grep DP-1.2 | grep DP-1.3)
RET=$?
# Force to single screen if "single" was passed.
if [ "${1}" == "single" ]; then
RET=1
fi
if [ ${RET} -eq 0 ]; then
gsettings set org.mate.interface window-scaling-factor 1
gsettings set org.mate.interface window-scaling-factor-qt-sync true
gsettings set org.gnome.desktop.interface scaling-factor 1
sleep 1
gsettings set x.dm.slick-greeter enable-hidpi 'off'
xrandr --output DP-1.2 --mode 2560x1440 --primary \
--output DP-1.3 --mode 2560x1440 \
--output DP-2 --mode 3840x2160 --pos 1600x1440
xrandr --output DP-2 --scale 0.5x0.5
mate-tweak --layout Triplehead-tweak
else
gsettings set org.mate.interface window-scaling-factor 2
gsettings set org.gnome.desktop.interface scaling-factor 2
gsettings set org.mate.interface window-scaling-factor-qt-sync true
sleep 1
gsettings set org.mate.interface window-scaling-factor 0
gsettings set org.gnome.desktop.interface scaling-factor 0
gsettings set x.dm.slick-greeter enable-hidpi 'auto'
xrandr --output DP-1.2 --off \
--output DP-1.3 --off \
--output DP-2 --mode 3840x2160 --primary
mate-tweak --layout P1-tweak
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment