前言¶
DeepSeek Harness(DSH)桌面端的主界面默認是不透明的面板疊在窗口之上。若你希望主窗口像「桌面上挖出的洞」一樣,背後就是系統正在顯示的那張壁紙,並且換壁紙、拖窗口、最大化時仍能對齊,就需要在客戶端側做壁紙解析、本地路由和界面 token 覆蓋。dsh-wallpaper-glass 是社區插件,由 talulra 維護,在 SkillHub 目錄中歸類爲「趣味換裝」。它把本機桌面壁紙墊在 DSH 主窗口後面,主殼半透明,對話框、菜單和內嵌瀏覽器仍保持原有不透明背景。
這是什麼¶
dsh-wallpaper-glass 的定位是:在 DeepSeek Harness 主窗口背後顯示本地系統壁紙,窗口半透明且儘量與桌面對齊,並隨壁紙明暗調整可讀性遮罩。插件通過 Host 解析 OS 當前壁紙文件,經會話保護的本地 HTTP 路由提供給頁面;瀏覽器側重寫主題 surface token,僅主殼玻璃化。維護者與源碼倉庫見 GitHub,目錄頁見 SkillHub。DSH 社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
核心功能¶
下面按 README 中已說明的能力歸納,不寫資料未提及的行爲。
壁紙來源與跟隨¶
Host 在 Windows 上優先使用 %APPDATA%\Microsoft\Windows\Themes\TranscodedWallpaper,再查註冊表 WallPaper,再取 Themes\CachedFiles 中較新的文件;macOS 用 osascript 讀桌面圖,Linux 用 gsettings picture-uri,均爲 best-effort。頁面默認每 4 秒請求 /dsh-wallpaper/meta,Host 僅 stat 文件,以 mtime-size 爲修訂號;修訂變化後再拉 /dsh-wallpaper/image。支持讀取 WallpaperStyle / TileWallpaper,對應 fill / fit / stretch / center / tile。
主窗玻璃化與對齊¶
瀏覽器側通過 ctx.theme.overrideTokens 改寫 --dsw-alias-bg-*、--dsw-specific-sidebar-fill 等 token,僅主殼半透明。默認開啓像素對齊:在固定層內放一塊屏幕尺寸的 plate,負偏移等於窗口在屏幕上的位置,使窗口顯示與桌面同一區域;移動、縮放、貼邊與最大化在約 250 ms 內跟隨。多顯示器或負原點等情況下會退化爲 data-align="fallback",用壁紙鋪滿窗口自身而非留空。
可讀性與交互層¶
在 32 px 畫布上對壁紙求平均亮度:淺色主題下壓暗壁紙時加霧,深色主題下亮壁紙時加深。淺色主題裏 label-secondary 等標籤降一檔(如 secondary #61666b → #353638),深色主題保持原值。role=dialog、菜單/列表/tooltip,以及內嵌 iframe/webview 周邊面板恢復不透明;輸入框沿祖先查找實際繪製背景的節點並標記 data-dshp-solid。三條壁紙相關路由均經 connection.requestRejection(),未認證請求不會拿到壁紙。
右下角控件¶
可拖動的 ◐ pill 位於右下角,位置會記住,選項保存在 localStorage:
- 壁紙:顯示 / 隱藏
- 透明度:subtle / medium / strong
- 虛化:0 / 8 / 16 / 28 px
- 對齊桌面:開 / 關
- 重置本機設置
配置裏 controls: false 可去掉該控件。
安裝與啓用¶
安裝前請自行查看倉庫源碼與 MIT 許可證;插件以當前 dsh 進程權限讀取本機壁紙路徑,屬敏感能力,勿在未審閱代碼的情況下安裝。
在 PowerShell 中,對 desktop profile 執行官方命令:
# from GitHub
dsh plugin --profile desktop add github:talulra/dsh-wallpaper-glass
# local development, from a checkout
dsh plugin --profile desktop add link:C:\deepseek\dsh-wallpaper-glass
# uninstall
dsh plugin --profile desktop remove dsh-wallpaper-glass
安裝會把依賴寫入 profile manifest,並把 bundle 追加到 dsh.profile.bundles。若啓用了 HMR,保存配置後會現場重組;否則需重啓客戶端。
安裝器會在 profile 的 cordis.patch.yml 末尾追加類似配置(字段以倉庫文檔爲準):
- id: ui-wallpaper-glass
config:
intensity: medium # subtle | medium | strong
align: true # pixel-align with the desktop (on by default)
blur: 0 # 0-40 px blur applied to the wallpaper itself
pollMs: 4000 # how often the page asks whether the wallpaper changed
imagePath: '' # pin one image instead of following the system wallpaper
controls: true # corner pill
enabled: true
imagePath 非空時可固定一張圖,不再跟隨系統壁紙;pollMs 調節檢測間隔;blur 作用於壁紙圖層本身(0–40 px)。
典型用法¶
- 安裝插件並重啓客戶端(或無 HMR 時同樣需重啓),確認主窗口背後出現本機壁紙且對話框仍爲不透明。
- 用右下角 pill 在 subtle / medium / strong 透明度與虛化檔位間切換,按需開關「對齊桌面」。
- 若只需靜默玻璃效果、不要控件,在
cordis.patch.yml裏設controls: false。 - 開發壁紙解析或路由時,倉庫提供本地腳本(在項目 checkout 內執行,非安裝路徑):
node dev/detect-test.mjs # wallpaper resolution only
node dev/route-test.mjs # exercise the three HTTP routes
node dev/preview.mjs # DSH-like preview; ?overlays=1 shows dialog/menu/browser fixtures
dev/preview.mjs 可用 ?screen=1920x1080,400,300&dpr=1 模擬顯示器幾何以檢查像素對齊。
適用場景與注意¶
適合在 Windows 上長期使用 DSH 桌面端、希望主界面與桌面壁紙一體化的用戶。資料中說明:Windows 多顯示器時 TranscodedWallpaper 常爲主屏合成圖,窗口拖到副屏會 fallback 爲鋪滿窗口;像素對齊依賴 window.screenX/screenY 與 CSS 像素,無邊框窗口對齊較準,有框窗口可能差幾個像素。在普通瀏覽器裏打開時壁紙仍可在頁面內渲染,但瀏覽器窗口不透明,無法得到「桌面上挖洞」的效果。較舊 DSH 若無 overrideTokens,壁紙層仍會渲染但不會應用透明。Linux / macOS 壁紙路徑解析爲盡力而爲,填充模式有假設。package.json 中當前版本爲 0.5.4。
結尾¶
dsh-wallpaper-glass 把本機壁紙、主窗半透明與明暗自適應遮罩綁在一起,並刻意保留對話框、菜單與內嵌瀏覽器的實心背景,避免玻璃化影響操作。需要安裝命令與配置字段時以倉庫 README 爲準:GitHub — talulra/dsh-wallpaper-glass;插件索引:SkillHub 目錄頁。