Skip to content

ltsyk/autoen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

AutoEn - macOS 自动输入法切换工具

AutoEn 是一个 macOS 自动输入法切换工具,当系统空闲一段时间后自动切换到英文输入法,避免在终端、代码编辑器中输入中文的困扰。

功能特点

  • 🚀 自动切换: 系统空闲时自动切换到英文输入法
  • 🔄 开机启动: 支持开机自动启动,后台运行
  • ⚙️ 可配置: 支持自定义空闲阈值、检测间隔等参数
  • 📊 日志记录: 详细的运行和错误日志
  • 🛠️ 管理工具: 提供便捷的服务管理脚本

系统要求

  • macOS (测试环境: macOS 14+)
  • Python 3.6+
  • im-select 输入法切换工具

安装步骤

1. 安装 im-select

# 使用 Homebrew 安装
brew install im-select

2. 克隆或下载项目

git clone <repository-url>
cd autoinput

3. 使用管理脚本安装服务

# 安装并启动服务
./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

工作原理

  1. 空闲检测: 使用 macOS CoreGraphics API 检测系统空闲时间
  2. 输入法检测: 使用 im-select 工具获取当前输入法状态
  3. 自动切换: 当空闲时间超过阈值且当前不是英文输入法时,自动切换
  4. 后台服务: 通过 macOS LaunchAgent 实现开机自启和后台运行

日志文件

  • 错误日志: /tmp/autoen.error.log
  • 输出日志: /tmp/autoen.output.log

故障排除

常见问题

  1. 服务无法启动

    # 检查 im-select 是否正确安装
    which im-select
    im-select list
    
    # 查看错误日志
    ./autoen_manager.sh logs
  2. 权限问题

    • 可能需要在"系统偏好设置 > 安全性与隐私 > 辅助功能"中授权终端或相关应用
  3. 输入法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.autoen

开发说明

文件结构

autoinput/
├── autoen.py              # 主程序
├── autoen_manager.sh      # 服务管理脚本
└── README.md             # 使用文档

自定义修改

  1. 修改 autoen.py 中的配置参数
  2. 保存文件
  3. 运行 ./autoen_manager.sh restart 重启服务

许可证

本项目采用 MIT 许可证。

贡献

欢迎提交 Issue 和 Pull Request!


注意: 首次使用可能需要在系统设置中授予相关权限。如果遇到问题,请查看日志文件或使用 ./autoen_manager.sh logs 命令进行诊断。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors