• v1.0.9 d331128e88

    edgevoid released this 2026-09-24 09:37:59 +08:00 | 0 commits to main since this release

    输出设备不写死: 面板设备选择 + 自动挂载守护

    症状: 开机后 / 插上 USB 耳机后听感变成「双重混响」, 只有 collaplex-audio stop + start 才恢复。

    根因: 链路末段的输出设备原来写死在 30-collaplex-eq.confnode.target(安装时探测一次)。
    开机时那台设备要是还没枚举出来, 会话管理器建链时目标不存在 -> 末段连到别处或者干脆不连;
    设备出现后不会自己改回来。两次实测的时序:

    日期 开机 EDIFIER USB 枚举 时差
    2026-09-23 21:01:17 21:03:01 +1 分 44 秒
    2026-09-24 08:57:07 09:19:43 +22 分 36 秒

    修法(三段缺一不可):

    做什么
    选择落盘 ~/.local/state/cinema-spatial/output.json; 安装.sh 优先用它, 设备不在位也照样按它建链
    面板按钮 「输出设备」卡片: 下拉硬件输出 + 「应用」-> 立刻重挂 + 落盘(GET /api/devices, POST /api/device)
    守护线程 web/output_route.py: 每 3 秒核对「选中设备在位 且 collaplex_eq_out 只连它」, 不对就拆错的补对的 -> 设备一插上自动挂好, 不用重启链路

    设备名带 USB 序列号、跨重插稳定, 所以「选哪台」能记住; 不稳定的是「建链那一刻设备在不在」。

    实测:

    场景 结果
    面板真鼠标点「应用」切到内建模拟输出 / 再切回耳机 routed 立刻跟随
    手动把末段连到错设备 守护 2 秒纠回
    末段连线全拆 守护 3 秒挂回
    collaplex-audio start 自检 打印 输出设备: ... [在位]

    两个坑(写进来省的再踩):

    • pw-dump 的 Link 对象键名是 output-port-id / input-port-id —— 写成 output-port
      一条连线都读不到, 而且不报错
    • 面板服务是 systemctl --user enable --now: 已在运行时不会重启, 改完 web/*.py 必须
      restart 才生效(否则接口 404, 而内存里还是旧代码)

    安装: sudo dpkg -i collaplex-audio_1.0.9_all.deb(装完不自动接管, collaplex-audio start 才生效)

    Downloads