LockIME

July 13, 2026 · View on GitHub

LockIME

LockIME

English · 简体中文 · 繁體中文 · 日本語 · Français · Deutsch · Español · Português · Русский

Последний выпуск CI Лицензия: GPL-3.0 macOS 14+ Swift 6.0

Приложение для строки меню macOS, которое блокирует источник ввода клавиатуры. Как только вы (или другое приложение) переключаете метод ввода, LockIME немедленно возвращает заблокированный — глобально, для каждого активного приложения или (в дополнительном расширенном режиме) для каждого URL в браузере.

macOS 14+ · Apple silicon и Intel — отдельные приложения, скачайте файл -arm64 или -x86_64, подходящий вашему Mac · создано на SwiftUI, Liquid Glass на macOS 26 (Tahoe).

Screenshots

Основные настройки Правила для приложений Правила для URL

Install

Установите через Homebrew (cask сам выберет сборку, соответствующую архитектуре вашего Mac):

brew install --cask oomol-lab/tap/lockime

Или скачайте .dmg, подходящий вашему Mac (-arm64 для Apple silicon, -x86_64 для Intel), со страницы последнего выпуска. В обоих случаях приложение автоматически обновляется через Sparkle.

Features

  • Мгновенная повторная блокировка — возвращает активный источник ввода к заблокированному в тот же момент, когда вы (или другое приложение) его меняете, — глобально или для каждого приложения.
  • Блокировать или переключать — правила для приложений и для URL могут блокировать источник ввода (повторно применяя его при любом отклонении) или один раз переключать на него при открытии приложения или страницы, а затем не мешать вам его менять.
  • Блокировать глобально или просто переключать — задайте глобальному источнику ввода по умолчанию одно из трёх поведений: блокировать, чтобы закрепить его везде; переключать, чтобы один раз переключить вас на него каждый раз, когда приложение опирается на глобальный источник по умолчанию (у него нет собственного правила или его правило — Использовать по умолчанию), а затем оставить вас свободными; или Нет — вообще без глобального поведения: тогда LockIME действует только через ваши правила для приложений и для URL. Переключать активно переключает вас на него каждый раз, когда применяется значение по умолчанию; Нет не делает глобально ничего.
  • Гибкое сопоставление URL — правила для URL (расширенный режим) сопоставляются по домену и его поддоменам, по точному домену, по ключевому слову домена или по регулярному выражению над всем URL, и применяются в порядке приоритета, который вы задаёте перетаскиванием, — побеждает первое совпадение.
  • Управление из строки меню — включение/выключение, смена заблокированного источника ввода, просмотр текущего источника и счётчик срабатываний прямо в строке меню.
  • Сочетания клавиш — настраиваемые глобальные сочетания для включения/выключения LockIME и перебора заблокированного источника ввода, а также сочетания для отдельных приложений, позволяющие переключать или удалять правило активного приложения.
  • Запуск при входе в систему — стартует автоматически при входе (по умолчанию выключено).
  • Светлая и тёмная темы — единый, нативный для системы язык дизайна, адаптирующийся к светлому и тёмному оформлению, плюс фирменная иконка приложения. См. docs/DESIGN.md.
  • Смена языка на лету — мгновенно переключайтесь между 9 языками без перезапуска: English, 简体中文, 繁體中文, 日本語, Français, Deutsch, Español, Português, Русский.
  • Журнал срабатываний за 24 часа — смотрите, что было переключено, почему и как долго.
  • Резервная копия конфигурации — экспортируйте правила для приложений и для URL в файл .lockime и импортируйте их обратно; перед применением шаг предпросмотра покажет добавления, конфликты и удаления.
  • Автообновление — каналы stable и beta через Sparkle, с собственным окном обновления.
  • Крошечная загрузка — всё приложение помещается в .dmg размером менее 3 MB.
  • Базовая блокировка не требует системных разрешений — дополнительный расширенный режим, защищённый разрешением Accessibility, открывает более тонкие правила для URL и поля с фокусом.
  • Автоматизация — URL-схема lockime:// позволяет другим приложениям, скриптам и Shortcuts управлять LockIME (см. ниже).

Comparison

Две наиболее широко используемые альтернативы LockIME — это Input Source Pro и KeyboardHolder, наряду с длинным хвостом из менее известных инструментов с открытым кодом и CLI. Все они переключают источник ввода, когда вы перемещаетесь между приложениями или сайтами; LockIME же построен вокруг непрерывной блокировки, которая повторно применяет его в тот же момент, когда он отклоняется, — при этом любое правило по-прежнему может свестись к однократному переключению.

LockIMEInput Source ProKeyboardHolder
ЦенаБесплатноБесплатноБесплатно (пожертвование)
Открытый кодGPL-3.0GPL-3.0✗ (закрытый)
Минимальная macOS141110.15
Размер загрузки< 3 MB≈ 7.6 MB≈ 4.5 MB
Правила для приложений
Правила для сайтов / URL
Типы сопоставления URLподдомен · точный · ключевое слово · регулярное выражениеподдомен · точный · регулярное выражениедомен (с подстановкой)
Правило для адресной строки (поле URL)✓ (блокировка/переключение/приоритет)✓ (источник по умолчанию)
Непрерывная повторная блокировка
Блокировка или однократное переключение, для каждого правила
Глобальные сочетания клавиш
Управление из строки меню
Экранные подсказки ввода✓ (опционально)
Журнал срабатываний за 24 часа
Резервная копия / импорт конфигурации✓ (.lockime, с предпросмотром)✓ (экспорт/импорт + CLI)
Автоматизация через URL-схему✓ (lockime://, x-callback-url)частично (импорт inputsourcepro://)
Языки интерфейса9 (смена на лету)6zh · en · ja
Системные разрешенияне нужны для базовой · Accessibility для URLне нужны для базовой · Accessibility для URLAccessibility¹
АвтообновлениеSparkle (stable + beta)
Активно поддерживается (2026)

¹ KeyboardHolder не документирует свои требования к разрешениям; чтение адресной строки браузера для его правил по сайтам на практике требует доступа Accessibility. «—» обозначает недокументированную возможность, а не подтверждённое отсутствие.

Что выбрать: у Input Source Pro самое большое сообщество и самые богатые экранные подсказки ввода; KeyboardHolder — отточенная, не требующая настройки память для приложений. Обращайтесь к LockIME, когда хотите закрепить источник ввода — для приложения, URL или в адресной строке, с повторным применением в тот же миг, когда что-либо его меняет, — а не только переключать его при входе.

Другие инструменты: SwitchKey (только для приложений, больше не поддерживается), Kawa (ручное переключение по сочетаниям клавиш), InputSwitcher (freemium, только для приложений) и macism (CLI-компонент, а не графический переключатель).

Сравнение с Input Source Pro 2.11.0 и KeyboardHolder 1.14.10, середина 2026 года — детали меняются, поправки приветствуются.

Automation

LockIME предоставляет URL-схему lockime://, чтобы другие приложения, скрипты, Shortcuts и лаунчеры могли управлять им — включать и выключать его, менять источник ввода, управлять правилами и считывать состояние через колбэки x-callback-url. По умолчанию она выключена — включите её в Настройки ▸ Основные ▸ Автоматизация.

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"

Полная справка: URL Scheme API.

Design

LockIME следует единой системе дизайна (Sources/LockIME/UI/DesignSystem.swift): семантические цвета, системные материалы и SF Symbols обеспечивают адаптацию к светлой/тёмной теме; Liquid Glass зарезервирован только за плавающим/навигационным слоем. Фирменный акцентный цвет «Lock Indigo» поставляется как ассет AccentColor. Полная спецификация — в docs/DESIGN.md.

Иконка приложения генерируется программно (без дизайнерских инструментов) — пересоздайте её командой:

./scripts/make-appicon.sh   # renders the master via SwiftUI and rebuilds the appiconset

Development

Требуются Xcode 26+ (само приложение нацелено на macOS 14+), а также XcodeGen + xcbeautify (brew install xcodegen xcbeautify).

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)

Проект Xcode генерируется из project.yml и не хранится в репозитории.

Интеграционные тесты, затрагивающие железо (реальное переключение TIS), исключены из make test; запускайте их через make test-hw (кратковременно меняет источник ввода).

Releasing

Нотаризованные релизы с Developer ID, запускаемые через dispatch, с автообновлением Sparkle по каналам stable и beta: запустите workflow Release (Actions → Release) — он вычислит версию по git-тегам, соберёт приложение и автоматически создаст тег и GitHub Release — никогда не пушьте тег вручную. Канал beta — это ночная сборка. Каждый релиз содержит отдельные приложения для Apple silicon и Intel, каждое со своим фидом обновлений (без universal-бинарника и без обновлений между архитектурами). См. docs/RELEASING.md.

Architecture

  • LockIMEKit (статическая библиотека) — чистая, полностью покрытая модульными тестами логика, использующая только системные фреймворки: движок блокировки, монитор приложений, правила, расширенный (Accessibility) наблюдатель, модель журнала, локализация.
  • LockIME (приложение) — @main, интерфейс на SwiftUI, система дизайна и тонкие интеграционные прослойки для Sparkle, KeyboardShortcuts и PermissionFlow.

License

Copyright © 2026 Hangzhou Wumou Software Co., Ltd.