automating-hammerspoon
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseHammerspoon 자동화
Hammerspoon 自动化
Hammerspoon 단축키, launchd 서비스, Ghostty 연동 가이드입니다.
本文是关于 Hammerspoon 快捷键、launchd 服务、Ghostty 集成的指南。
목적과 범위
目的与范围
macOS에서 Hammerspoon 자동화, launchd 연계, Ghostty 동작 이슈를 진단하고 복구하는 절차를 다룬다.
本文介绍 macOS 环境下 Hammerspoon 自动化、launchd 集成、Ghostty 运行问题的诊断与修复步骤。
핵심 절차
核心步骤
- 와 LaunchAgent 상태를 함께 점검한다.
~/.hammerspoon/init.lua - 로 비정상 agent를 식별한다.
launchctl list - Ghostty 다중 인스턴스/단축키 문제를 재현 후 설정을 수정한다.
- 재로드 후 핵심 단축키 동작을 검증한다.
- 同时检查 文件与 LaunchAgent 状态。
~/.hammerspoon/init.lua - 使用 命令识别异常 agent。
launchctl list - 重现 Ghostty 多实例/快捷键问题后修改配置。
- 重载后验证核心快捷键的运行情况。
Known Issues
已知问题
darwin-rebuild 시 setupLaunchAgents 멈춤
- launchd agent가 제대로 종료되지 않으면 멈출 수 있음
- 해결: 확인 후 문제 agent 제거
launchctl list | grep -v com.apple
한글 입력소스에서 Ctrl/Opt 단축키
- macOS 기본 동작으로 한글 IME에서 Ctrl/Opt 키 조합이 동작 안 함
- Hammerspoon에서 eventtap으로 강제 처리
Ghostty 새 인스턴스 문제
- Ghostty 바이너리를 직접 실행하면 새 인스턴스로 열릴 수 있음 (Dock에 여러 아이콘)
- 해결: 실행 중이면 +
hs.application.get("Ghostty"), 미실행이면Cmd+Nopen -a Ghostty
darwin-rebuild 时 setupLaunchAgents 卡住
- 如果 launchd agent 未正常终止,可能导致卡住
- 解决方法:执行 检查后移除有问题的 agent
launchctl list | grep -v com.apple
韩文输入法中的 Ctrl/Opt 快捷键
- 受 macOS 默认行为影响,韩文 IME 中 Ctrl/Opt 组合键无法正常工作
- 通过 Hammerspoon 的 eventtap 强制处理
Ghostty 新实例问题
- 直接运行 Ghostty 二进制文件会以新实例打开(Dock 中出现多个图标)
- 解决方法:若已运行,使用 +
hs.application.get("Ghostty");若未运行,执行Cmd+Nopen -a Ghostty
빠른 참조
快速参考
주요 단축키
主要快捷键
| 단축키 | 동작 |
|---|---|
| Finder에서 현재 폴더로 Ghostty 열기 |
| 영어 입력으로 전환 |
| 영어 전환 후 Homerow 실행 |
| 영어 전환 후 tmux prefix 전달 |
| Ghostty 전용 Ctrl 단축키 (CSI u 우회) |
| 터미널 앱에서 단어 단위 이동 |
| 快捷键 | 操作 |
|---|---|
| 从 Finder 当前文件夹打开 Ghostty |
| 切换至英文输入法 |
| 切换至英文后运行 Homerow |
| 切换至英文后传递 tmux 前缀 |
| Ghostty 专属 Ctrl 快捷键(绕过 CSI u) |
| 在终端应用中按单词移动 |
설정 파일 위치
配置文件位置
| 파일 | 용도 |
|---|---|
| Nix 모듈 (파일 배포 선언) |
| Hammerspoon 메인 설정 (소스) |
| Caps Lock → F18 리매핑 (소스) |
| Atuin 메뉴바 상태 표시 (소스) |
| Chrome DevTools MCP 자동연결 (소스) |
| launchd 사용자 에이전트 |
| 文件路径 | 用途 |
|---|---|
| Nix 模块(文件部署声明) |
| Hammerspoon 主配置文件(源码) |
| Caps Lock → F18 重映射(源码) |
| Atuin 菜单栏状态显示(源码) |
| Chrome DevTools MCP 自动连接(源码) |
| launchd 用户代理目录 |
launchd 디버깅
launchd 调试
bash
undefinedbash
undefined현재 로드된 에이전트 확인
查看当前已加载的代理
launchctl list | grep -v com.apple
launchctl list | grep -v com.apple
특정 에이전트 상태
查看特定代理状态
launchctl list <label>
launchctl list <label>
에이전트 언로드 (권장)
卸载代理(推荐方式)
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/<plist>
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/<plist>
에이전트 로드 (권장)
加载代理(推荐方式)
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/<plist>
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/<plist>
레거시 명령 (deprecated, 호환용)
旧版命令(已废弃,仅兼容用)
launchctl unload ~/Library/LaunchAgents/<plist>
launchctl load ~/Library/LaunchAgents/<plist>
undefinedlaunchctl unload ~/Library/LaunchAgents/<plist>
launchctl load ~/Library/LaunchAgents/<plist>
undefined자주 발생하는 문제
常见问题
- darwin-rebuild 멈춤: launchd agent 충돌, 수동 언로드 필요
- HOME이 /var/root: launchd 환경에서 HOME 미설정
- open --args 무시: 이미 실행 중인 앱에 인수 전달 안 됨
- darwin-rebuild 卡住:launchd 代理冲突,需手动卸载
- HOME 路径为 /var/root:launchd 环境中未设置 HOME 变量
- open --args 参数被忽略:无法向已运行的应用传递参数
레퍼런스
参考资料
- 트러블슈팅: references/troubleshooting.md
- 단축키 목록: references/hotkeys.md
- 故障排查:references/troubleshooting.md
- 快捷键列表:references/hotkeys.md