#!/usr/bin/env bash set -e # get charge of battery/batteries POWER="$(acpi -b |\ sed -Ee 's/^.* ([0-9]+)%/\1/g' |\ awk '//{s+=$1;c++};END{printf "%.1f", s/c}' || true)" # get charging state of adapter [ -n "$(acpi -a | sed -E '/on-line/!d' || true)" ] && CHARGING=1 ARG=${1:-${BLOCK_BUTTON}} if [ -n "${ARG}" ]; then if [ -z "${CHARGING}" ]; then CHARGINGTXT="Not charging" else CHARGINGTXT="Charging" fi case ${ARG} in 1) notify-send -t $((15 * 1000)) --urgency=low \ "Battery status" \ "Battery: ${POWER}\n${CHARGINGTXT}" exit 0;; 4) brightnessctl -q s 10%+; exit 0;; 5) brightnessctl -q s 10%-; exit 0;; *) exit 1 esac fi [ -n "${CHARGING}" ] && [ -n "$(echo "${POWER%.*}" | sed -En '/9[0-9]|100/p' || true)" ] && exit 0 ICON='?' if [ -z "${CHARGING}" ]; then case "${POWER%.*}" in 100 | 9[0-9]) ICON=$'\uf578' ;; 8[0-9]) ICON=$'\uf581';; 7[0-9]) ICON=$'\uf580';; 6[0-9]) ICON=$'\uf57f';; 5[0-9]) ICON=$'\uf57e';; 4[0-9]) ICON=$'\uf57d';; 3[0-9]) ICON=$'\uf57c';; 2[0-9]) ICON=$'\uf57b';; 1[0-9]) ICON=$'\uf57a';; [0-9]) ICON=$'\uf579';; *) exit 1 esac else ICON=$'\uf583' fi printf "%s %s%%\n" "${ICON}" "${POWER}"