AutoEn 是一个 macOS 自动输入法切换工具,当系统空闲一段时间后自动切换到英文输入法,避免在终端、代码编辑器中输入中文的困扰。
- 🚀 自动切换: 系统空闲时自动切换到英文输入法
- 🔄 开机启动: 支持开机自动启动,后台运行
- ⚙️ 可配置: 支持自定义空闲阈值、检测间隔等参数
- 📊 日志记录: 详细的运行和错误日志
- 🛠️ 管理工具: 提供便捷的服务管理脚本
- macOS (测试环境: macOS 14+)
- Python 3.6+
- im-select 输入法切换工具
# 使用 Homebrew 安装
brew install im-selectgit clone <repository-url>
cd autoinput# 安装并启动服务
./autoen_manager.sh install编辑 autoen.py 文件中的配置参数:
# ===== 配置 =====
IDLE_THRESHOLD = 7 # 空闲阈值(秒)
CHECK_INTERVAL = 5 # 轮询间隔(秒)
EN_ID = "com.apple.keylayout.ABC" # 英文输入法ID| 参数 | 默认值 | 说明 |
|---|---|---|
IDLE_THRESHOLD |
7 | 空闲阈值(秒),超过此时间会切换到英文输入法 |
CHECK_INTERVAL |
5 | 轮询间隔(秒),检查系统空闲状态的频率 |
EN_ID |
com.apple.keylayout.ABC |
英文输入法标识符 |
im-select list项目提供了 autoen_manager.sh 管理脚本,支持以下命令:
# 查看服务状态
./autoen_manager.sh status
# 启动服务
./autoen_manager.sh start
# 停止服务
./autoen_manager.sh stop
# 重启服务
./autoen_manager.sh restart# 安装服务(创建 LaunchAgent 并启动)
./autoen_manager.sh install
# 完全卸载服务
./autoen_manager.sh uninstall# 查看错误日志
./autoen_manager.sh logs
# 查看输出日志
./autoen_manager.sh logs output
# 编辑配置文件
./autoen_manager.sh config# 显示所有可用命令
./autoen_manager.sh help- 空闲检测: 使用 macOS CoreGraphics API 检测系统空闲时间
- 输入法检测: 使用
im-select工具获取当前输入法状态 - 自动切换: 当空闲时间超过阈值且当前不是英文输入法时,自动切换
- 后台服务: 通过 macOS LaunchAgent 实现开机自启和后台运行
- 错误日志:
/tmp/autoen.error.log - 输出日志:
/tmp/autoen.output.log
-
服务无法启动
# 检查 im-select 是否正确安装 which im-select im-select list # 查看错误日志 ./autoen_manager.sh logs
-
权限问题
- 可能需要在"系统偏好设置 > 安全性与隐私 > 辅助功能"中授权终端或相关应用
-
输入法ID不正确
# 查看所有可用输入法ID im-select list # 编辑配置文件更新EN_ID ./autoen_manager.sh config
如果管理脚本出现问题,可以手动操作 LaunchAgent:
# 手动加载服务
launchctl load ~/Library/LaunchAgents/com.autoen.plist
# 手动卸载服务
launchctl unload ~/Library/LaunchAgents/com.autoen.plist
# 查看服务状态
launchctl list | grep com.autoenautoinput/
├── autoen.py # 主程序
├── autoen_manager.sh # 服务管理脚本
└── README.md # 使用文档
- 修改
autoen.py中的配置参数 - 保存文件
- 运行
./autoen_manager.sh restart重启服务
本项目采用 MIT 许可证。
欢迎提交 Issue 和 Pull Request!
注意: 首次使用可能需要在系统设置中授予相关权限。如果遇到问题,请查看日志文件或使用 ./autoen_manager.sh logs 命令进行诊断。