aboutsummaryrefslogtreecommitdiffstats
path: root/polybar/usr/bin/autohide-polybar.sh
blob: 1b0e0d70d4cea3505984e4011f410fabb1fb083e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env bash

# Has to start with my_ or herbstluftwm will throw up.
attr_name=my_polybar_showing

herbstclient get_attr "$attr_name" 1> /dev/null 2>&1 \
    || herbstclient new_attr bool "$attr_name"
herbstclient set_attr "$attr_name" true

herbstclient -i focus_changed | while read -r _ winid _; do
    window_class=$(herbstclient attr "clients.${winid}.class")
    showing_polybar=$(herbstclient attr "$attr_name")

    if [[ $window_class =~ xfreerdp ]]; then
        polybar-msg cmd hide > /dev/null \
            && herbstclient set_attr "$attr_name" false
    elif [[ $showing_polybar == "false" ]]; then
        polybar-msg cmd show > /dev/null \
            && herbstclient set_attr "$attr_name" true
    fi
done &