GlanceHUD
デスクトップアプリ2026年2月16日

GlanceHUD

跨平台桌面懸浮監控儀表板。支援透明穿透模式、自由拖放佈局,以及 HTTP Push API——讓任何外部腳本都能把資料顯示在你的桌面上。

稼働中GoWails v3ReactTypeScriptFramer MotionHTTP API

為什麼做這個?

起初的想法很簡單:做一個懸浮在螢幕角落的 HUD,顯示 CPU、記憶體之類的系統狀態。不過 AI 一下子就把基礎版做出來了,反而讓我覺得可以調高難度——

真正想解決的問題是:怎麼讓這個 HUD 不只顯示系統資訊,而是能接收任何資料?

展場 demo、GPU 訓練監控、自訂腳本的輸出……都應該能直接推送到桌面上顯示,不需要重新編譯主程式。

核心設計

鎖定模式 vs 編輯模式:鎖定時滑鼠可以穿透視窗點擊底下的東西(真正的 HUD 體驗);切換到編輯模式後可以拖放 Widget、調整順序。

HTTP Push API(Sidecar 模式):對 POST /api/widget 送 JSON 就能在 HUD 上新增/更新一個 Widget,無需任何設定。第一次送帶 template 就自動註冊;10 秒沒有心跳自動標記離線、視覺灰階。

Settings Feedback Loop:Sidecar 推送資料時,response 會帶回使用者在 UI 上修改的 settings,外部腳本可以即時讀取並調整行為。

Widget 類型

  • Sparkline:滾動趨勢折線圖(CPU 負載、網速等)
  • Gauge:環形進度條,狀態自動配色(綠→黃→紅)
  • Bar-list:水平進度條列表(磁碟使用率、進程排名)
  • Key-value:圖示 + 文字資訊卡
  • Text:大數值單行顯示,含動態數字動畫

技術架構

後端:Go + Wails v3(Alpha)、gopsutil(系統資訊)

前端:React + TypeScript、Framer Motion(動畫)、Tailwind CSS

API:HTTP REST,支援 GET /api/stats(供 Home Assistant、Stream Deck 讀取)

心得

這個專案讓我第一次認真寫 Go,也第一次用 Wails 做跨平台桌面程式。

最有挑戰的部分是「透明穿透模式」——不同平台的實作完全不同,Windows 用 WS_EX_TRANSPARENT,macOS 另一套。Wails v3 還在 Alpha,文件不完整,很多地方得自己翻 source code 或在 Discord 問。

另一個收穫是 Push API 的設計。最初以為只是個小功能,後來發現這讓整個專案的定位完全不同:它從「系統監控工具」變成了「通用桌面資料顯示平台」。一個設計決策,讓用途擴大了好幾倍。