blob: 308fd785d2eea86280866bd67b7ce0e2aaf560e2 (
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
#!/bin/bash
source "$CONFIG_DIR/globalstyles.sh"
PREV_COUNT=$(sketchybar --query brew | jq -r .popup.items | grep ".package*" -c)
render_bar_item() {
case "$COUNT" in
[3-5][0-9])
COLOR=$MAROON
;;
[1-2][0-9])
COLOR=$PEACH
;;
[1-9])
COLOR=$YELLOW
;;
0)
COLOR=$GREEN
COUNT=
;;
esac
sketchybar --set "$NAME" label="$COUNT" label.color="$COLOR" icon.color="$COLOR"
}
add_outdated_header() {
brew_header=(
label="$(echo -e 'Outdated Brews')"
label.font="$FONT:Bold:14.0"
label.align=left
icon.drawing=off
click_script="sketchybar --set $NAME popup.drawing=off"
)
sketchybar --set brew.details "${brew_header[@]}"
}
render_popup() {
add_outdated_header
COUNTER=0
sketchybar --remove '/brew.package\.*/'
if [[ -n "$OUTDATED" ]]; then
while IFS= read -r package; do
brew_package=(
label="$package"
label.align=right
label.padding_left=20
icon.drawing=off
click_script="sketchybar --set $NAME popup.drawing=off"
)
item=brew.package."$COUNTER"
sketchybar --add item "$item" popup."$NAME" \
--set "$item" "${brew_package[@]}"
COUNTER=$((COUNTER + 1))
done <<<"$(echo -n "$OUTDATED" | grep '^')"
fi
}
update() {
brew update
COLOR=$RED
OUTDATED=$(brew outdated)
COUNT=$(echo -n "$OUTDATED" | grep -c '^')
render_bar_item
render_popup
if [ "$COUNT" -ne "$PREV_COUNT" ] 2>/dev/null || [ "$SENDER" = "forced" ]; then
sketchybar --animate tanh 15 --set "$NAME"
fi
}
popup() {
if [[ "$PREV_COUNT" -gt 0 ]]; then
sketchybar --set "$NAME" popup.drawing="$1"
else
sketchybar --set "$NAME" popup.drawing=off
fi
}
case "$SENDER" in
"routine" | "forced")
update
;;
"mouse.entered")
popup on
;;
"mouse.exited" | "mouse.exited.global")
popup off
;;
"mouse.clicked")
popup toggle
;;
esac
|