This script will cycle to the next available audio output device. It can be tied to a hotkey to easily be triggered. This is handy, for example, for swapping between HDMI audio and headphones.
- Download the
audio-device-switch.shscript and place it in/usr/local/bin. - Make the script executable:
sudo chmod 755 /usr/local/bin/audio-device-switch.sh. - Open the Keyboard Shortcuts settings page, add a new shortcut, tell it to execute
audio-device-switch.sh, and set up your shortcut! - Install the
notify-sendlibrary if you want to see a popup notification when the audio device switches:sudo apt install libnotify-bin.
Feel free to modify this script and make it your own. Some ideas for customization:
Line 45 of the script calls notify-send with the -i flag which defines which icon is displayed. Stock icons are found in:
/usr/share/icons/gnome/32x32/usr/share/notify-osd/icons/
Or, a custom icon file can be provided.
Line 41 fetches the output device names using the pacmd list-sinks command and filters out the alsa.name property. You could pull another property, such as the device.description.
This is a more modern, robust rewrite of tsvetan's solution on the Ubuntu forums.
Great!
I needed to change line 41 in order to get device descriptions (from this thread)
mapfile -t sink_descriptions < <(pacmd list-sinks | grep -Pzo "\* index(.*\n)*" | sed \$d | grep -e "device.description" | cut -f2 -d\")Also, notifications only showed in some cases, which I fixed by changing line 46 to
if [[ "$sink_index" -le "$next_sink_index" ]] ; then