name: 安全摸鱼 description: 在电脑桌面中,将 Codex、IDE 等工作软件放在主要显示区域;把小说、微信、网页等内容放在次要显示区域。鼠标进入某个次要区域时,只展示该区域对应的窗口;移开后立即收起,只留下工作区域,减少被他人看到的机会。使用 Hammerspoon 配置和调试。
在电脑桌面中,将 Codex、IDE 等工作软件放在主要显示区域;把小说、微信、网页等内容放在次要显示区域。鼠标进入某个次要区域时,只展示该区域对应的窗口;移开后立即收起,只留下工作区域,减少被他人看到的机会。使用 Hammerspoon 配置和调试。
具体流程:
在改 ~/.hammerspoon/init.lua 前,确认:
发现更多技能插件,请访问7w4.net。
不要把同一应用的多个窗口用 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:
若“能停放但无法恢复”,优先检查 timer 是否有强引用、鼠标坐标是否进入保存的原始 frame、slot 的 windowID 是否仍有效。若“停放后跑到另一块屏幕”,按全部显示器边界计算停放位置。
这个 Skill 质量中等偏上。它提供了实用的窗口隐藏方案,能在检测到鼠标进入特定区域时自动显示摸鱼窗口,移开后立即收起,隐私保护思路明确。SKILL.md 步骤清晰,容易上手;但提供的实际代码模式偏少,用户需要自己编写完整脚本才能使用。适合有 Hammerspoon 使用经验的用户,对新手不太友好。整体而言是一个有创意的概念验证型 Skill,仍需完善示例和文档以提升可用性。