Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,67 @@ Either way, the app keeps itself up to date via Sparkle.
- **Automation** — a `lockime://` URL scheme lets other apps, scripts, and
Shortcuts drive LockIME (see below).

## Comparison

The macOS input-source landscape has two widely-used alternatives to LockIME —
**[Input Source Pro](https://github.com/runjuu/InputSourcePro)** (≈3.3k★, the
most popular) and **[KeyboardHolder](https://github.com/leaves615/KeyboardHolder)**
(≈1.6k★) — plus a long tail of smaller open-source and CLI tools. They all
*switch* the input source as you move between apps or sites; LockIME is the one
built around a continuous **lock** that re-applies the input source the moment
it drifts, while still letting any individual rule fall back to a one-time
*switch* when that is all you want.

| | LockIME | Input Source Pro | KeyboardHolder |
|---|---|---|---|
| Price | Free | Free | Free (donation) |
| Open source | GPL-3.0 | GPL-3.0 | ✗ (closed) |
| Minimum macOS | 14 | 11 | 10.15 |
| Download size | < 3 MB | ≈ 7.6 MB | ≈ 4.5 MB |
| Per-app rules | ✓ | ✓ | ✓ |
| Per-website / URL rules | ✓ | ✓ | ✓ |
| URL match types | subdomain · exact · keyword · regex | subdomain · exact · regex | domain (wildcard) |
| Address-bar (URL field) rule | ✓ (lock/switch/priority) | ✓ (default source) | — |
| Continuous re-lock | ✓ | ✗ | ✗ |
| Lock *or* one-time switch, per rule | ✓ | ✗ | ✗ |
| Global keyboard shortcuts | ✓ | ✓ | ✗ |
| Menu-bar control | ✓ | ✓ | ✓ |
| On-screen input hints | ✗ | ✓ | ✓ (optional) |
| 24-hour activation log | ✓ | ✗ | ✗ |
| Config backup / import | ✓ (`.lockime`, with review) | ✓ (export/import + CLI) | — |
| URL-scheme automation | ✓ (`lockime://`, x-callback-url) | partial (`inputsourcepro://` import) | ✗ |
| UI languages | 9 (live switch) | 6 | zh · en · ja |
| System permissions | none for core · Accessibility for per-URL | none for core · Accessibility for per-URL | Accessibility¹ |
| Auto-update | Sparkle (stable + beta) | ✓ | ✓ |
| Actively maintained (2026) | ✓ | ✓ | ✓ |

¹ KeyboardHolder does not document its permission requirements; reading the
browser address bar for its per-website rules requires Accessibility access in
practice.

**Other tools worth knowing:**
[SwitchKey](https://github.com/itsuhane/SwitchKey) (≈959★, GPL-3.0, automatic
per-app only, unmaintained since 2021),
[Kawa](https://github.com/hatashiro/kawa) (≈1.5k★, MIT, *manual* shortcut-driven
switching, unmaintained since 2017), InputSwitcher (freemium, per-app only), and
[macism](https://github.com/laishulu/macism) (a CLI building block for editor
integration, not a GUI switcher).

**Where LockIME fits:** choose **Input Source Pro** for the largest community and
the richest on-screen input hints — a floating indicator that follows your
cursor, with color schemes and position controls. Pick **KeyboardHolder** for a
polished, zero-config per-app memory that just works. Reach for **LockIME** when
you want to *pin* an input source rather than merely switch it: a hard per-app,
per-URL, or address-bar **lock** that re-applies the moment anything changes it —
with a one-time *switch* mode per rule, a `keyword` URL match type, rich
`lockime://` automation (x-callback-url, full state control), a 24-hour
activation log, the broadest localization of the group (9 languages), and the
smallest download (under 3 MB).

> Figures are approximate and were gathered mid-2026 (Input Source Pro 2.11.0,
> KeyboardHolder 1.14.10); a "—" marks an undocumented capability, not a
> confirmed absence. Stars, sizes, and capabilities drift — corrections welcome.

## Automation

LockIME exposes a `lockime://` URL scheme so other apps, scripts, Shortcuts, and
Expand Down
59 changes: 59 additions & 0 deletions docs/README/README.de.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,65 @@ Oder lade die zu deinem Mac passende `.dmg`-Datei (`-arm64` für Apple silicon,
- **Keine Systemberechtigungen für das Kern-Sperren** — ein optionaler, über Accessibility freigeschalteter erweiterter Modus ermöglicht feinere Regeln pro URL und pro fokussiertem Feld.
- **Automatisierung** — ein `lockime://`-URL-Schema lässt andere Apps, Skripte und Kurzbefehle LockIME steuern (siehe unten).

## Comparison

Die macOS-Eingabequellen-Landschaft kennt zwei weit verbreitete Alternativen zu LockIME —
**[Input Source Pro](https://github.com/runjuu/InputSourcePro)** (≈3.3k★, die
beliebteste) und **[KeyboardHolder](https://github.com/leaves615/KeyboardHolder)**
(≈1.6k★) — sowie einen langen Schwanz kleinerer Open-Source- und CLI-Tools. Sie alle
*wechseln* die Eingabequelle, während du dich zwischen Apps oder Seiten bewegst; LockIME ist
das Tool, das um eine kontinuierliche **Sperre** herum gebaut ist, die die Eingabequelle in dem
Moment erneut anwendet, in dem sie abweicht, und dabei jede einzelne Regel weiterhin auf einen
einmaligen *Wechsel* zurückfallen lassen kann, wenn das alles ist, was du willst.

| | LockIME | Input Source Pro | KeyboardHolder |
|---|---|---|---|
| Preis | Kostenlos | Kostenlos | Kostenlos (Spende) |
| Open Source | GPL-3.0 | GPL-3.0 | ✗ (geschlossen) |
| Mindest-macOS | 14 | 11 | 10.15 |
| Download-Größe | < 3 MB | ≈ 7.6 MB | ≈ 4.5 MB |
| Regeln pro App | ✓ | ✓ | ✓ |
| Regeln pro Website / URL | ✓ | ✓ | ✓ |
| URL-Abgleichstypen | Subdomain · exakt · Schlüsselwort · Regex | Subdomain · exakt · Regex | Domain (Platzhalter) |
| Adressleisten-Regel (URL-Feld) | ✓ (Sperren/Wechseln/Priorität) | ✓ (Standardquelle) | — |
| Kontinuierliches Wieder-Sperren | ✓ | ✗ | ✗ |
| Sperren *oder* einmaliger Wechsel, pro Regel | ✓ | ✗ | ✗ |
| Globale Tastatur-Kurzbefehle | ✓ | ✓ | ✗ |
| Steuerung über die Menüleiste | ✓ | ✓ | ✓ |
| Eingabe-Hinweise auf dem Bildschirm | ✗ | ✓ | ✓ (optional) |
| 24-Stunden-Aktivitätsprotokoll | ✓ | ✗ | ✗ |
| Konfigurations-Backup / -Import | ✓ (`.lockime`, mit Vorschau) | ✓ (Export/Import + CLI) | — |
| URL-Schema-Automatisierung | ✓ (`lockime://`, x-callback-url) | teilweise (`inputsourcepro://`-Import) | ✗ |
| UI-Sprachen | 9 (Wechsel zur Laufzeit) | 6 | zh · en · ja |
| Systemberechtigungen | keine für den Kern · Accessibility für Regeln pro URL | keine für den Kern · Accessibility für Regeln pro URL | Accessibility¹ |
| Automatische Updates | Sparkle (stable + beta) | ✓ | ✓ |
| Aktiv gepflegt (2026) | ✓ | ✓ | ✓ |

¹ KeyboardHolder dokumentiert seine Berechtigungsanforderungen nicht; das Auslesen der
Browser-Adressleiste für seine Regeln pro Website erfordert in der Praxis Accessibility-Zugriff.

**Weitere erwähnenswerte Tools:**
[SwitchKey](https://github.com/itsuhane/SwitchKey) (≈959★, GPL-3.0, automatisch
nur pro App, seit 2021 ungepflegt),
[Kawa](https://github.com/hatashiro/kawa) (≈1.5k★, MIT, *manuelles* kurzbefehlgesteuertes
Umschalten, seit 2017 ungepflegt), InputSwitcher (Freemium, nur pro App) und
[macism](https://github.com/laishulu/macism) (ein CLI-Baustein für die Editor-Integration, kein GUI-Umschalter).

**Wo LockIME hineinpasst:** Wähle **Input Source Pro** für die größte Community und die
umfangreichsten Eingabe-Hinweise auf dem Bildschirm — eine schwebende Anzeige, die deinem
Cursor folgt, mit Farbschemata und Positionssteuerung. Wähle **KeyboardHolder** für ein
ausgefeiltes, konfigurationsfreies Gedächtnis pro App, das einfach funktioniert. Greife zu
**LockIME**, wenn du eine Eingabequelle *fixieren* statt sie nur zu wechseln möchtest: eine
harte **Sperre** pro App, pro URL oder für die Adressleiste, die sich in dem Moment erneut
anwendet, in dem irgendetwas sie ändert — mit einem einmaligen *Wechsel*-Modus pro Regel,
einem `keyword`-URL-Abgleichstyp, umfangreicher `lockime://`-Automatisierung (x-callback-url,
vollständige Zustandskontrolle), einem 24-Stunden-Aktivitätsprotokoll, der breitesten
Lokalisierung der Gruppe (9 Sprachen) und dem kleinsten Download (unter 3 MB).

> Die Angaben sind ungefähr und wurden Mitte 2026 erhoben (Input Source Pro 2.11.0,
> KeyboardHolder 1.14.10); ein „—" kennzeichnet eine nicht dokumentierte Fähigkeit, kein
> bestätigtes Fehlen. Sterne, Größen und Fähigkeiten verschieben sich — Korrekturen willkommen.

## Automation

LockIME stellt ein `lockime://`-URL-Schema bereit, damit andere Apps, Skripte, Kurzbefehle und Launcher es steuern können — das Sperren umschalten, die Eingabequelle neu festlegen, Regeln verwalten und mit [x-callback-url](https://x-callback-url.com)-Rückrufen den Zustand auslesen. Sie ist standardmäßig aus — schalte sie unter **Einstellungen ▸ Allgemein ▸ Automatisierung** ein.
Expand Down
64 changes: 64 additions & 0 deletions docs/README/README.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,70 @@ En cualquier caso, la aplicación se mantiene actualizada mediante Sparkle.
- **Sin permisos del sistema para el bloqueo básico** — un modo mejorado opcional, protegido por Accessibility, desbloquea reglas más finas por URL y por campo con el foco.
- **Automatización** — un esquema de URL `lockime://` permite que otras aplicaciones, scripts y Shortcuts controlen LockIME (ver más abajo).

## Comparison

El panorama de fuentes de entrada en macOS tiene dos alternativas a LockIME muy
usadas — **[Input Source Pro](https://github.com/runjuu/InputSourcePro)** (≈3.3k★,
la más popular) y **[KeyboardHolder](https://github.com/leaves615/KeyboardHolder)**
(≈1.6k★) — además de una larga cola de herramientas de código abierto y de CLI
más pequeñas. Todas ellas *cambian* la fuente de entrada a medida que te mueves
entre aplicaciones o sitios; LockIME es la que está construida en torno a un
**bloqueo** continuo que vuelve a aplicar la fuente de entrada en el momento en
que se desvía, sin dejar de permitir que cualquier regla individual recurra a un
*cambio* único cuando eso es todo lo que quieres.

| | LockIME | Input Source Pro | KeyboardHolder |
|---|---|---|---|
| Precio | Gratis | Gratis | Gratis (donación) |
| Código abierto | GPL-3.0 | GPL-3.0 | ✗ (cerrado) |
| macOS mínimo | 14 | 11 | 10.15 |
| Tamaño de descarga | < 3 MB | ≈ 7.6 MB | ≈ 4.5 MB |
| Reglas por aplicación | ✓ | ✓ | ✓ |
| Reglas por sitio web / URL | ✓ | ✓ | ✓ |
| Tipos de coincidencia de URL | subdominio · exacto · palabra clave · regex | subdominio · exacto · regex | dominio (comodín) |
| Regla de barra de direcciones (campo de URL) | ✓ (bloqueo/cambio/prioridad) | ✓ (fuente predeterminada) | — |
| Rebloqueo continuo | ✓ | ✗ | ✗ |
| Bloqueo *o* cambio único, por regla | ✓ | ✗ | ✗ |
| Atajos de teclado globales | ✓ | ✓ | ✗ |
| Control desde la barra de menús | ✓ | ✓ | ✓ |
| Indicaciones de entrada en pantalla | ✗ | ✓ | ✓ (opcional) |
| Registro de activaciones de 24 horas | ✓ | ✗ | ✗ |
| Copia de seguridad / importación de la configuración | ✓ (`.lockime`, con revisión) | ✓ (exportación/importación + CLI) | — |
| Automatización con esquema de URL | ✓ (`lockime://`, x-callback-url) | parcial (importación `inputsourcepro://`) | ✗ |
| Idiomas de la interfaz | 9 (cambio en vivo) | 6 | zh · en · ja |
| Permisos del sistema | ninguno para el núcleo · Accessibility para reglas por URL | ninguno para el núcleo · Accessibility para reglas por URL | Accessibility¹ |
| Actualización automática | Sparkle (stable + beta) | ✓ | ✓ |
| Mantenido activamente (2026) | ✓ | ✓ | ✓ |

¹ KeyboardHolder no documenta sus requisitos de permisos; leer la barra de
direcciones del navegador para sus reglas por sitio web requiere acceso a
Accessibility en la práctica.

**Otras herramientas que conviene conocer:**
[SwitchKey](https://github.com/itsuhane/SwitchKey) (≈959★, GPL-3.0, solo
automático por aplicación, sin mantenimiento desde 2021),
[Kawa](https://github.com/hatashiro/kawa) (≈1.5k★, MIT, cambio *manual* dirigido
por atajos, sin mantenimiento desde 2017), InputSwitcher (freemium, solo por
aplicación) y [macism](https://github.com/laishulu/macism) (un componente de CLI
para la integración con editores, no un cambiador con interfaz gráfica).

**Dónde encaja LockIME:** elige **Input Source Pro** para la comunidad más grande
y las indicaciones de entrada en pantalla más completas — un indicador flotante
que sigue tu cursor, con esquemas de color y controles de posición. Elige
**KeyboardHolder** para una memoria por aplicación pulida y sin configuración que
simplemente funciona. Recurre a **LockIME** cuando quieras *fijar* una fuente de
entrada en lugar de solo cambiarla: un **bloqueo** estricto por aplicación, por
URL o por barra de direcciones que se vuelve a aplicar en el momento en que algo
la cambia — con un modo de *cambio* único por regla, un tipo de coincidencia de
URL `keyword`, una rica automatización `lockime://` (x-callback-url, control
total del estado), un registro de activaciones de 24 horas, la localización más
amplia del grupo (9 idiomas) y la descarga más pequeña (menos de 3 MB).

> Las cifras son aproximadas y se recopilaron a mediados de 2026 (Input Source
> Pro 2.11.0, KeyboardHolder 1.14.10); un «—» marca una capacidad no
> documentada, no una ausencia confirmada. Las estrellas, los tamaños y las
> capacidades cambian — se agradecen las correcciones.

## Automation

LockIME expone un esquema de URL `lockime://` para que otras aplicaciones, scripts, Shortcuts y lanzadores puedan controlarlo: activar o desactivar el bloqueo, recambiar la fuente de entrada, gestionar reglas y leer el estado de vuelta con callbacks de [x-callback-url](https://x-callback-url.com). Está desactivada por defecto — actívala en **Ajustes ▸ General ▸ Automatización**.
Expand Down
68 changes: 68 additions & 0 deletions docs/README/README.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,74 @@ Ou téléchargez le `.dmg` correspondant à votre Mac (`-arm64` pour Apple silic
- **Aucune permission système pour le verrouillage de base** — un mode renforcé optionnel, soumis à l'autorisation Accessibility, débloque des règles plus fines par URL et par champ ayant le focus.
- **Automatisation** — un schéma d'URL `lockime://` permet à d'autres applications, scripts et Shortcuts de piloter LockIME (voir ci-dessous).

## Comparison

Le paysage des sources de saisie sous macOS compte deux alternatives largement
utilisées à LockIME —
**[Input Source Pro](https://github.com/runjuu/InputSourcePro)** (≈3.3k★, la
plus populaire) et **[KeyboardHolder](https://github.com/leaves615/KeyboardHolder)**
(≈1.6k★) — ainsi qu'une longue série d'outils open-source et CLI plus modestes.
Tous *basculent* la source de saisie à mesure que vous passez d'une application
ou d'un site à l'autre ; LockIME est celle qui est conçue autour d'un
**verrouillage** continu qui réapplique la source de saisie dès qu'elle dévie,
tout en laissant chaque règle individuelle se rabattre sur une *bascule* unique
lorsque c'est tout ce que vous voulez.

| | LockIME | Input Source Pro | KeyboardHolder |
|---|---|---|---|
| Prix | Gratuit | Gratuit | Gratuit (don) |
| Open source | GPL-3.0 | GPL-3.0 | ✗ (fermé) |
| macOS minimum | 14 | 11 | 10.15 |
| Taille de téléchargement | < 3 MB | ≈ 7.6 MB | ≈ 4.5 MB |
| Règles par application | ✓ | ✓ | ✓ |
| Règles par site / URL | ✓ | ✓ | ✓ |
| Types de correspondance d'URL | sous-domaine · exact · mot-clé · regex | sous-domaine · exact · regex | domaine (joker) |
| Règle de barre d'adresse (champ URL) | ✓ (verrouillage/bascule/priorité) | ✓ (source par défaut) | — |
| Reverrouillage continu | ✓ | ✗ | ✗ |
| Verrouiller *ou* basculer une fois, par règle | ✓ | ✗ | ✗ |
| Raccourcis clavier globaux | ✓ | ✓ | ✗ |
| Contrôle depuis la barre de menus | ✓ | ✓ | ✓ |
| Indications de saisie à l'écran | ✗ | ✓ | ✓ (optionnel) |
| Journal d'activation sur 24 heures | ✓ | ✗ | ✗ |
| Sauvegarde / import de la configuration | ✓ (`.lockime`, avec prévisualisation) | ✓ (export/import + CLI) | — |
| Automatisation par schéma d'URL | ✓ (`lockime://`, x-callback-url) | partiel (import `inputsourcepro://`) | ✗ |
| Langues de l'interface | 9 (changement à chaud) | 6 | zh · en · ja |
| Permissions système | aucune pour le cœur · Accessibility par URL | aucune pour le cœur · Accessibility par URL | Accessibility¹ |
| Mise à jour automatique | Sparkle (stable + beta) | ✓ | ✓ |
| Activement maintenu (2026) | ✓ | ✓ | ✓ |

¹ KeyboardHolder ne documente pas ses exigences en matière de permissions ; la
lecture de la barre d'adresse du navigateur pour ses règles par site nécessite
en pratique l'accès Accessibility.

**Autres outils à connaître :**
[SwitchKey](https://github.com/itsuhane/SwitchKey) (≈959★, GPL-3.0, uniquement
par application automatique, non maintenu depuis 2021),
[Kawa](https://github.com/hatashiro/kawa) (≈1.5k★, MIT, bascule *manuelle*
pilotée par raccourci, non maintenu depuis 2017), InputSwitcher (freemium,
uniquement par application), et
[macism](https://github.com/laishulu/macism) (une brique CLI pour l'intégration
aux éditeurs, pas un commutateur graphique).

**Où se situe LockIME :** choisissez **Input Source Pro** pour la plus grande
communauté et les indications de saisie à l'écran les plus riches — un
indicateur flottant qui suit votre curseur, avec des palettes de couleurs et des
réglages de position. Optez pour **KeyboardHolder** pour une mémoire par
application soignée et sans configuration, qui fonctionne tout simplement.
Tournez-vous vers **LockIME** lorsque vous voulez *épingler* une source de saisie
plutôt que simplement la basculer : un **verrouillage** strict par application,
par URL ou par barre d'adresse qui se réapplique dès que quoi que ce soit la
change — avec un mode *bascule* unique par règle, un type de correspondance d'URL
`keyword`, une riche automatisation `lockime://` (x-callback-url, contrôle
complet de l'état), un journal d'activation sur 24 heures, la localisation la
plus large du groupe (9 langues), et le plus petit téléchargement (moins de
3 MB).

> Les chiffres sont approximatifs et ont été recueillis à la mi-2026 (Input
> Source Pro 2.11.0, KeyboardHolder 1.14.10) ; un « — » signale une capacité non
> documentée, et non une absence confirmée. Les étoiles, les tailles et les
> capacités évoluent — les corrections sont les bienvenues.

## Automation

LockIME expose un schéma d'URL `lockime://` afin que d'autres applications, scripts, Shortcuts et lanceurs puissent le piloter — activer/désactiver le verrouillage, recibler la source de saisie, gérer les règles et relire l'état grâce aux rappels [x-callback-url](https://x-callback-url.com). Elle est désactivée par défaut — activez-la dans **Réglages ▸ Général ▸ Automatisation**.
Expand Down
Loading
Loading