1

I have Bluetooth speakers which I would like to automatically connect to when I log in to my desktop computer. What is a reliable way to accomplish this on Fedora Workstation 33 please?

I can manually connect to the speakers using GNOME's bluetooth settings GUI or execute bluetoothctl connect C8:84:47:XX:XX:XX in terminal (with my true MAC address, redacted here). The bluetooth speakers are AC powered and have power-saving features disabled - they are always on and ready to connect.

A systemd user service seems to be one option, however I can't get this method to work yet. Here's what I have tried so far.

I have a file ~/.config/systemd/user/bluetooth-soundbar.service with the following contents:

[Unit]
Description=Connect to soundbar at login

[Service]
Type=oneshot
ExecStart=bluetoothctl connect C8:84:47:XX:XX:XX

[Install]
WantedBy=default.target

I enabled and started the new service with systemctl --user enable bluetooth-soundbar.service && systemctl --user start bluetooth-soundbar.service

I tried adding BindsTo=bluetooth.service and/or After=bluetooth.target to the [Unit] section as recommended in the documentation, however these do not appear to have any effect. I also tried with ExecStart=/bin/sh -c "bluetoothctl connect C8:84:47:XX:XX:XX" (instead of using the command by itself).

/etc/bluetooth/main.conf has AutoEnable=true by default, and systemctl status bluetooth shows bluetooth running automatically and by default after login.

The Arch wiki mentions adding "load-module module-switch-on-connect" to /etc/pulse/default.pa, however when I tried this I had no sound or sound settings after rebooting so reverted to the default file.

What am I missing please? Can this be accomplished, and is systemd the correct tool for something like this?

1 Answer 1

1

A user on another forum posted the solution.

Here it is, for completeness:

Add a .desktop file in the autostart directory...

$EDITOR ~/.config/autostart/bluetooth-soundbar.desktop

...with the following contents, adapted for your device's MAC.

[Desktop Entry]
Name=Bluetooth Soundbar
Exec=bluetoothctl connect C8:84:47:XX:XX:XX
Type=Application

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.