aboutsummaryrefslogtreecommitdiff
path: root/cmusShow.sh
blob: 8e36b3bdd364986f7e45ac0ce53d867a2784c95e (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
#!/bin/sh

# Shows a notification with info about the current playing song.

scriptName="${0##*/}"
[ "$(pgrep "${scriptName}" | wc -l)" -gt "2" ] && exit 0

notificationFreq=0.1
steps=20
bluetoothInfo=''

getCmusInfo() {
	cmus-remote -Q | grep "^${1} " | cut -d' ' -f "${2}-"
}

sToTime() {
	min=$(( $1 / 60 ))
	s=$(( $1 % 60 ))
	[ "$s" -lt 10 ] && s="0${s}"
	echo "${min}:${s}"
}

if bluetoothctl info; then
	device="πŸ“» $(bluetoothctl info |
		grep 'Name: ' |
		cut -d' ' -f '2-')"
	battery="$(bluetoothctl info |
		grep 'Battery Percentage:' |
		grep -o '(.*)' |
		grep -o '[0-9]*')% πŸ”‹"
	bluetoothInfo="\n${device} - ${battery}"
fi


i=0
while [ "$i" -lt "$steps" ]; do

	playingIcon=''
	[ "$(getCmusInfo 'status' 2)" = 'playing' ] && playingIcon='▢️'
	[ "$(getCmusInfo 'status' 2)" = 'paused' ] && playingIcon='⏸️'

	title="🎢 $(getCmusInfo 'tag title' '3') 🎢"
	artist="πŸ§‘β€πŸŽ€ $(getCmusInfo 'tag artist' '3')"
	album="$(getCmusInfo 'tag album' '3') πŸ’½"
	position="$(getCmusInfo 'position' '2')"
	duration="$(getCmusInfo 'duration' '2')"

	dunstify -r "$(dunstifyIDs.sh cmusShow)" -t 250 "${title}" "${artist} - ${album}\n${playingIcon} $(sToTime "${position}") - $(sToTime "${duration}")${bluetoothInfo}"

	sleep "$notificationFreq"
	i=$((i+1))
done