dsh-ui-sound-ns2
给 DeepSeek Harness Web GUI 用的 Nintendo Switch 2 系统 UI 音效插件:点哪里响哪里,并且每类交互对应 NS2 系统里语义相同的那一声。
- 全局点击层:捕获阶段监听
pointerdown,任意控件(按钮、菜单项、标签、链接、开关、滑块、输入框、展开/收起……)被点击时播放对应 NS2 音效;非控件区域点击也可发声(可关)。
- 音量:默认 100%,输出链上再带 1.25× 增益与限幅器(
DynamicsCompressorNode),短促的点击音更清楚又不破音。
- 任务音:任务开始 / 完成 / 失败 / 待处理提醒,接当前会话的运行状态与待处理交互。
- 设置页:每个情景可单独挑音色、单独试听、单独开关;音量、键盘音可独立配置。
- 推理等级滑条:拖动/点选
dsh-codex-effort-slider 的档位时,每一档都响一声 NS2 滑条音(slider-up / slider-down),拖得越快音高越高。
- 一键静音:聊天输入框下方有「静音 / 取消静音」小芯片,点一下静音整层 NS2 音效;任意位置按
⌘/Ctrl+Shift+M 也能切换,静音状态与设置页的「启用音效」是同一个开关。
- 偏好持久化在
$DSH_HOME/ui-sound-ns2/config.json,清站点数据不会丢。
情景 → 默认音效
| 情景 | 触发 | 默认 NS2 音效 |
|---|
click.normal | 普通点击 / 列表项 | nav-tick(导航轻点) |
click.primary | 主要按钮 / 确认 | confirm(确认) |
click.toggle-on | 开关 · 打开 | toggle-on |
click.toggle-off | 开关 · 关闭 | toggle-off |
click.tab | 标签切换 | bumper |
click.menu | 菜单项 / 下拉 | nav-tick |
click.select | 选中项 / 模型选择(menuitemradio、列表项) | confirm |
click.settings | 侧栏头像 / 账户菜单里的「设置」 | modal-open |
click.send | 发送 | confirm |
click.close | 关闭 / 取消 | slide-close |
click.danger | 删除 / 危险操作 | error |
click.link | 链接 / 详情 | detail-open |
click.back | 返回 | detail-close |
click.field | 输入框聚焦 | typing |
click.slider-up | 滑块调高 | slider-up |
click.slider-down | 滑块调低 | slider-down |
click.expand | 展开 | slide-open |
click.collapse | 收起 | slide-close |
task.start | 任务开始 | launch |
task.success | 任务完成 | achievement |
task.failure | 任务失败 | error |
task.pending | 待处理提醒 | mention |
另外提供 31 个可换的 cue:nav-tick confirm bumper toggle-on toggle-off scroll transition slide-open slide-close modal-open modal-close detail-open detail-close message mention chatroom friend friend-game toast toast-short volume slider-up slider-down typing recording-start recording-stop recording-highlight camera launch achievement error。
结构
lib/index.js:宿主半。webServer 上注册
GET/POST /ui-sound-ns2/api/settings:持久化偏好;
GET /ui-sound-ns2/api/status:状态;
GET /ui-sound-ns2/audio/<cue>.wav:loopback-only 音效文件(immutable 缓存)。
lib/client.js:浏览器半。Web Audio 引擎 + 全局点击/键盘监听 + 任务状态监听 + 设置页。
assets/:31 个 NS2 音效(16-bit mono 44.1 kHz WAV,已去首尾静音、归一化)。
cordis.patch.yml:插入一行名为 dsh-ui-sound-ns2 的 Loader 行。
scripts/fetch-assets.sh + scripts/make_assets.py:从上游下载源音效并重建 assets/(见下节)。
仓库与音效素材
插件代码以 MIT 许可发布;assets/ 下的 31 个 NS2 音效(16-bit mono 44.1 kHz WAV)已入库,克隆后开箱可用。这些音频不属于 MIT 许可,版权归 Nintendo,仅作本机个人试听 / 交互用途,详见 NOTICE。
如需从上游重建音效(例如自己替换素材),运行:
bash scripts/fetch-assets.sh
脚本会把源文件下载到 .asset-sources/(已 gitignore,只是本地构建缓存),用 macOS 自带的 /usr/bin/afconvert 转成 mono 44.1 kHz,再由 scripts/make_assets.py 去首尾静音、加淡入淡出、RMS 归一化到 -20 dBFS(峰值上限 -1 dBFS),产出 31 个 WAV 与 MANIFEST.json。
安装
git clone https://github.com/2486809961-alt/dsh-ui-sound-ns2.git
cd dsh-ui-sound-ns2
# 以本目录为 bundle 安装到当前 profile
dsh plugin --profile desktop add "$PWD"
# 或在本会话里用 plugin_manager install_bundle
安装后新开 / 刷新 Web 页面即可;设置 → 「NS2 音效」。
版权与来源