#!/usr/bin/env sh ###################################################################### # @author : swytch (adapted from Luke Smith - lukesmith.xyz) # @file : sb-battery # @license : GPLv3 # @created : Saturday Feb 13, 2021 17:19:04 CET # # @description : battery block dwmblocks ###################################################################### # Will show all batteries with approximate icon for remaining power. # Or show that the computer is plugged to a power source # In any case, show the remaining battery percentage # Also sends a notification if battery running low notify() { \ case "$(cat "$x")" in 1[0-9]) notify-send -u "normal" "Battery is $status and running low ($capacity%)" "Please plug your computer to a power source" ;; [0-9]) notify-send -u "critical" "Battery is $status and dangerously low ($capacity%)" "Please plug your computer to a power source - NOW!" ;; esac } for bat in /sys/class/power_supply/BAT?/ do status="$(cat "$bat/status")" capacity="$(cat "$bat/capacity")" if [ "$status" = "Full" ]; then status=" " && capacity="FULL" printf " %s %s " "$status" "$capacity" && exit elif [ "$status" = "Charging" ]; then status="" else case "$capacity" in 100|9[0-9]|8[0-9]) status="" ;; 7[0-9]|6[0-9]) status="" ;; 5[0-9]|4[0-9]) status="" ;; 3[0-9]|2[0-9]) status="" ;; *) status="" ; notify;; esac fi printf " %s %3d%% " "$status" "$capacity"; done && return 0