@amiaoapp: Mac users finally have a solution! This might be the most eye-opening Mac tool of the year. Have you been driven crazy by your input method? You switch to English to code, but it suddenly reverts to Chinese; opening ChatGPT is English, switching to WeChat needs Chinese, back and forth dozens of times; even worse, some apps secretly switch it for you…
Summary
LockIME is a free and open-source Mac tool that locks the input method, supporting global, per-application, and per-URL automatic switching, saving you from the hassle of manual switching.
View Cached Full Text
Cached at: 06/20/26, 04:20 PM
Mac users, finally some relief! This might be the Mac tool I wish I had found sooner this year. Have you ever been driven crazy by input methods? You switch to English to code, and the next second it mysteriously reverts to Chinese; open ChatGPT and it’s English, switch to WeChat and you need Chinese, switching back and forth dozens of times; even worse, some apps secretly switch your input method for you… Today I found a free open-source gem: LockIME. It can directly “lock” your input method! Lock input method globally, auto-switch input method per different app, auto-switch input method per different website in browser, 24-hour switching log available, one-key shortcut control, size under 3MB. In short: WeChat always Chinese, Cursor always English, certain websites in browser auto English, never manually switch input method again. The best part: completely free! Completely open source! A must-have tool for Mac users! The biggest takeaway after using it: not so much about efficiency improvement, but rather reducing the daily frustrations by a ton… GitHub: https://github.com/oomol-lab/LockIME… Comment below: How many times do you switch input methods per day?
oomol-lab/LockIME Source: https://github.com/oomol-lab/LockIME
LockIME
English · 简体中文 · 繁體中文 · 日本語 · Français · Deutsch · Español · Português · Русский
Latest release (https://github.com/oomol-lab/LockIME/releases/latest) CI (https://github.com/oomol-lab/LockIME/actions/workflows/ci.yml) License: GPL-3.0 macOS 14+ (https://www.apple.com/macos/) Swift 6.0 (https://swift.org)
A macOS menu-bar app that locks your keyboard input source. Whenever you (or another app) switch input methods, LockIME immediately switches back to the locked one — globally, or per-frontmost-app, or (with the optional enhanced mode) per browser URL.
macOS 14+ · Apple silicon & Intel — separate apps, download the
-arm64or >-x86_64file matching your Mac · built with SwiftUI, Liquid Glass on > macOS 26 (Tahoe).
Screenshots
Install
Install with Homebrew (the cask picks the build matching your Mac’s architecture):
sh brew install --cask oomol-lab/tap/lockime
Or download the .dmg matching your Mac (-arm64 for Apple silicon, -x86_64 for Intel) from the latest release.
Either way, the app keeps itself up to date via Sparkle.
Features
- Instant re-lock — switches the active input source back the moment you (or another app) change it, globally or per-app.
- Lock or switch — per-app and per-URL rules can lock an input source (re-applied whenever it drifts) or just switch to it once when you focus the app or page, then step out of the way and let you change it freely.
- Flexible URL matching — per-URL rules (enhanced mode) match by a domain and its subdomains, an exact domain, a domain keyword, or a regular expression over the full URL, and apply in a priority order you drag to arrange — first match wins.
- Menu-bar control — activate/deactivate, switch the locked input source, view the current source, and track the activation count from the menu bar.
- Keyboard shortcuts — configurable global shortcuts to toggle locking and cycle the locked input source, plus per-app shortcuts to cycle or unbind the rule for whichever app is frontmost.
- Launch at login — starts automatically when you log in (off by default).
- Light & dark mode — a unified, system-native design language that adapts to light and dark appearance, plus a bespoke app icon. See docs/DESIGN.md.
- Live language switching — switch between 9 languages instantly, no restart: English, 简体中文, 繁體中文, 日本語, Français, Deutsch, Español, Português, Русский.
- 24-hour activation log — review what was switched, why, and for how long.
- Config backup — export your per-app and per-URL rules to a
.lockimefile and import them back, with a review step that previews additions, conflicts, and removals before anything is applied. - Auto-update — stable and beta channels via Sparkle, with a custom update window.
- Tiny download — the whole app ships in a
.dmgunder 3 MB. - No system permissions for core locking — an optional Accessibility-gated enhanced mode unlocks finer-grained per-URL and focused-field rules.
- Automation — a
lockime://URL scheme lets other apps, scripts, and Shortcuts drive LockIME (see below).
Automation
LockIME exposes a lockime:// URL scheme so other apps, scripts, Shortcuts, and launchers can drive it — toggle locking, retarget the input source, manage rules, and read state back with x-callback-url callbacks. It is off by default — turn it on in Settings ▸ General ▸ Automation.
sh open "lockime://lock" open "lockime://lock-to-source?id=com.apple.keylayout.ABC" open "lockime://set-app-rule?bundle=com.apple.Terminal&mode=lock&source=com.apple.keylayout.ABC"
Full reference: URL Scheme API.
Design
LockIME follows a single design system (Sources/LockIME/UI/DesignSystem.swift): semantic colors, system materials, and SF Symbols drive light/dark adaptation; Liquid Glass is reserved for the floating/navigation layer only. The brand “Lock Indigo” accent ships as an AccentColor asset. The full spec lives in docs/DESIGN.md.
The app icon is generated programmatically (no design tool) — regenerate it with:
sh ./scripts/make-appicon.sh # renders the master via SwiftUI and rebuilds the appiconset
Development
Requires Xcode 26+ (the app itself targets macOS 14+), and XcodeGen + xcbeautify (brew install xcodegen xcbeautify).
sh make gen # generate LockIME.xcodeproj from project.yml make build # build (Debug) make run # build & launch make test # run unit tests make archive # Release archive (Developer ID)
The Xcode project is generated from project.yml and is not checked in.
Hardware-touching integration tests (real TIS switching) are excluded from make test; run them with make test-hw (briefly changes the input source).
Releasing
Dispatch-driven, notarized Developer ID releases with Sparkle auto-update over stable and beta channels: run the Release workflow (Actions → Release) and it computes the version from git tags, builds, and creates the tag and GitHub Release automatically — never push a tag by hand. The beta channel is the nightly build. Every release ships separate Apple-silicon and Intel apps, each on its own update feed (no universal binary, no cross-arch updates). See docs/RELEASING.md.
Architecture
- LockIMEKit (static library) — pure, fully unit-tested logic using only system frameworks: lock engine, app monitor, rules, enhanced (Accessibility) observer, logging model, localization.
- LockIME (app) —
@main, SwiftUI UI, the design system, and the thin integration shims for Sparkle, KeyboardShortcuts, and PermissionFlow.
License
Copyright © 2026 Hangzhou Wumou Software Co., Ltd.
Similar Articles
@interjc: Omarchy is now playable, and I've installed Rime and Mozc input methods. Overall, it's better than I imagined, but some keyboard shortcuts still need to be familiarized, and the touchpad is prone to accidental touches. PS: My old machine is a 2014 MacBook Pro, Intel i5 + 8G RAM...
The user installed and tested the Omarchy system on a 2014 MacBook Pro, using Rime and Mozc input methods. The overall experience exceeded expectations, but the keyboard shortcuts and touchpad operation need to be adapted to.
SpeechFast
SpeechFast 是一款 Mac 本地语音转文字工具,按住 fn 键即可在任意应用中输入,所有音频与文本均在本地处理、完全离线,并支持 Apple Intelligence 清理口头语及自定义词表。
Translate Like Me
Translate Like Me 是一款免费开源的 macOS 菜单栏应用,可选中任意应用中的文本并按下快捷键完成翻译,自动检测语言方向并支持按语言对设置写作风格,可使用 Claude、ChatGPT 或 Grok。
@denziideng: No installation, no registration, open source offline free, Windows offline voice input is worth having! Typing slow and hands sore? Worried about privacy leaks with voice input, and having to be online? Share a CapsWriter-Offline, a 6.2k star GitHub Windows offline voice input神器, just hold down CapsLoc…
CapsWriter-Offline is a completely offline voice input tool for Windows. Hold down the CapsLock key and speak, and it automatically recognizes and inputs text. Supports multiple models (SenseVoice, Paraformer, etc.), no internet or installation required, highly customizable with low latency.
Keyboard differences between Windows and Macs
一篇关于 Windows 与 Mac 键盘差异的深度参考文章,涵盖了按键命名、修饰键布局、符号与文字标注等在跨平台应用(尤其是 Web 应用)开发中容易踩坑的细节。