speedwm-personal/modules/module_bat

75 lines
2.2 KiB
Plaintext
Raw Permalink Normal View History

#!/bin/sh
# battery module for status/stellar
# load config
module_config
[ -e "$HOME/.config/speedwm/statusrc" ] && . $HOME/.config/speedwm/statusrc
[ -e "/tmp/module_bat_hidden" ] && exit
# clicking
CLICK() {
# values
ICON="$ITEM11_ICON"
[ -e "/tmp/speedwm-button" ] && BUTTON="$(cat /tmp/speedwm-button)" || BUTTON="0"
command -v acpi > /dev/null && BATTERY_FULL="$(acpi)" || return
# default terminal
[ -z "$TERMINAL" ] && TERMINAL=st
# enable icon spacing
2022-12-16 17:35:03 +01:00
[ -n "$ICON" ] && ICONSPACING=" " # one character spacing
# send the notification
SEND_NOTIF() {
FULL_BATTERY="${ICON}${ICONSPACING}$BATTERY_FULL"
notify-send "$FULL_BATTERY"
echo "Notification sent successfully!"
echo "INFO: $FULL_BATTERY"
exit 0
}
command -v notify-send > /dev/null && SEND_NOTIF || echo "FATAL: libnotify not installed, can't send notification."
exit 1
}
2022-12-01 22:51:43 +01:00
# get icon
GETICON() {
2022-12-30 14:41:25 +01:00
[ "$BATTERYPERC_0" -gt "75" ] && ICON="$ITEM11_ICON_FULL"
[ "$BATTERYPERC_0" -lt "76" ] && ICON="$ITEM11_ICON_75"
2022-12-01 22:51:43 +01:00
[ "$BATTERYPERC_0" -lt "51" ] && ICON="$ITEM11_ICON_50"
[ "$BATTERYPERC_0" -lt "26" ] && ICON="$ITEM11_ICON_25"
[ "$BATTERYPERC_0" -lt "6" ] && ICON="$ITEM11_ICON_5"
command -v acpi > /dev/null && acpi | grep -q "Charging" && ICON="$ITEM11_ICON_CHARGING"
[ -z "$ICON" ] && ICON="$ITEM11_ICON"
}
# information itself
PRINT() {
[ "$ENABLE_ITEM11" != "true" ] && return
# battery 0, copy + paste this if you need more than one battery
2022-12-01 22:51:43 +01:00
[ -e "/sys/class/power_supply/BAT0/capacity" ] && BATTERY="${BATTERY}$(cat /sys/class/power_supply/BAT0/capacity)%" && BATTERYPERC_0="$(cat /sys/class/power_supply/BAT0/capacity)" || return
GETICON
2022-12-01 22:51:43 +01:00
echo "$ITEM11_SEPARATOR $ICON $BATTERY"
# print charging status
command -v acpi > /dev/null && [ "$ITEM11_SHOW_CHARGING_STATUS" ] && \
CHARGESTATUS=$(echo ", $(acpi | awk '{ print $3 }' | sed "s|,||g; s|Discharging|$ITEM11_DISCHARGING_TEXT|g; s|Charging|$ITEM11_CHARGING_TEXT|g; s|Fully charged|$ITEM11_FULL_TEXT|g")") && \
2022-12-16 17:35:03 +01:00
[ -n "$CHARGESTATUS" ] && echo "$CHARGESTATUS"
}
# argument 1
case "$1" in
"") CLICK ;;
"--print-file") PRINT > /tmp/module_bat ;;
"--print") PRINT ;;
"--click") CLICK ;;
esac