dsh-ascii-sharks:整頁 ASCII 海洋背景與主欄毛玻璃

前言

DeepSeek Harness(DSH)的 Web 界面默認是純色底,長時間盯會話時背景缺少層次。社區裏「趣味換裝」類插件會在不改動對話邏輯的前提下,給客戶端加一層視覺裝飾。下面介紹 dsh-ascii-sharks:由維護者 Timelk 發佈,在整頁透明 canvas 上跑 boid 魚羣與追獵鯊魚,主內容區疊一層可調的羽化毛玻璃,文字照常閱讀,水面在玻璃後面緩慢運動。

這是什麼

dsh-ascii-sharks 是 DSH 的 Client 插件(npm 包名同插件 id)。它把視口大小的 ASCII 海洋掛在 body 最底層,應用框架浮在其上;模擬與字符渲染核心來自上游項目 ascii-sharks(MIT),本倉庫負責 dsh 集成:主題換墨、頁面半透明 token、主欄 backdrop-filter 與設置頁參數。許可證爲 MIT;當前 package 版本爲 1.0.3(README 中 GitHub Release 安裝示例指向 v1.0.2 tar 包,以你實際安裝來源爲準)。

目錄頁:skillhub.cn/plugins/Timelk/dsh-ascii-sharks
源碼:github.com/Timelk/dsh-ascii-sharks

核心功能

已覈實的能力如下,均來自項目 README。

  • 整頁背景:透明 canvas 固定在視口(z-index: 0、pointer-events: none),不是小面板 widget。
  • 跟隨主題換墨:淺色用深墨、深色用淺墨,監聽 theme/change 實時切換。
  • 主欄毛玻璃:對話主欄 backdrop-filter + 半透明底襯,四邊羽化遮罩,鯊魚在玻璃後呈柔光斑塊。
  • 環面海洋:鯊魚與魚羣越界從對側進入;魚羣在接縫前兩格淡出。
  • 交互:可選鼠標驚擾魚羣、點擊頁面炸水花;魚羣轉向限速,字符隨航向變爲 - \ | /。
  • 可調參數:字符尺寸 4–14px、8 種鯊魚多選、數量與密度、遊動速度、背景濃度、玻璃模糊等,設置項即時生效。
  • 省電:prefers-reduced-motion 下靜幀;頁面不可見時瀏覽器暫停 requestAnimationFrame。

安裝與啓用

DSH 生態裏插件通常通過 plugin_manager 的 install_bundle 安裝;README 未給出 dsh plugin add github:... 形式,下面只用文檔原文命令。

1. npm(推薦)

在 dsh 裏讓 agent 調用 plugin_manager,或直接執行等價 JSON:

{ "action": "install_bundle", "target": "dsh-ascii-sharks" }

2. GitHub Release

{
  "action": "install_bundle",
  "target": "https://codeload.github.com/Timelk/dsh-ascii-sharks/tar.gz/refs/tags/v1.0.2"
}

安裝後刷新頁面;在 設置 → ASCII 鯊魚 中調整參數。

環境要求

  • dsh >=0.1.5-rc.1(Web profile)
  • Node ^22.19.0 || >=24.0.0(包元數據中的 engines)
  • 瀏覽器需支持 backdrop-filter 與 mask-composite(README 寫明 Chrome/Edge 120+、Safari 17.4+)

典型用法

  1. 按上一節安裝並刷新。
  2. 打開 設置 → ASCII 鯊魚,按需開關「顯示海洋」、拖動背景濃度、主內容毛玻璃、字符尺寸、鯊魚種類與數量、魚羣密度、遊動速度、鼠標驚擾、點擊水花等。
  3. 配置持久化在瀏覽器 localStorage 鍵 dsh.ascii-sharks.v2;改動滑桿會直接進入模擬引擎,無需重啓 dsh。

默認項摘要(完整表格見 README):

設置 默認 說明
顯示海洋 開 關閉則恢復不透明頁面
背景濃度 90% 整層水面不透明度 8–100%
主內容毛玻璃 8px 0 關閉,最大 32px
字符尺寸 6px 4–14px
鯊魚數量 2 1–6,種類至少保留一種
魚羣密度 / 遊動速度 100% 相對窗口與基準速率

在空白會話中可看到整頁 ASCII 海洋預覽效果;項目 docs/ 下有靜態圖與動圖說明。

工作原理(簡述)

插件在 Host 層通過 cordis.patch.yml 註冊 bundle,在瀏覽器層以 immediately: true 的 web Client 注入對話與設置 UI 模塊。渲染層:body 首位 fixed canvas;ctx.theme.overrideTokens 把頁面背景 token 調成半透明;從 [data-composer-dock] 向上定位對話列並內聯玻璃樣式,面板切換時用防抖 MutationObserver 補回。模擬在 World(boids、鯊魚追獵、環面)與 AsciiRenderer 中完成,參數經 localStorage store 訂閱到 engine.setOptions()。

適用場景與注意

適合誰:希望在 DSH Web 端保留可讀性的前提下,給會話界面加動態 ASCII 背景、並願意在設置裏微調性能與密度的用戶。

應注意:

  • 插件 Client 代碼在瀏覽器側運行,會改 DOM、canvas 與 localStorage;安裝前建議閱讀 源碼與 LICENSE,並知悉模擬部分歸屬見 THIRD_PARTY_NOTICES.md。
  • 社區目錄 skillhub.cn 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 本身遵循「一切皆插件」,本包僅爲社區貢獻之一。
  • 低性能設備或不需要動效時,可關閉「顯示海洋」或依賴系統的 reduced-motion;毛玻璃與大面積 canvas 仍可能增加 GPU 負擔。

結尾

dsh-ascii-sharks 把 ascii-sharks 的 boid 與鯊魚渲染搬進 DSH:整頁透明海洋、主題感知墨色、主欄羽化毛玻璃,參數集中在設置頁。若需要安裝入口與 issue,見 GitHub 倉庫 與 SkillHub 目錄頁。視覺模擬的上游功勞在 stackedlol/ascii-sharks,README 也建議爲原項目點 star。

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

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

小夜