forked from Shinonome/dots-hyprland
84 lines
2.2 KiB
Bash
Executable File
84 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
dostuff(){
|
|
sinks=$(pactl list sink-inputs \
|
|
| grep -e "Sink Input" \
|
|
| sed 's/Sink Input #//')
|
|
names=$(pactl list sink-inputs \
|
|
| sed 's/"//g' \
|
|
| sed 's/application-name://' \
|
|
| grep -e "application.name" \
|
|
| sed 's/application.name = //' \
|
|
| sed 's/\t\t//' )
|
|
vols=$(pactl list sink-inputs \
|
|
| grep -e "Volume:" \
|
|
| sed 's/Volume: front-left: //' \
|
|
| sed 's/front-right: //' \
|
|
| sed 's/front-right: //' \
|
|
| tr " " "\n" \
|
|
| grep -e % \
|
|
| sed 's/%//g' )
|
|
binaries=$(pactl list sink-inputs \
|
|
| grep -e 'application.process.binary' -e 'application.icon_name' \
|
|
| sed 's/\t//g' \
|
|
| sed 's/application.process.binary = //g' \
|
|
| sed 's/application.icon_name = //g' \
|
|
| sed 's/"//g' )
|
|
|
|
# echo "-=-=-=-=-=-=-=-=- Debug: Raw value -=-=-=-=-=-=-=-=-"
|
|
# echo "$sinks"
|
|
# echo "$names"
|
|
# echo "$vols"
|
|
|
|
IFS=$'\n'
|
|
sinkarr=($(echo "$sinks"))
|
|
namearr=($(echo "$names"))
|
|
volarr=($(echo "$vols"))
|
|
iconarr=($(echo "$binaries"))
|
|
|
|
# Get icons
|
|
for i in "${!iconarr[@]}"; do
|
|
iconarr[$i]=$(geticons -t "$(gsettings get org.gnome.desktop.interface icon-theme | sed "s/'//g")" ${iconarr[i]} | head -n 1)
|
|
done
|
|
|
|
# Functions
|
|
sanitize() {
|
|
echo "$1" | sed 's/"/\"/g'
|
|
}
|
|
|
|
geticon() {
|
|
# notify-send "${volarr[$((i*2))]}"
|
|
if [ "${volarr[$(($1*2))]}" -eq "0" ]; then
|
|
echo ""
|
|
else
|
|
echo ""
|
|
fi
|
|
}
|
|
|
|
# Print final JSON
|
|
printf '['
|
|
for i in "${!sinkarr[@]}"; do
|
|
if [ $i -ne 0 ]; then
|
|
printf ', '
|
|
fi
|
|
echo -n '{''"sink": "'"${sinkarr[$i]}"'", "name": "'"${namearr[$i]}"'", "volume": "'"${volarr[$((i*2))]}"'"}'
|
|
# echo -n '{''"sink": "'"${sinkarr[$i]}"'", "icon": "'"${iconarr[$i]}"'", "name": "'"${namearr[$i]}"'", "volume": "'"${volarr[$((i*2))]}"'"}'
|
|
done
|
|
printf ']\n'
|
|
|
|
# echo "$sinks"
|
|
# echo "$names"
|
|
# echo "$vols"
|
|
}
|
|
|
|
|
|
cd ~/.config/eww
|
|
# dostuff
|
|
scripts/audioapps
|
|
|
|
if [ "$1" == "--once" ]; then
|
|
exit 0
|
|
else
|
|
pactl subscribe | rg --line-buffered "on sink" | while read -r _; do
|
|
scripts/audioapps
|
|
done
|
|
fi |