diff options
Diffstat (limited to 'i3/blocks/display')
-rwxr-xr-x | i3/blocks/display | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/i3/blocks/display b/i3/blocks/display new file mode 100755 index 0000000..9071900 --- /dev/null +++ b/i3/blocks/display @@ -0,0 +1,68 @@ +#!/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
\ No newline at end of file |