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系列, 即时响应, 后台持久连接, 媒体键控制, 守护进程, 安装脚本, 待机控制, 无后门, 桌面集成, 系统服务管理, 系统级音量控制, 自动协议检测, 蓝牙名称解析, 蓝牙音箱控制, 虚拟音量滑块, 输入源控制, 逆向工具, 音量同步