dsh-screen-glow:模型接管桌面時的 OS 級屏幕邊緣光

前言

在 DeepSeek Harness(DSH)裏跑帶 computer-use 的智能體時,模型會間歇性調用 desktop_mouse、desktop_input 等工具,真的去動你的鼠標和鍵盤。若你同時切到其他窗口寫文檔或回消息,很難從餘光判斷「此刻是不是 AI 在控機」,誤搶輸入或誤點確認的風險會上去。

生態裏已有若干邊緣光類插件(如 dsh-moon-light、dsh-rimlight、dsh-fleeting-light),它們多半畫在 DSH 網頁窗口內;一切到別的應用就看不見。維護者 Ravi666688 的 dsh-screen-glow 走另一條路:用 Electron 開 OS 級全屏透明置頂窗,蓋在所有窗口之上,只在判定爲「接管電腦」的工具調用時亮邊,並在屏幕中上方顯示當前在做什麼。分類爲客戶端插件,倉庫 Ravi666688/dsh-screen-glow,許可 MIT;社區目錄頁見 SkillHub。

這是什麼

dsh-screen-glow 是掛在 DSH web profile 上的客戶端插件:宿主根據 Cordis 工具名更新本地狀態,獨立覆蓋層進程讀 state.json,在主屏四邊繪製多層內輝光與可選粒子,並浮一條提示條。讀文件、bash、web 搜索、瀏覽器 CDP 自動化等 不會 點亮;只有匹配「點亮 / 續命」清單的工具纔會觸發或延長光效(清單可在 cordis.patch.yml 裏改)。例如 desktop_mouse 且 action:"position" 只讀光標位置時不算接管,不亮。

核心功能

三種光態

光態 觸發 默認色 節奏
操控 接管鼠標/鍵盤(見默認 trigger 子串) 星藍 #4da3ff 約 3.9s 呼吸
詢問 ask_user_question 琥珀 #fbbf24 2.1s 脈衝
批准 approval/request 紅 #f87171 1.4s 急脈衝

操控結束後約 1.6s 淡出(連續操作不會閃);詢問態結束後會先回到操控色餘暉,再按停留時長熄滅。工具切換時亮度會有小幅上頂,便於看出「剛點了一下」。

視覺與交互邊界

  • 只覆蓋 主屏;setIgnoreMouseEvents + showInactive,不搶焦點、不擋點擊。
  • 粒子默認沿四邊生成向內飄散(藍白、lighter 疊加);系統開啓「減弱動效」時只畫靜態光,屬預期行爲。
  • 五種粒子款式:stream(默認)、spark、dust、orbit、none。

屏幕提示條

操控、詢問、批准態在屏幕中心偏上顯示圓角提示條(磨砂黑底 + 主色點 + 一句話)。開啓 bannerAction 時,提示語後可追加「正在點擊 / 正在看屏幕 / 正在輸入文字」等動作文案;多會話時可顯示會話工作目錄名。亮着時每 7 秒從自定義句庫隨機換一句(操控 / 詢問各最多 12 句、每句 60 字)。

設置頁與數據通路

DSH 設置 → 屏幕邊緣光:操控色 / 詢問色 / 批准相關 look、粒子、厚度、數量、速度、停留時長等,帶實時預覽與「試一下(真機 3 秒)」。配置落在 ~/.dsh/screen-glow/settings.json,改完經宿主 HTTP 推給覆蓋層,無需重開 DSH。

設置頁 ──PUT /screen-glow/settings──▶ 宿主(落盤 + 改寫 state.json 的 look)
      ──POST /screen-glow/preview──▶ 宿主強制試亮 N 秒
覆蓋層 ──每 100ms 讀 state.json──▶ 換色 / 厚度 / 粒子

本機路由還包括 GET /screen-glow/settings、POST /screen-glow/hide(緊急熄燈),僅監聽宿主 webServer 同源地址,無對外遙測。

可靠性與自檢

  • 看門狗(0.3.0):每 5 秒檢查覆蓋層,異常時自動重拉(退避 5s→120s,最多 5 次),可在配置裏關 watchdog。
  • 緊急熄燈:全局快捷鍵 Ctrl+Alt+G 隱藏 60 秒,或設置頁「立即熄燈 60s」。
  • 自檢 CLI(0.5.0,當前包版本 0.5.2):安裝後可執行 dsh-screen-glow,doctor 檢查 11 項(profile、數據目錄、settings、覆蓋層進程、Electron 路徑、HTTP 連通等),失敗時退出碼 1。

安裝與啓用

在已安裝 DSH 且使用 web profile 的機器上,按 README 原文執行:

dsh plugin --profile web add dsh-screen-glow

從指定 GitHub 倉庫添加時,佔位符需換成你的 fork 或維護者路徑:

dsh plugin --profile web add github:<you>/dsh-screen-glow

覆蓋層需要本機 Electron。查找順序:overlay.electronPath → 環境變量 DSH_SCREEN_GLOW_ELECTRON / DSH_ELECTRON_PATH → $DSH_HOME/electron/electron[.exe] → ~/.dsh/electron/electron[.exe]。DSH 桌面端或裝過 dsh-pet 的環境通常已有;找不到時插件其餘邏輯仍工作,日誌會出現 electron-not-found 類 warn,邊緣光不顯示。

Node 引擎要求 >=22.12.0(見 package.json)。插件聲明與 DSH 0.2.1-rc.5 兼容。

宿主配置示例(字段以 README 爲準,非法值會 clamp 或回落默認):

- id: dsh-screen-glow
  name: 'dsh-screen-glow'
  config:
    enabled: true
    holdMs: 1600
    minOnMs: 420
    maxOnMs: 300000
    look:
      color: '#4da3ff'
      thickness: 1
      intensity: 0.9
      particles: 80
      speed: 1
    trigger: [desktop_mouse, desktop_input, ...]
    extend: [desktop_screenshot, desktop_perceive, ...]
    electronPath: ''
    dataDir: ''

典型用法

裝好後可直接用 CLI 做狀態檢查或試亮,無需等模型真正控機:

dsh-screen-glow doctor                  # 全量自檢(人讀)
dsh-screen-glow doctor --json           # 機器讀
dsh-screen-glow status                  # 一行 JSON 狀態
dsh-screen-glow hide 60000              # 緊急熄燈 60 秒
dsh-screen-glow preview 3000 pending    # 真機試亮 3 秒(control|ask|pending)

未加入 PATH 時:

node <插件目錄>/lib/cli.mjs doctor

排障時可對照 README:無光是查 Electron;透明窗花屏可設 DSH_SCREEN_GLOW_SOFTWARE=1;狀態可看 ~/.dsh/screen-glow/state.json 與 overlay.status.json。

適用場景與注意

適合經常在 DSH 裏開 computer-use、又需要全桌面可見「誰在控機 / 誰在等你回覆 / 誰在等批准」的開發者。插件與當前 DSH 進程同權限運行,會通過 spawn 拉起本機配置的 Electron 子進程繪製覆蓋層;安裝前建議通讀倉庫 lib/index.js 與安全邊界說明,確認可接受 MIT 許可與本地 HTTP 路由範圍。

隱私方面:README 寫明不聯網、無遙測、不截圖、不讀屏幕內容;覆蓋層只讀本地 state.json(布爾、工具名與少量數字)。社區目錄 SkillHub 與 GitHub 無 DeepSeek / 幻方官方從屬關係,屬 DSH「一切皆插件」生態中的第三方條目。

結尾

dsh-screen-glow 把「模型真的在動鼠標鍵盤」和「在問你 / 等你批准」拆成藍、琥珀、紅三種 OS 級邊緣反饋,並配上中上方提示條與設置頁、看門狗、自檢 CLI,彌補僅網頁內邊緣光切應用即不可見的問題。細節與截圖見 GitHub README,安裝與索引見 SkillHub 插件頁。

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

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

小夜