From b7b32f9799492c4d8c9c0aafdba5b3e334f668b5 Mon Sep 17 00:00:00 2001 From: srdusr Date: Tue, 12 Dec 2023 12:38:23 +0200 Subject: Improved overall script --- toggle-bar | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) (limited to 'toggle-bar') diff --git a/toggle-bar b/toggle-bar index f8a5e17..ee010e6 100755 --- a/toggle-bar +++ b/toggle-bar @@ -1,17 +1,33 @@ #!/bin/bash EWW=$(which eww) +STATE_FILE="$HOME/.eww_module_state" +BAR_CLASS="Eww - bar" # Update this with the actual class name of your eww bar window -# Define the file to store the state -state_file="$HOME/.eww_module_state" +# Function to check if the focused window is the eww bar +is_eww_bar_focused() { + focused_class=$(xprop -id "$(xdotool getactivewindow)" | awk -F '"' '/WM_CLASS/{print $4}') + [ "$focused_class" == "$BAR_CLASS" ] +} # Check if the module is currently running -if [ -e "$state_file" ]; then +if [ -e "$STATE_FILE" ]; then # If the file exists, the module is running, so close it - rm "$state_file" - $EWW close bar & + rm "$STATE_FILE" + "$EWW" close bar & + xdotool key --clearmodifiers Escape + + # Introduce a delay before checking if the eww bar is focused + sleep 0.2 + + # Check if the eww bar is focused, if not, close it + if ! is_eww_bar_focused; then + sleep 0.2 + "$EWW" close bar & + xdotool key --clearmodifiers Escape + fi else # If the file doesn't exist, the module is not running, so start it - touch "$state_file" - $EWW open bar & + touch "$STATE_FILE" + "$EWW" open bar & fi -- cgit v1.2.3