aboutsummaryrefslogtreecommitdiff
path: root/.config/eww/scripts/scratchpad-indicator.sh
blob: 8fd06f488cdd3ff6d270b07c6220aaafe0a5ca99 (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
#!/bin/bash
# Scratchpad indicator for Sway

output="$(swaymsg -t get_tree | jq -r 'recurse(.nodes[]?)|recurse(.floating_nodes[]?)|select(.name == "__i3_scratch").floating_nodes[]|"`<b>"+.name+"`</b> - "+.app_id+" "+(.id|tostring)')"
number="$(swaymsg -r -t get_tree | jq -r 'recurse(.nodes[]) | first(select(.name=="__i3_scratch")) | .floating_nodes | length')"

if [ "$number" -gt 0 ]; then
    text=" $number"
else
    text=""
fi

output="$(echo "$output" | sed -r 's/[&]+/and/g')" # Replace unprintable & character with the word 'and'
tooltip="\n"
tooltip+="$(echo "$output" | sed -z 's/\n/\\n/g')"
tooltip=${tooltip::-2}

function ShowInfo() {
	if [ "$number" -eq 0 ]; then
		exit
	else
	tooltip="$(echo -e $tooltip)"
	notify-send --hint=string:x-canonical-private-synchronous:scratchpad -u normal "  Scratchpad" "$tooltip"
	fi
}

function Update() {
	printf "%s" "$text"
}

if [ "$1" = "ShowInfo" ]; then
	ShowInfo
else
	Update	
fi