35 lines
777 B
Bash
Executable File
35 lines
777 B
Bash
Executable File
SINK_INPUTS=$(pactl list short sink-inputs | awk '{print $1}')
|
|
|
|
if [[ -z "$SINK_INPUTS" ]]; then
|
|
echo "No audio streams detected. Make sure the target app is playing audio!"
|
|
exit 1
|
|
fi
|
|
|
|
i=1
|
|
declare -A ID_MAP
|
|
|
|
for ID in $SINK_INPUTS; do
|
|
CLIENT_ID=$(pactl list short sink-inputs | awk -v id="$ID" '$1 == id {print $3}')
|
|
CLIENT_NAME=$(pactl list short clients | awk -v cid="$CLIENT_ID" '$1 == cid {print $3}')
|
|
|
|
# Remove quotes around client names, if any
|
|
CLIENT_NAME=${CLIENT_NAME//\"/}
|
|
|
|
echo "$i) $CLIENT_NAME (sink-input $ID)"
|
|
ID_MAP[$i]=$ID
|
|
i=$((i+1))
|
|
done
|
|
|
|
echo
|
|
read -p "Select the number of the app to route to Discord: " CHOICE
|
|
echo
|
|
|
|
TARGET_ID=${ID_MAP[$CHOICE]}
|
|
|
|
if [[ -z "$TARGET_ID" ]]; then
|
|
echo "Invalid choice."
|
|
exit 1
|
|
fi
|
|
|
|
echo $TARGET_ID
|