#! /bin/sh set -e bin_dir="$(dirname $(realpath $0))" . "$bin_dir/khatus_x4_lib_common_sensor.sh" sensor() { def_sink=$(pactl info | awk '/^Default Sink:/ {print $3}') pactl list sinks | awk -v def_sink="$def_sink" ' /^Sink \#[0-9]+$/ { sub("^#", "", $2) sink_number = $2 next } /\tState:/ { state[sink_number] = $2 next } /\tName:/ { name[sink_number] = $2 next } /\tMute:/ { mute[sink_number] = $2 next } # Volume: front-left: 45732 / 70% / -9.38 dB, front-right: 45732 / 70% / -9.38 dB /\tVolume:/ { delete vol_parts delete left_parts delete right_parts sub("^\t+Volume: +", "") split($0, vol_parts, ", +") sub("^front-left: +", "", vol_parts[1]) sub("^front-right: +", "", vol_parts[2]) split(vol_parts[1], left_parts, " +/ +") split(vol_parts[2], right_parts, " +/ +") vol_left[sink_number] = left_parts[2] vol_right[sink_number] = right_parts[2] next } END { for (sink_number in name) { if (name[sink_number] == def_sink) { print("state" , state[sink_number]) print("mute" , mute[sink_number]) print("vol_left" , vol_left[sink_number]) print("vol_right", vol_right[sink_number]) } } } ' } run_as_poller