summaryrefslogtreecommitdiff
path: root/.local/bin/statusbar/batinfo
blob: 58ad4e3ae3e2395152685a432dd0c2ad3a3432c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/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}"