From e3a1143ca5f49ae1b84c4a9196a55e29d769b4f1 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 20 Jul 2024 14:48:51 +0100 Subject: [PATCH] Add sb-battery to dwm --- home/common/optional/desktop/dwm/default.nix | 1 + .../desktop/dwm/scripts/sb-battery.nix | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 home/common/optional/desktop/dwm/scripts/sb-battery.nix 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 + '') + ]; +}