users/ryan/modules/sketchybar/bar-config/plugins/caffeinate.sh

d2b62c9d6f30a0ea88b2a235cde120cd10ba332b · 633 B · 21 lines raw

1 #!/usr/bin/env bash
2 # idle_inhibitor -> caffeinate (keeps display + system awake while "activated")
3 source "$CONFIG_DIR/colors.sh"
4 source "$CONFIG_DIR/icons.sh"
5
6 PIDFILE="/tmp/sketchybar_caffeinate.pid"
7 is_on() { [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; }
8
9 if [ "$1" = "toggle" ]; then
10 if is_on; then
11 kill "$(cat "$PIDFILE")" 2>/dev/null; rm -f "$PIDFILE"
12 else
13 caffeinate -d -i -s & echo $! > "$PIDFILE"
14 fi
15 fi
16
17 if is_on; then
18 sketchybar --set "$NAME" label="$IDLE_ON" label.color=$TEXT # activated
19 else
20 sketchybar --set "$NAME" label="$IDLE_OFF" label.color=$TEXT_DIM # deactivated
21 fi