65 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
BAR_BG='#1a343a'
BAR_FG='#f2f6e1'
ACTIVE_BG='#3585ce'
URGENT_BG='#9b0640'
FREE_FG='#808080'
PANEL_FIFO=~/.panel-fifo
[ -e "$PANEL_FIFO" ] && rm -f "$PANEL_FIFO"
mkfifo -m 600 "$PANEL_FIFO"
bspc subscribe > "$PANEL_FIFO" &
xtitle -sf 'T%s\n' > "$PANEL_FIFO" &
while true; do
echo "C$(date '+%H:%M')"
sleep 1
done > "$PANEL_FIFO" &
while read -r line ; do
case "$line" in
C*)
clock="${line#?}"
;;
T*)
title="${line#?}"
;;
W*)
wm=
IFS=':' set -- ${line#?}
while [ $# -gt 0 ]; do
item="$1"
name="${item#?}"
case "$item" in
[fFOoUu]*)
case "$item" in
[OF]*)
BG="${ACTIVE_BG}"
FG="-"
;;
o*)
BG="-"
FG="-"
;;
f*)
BG="-"
FG="${FREE_FG}"
;;
[uU]*)
BG="${URGENT_BG}"
FG="-"
;;
esac
wm="${wm}%{B${BG}}%{F${FG}}%{A:bspc desktop -f ${name}:} ${name} %{A}%{B-}%{F-}"
esac
shift
done
;;
esac
printf "%s\n" " ${wm} ${title}%{r}${clock} "
done < "$PANEL_FIFO" | lemonbar -B "${BAR_BG}" -F "${BAR_FG}" -n panel -f Iosevka:pixelsize=30:antialias=true:autohint=true | sh