#!/usr/bin/env bash

# Description:
#   Script to toggle Waybar (start/stop/restart).
#   Also manages the lyrics widget state.
#
# Requirements:
# - waybar
# - eww (for lyrics widget)

lyrics_widget_closed=0

function close() {
    killall -q waybar

    # Also close the lyrics widget if open
    if eww active-windows | grep -q "lyrics-single"; then
        eww close lyrics-single
        lyrics_widget_closed=1
    fi
}

function open() {
    # the system tray will not work with kded6 started
    if killall -q -9 "kded6"; then
        while pgrep -u "$USER" -x "kded6" >/dev/null; do
            sleep 0.2
        done
    fi
    nohup waybar >/dev/null 2>/dev/null &

    # Reopen the lyrics widget if it was previously closed
    if [ $lyrics_widget_closed -eq 1 ]; then
        eww open lyrics-single
    fi
}

if [ "$1" = "restart" ]; then
    close
    while pgrep -u "$USER" -x "waybar" >/dev/null; do
        sleep 0.2
    done
    open
elif pgrep -u "$USER" -x "waybar" >/dev/null; then
    close
elif ! pgrep -u "$USER" -x "waybar" >/dev/null; then
    open
else
    echo "Usage: $0 [restart]"
    exit 1
fi
