让macOS像Windows一样的,通过单独按下Shift键来切换中英文输入法,同时修正Caps Lock键的行为。
🎯 核心功能:Shift键切换输入法 + Caps Lock纯大小写控制
- 单独按下Shift键:快速切换中英文输入法
- 组合键保持不变:
Shift + 字母仍然正常输出大写字母 - 动态识别输入法:自动检测系统已启用的中文和英文输入法
- 纯粹大小写切换:Caps Lock键仅控制英文字母的大小写
- 阻止输入法切换:移除Caps Lock键的默认输入法切换功能
- 指示灯同步:Caps Lock指示灯状态与系统大小写状态同步
- 状态栏菜单:简洁的状态栏控制界面
- 低资源占用:内存占用少于10MB
- 快速响应:按键响应延迟小于5ms
- 前往 Releases 页面
- 下载最新版本的
ShiftSwitch.dmg - 双击打开,将应用拖拽到应用程序文件夹
⚠️ 重要提示: 由于应用未经过 Apple 官方签名,首次运行时 macOS 可能显示"应用已损坏"警告。解决方法: 右键点击应用选择"打开",或查看 代码签名指南 了解详细解决方案。
- 首次运行时授予辅助功能权限
我们的 GitHub Actions 会自动构建每个版本,确保代码质量和兼容性。
- 操作系统:macOS 15.3 (Sequoia) 或更高版本
- 处理器:Apple Silicon 或 Intel 处理器
- 权限:辅助功能权限
# 克隆项目
git clone https://github.com/id88/ShiftSwitch.git
cd ShiftSwitch
# 使用发布脚本编译
./scripts/release.sh v1.0.0# 克隆项目
git clone https://github.com/id88/ShiftSwitch.git
cd ShiftSwitch
# 编译应用
xcodebuild -scheme ShiftSwitch -configuration Release -derivedDataPath ./build clean build
# 安装应用
sudo cp -R ./build/Build/Products/Release/ShiftSwitch.app /Applications/首次运行时,应用会自动提示您授予必要权限:
- 前往
系统偏好设置→隐私与安全性→辅助功能 - 点击
🔒解锁(需要管理员密码) - 点击
+按钮添加 ShiftSwitch 应用 - 确保 ShiftSwitch 开关处于
✅ 开启状态
- 前往
系统偏好设置→用户与群组→登录项 - 点击
+添加 ShiftSwitch.app - 选择
隐藏选项,应用将在后台启动
启动 ShiftSwitch 后:
- 应用将以后台模式运行
- 状态栏显示 ⌨️ 图标
- 点击图标查看菜单选项
- 开始享受高效的输入法切换体验!
- 单独按下左Shift或右Shift键
- 在0.05-0.5秒内释放
- 期间不按下其他任何键
- 输入法将自动在中英文之间切换
- 按下Caps Lock键:切换英文字母大小写状态
- 不会触发输入法切换:保持当前输入法不变
- 指示灯反馈:键盘指示灯显示当前大小写状态
- ShiftSwitch 正在运行:显示应用状态
- 检查权限:验证辅助功能权限状态
- 退出:安全退出应用
- IOKit框架:创建全局键盘事件钩子
- Carbon TIS API:实现输入法管理和切换
- Cocoa NSStatusBar:状态栏界面
- Swift 5语法:现代Swift开发
- AXIsProcessTrustedWithOptions:检查辅助功能权限
- 自动权限提示:引导用户授予必要权限
- 优雅降级:权限不足时给出明确提示
- 事件过滤:只处理必要的键盘事件
- 异步处理:输入法切换在主队列异步执行
- 内存管理:正确的CFObject内存管理
- 资源释放:应用退出时清理所有资源
这是因为应用未经过Apple官方签名导致的macOS安全限制。
解决方法:
- 右键打开: 右键点击应用选择"打开"(推荐)
- 自动修复脚本: 下载并运行
scripts/fix-codesign.sh - 手动命令:
sudo xattr -rd com.apple.quarantine /Applications/ShiftSwitch.app - 详细指南: 查看 代码签名指南
- 检查macOS版本是否符合要求
- 确保已授予辅助功能权限
- 重启应用或重新授权
- 确认权限设置正确
- 检查按键时间(0.05-0.5秒)
- 确保期间未按下其他键
- 查看状态栏菜单检查权限状态
- 确认应用正在运行(状态栏有图标)
- 重启应用
- 检查系统键盘设置
- 应用动态识别系统已启用的输入法
- 支持常见的中文输入法:SCIM、拼音、五笔等
- 支持英文布局:ABC、US等
ShiftSwitch/
├── .github/workflows/ # GitHub Actions 工作流
│ ├── build.yml # 主要构建和发布流程
│ ├── test.yml # 测试构建流程
│ └── README.md # 工作流说明
├── scripts/
│ └── release.sh # 发布脚本
├── ShiftSwitch/
│ ├── ShiftSwitchApp.swift # 主应用文件
│ ├── ShiftSwitch.entitlements # 权限配置
│ └── Assets.xcassets/ # 应用资源
├── ShiftSwitch.xcodeproj/ # Xcode项目文件
├── exportOptions.plist # 导出配置
└── README.md # 项目说明
- DebugLogger:调试日志管理,支持不同级别的日志输出
- InputSourceManager:输入法管理和切换,支持动态识别系统输入法
- KeyboardMonitor:键盘事件监听和处理,包含权限检查和自动恢复
- AppDelegate:应用生命周期和状态栏管理
我们使用 GitHub Actions 提供:
- ✅ 自动构建:每次推送代码时自动编译
- ✅ 自动测试:运行测试确保代码质量
- ✅ 自动发布:创建标签时自动生成 DMG 和 ZIP 包
- ✅ 持续集成:确保每个版本都能正常编译运行
- 开发:在功能分支开发新功能
- 测试:创建 Pull Request,自动运行测试
- 合并:合并到主分支
- 发布:创建版本标签,自动构建发布包
git tag v1.0.0 git push origin v1.0.0
# 克隆项目
git clone https://github.com/id88/ShiftSwitch.git
cd ShiftSwitch
# 在 Xcode 中打开
open ShiftSwitch.xcodeproj
# 或使用命令行编译
xcodebuild -scheme ShiftSwitch -configuration Debug build欢迎贡献代码!请遵循以下步骤:
- Fork 项目
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
本项目遵循 MIT 许可证。
- 📧 Email:
- 💬 Discussions: GitHub Discussions
⭐ 如果这个项目对您有帮助,请给我们一个星标!