macOS 自动连接蓝牙音箱

曾经吐槽过 Mac Studio 蓝牙连接 EDIFIER R1000BT 时偶尔会有杂音的情况,在 macOS 系统的几次版本更新后,杂音已经消失。幸庆当时因为囊中羞涩没有一时脑热去更新设备,造成不必要的浪费。EDIFIER R1000BT 不知不觉已经使用七年啦,作为桌面电脑外放设备,个人认为它非常称职了。唯一想吐槽的是,macOS 不会自动连接蓝牙音箱,每次都要手动去点一下,太不优雅了。

安装 blueutil

项目地址:https://github.com/toy/blueutil 🔗

使用 Homebrew 安装:

brew install blueutil

查看 blueutil 路径

该路径在创建「自动操作」与「脚本」时需要用到。

which blueutil

我的返回路径是:/opt/homebrew/bin/blueutil

查看蓝牙音箱地址

方法有很多,例如:

blueutil --paired

或者

system_profiler SPBluetoothDataType

又或者屏幕左上角  - 关于本机

查看蓝牙设备地址

推荐使用 blueutil --paired 来查询,其他两种方法所得到的地址要稍加处理,需将 : 替换为 -

实现自动连接蓝牙音箱

以下介绍常用的两种的方法。

方法一、创建小程序(推荐)

打开「自动操作」,选择文稿类型为「应用程序」,在资源库里查找「运行 Shell 脚本」并添加以下内容:

/opt/homebrew/bin/blueutil -p 1 && /opt/homebrew/bin/blueutil --connect 5c-c6-e9-19-a8-6e

储存为应用程序,然后打开系统设置 - 通用 - 登陆项 - + - 选择刚才保存的应用程序。

方法二、创建 launchd 任务

创建一个 Shell 脚本:

#!/bin/bash
/opt/homebrew/bin/blueutil -p 1
/opt/homebrew/bin/blueutil --connect 5c-c6-e9-19-a8-6e

确保脚本具有执行权限:

chmod +x /Users/laomai/script/r1000bt.sh

编辑 launchd 的配置文件,使其调用这个脚本:

vim ~/Library/LaunchAgents/com.laomai.r1000bt.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.laomai.r1000bt</string>
    <key>ProgramArguments</key>
    <array>
      <string>/Users/laomai/script/r1000bt.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

取消/加载 launchd 任务

launchctl unload ~/Library/LaunchAgents/com.laomai.r1000bt.plist
launchctl load ~/Library/LaunchAgents/com.laomai.r1000bt.plist

此方法太过笨重,记录的原因是因为通过此过程来简单了解 launchd 任务。

END