al-skel/home/bin/toggle.sh
2018-08-18 13:16:42 -07:00

130 lines
2.8 KiB
Bash
Executable File

#!/usr/bin/env bash
NAME=$(basename "$0")
VER="0.4"
usage() {
cat <<- EOF
USAGE: $NAME [OPTIONS [ADDITIONAL]]
OPTIONS:
-h,--help Display this message
-v,--version Display script version
-p,--polybar Toggle the configured polybar session, NO additional options
-c,--compton Toggle compton or daemon monitoring icon, can use toggle option
-r,--redshift Toggle redshift or daemon monitoring icon, can use toggle option
-f,--caffeine Toggle caffeine or daemon monitoring icon, can use toggle option
ADDITIONAL:
-t,--toggle Toggle the program off/on, without this flag a monitor process will be started
EOF
}
toggle_polybar() {
if [[ $(pidof polybar) ]]; then
pkill polybar
else
al-polybar-session
fi
}
toggle_compton() {
if (( opt == 1 )); then
if [[ $(pidof compton) ]]; then
al-compositor --stop
else
al-compositor --start
fi
exit 0
fi
on=""
off=""
while true; do
if [[ $(pidof compton) ]]; then
echo "$on"
else
echo "%{F#888888}$off"
fi
sleep 2
done
}
toggle_redshift() {
if (( opt == 1 )); then
if [[ $(pidof redshift) ]]; then
pkill redshift
else
redshift &
fi
exit 0
fi
icon=""
while true; do
if [[ $(pidof redshift) ]]; then
temp=$(sed 's/K//g' <<< "$(grep -o '[0-9].*K' <<< "$(redshift -p 2>/dev/null)")")
fi
if [[ -z $temp ]]; then
echo " $icon " # Greyed out (not running)
elif [[ $temp -ge 5000 ]]; then
echo "%{F#8039A0} $icon " # Blue
elif [[ $temp -ge 4000 ]]; then
echo "%{F#F203F0} $icon " # Yellow
else
echo "%{F#FF5B6C} $icon " # Orange
fi
sleep 2
done
}
toggle_caffeine() {
if (( $opt == 1 )); then
if [[ $(pidof caffeine) ]]; then
killall caffeine
else
caffeine &
fi
exit 0
fi
on=""
off=""
while true; do
if [[ $(pidof caffeine) ]]; then
echo "%{F#0000FF}$on"
else
echo "%{F#FF0000}$off"
fi
sleep 2
done
}
# Catch command line options
case $1 in
-h|--help) usage ;;
-v|--version) echo -e "$NAME -- Version $VER" ;;
-p|--polybar) toggle_polybar ;;
-c|--compton)
[[ $2 =~ (-t|--toggle) ]] && opt=1
toggle_compton
;;
-r|--redshift)
[[ $2 =~ (-t|--toggle) ]] && opt=1
toggle_redshift
;;
-f|--caffeine)
[[ $2 =~ (-t|--toggle) ]] && opt=1
toggle_caffeine
;;
*) echo -e "Option does not exist: $1" && usage && exit 1
esac
exit 0