feat(wpdef): default starred and put at the end

This commit is contained in:
ange 2025-04-30 10:08:34 +00:00
parent 6d06f7e307
commit 337c12125d
Signed by: ange
GPG Key ID: 9E0C4157BB7BEB1D
2 changed files with 26 additions and 35 deletions

View File

@ -1,25 +1,16 @@
#!/bin/bash -e #!/bin/bash -e
case "$1" in case "$1" in
s) s) DEV='@DEFAULT_AUDIO_SINK@' ;;
DEV='@DEFAULT_AUDIO_SINK@' m) DEV='@DEFAULT_AUDIO_SOURCE@' ;;
;; *) exit 1 ;;
m)
DEV='@DEFAULT_AUDIO_SOURCE@'
;;
*)
exit 1
;;
esac esac
function update_vol() { function update_vol() {
# shellcheck disable=SC2017
case "$1" in case "$1" in
+*|-*) +*|-*) CUR=$((CUR + $1 - CUR % $1 + CUR % $1 * 10 / $1 / 5 * $1)) ;;
# shellcheck disable=SC2017 *) CUR="$1" ;;
CUR=$((CUR + $1 - CUR % $1 + CUR % $1 * 10 / $1 / 5 * $1))
;;
*)
CUR="$1"
esac esac
wpctl set-volume -l 3 "$DEV" "$CUR%" wpctl set-volume -l 3 "$DEV" "$CUR%"
} }

View File

@ -1,32 +1,32 @@
#!/bin/bash -e #!/bin/bash -e
json="$(pw-dump)" json="$(pw-dump)"
fmt='"\(.id) \(.info.props."node.nick")"'
function _jq() {
jq -r "$*" <<< "$json"
}
function getdev() {
local d
d="$(_jq ".[].metadata | select(.)[] | select(.key == \"default.configured.audio.$1\").value.name")"
_jq ".[] | select(.info.props.\"node.name\" == \"$d\") | $fmt"
}
function getdevs() { function getdevs() {
jq -r ".[] | select(.info.props.\"media.class\" == \"Audio/$1\") | \"\(.id) \(.info.props.\"node.nick\")\"" <<< "$json" _jq ".[] | select(.info.props.\"media.class\" == \"Audio/$1\") | $fmt"
}
function getdefault() {
jq -r ".[].metadata | select(.) | .[] | select(.key == \"default.configured.audio.$1\") | .value.name" <<< "$json"
}
function getnick() {
jq -r ".[].info.props | select(.\"node.name\" == \"$1\") | .\"node.nick\"" <<< "$json"
} }
case "$1" in case "$1" in
s) s) CLASS=Sink ;;
CLASS=Sink m) CLASS=Source ;;
;; *) exit 1 ;;
m)
CLASS=Source
;;
*)
exit 1
;;
esac esac
read -r id <<< "$(getdevs "$CLASS" | dmenu -l 16)" dev="$(getdev "${CLASS,,}")"
wpctl set-default "$id" devs="$(getdevs "$CLASS" | grep -v "$dev")"$'\n'"* $dev"
read -r id <<< "$(dmenu -l 16 <<< "$devs" | sed 's/*//')"
wpctl set-default "$id"
kill -34 "$(cat "$XDG_RUNTIME_DIR/sbar/pid")" kill -34 "$(cat "$XDG_RUNTIME_DIR/sbar/pid")"