1#!/usr/bin/env bash
 2
 3STATE_FILE="$XDG_CACHE_HOME/caffeine_state"
 4PID_FILE="$XDG_CACHE_HOME/caffeine.pid"
 5
 6caffeine_pid() {
 7    systemd-inhibit --list | awk '
 8        $1 == "Caffeine" && $5 == "systemd-inhibit" { print $4 }
 9    '
10}
11
12case $1 in
13toggle)
14    PID="$(caffeine_pid)"
15    if [ -n "$PID" ]; then
16        kill "$PID" 2>/dev/null
17        rm -f "$STATE_FILE" "$PID_FILE"
18        xset +dpms s on
19        notify-send "Caffeine off" "System might go to sleep."
20    else
21        systemd-inhibit --what=idle:sleep:shutdown --mode=block \
22            --who="Caffeine" --why="User-activated session protection" \
23            sleep infinity &
24        echo $! >"$PID_FILE"
25        touch "$STATE_FILE"
26        xset -dpms s off s noblank
27        notify-send "Caffeine on" "System will stay awake."
28    fi
29    ;;
30status)
31    if [ -n "$(caffeine_pid)" ]; then
32        echo ""
33    else
34        echo ""
35    fi
36    ;;
37esac