updated config for wayland/hyprland
This commit is contained in:
45
.config/waybar/audio_output_status.sh
Executable file
45
.config/waybar/audio_output_status.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
get_default_sink_label() {
|
||||
# Get the ID of the default sink (output device)
|
||||
default_sink=$(wpctl status 2>/dev/null | awk '/Sinks:/,/Sources:/' | awk '/\*/ {print $3}' | tr -d '.')
|
||||
|
||||
if [ -z "$default_sink" ]; then
|
||||
echo "No default audio output device found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the description or fallback to node.name
|
||||
device_name=$(wpctl inspect "$default_sink" 2>/dev/null | awk -F '"' '/node.description/ {print $2}')
|
||||
|
||||
if [ -z "$device_name" ]; then
|
||||
device_name=$(wpctl inspect "$default_sink" 2>/dev/null | awk -F '"' '/node.name/ {print $2}')
|
||||
fi
|
||||
|
||||
# Map known device names to labels
|
||||
case "$device_name" in
|
||||
"Starship/Matisse HD Audio Controller Analog Stereo")
|
||||
label="Speakers"
|
||||
;;
|
||||
"Yeti Stereo Microphone Analog Stereo")
|
||||
label="Earphones"
|
||||
;;
|
||||
*)
|
||||
label="$device_name"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Output the label
|
||||
#echo "{\"text\":\"$label\",\"alt\":\"$device_name\"}"
|
||||
printf '{"text":"%s","alt":"%s"}\n' "$label" "$device_name"
|
||||
}
|
||||
|
||||
get_default_sink_label
|
||||
|
||||
pactl subscribe 2>/dev/null | while read -r line; do
|
||||
# Filter for default sink or node changes
|
||||
if echo "$line" | grep -qE "Event 'change' on sink #"; then
|
||||
# Overwrite previous output
|
||||
get_default_sink_label
|
||||
fi
|
||||
done
|
||||
Reference in New Issue
Block a user