Skip to content

Instantly share code, notes, and snippets.

@domenkozar
Created February 4, 2018 12:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save domenkozar/59597b829fd76d7a42ede4e66519b250 to your computer and use it in GitHub Desktop.
Save domenkozar/59597b829fd76d7a42ede4e66519b250 to your computer and use it in GitHub Desktop.
# Just put this in your cron (Runs every 1 minute).
# * * * * * /home/YOURUSERNAME/bin/suspend-on-low-battery
source /nix/var/nix/profiles/system/etc/profile
UPOWER=$(nix-build -A upower '<nixpkgs>')/bin/upower
NOTIFY_SEND=$(nix-build -A libnotify '<nixpkgs>')/bin/notify-send
DISPLAY=:0.0
battery_device=`$UPOWER -e | grep -i battery | head -n 1`
battery_percentage=`$UPOWER -i $battery_device | grep percentage | head -n 1 | cut -d ':' -f 2 | tr -d ' ' | tr -d '%'`
battery_state=`$UPOWER -i $battery_device | grep state | head -n 1 | cut -d ':' -f 2 | tr -d ' '`
[ 10 -le $battery_percentage -a $battery_percentage -lt 11 -a $battery_state == "discharging" ] && $NOTIFY_SEND "Battery level at 10 percent"
[ 6 -le $battery_percentage -a $battery_percentage -lt 9 -a $battery_state == "discharging" ] && $NOTIFY_SEND "Battery level at $battery_percentage%" -u critical
[ $battery_percentage -le 3 -a $battery_state == "discharging" ] && $NOTIFY_SEND "BATTERY LEVEL AT 3%, SUSPENDING!" -u critical && sleep 5 && \
sudo -n /run/current-system/sw/bin/systemctl suspend
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment