More stable and deterministic polybar launch script

master
Meliurwen 3 years ago
parent 30734e2010
commit 270655afe0
Signed by: meliurwen
GPG Key ID: 818A8B35E9F1CE10
  1. 49
      polybar/.config/polybar/launch.sh

@ -1,33 +1,46 @@
#!/bin/sh #!/bin/sh
# Terminate already running bar instances set -e
killall -q polybar
# If at least one polybar process is running send a SIGTERM to all:
# Wait until the processes have been shut down # - Give a grace period of N cycles to all processes to terminate gracefully
while pgrep -u "$(id -u)" -x polybar >/dev/null; do sleep 1; done # - When the grace period is expired, send a SIGKILL to all
cycle=0
# Launch polybar while pgrep -u "$(id -u)" -x polybar >/dev/null
#polybar main -c $HOME/.config/polybar/config & do
if [ $cycle -eq 0 ]; then
# Set Monitors # Terminate already running bar instances
#xrandr --output HDMI1 --auto --left-of LVDS1 pkill -U "$(id -u)" -15 polybar
elif [ $cycle -eq 4 ]; then
POLY_IFACES="$(ip link show | awk '/^[0-9]+:/ {sub(/:/,"",$2); print $2}')" # At the 5th cylcle SIGKILL
pkill -U "$(id -u)" -9 polybar
fi
sleep 1
cycle=$((cycle + 1))
done
unset cycle
for NET_IFACE in $POLY_IFACES ; do NET_IFACES="$(ip link show | awk '/^[0-9]+:/ {sub(/:/,"",$2); print $2}')"
for NET_IFACE in $NET_IFACES ; do
case $NET_IFACE in case $NET_IFACE in
wlp* ) POLY_WLP=$NET_IFACE ;; wlp* ) POLY_WLP=$NET_IFACE ;;
enp* ) POLY_ENP=$NET_IFACE ;; enp* ) POLY_ENP=$NET_IFACE ;;
esac esac
done done
unset NET_IFACES
HWMON_BASEDIR="$(find "/sys/devices/platform/coretemp.0/hwmon/" -maxdepth 1 -type d -name 'hwmon*' | tail -n +2 | head -1)" HWMON_MODULE="/sys/devices/platform/coretemp.0/hwmon/"
POLY_HWMON="$HWMON_BASEDIR"/temp1_input if [ -d "$HWMON_MODULE" ]; then
HWMON_BASEDIR="$(find "$HWMON_MODULE" -maxdepth 1 -type d -name 'hwmon*' | tail -n +2 | head -1)"
POLY_HWMON="$HWMON_BASEDIR"/temp1_input
unset HWMON_BASEDIR
fi
unset HWMON_MODULE
if type "xrandr"; then if type "xrandr"; then
for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
POLY_WLP=$POLY_WLP POLY_ENP=$POLY_ENP POLY_HWMON=$POLY_HWMON MONITOR=$m polybar main -c "$HOME/.config/polybar/config" & POLY_WLP=$POLY_WLP POLY_ENP=$POLY_ENP POLY_HWMON=$POLY_HWMON MONITOR=$m polybar main -c "$HOME/.config/polybar/config" &
done done
else
POLY_WLP=$POLY_WLP POLY_ENP=$POLY_ENP POLY_HWMON=$POLY_HWMON MONITOR=$m polybar main -c "$HOME/.config/polybar/config" &
fi fi
unset POLY_WLP POLY_ENP POLY_HWMON

Loading…
Cancel
Save