#!/bin/bash set -x #Set this values on new system! ########################################## NOTE_PATH="/sys/class/drm/card0-eDP-1" EXT1_PATH="/sys/class/drm/card0-DP-1" EXT2_PATH="/sys/class/drm/card0-DP-3" NOTE_NAME="eDP1" EXT1_NAME="DP1-1" EXT2_NAME="DP1-3" ########################################## NOTE_STATUS=$(cat "$NOTE_PATH/status") EXT1_STATUS=$(cat "$EXT1_PATH/status") EXT2_STATUS=$(cat "$EXT2_PATH/status") XRANDR_OUT=$(xrandr -q) NOTE_MAX=$(echo "$XRANDR_OUT" | grep -A 1 $NOTE_NAME | tail -n1 | awk '{ print $1 }') EXT2_MAX=$(echo "$XRANDR_OUT" | grep -A 1 $EXT2_NAME | tail -n1 | awk '{ print $1 }') EXT1_MAX=$(echo "$XRANDR_OUT" | grep -A 1 $EXT1_NAME | tail -n1 | awk '{ print $1 }') COMMAND="$1" function handle_non_exist_mode { xrandr --dpi 96 --output $2 --mode $4 --output $1 --mode $3 --left-of $2 } if [[ ("$COMMAND" == "external") && ("$EXT2_STATUS" == "connected") ]]; then xrandr --dpi 96 --output "$EXT2_NAME" --mode "$EXT2_MAX" --output "$NOTE_NAME" --off elif [[ ("$COMMAND" == "external") && ("$EXT1_STATUS" == "connected") ]]; then xrandr --dpi 96 --output "$EXT1_NAME" --mode "$EXT1_MAX" --output "$NOTE_NAME" --off elif [[ ("$EXT2_STATUS" == "connected") && ("$NOTE_STATUS" == "connected") && ("$EXT1_STATUS" == "disconnected") ]]; then handle_non_exist_mode "$EXT2_NAME" "$NOTE_NAME" "$EXT2_MAX" "$NOTE_MAX" elif [[ ("$EXT2_STATUS" == "disconnected") && ("$NOTE_STATUS" == "connected") && ("$EXT1_STATUS" == "connected") ]]; then handle_non_exist_mode "$EXT1_NAME" "$NOTE_NAME" "$EXT1_MAX" "$NOTE_MAX" elif [[ ("$EXT2_STATUS" == "connected") && ("$NOTE_STATUS" == "connected") && ("$EXT1_STATUS" == "connected") ]]; then xrandr --dpi 96 --output "$NOTE_NAME" --mode "$NOTE_MAX" --output "$EXT2_NAME" --mode "$EXT2_MAX" --left-of "$NOTE_NAME" --output "$EXT1_NAME" --mode "$EXT1_MAX" --left-of "$EXT2_NAME" elif [[ ("$EXT2_STATUS" == "disconnected") && ("$NOTE_STATUS" == "connected") && ("$EXT1_STATUS" == "disconnected") ]]; then ~/bin/dnote.sh fi