用户使用 systemd 登录时连接到蓝牙扬声器?

用户使用 systemd 登录时连接到蓝牙扬声器?

我有蓝牙扬声器,我希望在登录台式计算机时自动连接到该扬声器。请问在 Fedora Workstation 33 上完成此操作的可靠方法是什么?

我可以使用 GNOME 的蓝牙设置 GUI 手动连接到扬声器或bluetoothctl connect C8:84:47:XX:XX:XX在终端中执行(使用我的真实 MAC 地址,在此处进行编辑)。蓝牙扬声器采用交流电源供电,并且禁用省电功能 - 它们始终处于开启状态并准备连接。

systemd 用户服务似乎是一种选择,但我还无法让这种方法发挥作用。这是我到目前为止所尝试过的。

我有一个文件 ~/.config/systemd/user/bluetooth-soundbar.service ,其中包含以下内容:

[Unit]
Description=Connect to soundbar at login

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

[Install]
WantedBy=default.target

我启用并启动了新服务systemctl --user enable bluetooth-soundbar.service && systemctl --user start bluetooth-soundbar.service

我尝试将 BindsTo=bluetooth.service 和/或 After=bluetooth.target 添加到 [Unit] 部分按照文档中的建议,但是这些似乎没有任何效果。我还尝试使用 ExecStart=/bin/sh -c "bluetoothctl connect C8:84:47:XX:XX:XX" (而不是单独使用该命令)。

/etc/bluetooth/main.conf 默认情况下 AutoEnable=true,并systemctl status bluetooth显示登录后默认自动运行蓝牙。

Arch wiki 提到将“load-module module-switch-on-connect”添加到 /etc/pulse/default.pa,但是当我尝试这样做时,重新启动后没有声音或声音设置,因此恢复为默认文件。

请问我缺少什么?这可以实现吗?systemd 是完成此类任务的正确工具吗?

答案1

A另一个论坛上的用户发布了解决方案

为了完整起见,这里是:

在自动启动目录中添加 .desktop 文件...

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

...包含以下内容,适合您设备的 MAC。

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

相关内容