安全摸魚

👤 user_35fb3d31 📦 v1.0.1 ⭐ 4.4 ⬇️ 72 下載
🏠 生活服務 免費

📖 技能介紹


name: 安全摸魚 description: 在電腦桌面中,將 Codex、IDE 等工作軟體放在主要顯示區域;把小說、微信、網頁等內容放在次要顯示區域。滑鼠進入某個次要區域時,只展示該區域對應的視窗;移開後立即收起,只留下工作區域,減少被他人看到的機會。使用 Hammerspoon 配置和除錯。


安全摸魚

在電腦桌面中,將 Codex、IDE 等工作軟體放在主要顯示區域;把小說、微信、網頁等內容放在次要顯示區域。滑鼠進入某個次要區域時,只展示該區域對應的視窗;移開後立即收起,只留下工作區域,減少被他人看到的機會。使用 Hammerspoon 配置和除錯。

具體流程:

更多技能請訪問小蔥技能站7w4.net。

  1. 幫助或提示使用者安裝Hammerspoon並配置好輔助功能許可權
  2. 使用者先將主區域、副區域對應的視窗排放好,配合AI生成好lua指令碼,完成視窗區域識別
  3. 完成配置後,滑鼠移到副區域(摸魚)就顯示摸魚視窗,移開就消失

先確認需求

在改 ~/.hammerspoon/init.lua 前,確認:

  • 哪些視窗始終顯示,哪些是可收起視窗;每個可收起視窗對應的區域。
  • 用“停放到螢幕邊緣”模擬隱藏,還是接受最小化/整應用隱藏。單視窗且不要 Dock 動畫時,優先停放。
  • 顯示是否要延遲、是否要求滑鼠在小範圍內靜止、離開是否立即收起、恢復後是否置頂。
  • 是否有多顯示器、視窗是否固定佈局、以及登記方式(標題、視窗 ID、選單重新識別或快捷鍵)。

不要把同一應用的多個視窗用 app:hide() 處理;它會同時隱藏該應用的所有視窗。

實施流程

  1. 讀取現有 ~/.hammerspoon/init.lua,保留無關配置。確認 Hammerspoon 已獲“輔助功能”許可權。
  2. 先建模:每個 slot 儲存 windowID、原始 frameparked 和懸停等待狀態。原始 frame 同時是恢復位置與感應區。
  3. 登記視窗時,優先按使用者安排後的螢幕幾何位置;若自動識別,限定目標螢幕、上/下分割槽,並排除覆蓋整列的背景視窗。標題會變化,不能作為唯一標識。
  4. hs.timer.doEvery() 輪詢滑鼠,並將返回的 timer 儲存到狀態表中;未保留引用的 timer 可能被垃圾回收而停止。
  5. 停放時使用 window:setFrame(frame, 0),恢復時同樣使用零時長;恢復後呼叫 window:raise()
  6. 選單欄提供“重新識別”“暫停並恢復”操作;重新載入配置前恢復已停放視窗。
  7. 按“驗證”執行;出現異常先新增只讀診斷,不要猜測修復。

讀取 references/patterns.md 獲取可複用 Lua 結構、延遲狀態機、多屏停放和故障排查模式。

驗證

使用 require("hs.ipc") 後,執行:

hs -c 'assert(loadfile(os.getenv("HOME") .. "/.hammerspoon/init.lua")); print("Lua syntax OK")'
hs -c 'hs.reload()'

然後手動驗證每個 slot:

  1. 區域外:視窗停放且無 Dock 最小化動畫。
  2. 區域內靜止到指定延遲:視窗恢復並位於最頂層。
  3. 立即移出已顯示視窗:視窗立即停放。
  4. 暫停選單:所有受控視窗恢復,其他視窗不變。

若“能停放但無法恢復”,優先檢查 timer 是否有強引用、滑鼠座標是否進入儲存的原始 frame、slot 的 windowID 是否仍有效。若“停放後跑到另一塊螢幕”,按全部顯示器邊界計算停放位置。

🤖 AI 評測

這個 Skill 質量中等偏上。它提供了實用的視窗隱藏方案,能在檢測到滑鼠進入特定區域時自動顯示摸魚視窗,移開後立即收起,隱私保護思路明確。SKILL.md 步驟清晰,容易上手;但提供的實際程式碼模式偏少,使用者需要自己編寫完整指令碼才能使用。適合有 Hammerspoon 使用經驗的使用者,對新手不太友好。整體而言是一個有創意的概念驗證型 Skill,仍需完善示例和文件以提升可用性。

📊 多維度評分

適應性4.4
規範性4.4
有效性4.4
可靠性4
可信度5

📁 包含檔案 (2 個)

📄 SKILL.md 3.4 KB
📄 references/patterns.md 3.1 KB