- 一键锁定 - 启动清洁模式后,所有按键输入被拦截,避免误触导致的意外操作
- 可视化进度 - 按下的按键会亮起显示已清洁,确保不遗漏任何一个按键
- 快捷启动 - 使用
⌘⇧K全局快捷键,无需打开窗口即可快速进入清洁模式 - 智能退出 - 全部按键清洁完成后自动退出,也可随时长按 ESC 提前退出
- 多语言支持 - 支持简体中文、English、Español、हिंदी、العربية、Français、Português
- 原生体验 - 纯 SwiftUI + AppKit 构建,无第三方依赖,体积小巧
- macOS 13.0 (Ventura) 或更高版本
- 支持 Apple Silicon 和 Intel Mac
# 克隆仓库
git clone https://github.com/a9ravic/CleanLock.git
cd CleanLock
# 配置签名(首次构建需要)
cp local.xcconfig.template local.xcconfig
# 编辑 local.xcconfig,填入你的开发者团队 ID
# 生成 Xcode 项目
make generate
# 构建
make build
# 或在 Xcode 中打开
make open- 启动 CleanLock,应用将在菜单栏显示图标
- 点击菜单栏图标,选择「开始清洁」或使用快捷键
⌘⇧K - 屏幕将显示键盘布局,开始擦拭键盘
- 按下的按键会亮起,表示已清洁
- 清洁完所有按键后自动退出,或长按 ESC 提前退出
CleanLock
├── App/ # 应用入口
│ ├── CleanLockApp.swift # SwiftUI App 入口
│ └── AppDelegate.swift # 窗口和生命周期管理
├── Views/ # SwiftUI 视图
│ ├── CleaningView.swift # 清洁模式主界面
│ ├── KeyboardView.swift # 键盘布局视图
│ └── KeyCapView.swift # 单个按键视图
├── Services/ # 核心服务
│ ├── SandboxKeyInterceptor.swift # 键盘事件拦截
│ └── HotKeyManager.swift # 全局快捷键
├── Models/ # 数据模型
│ ├── KeyboardLayout.swift # 键盘布局定义
│ └── CleaningState.swift # 清洁状态管理
└── Theme/ # 设计系统
└── DesignSystem.swift # 颜色、字体、动画
- App Sandbox 兼容 - 使用
NSEvent.addLocalMonitorForEvents拦截键盘,无需辅助功能权限 - 状态机驱动 - 清洁流程通过状态机管理:
idle → cleaning → completed → exiting - SwiftUI + AppKit 混合架构 - AppKit 管理窗口,SwiftUI 构建界面
# 运行测试
make test
# 清理构建产物
make clean
# 重新生成项目
make generate欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 提交 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
