1
0
mirror of https://github.com/Foltik/dotfiles synced 2024-12-11 05:52:21 -05:00
dotfiles/cfg/i3blocks/laptop/blocks/display
2017-07-26 11:05:09 -07:00

68 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
xrandrOut=$(xrandr)
hdmiName=$(echo "${xrandrOut}" | grep -i 'HDMI' | awk '{print $1}')
vgaName=$(echo "${xrandrOut}" | grep -i 'VGA' | awk '{print $1}')
edpName=$(echo "${xrandrOut}" | grep -i 'EDP' | awk '{print $1}')
activeDisplays=$(echo "${xrandrOut}" | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/" | tr -s '\n' ' ')
displayFile='/tmp/.displays'
if [[ -f "${displayFile}" ]]; then
oldDisplays=$(cat "${displayFile}")
else
oldDisplays=""
fi
if [[ "${oldDisplays}" != "${activeDisplays}" ]]; then
change="yes"
else
change="no"
fi
# External, HDMI + VGA
if [[ "$activeDisplays" =~ "${hdmiName}" && "$activeDisplays" =~ "${vgaName}" ]]; then
if [[ "${change}" = "yes" ]]; then
$(xrandr --output "${edpName}" --off)
$(xrandr --output "${vgaName}" --auto)
$(xrandr --output "${hdmiName}" --primary --auto)
fi
echo "VGA1 & HDMI"
echo "VGA1 & HDMI"
echo ""
# External, HDMI
elif [[ "$activeDisplays" =~ "${hdmiName}" ]]; then
if [[ "${change}" = "yes" ]]; then
$(xrandr --output "${edpName}" --off)
$(xrandr --output "${vgaName}" --off)
$(xrandr --output "${hdmiName}" --primary --auto)
fi
echo "HDMI"
echo "HDMI"
echo ""
# External, VGA
elif [[ "$activeDisplays" =~ "${vgaName}" ]]; then
if [[ "${change}" = "yes" ]]; then
$(xrandr --output "${edpName}" --off)
$(xrandr --output "${vgaName}" --primary --auto)
$(xrandr --output "${hdmiName}" --off)
fi
echo "VGA"
echo "VGA"
echo
# Only one internal
elif [[ "$activeDisplays" =~ "${edpName}" ]]; then
if [[ "${change}" = "yes" ]]; then
$(xrandr --output "${edpName}" --primary --auto)
$(xrandr --output "${vgaName}" --off)
$(xrandr --output "${hdmiName}" --off)
fi
echo "eDP"
echo "eDP"
echo ""
fi
if [[ "${change}" = "yes" ]]; then
echo "${activeDisplays}" > "${displayFile}"
fi