You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ACEjuice/.local/bin/acejuice-bar

73 lines
1.7 KiB

#!/bin/sh
set -e
_pid_dir="${XDG_RUNTIME_DIR:-/tmp/$(id -u)-runtime}/acejuice"
mkdir -p "$_pid_dir"
PID_FILE="$_pid_dir/ajuice-bar.pid"
unset _pid_dir
if [ -f "$PID_FILE" ]; then
while read -r pid; do
ppids="$(ps -o pid= --ppid $pid || :)"
if [ ! -z "$ppids" ]; then
printf "%s\n" "$ppids" | xargs kill -9
fi
kill -15 $pid || :
done < "$PID_FILE"
rm "$PID_FILE"
fi
# Give a grace period for all processes to terminate gracefully
sleep 1
# PID of this script
printf "%s\n" "$$" >> "$PID_FILE"
acejuice_monitors() {
_pipe_dir="${XDG_RUNTIME_DIR:-/tmp/$(id -u)-runtime}/acejuice"
mkdir -p "$_pipe_dir"
NPIPE_OUT="$_pipe_dir/main.sock"
unset _pipe_dir
if ! mkfifo "$NPIPE_OUT" 2> /dev/null; then
printf "fifo '%s' already present\n" "$NPIPE_OUT" >&2
fi
if command -v xrandr > /dev/null; then
__monitor_list=""
OLDIFS="$IFS"
IFS="
"
for line in $(xrandr --listmonitors); do
case "$line" in
" "[0-9]*)
__monitor_list="$__monitor_list ${line##* }"
;;
*)
:
;;
esac
done
IFS="$OLDIFS"
# Remove space character prefix in the list
__monitor_list="${__monitor_list# }"
if [ -n "$__monitor_list" ]; then
printf ":MON LIST %s\n" "$__monitor_list" > "$NPIPE_OUT"
fi
unset __monitor_list
fi
}
acejuice_monitors &
printf "%s\n" "$!" >> "$PID_FILE"
audio-pulse --subscribe | acejuice-pulse --socket --newline --icon ascii --icon-mute --no-value &
printf "%s\n" "$!" >> "$PID_FILE"
acejuice-interval --socket &
printf "%s\n" "$!" >> "$PID_FILE"
acejuice | /usr/bin/lemonbar -p &
printf "%s\n" "$!" >> "$PID_FILE"