General cleanup for readability, Move all display and touchscreen configuration to srandrd config, Add a harder failure case for when srandrd is not installed, Use a case statement instead of multiple if statements for host-specific configuration

This commit is contained in:
David Thurstenson 2017-02-16 02:29:56 -06:00
parent 72ffcb2e24
commit 5a43d3eba2
2 changed files with 62 additions and 33 deletions

View File

@ -1,12 +1,44 @@
#!/bin/bash #!/bin/bash
maptouchscreen() {
# maptouchscreen <name> <output>
# <name> should be a full name from the output of `xinput list`
# <output> should be an xrandr output name
xinput --map-to-output $(xinput list --idonly "$1") $2
}
case "$SRANDRD_ACTION" in setpasink() {
"HDMI-1 connected") xrandr --output HDMI-1 --auto --right-of eDP-1 # setpasink <name>
xinput --map-to-output $(xinput list --id-only "ELAN Touchscreen") eDP-1 # Find a unique string in the output of `pacmd list short` to use for <name>
pacmd set-default-sink 0;; pacmd set-default-sink $(pacmd list short | grep $1 | grep -o "^\S\+")
"HDMI-1 disconnected") xrandr --output HDMI-1 --off --output eDP-1 --auto }
xinput --map-to-output $(xinput list --id-only "ELAN Touchscreen") eDP-1
pacmd set-default-sink 1;; case "$(hostname)" in
"thurstybook")
tsid="ELAN Touchscreen"
mainoutput="eDP-1"
hdmi="HDMI-1"
case "$SRANDRD_ACTION" in
"$hdmi connected") xrandr --output $hdmi --auto --right-of $mainoutput
maptouchscreen $tsid $mainoutput
setpasink hdmi
;;
"$hdmi disconnected") xrandr --output $hdmi --off --output $mainoutput --auto
maptouchscreen $tsid $mainoutput
setpasink analog
;;
esac
;;
"dtarchaio")
tsid="Advanced Silicon S.A CoolTouch(TM) System"
mainoutput="eDP1"
hdmi="HDMI1"
xrandr --output $mainoutput --auto --output $hdmi --right-of $mainoutput
maptouchscreen $tsid $mainoutput
;;
esac esac

View File

@ -22,48 +22,45 @@ fi
#== Thurstylark additions below ==# #== Thurstylark additions below ==#
# Reference: https://wiki.thurstylark.com/Xinitrc.html
# Set st up as the default terminal for i3-sensible-terminal
export TERMINAL=st
# Default screen locker # Default screen locker
# Set DPMS timeout to 10 sec, force DPMS off, # Set DPMS timeout to 10 sec, force DPMS off,
# lock with i3lock without forking, then when # lock with i3lock without forking, then when
# unlocked, disable DPMS timeout. # unlocked, disable DPMS timeout.
SCREEN_LOCKER="xset dpms 0 0 10 dpms force off; i3lock --nofork -befc 000000; xset dpms 0 0 0" screen_locker="xset dpms 0 0 10 dpms force off; i3lock --nofork -befc 000000; xset dpms 0 0 0"
# Default screen lock timeout in minutes locktime=30 # Default screen lock timeout in minutes
locktime=30
# Start ssh agent xset +dpms dpms 0 0 0 # Set DPMS features on, but disabled
eval $(ssh-agent)
eval $(ssh-agent) # Start ssh agent
# If srandrd is installed, start it up # If srandrd is installed, start it up
[ -s /usr/bin/srandrd ] && srandrd ~/.config/srandrd.conf # ALL display/xrandr and touchscreen setup should be configured in ~/.config/srandrd.conf!
if [ -s /usr/bin/srandrd ]; then
# Thurstybook-specific config: srandrd ~/.config/srandrd.conf
if [ "$(hostname)" == "thurstybook" ]; then else
true # Add stuff here if I need it printf "==== FATAL: srandrd does not appear to be installed! ===="
exit 1
fi fi
# dtarchaio-specific config: # Host-specific config
if [ "$(hostname)" == "dtarchaio" ]; then case "$(hostname)" in
# Set screen lock timout to 15 minutes "dtarchaio")
locktime=15 locktime=15 # Screen lock timeout
# Set HDMI1 to be right of eDP1 xset b 75 750 50 # Set the bell to be different from Matt's
xrandr --output eDP1 --auto --output HDMI1 --right-of eDP1 ;;
# Set the bell to be different from Matt's esac
xset b 75 750 50
# Set Touchscreen to only work on main display
xinput --map-to-output $(xinput list --id-only "Advanced Silicon S.A CoolTouch(TM) System") eDP1
fi
# Automatically lock after $locktime minutes using i3lock # Automatically lock after $locktime minutes using i3lock
xautolock -time $locktime -locker "$SCREEN_LOCKER" -detectsleep & xautolock -time $locktime -locker "$screen_locker" -detectsleep &
# Set DPMS features on, but disabled
xset +dpms dpms 0 0 0
# If numlockx is installed, turn numlock on # If numlockx is installed, turn numlock on
[ -s /usr/bin/numlockx ] && numlockx on [ -s /usr/bin/numlockx ] && numlockx on
# Set st up as the default terminal for i3-sensible-terminal
export TERMINAL=st
# If $1 isn't set, use "i3" # If $1 isn't set, use "i3"
session=${1:-i3} session=${1:-i3}