dsh-scroll-piano:基於滾動位置的特雷門琴式音效

前言

DeepSeek Harness (DSH) 的插件生態允許對界面進行靈活擴展。dsh-scroll-piano 插件將聊天區右邊緣的豎條轉化爲樂器。當鼠標滑過該區域時,音高由縱向位置決定(越上越高,特雷門琴風格)。

核心功能

該插件通過以下機制實現交互:

  1. 音效生成:鼠標滑過聊天區右邊緣豎條時觸發音效。音高與鼠標縱向位置成正比,越靠上音越高,越靠下音越低,默認音域爲 C3–C6。
  2. 消息刻度:豎條上顯示「我的消息」的藍色橫槓。這些刻度基於消息在內容流中的位置錨定,與滾動無關,因此無論對話多深,消息刻度始終可見。
  3. 消息預覽:當鼠標靠近某條消息刻度(±16px)時,顯示該消息的正文氣泡(最多3行)。其他位置不顯示任何文字。
  4. 消息跳轉:點擊藍色橫槓或預覽氣泡,會平滑滾動到對應消息位置。
  5. 控制膠囊:左下角提供一枚可拖動的膠囊。膠囊包含 ON/OFF 開關和音量滑塊。設置會保存到 localStorage。拖動膠囊位移超過 6px 會觸發拖動邏輯。

安裝與啓用

通過官方命令安裝插件:

dsh plugin --profile desktop add dsh-scroll-piano

安裝後,左下角會出現 🎵 滾動鋼琴 ON/OFF 膠囊。首次出聲需通過點擊開關或首次滑動觸發一次用戶手勢,以解鎖 AudioContext。

使用方法

  1. 刮奏:在聊天區右側豎條上縱向滑動鼠標,即可演奏出鋼琴音。
  2. 查看與跳轉:鼠標靠近藍色刻度查看消息預覽,點擊刻度或氣泡跳轉到該消息。
  3. 控制音量:點擊膠囊上的開關切換,拖動膠囊右側滑塊調整音量。

技術細節與注意事項

  • 觸發區域:觸發區是聊天區滾動容器的右邊緣,而非窗口右邊緣。這確保了右側面板打開時不會誤觸發。
  • 定位邏輯:使用 [data-chat-flow] 作爲錨點,通過計算內容偏移量歸一化刻度位置,保證刻度與消息內容綁定,而非與滾動位置綁定。
  • 依賴環境:需要 DSH 版本 >= 0.2.0-rc.2。開發環境需要 Node >= 22。
  • 獨立運行:與 dsh-piano 插件獨立,可共存。

本地開發安裝

若需修改源碼進行開發,需配置軟鏈和熱載入:

NODE=~/.dsh/dsh-runtimes/dsh-primary-runtime/dependencies/node/bin/node
PNPM=~/.dsh/dsh-runtimes/dsh-primary-runtime/dependencies/pnpm/bin/pnpm.mjs
# profile/package.json 的 dependencies 加: "dsh-scroll-piano": "link:<本目錄>"
# profile/cordis.patch.yml 加:
#   - insert:
#       - id: dsh-scroll-piano
#         name: dsh-scroll-piano
cd ~/.dsh/profiles/desktop && "$NODE" "$PNPM" install --no-frozen-lockfile

順序很重要:先 pnpm install 建軟鏈,再觸發 cordis.patch.yml 熱載入,否則 loader 首次 require 找不到包。

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

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

小夜