trougnouf/nubertctl

GitHub: trougnouf/nubertctl

一个通过蓝牙低功耗控制 Nubert 扬声器的非官方 CLI 工具,解决桌面端即时音量与源切换问题。

Stars: 0 | Forks: 0

# nubertctl - Nubert 扬声器控制(CLI) 一款非官方的跨平台 Python 工具,用于通过蓝牙低功耗(BLE)控制 Nubert 扬声器(X、XS 和 A 系列)。 ## 功能 - **守护进程模式:** 通过 Unix 套接字实现持久的 BLE 连接,确保即时响应。 - **PulseAudio/PipeWire 同步:** 将虚拟系统音量滑块映射到物理扬声器增益。 - **自动协议检测:** 支持 A600、X 系列和 XS 系列硬件。 - **源与电源控制:** 完全控制输入源和待机状态。 - **名称解析:** 动态识别您的扬声器蓝牙名称,绕过旋转 MAC 地址问题。 ## 安装 ### Arch Linux(AUR) 安装 `nubertctl-git`。该软件包包含 CLI 工具、同步脚本和 systemd 服务单元。 ``` # 运行 yay yay -S nubertctl-git ``` ### 手动安装 1. **依赖项:** pip install bleak # 用于 PulseAudio/PipeWire 同步: sudo pacman -S socat # 或您的发行版等效命令(例如 apt install socat) ## 用法 ### 1. 查找您的扬声器 ``` nubertctl --scan ``` 请记下返回的蓝牙名称(例如 `nubert X-2 2272`)。虽然 MAC 地址仍然完全可用,但强烈建议使用蓝牙名称。 ### 2. Linux 桌面集成 在 Linux 上使用此工具最可靠的方式是通过提供的 systemd 服务。这会创建一个持久的后台连接,因此音量更改可以即时生效。 *(如果您的扬声器名称包含空格,请按照下方示例使用 `systemd-escape` 子 shell 包裹,以确保 systemctl 正确挂载实例!)* 1. **启用守护进程:** systemctl --user enable --now nubert-daemon@$(systemd-escape "nubert X-2 2272").service 2. **启用音量同步:** systemctl --user enable --now nubert-sync@$(systemd-escape "nubert X-2 2272").service 您将在系统声音设置中看到 **“Nubert_Speaker_Remote”** 输出。将其设为默认后,媒体按键即可直接控制硬件扬声器。 ### 3. 手动 CLI 命令 **设置音量(0-100):** ``` nubertctl --address "nubert X-2 2272" --volume 45 ``` **切换输入源:** `aux`、`bluetooth`、`xlr`、`coax1`、`coax2`、`optical1`、`optical2`、`usb`、`port`。 ``` nubertctl --address "nubert X-2 2272" --source usb ``` ## 平台说明 - **Linux:** 使用 `socat` 和 `pactl` 进行音量同步。 - **macOS:** 使用 `--scan` 返回的 UUID 而非 MAC 地址。 - **Windows:** 请先在系统设置中配对设备。 ## 免责声明 这是一个非官方的社区项目。“Nubert”是 Nubert electronic GmbH 的商标。本工具根据欧盟指令 2009/24/EC 提供,用于互操作性目的。
标签:A600, Arch Linux, AUR, BLE蓝牙低功耗, cross-platform, MAC地址旋转, Nubert, PipeWire, PulseAudio, Python, systemd服务, Unix socket, XS系列, X系列, 即时响应, 后台持久连接, 媒体键控制, 守护进程, 安装脚本, 待机控制, 无后门, 桌面集成, 系统服务管理, 系统级音量控制, 自动协议检测, 蓝牙名称解析, 蓝牙音箱控制, 虚拟音量滑块, 输入源控制, 逆向工具, 音量同步