diff --git a/home/common/optional/desktop/dwm/default.nix b/home/common/optional/desktop/dwm/default.nix index e6d7598..9f217e7 100644 --- a/home/common/optional/desktop/dwm/default.nix +++ b/home/common/optional/desktop/dwm/default.nix @@ -16,6 +16,7 @@ ./scripts/sb-volume.nix ./scripts/sb-network-status.nix ./scripts/sb-updates.nix + ./scripts/sb-battery.nix # Notification scripts ./scripts/dunstify-volume-notification.nix diff --git a/home/common/optional/desktop/dwm/scripts/sb-battery.nix b/home/common/optional/desktop/dwm/scripts/sb-battery.nix new file mode 100644 index 0000000..0dd371a --- /dev/null +++ b/home/common/optional/desktop/dwm/scripts/sb-battery.nix @@ -0,0 +1,37 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + (writeShellScriptBin "sb-cpu-pct" '' + BAT=/sys/class/power_supply/BAT0/capacity + + # Exit script if no battery detected + [ ! -f "$BAT" ] && exit + + STATUS=$(cat /sys/class/power_supply/BAT0/uevent | grep "POWER_SUPPLY_STATUS" | sed "s/^.*=//") + capacity=$(cat "$BAT") + + if [ "$STATUS" == "Charging" ] || [ "$STATUS" == "Not charging" ]; then + echo "[󰂄 $capacity%] " + else + case $capacity in + 100) echo "[󰁹 $capacity%] ";; + 9[0-9]) echo "[󰂂 $capacity%] ";; + 8[0-9]) echo "[󰂁 $capacity%] ";; + 7[0-9]) echo "[󰂀 $capacity%] ";; + 6[0-9]) echo "[󰁿 $capacity%] ";; + 5[0-9]) echo "[󰁾 $capacity%] ";; + 4[0-9]) echo "[󰁽 $capacity%] ";; + 3[0-9]) echo "[󰁼 $capacity%] ";; + 2[0-9]) echo "[󰁻 $capacity%] ";; + 1[0-9]) echo "[󰁺 $capacity%] ";; + [6-9]) echo "[󰁺 $capacity%] ";; + [0-5]) echo "[󰂃 $capacity%] ";; + esac + fi + + if [[ $capacity -le 20 && $STATUS != "Charging" ]]; then + dunstify-battery-notification + fi + '') + ]; +}