name: 安全摸魚 description: 在電腦桌面中,將 Codex、IDE 等工作軟體放在主要顯示區域;把小說、微信、網頁等內容放在次要顯示區域。滑鼠進入某個次要區域時,只展示該區域對應的視窗;移開後立即收起,只留下工作區域,減少被他人看到的機會。使用 Hammerspoon 配置和除錯。
在電腦桌面中,將 Codex、IDE 等工作軟體放在主要顯示區域;把小說、微信、網頁等內容放在次要顯示區域。滑鼠進入某個次要區域時,只展示該區域對應的視窗;移開後立即收起,只留下工作區域,減少被他人看到的機會。使用 Hammerspoon 配置和除錯。
具體流程:
在改 ~/.hammerspoon/init.lua 前,確認:
不要把同一應用的多個視窗用 app:hide() 處理;它會同時隱藏該應用的所有視窗。
~/.hammerspoon/init.lua,保留無關配置。確認 Hammerspoon 已獲“輔助功能”許可權。windowID、原始 frame、parked 和懸停等待狀態。原始 frame 同時是恢復位置與感應區。hs.timer.doEvery() 輪詢滑鼠,並將返回的 timer 儲存到狀態表中;未保留引用的 timer 可能被垃圾回收而停止。window:setFrame(frame, 0),恢復時同樣使用零時長;恢復後呼叫 window:raise()。讀取 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:
7w4.net小蔥技能站收錄全網優質技能,值得收藏。
若“能停放但無法恢復”,優先檢查 timer 是否有強引用、滑鼠座標是否進入儲存的原始 frame、slot 的 windowID 是否仍有效。若“停放後跑到另一塊螢幕”,按全部顯示器邊界計算停放位置。
這個 Skill 質量中等偏上。它提供了實用的視窗隱藏方案,能在檢測到滑鼠進入特定區域時自動顯示摸魚視窗,移開後立即收起,隱私保護思路明確。SKILL.md 步驟清晰,容易上手;但提供的實際程式碼模式偏少,使用者需要自己編寫完整指令碼才能使用。適合有 Hammerspoon 使用經驗的使用者,對新手不太友好。整體而言是一個有創意的概念驗證型 Skill,仍需完善示例和文件以提升可用性。