summaryrefslogtreecommitdiff
path: root/.local/bin/wobload
diff options
context:
space:
mode:
Diffstat (limited to '.local/bin/wobload')
-rwxr-xr-x.local/bin/wobload69
1 files changed, 69 insertions, 0 deletions
diff --git a/.local/bin/wobload b/.local/bin/wobload
new file mode 100755
index 0000000..9fdb4a4
--- /dev/null
+++ b/.local/bin/wobload
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+wobpipe="${XDG_RUNTIME_DIR:-${TMPDIR:-/tmp}}/wobpipe"
+
+usage()
+{
+ cat <<- EOF
+ Usage: ${0##*/} [cmd]
+ A helper script for wob the wayland overlay bar
+
+ Example:
+ ${0##*/} wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+
+ EOF
+}
+
+err()
+{
+ : "${1:?}"
+
+ printf "\033[31;1merr: %b\033[0m\n" "$1"
+ command -v notify-send > /dev/null &&
+ notify-send " wob loader" "$1"
+}
+
+render()
+{
+ : "${1:?}"
+
+ echo "${1%%.*}" > "$wobpipe"
+}
+
+main()
+{
+ exe="$1" && [ -z "$exe" ] &&
+ usage && exit
+
+ if [ ! -p "$wobpipe" ]; then
+ err "$wobpipe: named pipe does not exist"
+ exit 1
+ elif ! command -v "$exe" > /dev/null; then
+ err "${exe}: command not found"
+ exit 1
+ fi
+
+ shift
+ case "$exe" in
+ "wpctl")
+ wpctl "$@"
+
+ data="$(wpctl get-volume "@DEFAULT_AUDIO_SINK@")"
+ render "$(echo "${data##* } * 100" | bc)"
+ ;;
+ "brightnessctl")
+ brightnessctl "$@"
+
+ data="$(brightnessctl info | grep -o '[0-9]*%')"
+ render "${data%\%}"
+ ;;
+ "")
+ usage
+ ;;
+ *)
+ err "${exe}: not implemented"
+ "$exe" "$@"
+ esac
+}
+
+main "$@"