-
-
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?