summaryrefslogtreecommitdiffstats
path: root/.bin/ag-status
blob: abd2fffb28eb1cfe1324d9186f71a58aa724aa38 (plain) (blame)
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
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/sh

__cleanup_value() {
	cat /dev/stdin | sed 's/%//g'
}

uname=$(uname)

status=""

battery=""
battery_status=""
time=""
volume=""
vpn=""

while true; do
	case "${uname}" in
		OpenBSD)
			battery=$(apm -l)
			battery_status=$(apm |
				grep "A/C" |
				cut -d ":" -f 2 |
				tr -d " ")
			volume=$(sndioctl -n output.level |
				cut -c 3-4)
			;;
		Linux)
			battery=$(acpi -b |
				tr -s " " "\n" |
				grep "%" |
				sed 's/[%,]//g')
			battery_status=$(acpi -a |
				tr -s " " |
				cut -d " " -f 3)
			volume=$(pamixer --get-volume |
				__cleanup_value)

			if $(pamixer --get-mute); then
				volume="%mute"
			fi
			;;
	esac

	status="VOL: ${volume}%"

	vpn=""
	! wg && vpn="wireguard"
	pgrep openvpn && vpn="openvpn"
	if [ -n "${vpn}" ]; then
		status="${status} | VPN: ${vpn}"
	fi

	if [ -n "${battery}" ]; then
		status="${status} | BATTERY ${battery}%"
	fi

	time=$(date +%Y-%m-%dT%H:%M:%S)
	status="${status} | DATE: ${time}"

	echo "${status}"
	xsetroot -name " ${status}"

	[ "${1}" != "-l" ] && exit 0

	sleep 5
done
remember that computers suck.