dsh-visible-action-row:每條消息的操作欄不再需要懸停

前言

DSH 的對話界面裏,每條消息氣泡下方有一條操作欄,放着複製、點贊、點踩、分支等按鈕、時間戳,以及其他插件塞進這一行的按鈕和信息。原生實現只在最新一輪消息上常顯這條操作欄,歷史消息要鼠標懸停纔會出現。

排查歷史消息、回看上文時,懸停是個多餘的動作:你得一條一條點過去才能看到時間或複製按鈕。dsh-visible-action-row 把這個行爲改成所有消息的常顯,不改內容、不改位置。

這是什麼

DSH(桌面版 / Web 版)插件,維護者 Bobnemimimmi,MIT 許可,當前包版本 0.2.0。社區目錄將其歸在「客戶端」分類下。

它做一件事:用一條 scoped CSS 可見性覆蓋,把每條消息(用戶消息和 DSH 消息)的操作欄都保持成最新一輪那樣的常顯狀態。原生渲染、原生位置、原生內容全部複用,不新增任何可見 UI。

核心能力

  • Always visible:用戶與 DSH 消息的操作欄全部常顯,含歷史消息;懸停前後一致。
  • Native content:按鈕、時間與第三方插件塞進該行的內容原樣顯示,不重新生成、不改格式。
  • Zero config:無設置項、無開關、無存儲、無後端、無網絡請求,安裝即生效。
  • Clean uninstall:卸載後恢復原生「僅最新一輪常顯」行爲,不殘留 DOM / CSS / 配置。
  • Minimal & safe:不掃描 DOM、無 MutationObserver、無輪詢;僅調整 opacity,按鈕行爲與懸停效果不變。

爲什麼能這麼小:它不走 DOM 注入,只是把操作欄根節點原本依賴懸停才置爲可見的 opacity 覆蓋掉。

安裝與啓用

官方給出四種安裝路徑,優先用 npm。

通過 npm 安裝

dsh plugin --profile web add dsh-visible-action-row

npm 安裝拿到的是發佈時構建好的成品,無需任何構建授權。

通過 DSH Desktop 安裝

  1. 打開側欄 插件(Plugins)頁;
  2. 點擊 添加插件(Add plugin)旁的箭頭,選擇 安裝第三方插件(Install a third-party plugin);
  3. 輸入 dsh-visible-action-row 安裝,安裝完畢後點擊 立即啓用。

從 GitHub 安裝

dsh plugin --profile web add github:Bobnemimimmi/dsh-visible-action-row

注意這條路徑會運行本包的 prepare 自構建。pnpm ≥ 10 首次 add 會拒絕並要求授權,按提示把打印的 allowBuilds 鍵加入 profile 的 pnpm-workspace.yaml 後重跑。

本地目錄 / tarball

dsh plugin --profile web add ./dsh-visible-action-row

啓用

命令行安裝後重啓 DSH 即生效:桌面版重啓應用,Web 版重啓 dsh web。桌面版的 profile 名是 desktop,把上面命令裏的 --profile web 換成 --profile desktop 即可。

卸載與遷移

卸載:

dsh plugin --profile web remove dsh-visible-action-row

重啓後恢復原生行爲。

如果你之前用的是舊包 dsh-always-status-bar,建議先移除再裝新包——舊包只覆蓋時間戳,且其錨點在 DSH 0.2.x 中已變更,在新版裏實際是空轉:

dsh plugin --profile web remove dsh-always-status-bar
dsh plugin --profile web add dsh-visible-action-row

適用場景與注意

適合:希望在長對話裏直接看到每條消息的時間和操作按鈕,或者依賴操作欄上的第三方插件按鈕的開發者。

不適合:希望操作欄只在最新一輪出現以減少視覺噪音的場景。這個插件沒有開關,裝上就是全局常顯。

環境要求:DSH 桌面版或 dsh web(二進制安裝 / 源碼啓動均可),需要 dsh CLI(或按 DSH 文檔以源碼方式運行 pnpm dsh)。README 中寫明的已驗證環境是桌面版 0.2.1-rc.5(Windows 11)與源碼啓動的 Web 0.2.2-alpha.2(Windows 11),兩者加載同一套前端產物;macOS / Linux 未單獨實測,但同一份 client bundle 不含平臺分支。

版本兼容風險:插件依賴三個前端錨點來定位操作欄。若升級 DSH 後操作欄不再常顯,請覈對以下錨點是否仍存在於 packages/client/ui-chat/src/client/chat/:

  • MessageIconActions.tsx → 操作欄根節點的 data-clock
  • TurnTailNodeView.tsx → data-actions-reveal
  • ChatNodeSeat.tsx → data-chat-flow-kind

另外兩點使用前應確認:插件以當前 dsh 進程權限運行,安裝前應檢查其源碼與 MIT 許可證;倉庫目前的關注度不高(GitHub 2 stars、1 forks),升級 DSH 前最好先看一眼 Issue 區。

結尾

這個插件的價值很窄:把一個由懸停觸發的可見性改成常顯,代價是一條 scoped CSS,沒有配置面、沒有後端、沒有卸載殘留。如果你覺得歷史消息的操作欄探不到是痛點,它是最小改動的那一種解法。

目錄頁:https://www.skillhub.cn/plugins/Bobnemimimmi/dsh-visible-action-row
倉庫:https://github.com/Bobnemimimmi/dsh-visible-action-row

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

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

小夜