-
-
Save tinywrkb/04e7fd644afa9b92d33a3a99ab07ee9e to your computer and use it in GitHub Desktop.
| #!/bin/bash | |
| # | |
| # ~/.local/bin/btswitch | |
| # | |
| # wait a second this is too fast for udev | |
| sleep 1 | |
| btdev="$(pactl list sinks|grep Name|grep 'bluez.*.a2dp.sink'|sed 's/Name: //'|sed 's/\s//')" | |
| if [ -n "$btdev" ]; then | |
| echo "Found bluetooth device: $btdev" | |
| else | |
| echo "Could not find bluetooth device, exiting..." | |
| exit 1 | |
| fi | |
| echo "Setting default sink to the found bluetooth device..." | |
| echo "Running pactl set-default-sink $btdev" | |
| pactl set-default-sink "$btdev" | |
| echo "Setting default volume of sink to 26%" | |
| pactl set-sink-volume @DEFAULT_SINK@ 26% | |
| echo "Moving all sink inputs to the default sink..." | |
| for i in $(pactl list sink-inputs|grep 'Sink Input'|sed 's/Sink Input #//'); do | |
| echo "Moving sink input $i to the default sink..." | |
| pactl move-sink-input $i @DEFAULT_SINK@ | |
| done |
| # | |
| # ~/.config/systemd/user/pipewire-pulse-bt-switch.service | |
| # | |
| [Unit] | |
| Description=Pipewire Pulse Server Auto Switch to Bluetooth | |
| [Service] | |
| ExecStart=%h/.local/bin/btswitch | |
| [Install] | |
| WantedBy=default.target |
| # | |
| # /etc/udev/rules.d/pipewire-pulse-bt.rules | |
| # | |
| # phys: bt controller mac | |
| # name: bt device name | |
| SUBSYSTEM=="input",ATTRS{phys}=="0c:54:15:b5:cf:ec",ATTR{name}=="Bose SoundSport (AVRCP)",ACTION=="add",TAG+="systemd",ENV{SYSTEMD_USER_WANTS}+="pipewire-pulse-bt-switch.service" |
@geckolinux: Yup, I filed one: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/869
@Irimi1 Thanks, I appreciate it!
Just now, I noticed that my default sink wasn't set to my USB speaker automatically when connected. The speaker is listed as a sink and I can set it as the default manually using pactl set-default-sink <sink_name>, but I'm wondering whether this is worth mentioning in an official bug report also. I'm running Pipewire v0.3.32 on Fedora 34.
@stutteringsteve you should drop by the #pipewire IRC channel on OFTC and ask.
In general, it should work, but a recent change was introduced for compatibility with some desktop environments, so maybe you hit this edge case and next release, 0.3.33, will fix it.
How do I get ATTRS{phys} & ATTR{name} of my bluetooth device ?
Hi, I have the same issue as @Irimi1 on openSUSE Tumbleweed with PipeWire 0.3.24. By any chance was a bug report already filed for this?