aboutsummaryrefslogtreecommitdiffstats
path: root/polybar/usr/bin/autohide-polybar.sh
diff options
context:
space:
mode:
Diffstat (limited to 'polybar/usr/bin/autohide-polybar.sh')
-rwxr-xr-xpolybar/usr/bin/autohide-polybar.sh21
1 files changed, 21 insertions, 0 deletions
diff --git a/polybar/usr/bin/autohide-polybar.sh b/polybar/usr/bin/autohide-polybar.sh
new file mode 100755
index 0000000..1b0e0d7
--- /dev/null
+++ b/polybar/usr/bin/autohide-polybar.sh
@@ -0,0 +1,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 &