#!/usr/bin/env zsh
# Generates whitespace in the bar based on the width

PANEL_FIFO="$1"
PREFIX="$2"
MONITOR="$3"

exec 5>"$PANEL_FIFO"

main() {
    size="$(xprop -name panel -f WM_SIZE_HINTS 32i ' $5\n' WM_NORMAL_HINTS | cut -d' ' -f 2)"
    # Trayer should always be on primary monitor
    # TODO: If possible, it would be better to get the monitor trayer lives on dynamically
    trayer_mon="$(bspc query -M -m primary --names)"

    if [[ "$trayer_mon" != "$MONITOR" ]]; then
        RESULT="%{O0}"
    else
        RESULT="%{O$size}"
    fi
}

{print init; stdbuf -oL xprop -name panel -f WM_SIZE_HINTS 32i ' $5\n' -spy WM_NORMAL_HINTS} | while read line; do
    main
    print "$PREFIX $RESULT" >&5
done