39 lines
787 B
Bash
39 lines
787 B
Bash
|
#!/usr/bin/env sh
|
||
|
|
||
|
[ $# -eq 0 ] && {
|
||
|
echo "No bar specified" ; exit 1
|
||
|
}
|
||
|
|
||
|
command -v lemonbar >/dev/null || {
|
||
|
echo "Lemonbar is not installed" ; exit 1
|
||
|
}
|
||
|
|
||
|
command -v lemonbuddy >/dev/null || {
|
||
|
echo "Lemonbuddy is not installed" ; exit 1
|
||
|
}
|
||
|
|
||
|
lemonbar="$(lemonbuddy "$@" -x)"
|
||
|
wmname="$(lemonbuddy "$@" -w)"
|
||
|
logfile="${XDG_CACHE_HOME:-$HOME/.cache}/lemonbuddy/${wmname}.log"
|
||
|
logdir="$(dirname "$logfile")"
|
||
|
pipe="$(mktemp -u /tmp/lemonbuddy.in.XXXXX)"
|
||
|
|
||
|
[ -d "$logdir" ] || mkdir -p "$logdir"
|
||
|
|
||
|
mkfifo "$pipe"
|
||
|
|
||
|
# shellcheck disable=SC2094
|
||
|
lemonbuddy "$@" -p "$pipe" 2>"$logfile" | $lemonbar >"$pipe" & pid=$!
|
||
|
|
||
|
sigaction() {
|
||
|
printf "\r"
|
||
|
kill -TERM $pid 2>/dev/null
|
||
|
echo "Waiting for processes to terminate..."
|
||
|
}
|
||
|
|
||
|
trap sigaction TERM INT PIPE CHLD
|
||
|
|
||
|
while true; do
|
||
|
wait || break
|
||
|
done
|