-
-
Save mss/73b6630a24d8fda23458af2aaddf890b to your computer and use it in GitHub Desktop.
| #!/bin/bash | |
| # This is a hack to make Bluetooth headests like the jabra Evolve 65 actually | |
| # work as a headset with the Linux (Ubuntu/Debian) Zoom client without having | |
| # to switch manually from A2DP to the HSP/HFP profile. | |
| # | |
| # This is done by injecting an environment variable which makes PulseAudio | |
| # recognize the application as a telephony/voice application as described | |
| # here: | |
| # * https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Bluetooth/#profiles | |
| # * https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/Clients/ApplicationProperties/#pa_prop_media_role | |
| # | |
| # An alternative to this might be to adapt the desktop file instead as | |
| # described here | |
| # * https://gavv.github.io/articles/pulseaudio-under-the-hood/#autodetecting-properties | |
| # | |
| set -o errexit | |
| set -o pipefail | |
| test ! -f /opt/zoom/zoom.distrib | |
| # Make sure sudo works and avoid password prompt for the following commands | |
| sudo true | |
| # Install the zoom wrapper script | |
| sudo install -m 0755 /dev/stdin /opt/zoom/zoom.wrapper <<'EOD' | |
| #!/bin/bash | |
| ZOOM="$(dirname "$0")/zoom.distrib" | |
| exec /usr/bin/env PULSE_PROP_media.role=phone "$BASH" -c 'exec -a "${0%.*}" "$0" "$@"' "$ZOOM" "$@" | |
| EOD | |
| # Move real zoom binary out if the way | |
| sudo dpkg-divert --rename --add /opt/zoom/zoom | |
| # Symlink zoom wrapper script in place | |
| sudo ln -s zoom.wrapper /opt/zoom/zoom |
I think these steps should roll the changes back:
sudo rm /opt/zoom/zoom /opt/zoom/zoom.wrapper
sudo dpkg-divert --rename --remove /opt/zoom/zoom
Thanks.
I get an error when running the script, maybe you can help me solve this
sh /home/shmuel/Downloads/73b6630a24d8fda23458af2aaddf890b-2c8d4e75fd78208ba57b474d21d73cbe06a24749/zoom-pulse-prop-media-role-phone-wrapper-installer.sh /home/shmuel/Downloads/73b6630a24d8fda23458af2aaddf890b-2c8d4e75fd78208ba57b474d21d73cbe06a24749/zoom-pulse-prop-media-role-phone-wrapper-installer.sh: 17: set: Illegal option -o pipefail
Try bash instead of sh.
I ran the script successfully with bash. It forces the audio profile of my bose bluetooth headphones to off. I can manually switch to headset, but it won't switch to high fidelity even if I try to do it manually.
That's very interesting. Might be either an issue with your Bose headset or the PulseAudio version on your Kubuntu. I use this on KDE Neon (which is based on Ubuntu 20.04 bit IIRC has a backported newer PulseAudio package) with a Jabra Evolve 65. It works mostly fine though sometimes it goes into a hectic loop where it switches between the two profiles.
I hope the roll-back steps work for you.
Thanks for this hack. I would really like to try it out on Kubuntu 20.04 LTS.
But how to undo it, just in case I want to get back to an imperfect but pristine state of Zoom?