將 DSH 側邊欄頭像從底部移出

前言

DeepSeek Harness(DSH)在左側邊欄底部固定了一個頁腳條帶:賬戶頭像(同時也是設置入口)和 sidebar.footer.action 下的插件組件(例如 dsh-cost-meter)都掛在這裏。這個佈局在會話列表很長時會佔用垂直空間,而會話列表本身在桌面端又是可摺疊的,因此底部條帶的空間可以騰出來給會話。

dsh-avatar-top 插件把賬戶行從底部條帶移出,只移動這一行,保持其他插件在底部的位置不變。

插件定位

  • 名稱:dsh-avatar-top
  • 維護者:kiefeng
  • 倉庫:https://github.com/kiefeng/dsh-avatar-top
  • 分類:趣味換裝
  • Star 數:1

它是一個 DSH 插件,通過 Plugins 頁面的設置卡片調整頭像行的放置、高度和間距,支持零高度的 inline 模式。

核心功能

移動賬戶行

插件將左側邊欄的頁腳條帶設爲 display: contents,使其兩個子元素(賬戶行和 _footerActions)直接參與側邊欄的 flex 列布局。賬戶行通過 order 屬性重新排序,_footerActions 保持默認順序並繼續固定在底部。

這樣做的結果是:只有賬戶頭像(以及它旁邊的賬號名)被移出底部條帶,其他插件(如成本儀表盤)保持在底部不動。

放置位置(4 種)

  • Top:放在側邊欄頂部。
  • Below brand row:品牌 Logo 行下方。
  • Below New Session:新建會話按鈕下方。
  • Inline brand row:嵌入品牌 Logo 行內,零垂直高度成本,在 Windows 桌面端定位在行尾右側。

行高(3 種)

  • Full 44:完整高度 44px,顯示頭像和賬號名。
  • Compact 32:緊湊高度 32px。
  • Avatar only 28:僅頭像,高度 28px,頭像縮小到 20px,隱藏賬號名。

間距

設置「Spacing below」爲 0–24px,控制當前放置位置與下方元素的間距。

開關

啓用/禁用開關可以快速恢復默認佈局,無需卸載插件。

安裝與啓用

安裝命令

dsh plugin add dsh-avatar-top

安裝後重啓 DSH 客戶端,再打開 Plugins → dsh-avatar-top 進行配置。

Git 安裝(可選)

dsh plugin add git+https://github.com/kiefeng/dsh-avatar-top

驗證樣式

插件在 /dsh-avatar-top.css 提供公共的只讀樣式文件,可在無會話時檢查佈局問題:

http://127.0.0.1:<dsh-port>/dsh-avatar-top.css

配置字段

在 Plugins 頁面打開 dsh-avatar-top 卡片後,可以調整:

Setting Values Default
Enabled on / off on
Position top / below brand / below New Session / inline brand row top
Height full 44 / compact 32 / avatar only 28 full 44
Spacing below 0–24 px 4
Restore defaults button —

設置會持久化在用戶配置文件的 cordis.patch.yml 中,瀏覽器端通過訂閱配置文檔實時應用樣式。

技術實現

注入渠道

Host 通過 webserver/index-inject 提供一個結構化的 style 行,瀏覽器和桌面端都渲染它:

  • 瀏覽器 / dsh web:通過 SPA 的 HTTP 服務器獲取 index。
  • 桌面端:Electron 通過 IPC 將注入表傳遞給頁面,頁面端解釋器將 style 行追加到 <head>。

桌面端快照在 Host 啓動時生成,瀏覽器端則通過 <style id="dsh-avatar-top-live"> 實時應用樣式。

選擇器與佈局

側邊欄是 flex 列,放置通過 order 實現。插件使用穩定的 CSS 模塊類名後綴(_root, _footArea, _settingsArea, _trigger, _label, _avatar, _logoRow, _newSession, _panelList)而非哈希前綴,以避免構建差異。

inline 模式在 Windows 下使用 position: absolute 定位在品牌行右側,其他平臺回退到 top 位置。

設置管線

Config 聲明瞭四個 volatile() 字段(用戶設置),Host 爲 avatar-top 命名空間提供服務。瀏覽器端通過 ctx.configForms.get('avatar-top') 綁定表單,寫入通過 config.set() / config.unset() 到 remote.settings.mutate,並將卡片註冊到 plugins.bundle.config 下的包名鍵值槽。

已知限制

  • 只移動賬戶行。如果其他插件掛載在 sidebar.settings(而非 sidebar.footer.action),它們會跟着移動;目前沒有 shipped 插件這樣做。
  • 佈局依賴 ui-sidebar 的 flex 列。如果上游將頁腳改爲絕對定位或移出列,規則變爲空操作,不會報錯也不會錯位。
  • inline 模式需要 Windows 標題欄(html[data-windows-titlebar]),其他平臺回退到 top。
  • 診斷路由是公開只讀的,僅返回當前插件的 CSS 文本。

適用場景與注意

適合希望騰出側邊欄底部空間、或想調整賬戶頭像與品牌行/新建會話之間佈局的開發者。

插件以當前 DSH 進程的權限運行。安裝前建議查看源碼與許可證(MIT),確認符合你的使用場景。

小結

dsh-avatar-top 通過注入樣式和設置管線,將賬戶頭像從底部條帶移出,支持多種放置位置、高度和間距,並提供開關快速恢復默認佈局。它不改變 DSH 的核心邏輯,僅調整側邊欄佈局。

  • 目錄頁:https://www.skillhub.cn/plugins/kiefeng/dsh-avatar-top
  • 倉庫:https://github.com/kiefeng/dsh-avatar-top
羽毛球分组比赛记分
小程序二维码

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

小夜