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 音效」。
版权与来源
- 插件代码:MIT。
- 音效素材:Nintendo Switch 2 系统 UI 原始音效,版权归 Nintendo。素材取自
Mipaichik/Nintendo-Switch-2-UI-Steam-Deck-Sound-Pack
(该仓库亦声明版权归 Nintendo)。
assets/内的 WAV 不在 MIT 许可范围内,随仓库提供只为让本机试用开箱即用; 请勿将其用于商业用途或再分发,如需公开分发衍生作品请先用自己拥有授权的音效替换assets/。 - 情景模型与任务状态监听思路移植自 MIT 许可的
dsh-ui-sound(Copyright © 2026 林冠宇 SOH4C4759)
与更上游的 dsh-plugin-uisfx;音频引擎、NS2 素材映射、
全局点击分类与设置页为本插件重写。详见
NOTICE。
No comments yet. Be the first to write one.