dsh-model-grid:把 DSH 模型選擇器變成響應式卡片網格

前言

在 DeepSeek Harness(DSH)中,composer 的模型選擇器通常以單行列表的形式呈現,選項多時需要頻繁滾動。這種方式在寬屏上浪費空間,在窄屏上又難以快速定位。dsh-model-grid 把這個列表改成按提供商分組的響應式卡片網格,讓模型選擇更直觀。

是什麼

dsh-model-grid 是一個 DSH 客戶端插件,由 anonamerjaxon-dev 維護。它的作用是在 DSH 的模型選擇彈窗中插入一組響應式的卡片佈局,按提供商分組,而不是單行列表。

核心功能

1. 響應式網格佈局

網格列數根據彈窗寬度自動填充(auto-fill),最小列數爲 1,窄窗口時會自然降級。卡片之間有可配置的間距。

2. 按提供商分組

每個提供商保持獨立的區塊,標題橫跨整行,便於區分不同廠商的模型。

3. 兼容兩種模型菜單

  • 原生 dsh-client-ui-model-selection 下拉菜單
  • 第三方 dsh-peakrate 模型菜單(可選)

選擇器通過屬性和類名匹配,不依賴任意插件存在。

4. 可配置項

通過 config 傳入以下參數(默認值):

配置項 默認值 說明
maxWidth 900 彈窗最大寬度(CSS px),限制範圍 240–4000
minCardWidth 200 卡片最小寬度(CSS px),限制範圍 80–1200
gap 6 卡片間距(CSS px),限制範圍 0–64
maxHeightVh 76 彈窗高度上限(vh),限制範圍 20–100
hideCountdown true 隱藏價格標籤中的長倒計時(如“· 14h 23m”)
enabled true 禁用時不再注入樣式

5. Host-only,升級安全

樣式通過 webserver/index-inject 事件注入到頁面 <head>,無需重新構建客戶端 bundle,插件在 DSH 更新後仍可正常工作。

6. 無運行時依賴

插件不依賴任何運行時庫。

安裝與啓用

這是一個 DSH profile 插件,需要放在 dsh.profile.bundles 中。

  1. 添加依賴到 profile:
dsh plugin --profile web add github:anonamerjaxon-dev/dsh-model-grid
  1. 在 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 中加入 "dsh-model-grid",然後重啓 profile:
dsh web

如需本地 checkout:

dsh plugin --profile web add link:/path/to/dsh-model-grid

同樣需要把 "dsh-model-grid" 加入 dsh.profile.bundles 並重啓 profile。

重啓 profile 是必須的:插件在啓動時加載,樣式在頁面服務時注入。

典型用法

在 profile 的 cordis.patch.yml 中添加配置示例:

- insert:
    - id: model-grid
      name: 'dsh-model-grid'
      config:
        maxWidth: 1100
        minCardWidth: 180
        hideCountdown: false

配置會與默認值合併,直接覆蓋需要修改的字段。

適用場景與注意

適合在需要頻繁切換模型、提供商較多的項目中使用,尤其是寬屏顯示器,能讓模型列表一目瞭然。

插件以當前 DSH 進程的權限運行,安裝前建議查看源碼與許可證(MIT)。

結尾

dsh-model-grid 用一套 host-only 的注入方案,把模型選擇器從單行列表改成了響應式卡片網格,配置靈活,兼容原生與第三方菜單。安裝後重啓 profile 即可生效。

  • 目錄頁:https://www.skillhub.cn/plugins/anonamerjaxon-dev/dsh-model-grid
  • GitHub:https://github.com/anonamerjaxon-dev/dsh-model-grid
羽毛球分组比赛记分
小程序二维码

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

小夜