#!/bin/bash # caffeine.sh — toggle caffeine mode by killing/restarting swayidle # When ON: kill swayidle (no idle lock/screen-off) # When OFF: restart swayidle with normal timeouts WALLPAPER="$HOME/.local/share/wallpapers/teach-invaders-gruvbox.png" FLAG="/tmp/caffeine-inhibit" if [ -f "$FLAG" ]; then # Turn OFF caffeine — restart swayidle rm -f "$FLAG" killall swayidle 2>/dev/null swayidle -w \ timeout 300 "swaylock -f -i $WALLPAPER" \ timeout 600 'swaymsg "output * power off"' \ resume 'swaymsg "output * power on"' \ before-sleep "swaylock -f -i $WALLPAPER" & notify-send -t 2000 "☕ Caffeine OFF" "Idle sleep enabled" 2>/dev/null else # Turn ON caffeine — kill swayidle touch "$FLAG" killall swayidle 2>/dev/null notify-send -t 2000 "☕ Caffeine ON" "Idle sleep disabled" 2>/dev/null fi