关于 hammerspoon-macos-setup
hammerspoon-macos-setup 是用于在 macOS 安装和管理模块化 Hammerspoon 配置的 Agent 技能,涵盖初始化、窗口与显示器快捷操作及运行状态核验。
主要功能
- 01安装或刷新配置
- 02备份受管理的配置
- 03模块化窗口与显示器控制
- 04Spaces 和窗口快捷键
- 05运行状态与操作核验
适用场景
- 01在 macOS 配置 Hammerspoon
- 02跨显示器排列窗口
- 03查找并聚焦窗口
- 04权限变更后检查快捷键操作
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ arthurzakirov/ agentdesk --skill hammerspoon-macos-setup安装后在 Claude Code 中输入/hammerspoon-macos-setup确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/hammerspoon/init.luaassets/hammerspoon/modules/chrome.luaclaude.luacore.luadisplays.lualayout.luaspaces.luawindow_picker.luascripts/install-hammerspoon-config.sh详细介绍
Hammerspoon macOS 设置
请将随附的模块化配置作为唯一事实来源。它将显示器移动、窗口布局、Spaces、窗口选择器、Chrome 和 Claude 桌面行为分别放在 assets/hammerspoon/modules/ 下。
安装或刷新
运行:
scripts/install-hammerspoon-config.sh
安装程序:
- 要求使用 macOS 和 Homebrew;
- 如果尚未安装 Hammerspoon,则进行安装;
- 更改现有受管理配置前先备份;
- 将
~/.hammerspoon/init.lua和~/.hammerspoon/modules符号链接到此技能随附的资源,同时保留Spoons/等无关条目; - 启动 Hammerspoon,并通过配置启用登录时启动。
这些符号链接使已安装的 AgentDesk 技能成为实时事实来源。更新仓库检出内容或刷新 SkillPort 后,稳定路径指向的文件也会随之更新;按 ctrl+alt+cmd+r 重新加载 Hammerspoon 以应用新版本。如果链接已指向此技能版本,重新运行安装程序不会产生额外变更。
不要将凭据、私人设备清单、显示器序列号或账户数据复制到此公开配置中。显示器编号根据虚拟桌面位置动态分配。
权限
Hammerspoon 需要 macOS 辅助功能权限。权限被停用时,请打开系统设置 → 隐私与安全性 → 辅助功能。通过 Computer Use 启用此设置需要在操作时确认。
更改权限后,重新启动 Hammerspoon。权限行显示已勾选并不足以证明权限可用:请验证 hs.accessibilityState() 并执行一次实际窗口操作。
必备快捷键
ctrl+alt+left、ctrl+alt+right、ctrl+alt+return:左半屏、右半屏、最大化。ctrl+alt+cmd+j/k/l/ö:将窗口发送到显示器 1–4 并最大化,顺序为从左到右、从上到下。ctrl+alt+cmd+u/i/o/p:聚焦显示器 1–4。ctrl+alt+cmd+h:标识编号显示器。ctrl+alt+cmd+/:可搜索的窗口选择器。ctrl+alt+cmd+r:重新加载配置。
显示器模块会优先使用标准 macOS **窗口 → 移至…**菜单。这样可以避免 macOS Tahoe 的一种故障模式:辅助功能报告的 AXApplication 占位对象大小为零,而不是可用的窗口对象。对于没有标准菜单的应用,则会回退到直接使用 hs.window 移动窗口。
验证
检查运行时状态:
/opt/homebrew/bin/hs -c 'return tostring(hs.accessibilityState()) .. "|" .. tostring(hs.autoLaunch()) .. "|" .. tostring(#hs.hotkey.getHotkeys())'
然后向一个临时的可见窗口发送实际快捷键,并在每次按键后验证可观察到的结果:
- 目视确认左半屏、右半屏和最大化效果。
- 对每个已连接的显示器按键进行确认:移动后,检查目标显示器是否已从应用的**移至…**菜单中消失。
- 未连接的第四台显示器应视为未经测试;不要声称窗口已成功移动到该显示器。
- 故障排除后,确认 AltTab 和任何用户要求的启动器仍在运行。
不能仅因为快捷键已注册或函数返回时没有错误就报告成功。