dsh-pixelbar:在 DSH 里直呼 Halo PixelBar 桌面像素屏

前言

用智能体或 DSH 办公时,桌面上的花再 Halo PixelBar 往往要靠本机脚本或单独记一套 HID 命令。想在对话里说一句「屏上打个『在』」就要先切终端、查参数,和「工具即对话」的习惯不一致。dsh-pixelbar 把设备控制收成 DSH 里的单个工具 pixelbar,背后再带一套可单独运行的 Python HID 脚本;两层可以分开用,也可以只装插件外壳。

这是什么

dsh-pixelbar 是维护者 SilverlingFox 发布的 客户端 类 DSH 插件:插件外壳通过 Cordis 补丁注册工具,实际设备通信由 bundled 的 halo_pixelbar.py 等脚本完成。它解决的是「像素屏推字、切场景、改屏色、氛围灯、硬件音量」在 Harness 里不可直接调用的问题。

核心功能

README 中列出的能力如下,均属已文档化行为。

能力 说明
推文字 最多 16 字符 / 48 字节;7 种颜色、6 种布局(含左右滚动)
自动回时钟 推字后默认 15 秒切回时钟,避免通知长期占屏
场景 clock / game / work / read / cats / dogs / memes / cyber / waves
屏主题色 内置颜色校准表,补偿屏体 R 偏弱、B 偏强
氛围灯 6 种灯效,可调颜色、亮度、速度
硬件音量 查询或设置 0–16
状态 检查控制接口是否在线

每次调用会起一个短命的 Python 进程,未引入长驻桥;README 在 Windows 11 + Python 3.13 下写明 status 约 137 ms、text 约 73 ms(环境不同会有差异)。

环境与硬件

  • 操作系统:脚本针对 Windows(windowsHide + pythonw.exe 避免黑框);Linux / macOS 未做适配。
  • 设备:花再 Halo PixelBar,USB 连接;文档给出 VID 0x2D99 / PID 0xA106,控制接口 interface=4、usage_page=0xFF14、usage=0x01,其它型号未实测。
  • Python 3.8+,需安装 hidapi:
python -m pip install hidapi
  • Node.js 18+:仅 DSH 插件外壳需要(package.json 中 engines.node 为 >=18)。

安装与启用

README 提供三种等价路径,未使用 dsh plugin add github:... 一类拼写;以下命令均来自官方说明。

方式一:npm 或 DSH 插件市场

包已发布到 npm:

npm install dsh-pixelbar

装入 DSH profile 目录(默认 %USERPROFILE%\.dsh\profiles\desktop),把 dsh-pixelbar 加入该目录 package.json 的 dsh.profile.bundles 数组,重启 DSH。包内 package.json 声明 dsh.bundle.patch 为 ./cordis.patch.yml,由 DSH 加载补丁。也可在 DSH 插件市场 / 插件管理中安装同名包。

方式二:离线脚本(免 npm)

  1. 双击 apply.bat,或执行 pwsh -File apply.ps1。
  2. 脚本会定位 profile(可用环境变量 DSH_PROFILE_DIR 覆盖),把 index.js、package.json、cordis.patch.yml、scripts/ 复制到 profile 下 node_modules\dsh-pixelbar,并写入 dsh.profile.bundles;原 package.json 备份为 package.json.pixelbar.bak。
  3. 重启 DSH,在新会话里让助手调用 pixelbar 验证。

卸载:运行 rollback.bat 后重启 DSH。若在 profile 里执行 pnpm install 等操作,可能需要重跑 apply.ps1。

在 DSH 里怎么用

插件注册工具 pixelbar,主要参数如下。

参数 值
action text(默认)/ scene / screen / light / volume / clock / status
text 显示文字,超过 16 字符截断
color white red green blue yellow cyan magenta,默认 magenta
layout left center right stretch scroll_left_to_right scroll_right_to_left
scene 见上表场景列表
hex 六位十六进制,用于 screen / light
effect breathing color_tide static ripple flow dynamic
brightness low medium high
speed 氛围灯速度 1–10
volume 0–16;省略则查询
clock_restore 推字后多少秒回时钟,默认 15;0 表示不回

典型调用示例(与 README 一致):

pixelbar { "text": "在", "color": "cyan" }
pixelbar { "action": "scene", "scene": "work" }
pixelbar { "action": "light", "effect": "breathing", "hex": "#F0B4C8", "brightness": "high" }

可选配置

默认值在 cordis.patch.yml 的 config 与 index.js 的 DEFAULTS 中:

键 默认 说明
python 空 空则依次试 DSH_PIXELBAR_PYTHON、PATH 上的 python3 / python
script scripts/halo_pixelbar.py 相对插件目录或绝对路径
clockScript scripts/clock_restore.py 同上
defaultColor magenta 默认文字色
restoreSeconds 15 默认回时钟秒数

不经 DSH 单独用脚本

HID 层不依赖 DSH,可在 scripts 目录直接调用,便于排错或写自己的自动化:

cd scripts

python halo_pixelbar.py list
python halo_pixelbar.py text "在" --color cyan --layout center
python halo_pixelbar.py ui work
python halo_pixelbar.py color "#F0B4C8"
python halo_pixelbar.py light --effect breathing --color "#F0B4C8" --brightness high --speed 5
python halo_pixelbar.py volume
python halo_pixelbar.py volume 10

适用场景与注意

适合谁:已在 Windows 上使用 DSH、并已连接 Halo PixelBar,希望助手用自然语言改屏显、场景和灯效,而不想每次手写 HID 或维护多套脚本的开发者。

权限与安全:插件与 Python 脚本以当前 DSH 进程权限在本机执行,会通过 USB HID 控制外设。安装前应阅读仓库源码与 MIT 许可证,确认 profile 与 node_modules\dsh-pixelbar 中的文件来源可信。

已知限制(README 原文):

  • 屏宽有限,emoji 不显示;颜文字类 ASCII 可用。
  • 高频推送每次新起 Python 进程,不适合极高频场景。
  • 场景 / 灯效 ID 来自单机实测,固件不同可能不一致。
  • 推送成功但屏无变化时,设备可能处于音乐律动等抢占模式,可先切回 clock 场景。

社区目录站点 skillhub.cn 与 DeepSeek / 幻方无官方从属关系;DSH 生态以「一切皆插件」为常见做法,本文仅介绍该插件本身的行为与安装方式。

结尾

dsh-pixelbar 把 Halo PixelBar 收成 DSH 里的 pixelbar 工具,并保留完整 Python HID 工具链;适合要在对话里控桌面像素屏、又需要命令行兜底的本机用户。更多细节与 HID 帧格式见 GitHub README;插件入口见 目录页 与 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye