Kanata – In Rust komponiertes, plattformübergreifendes Open-Source-Tastatur-Remapping-Tool, mit dem sich selbst einfache Standardtastaturen sehr flexibel durch Layer, Makros und Spezialfunktionen pimpen und anpassen lassen, um den eigenen Workflow hochprofessionell zu optimieren. Das Tool chillt zwischen Tastatur und Betriebssystem und übersetzt Tasteneingaben nach einer frei definierten Konfiguration. Die ausführliche Dokumentation und ein Online-Simulator runden das Teil sauber ab.

Einige Features von Kanata:

  • Unicode-Funktion: Direkte Eingabe von Sonderzeichen per Tastenkombination
  • Maus-Emulation: Tasten können Mausbewegungen, Mausklicks & Scrollen übernehmen
  • Live-Reload: Konfigurationsänderungen stehen ohne einen Neustart direkt zur Verfügung
  • Makro-Funktion: Tastensequenzen & Texteingaben lassen sich programmieren & abspielen
  • Leader-Sequenzen: In Vim-Style definierte Leader-Taste gefolgt von einer Tastenfolge triggert geile Aktionen
  • Tap-Hold-Aktionen: Tasten führen unterschiedliche Aktionen aus, je nachdem ob sie kurz getippt oder gehalten werden
  • Textbasierte Konfiguration: Deklarative, menschenlesbare Syntax. Versionierbar, teilbar & auf jedem System reproduzierbar 🔥
  • Layer-System: Tasten besitzen mehrere Funktionen auf verschiedenen Ebenen. Eine definierte Taste aktiviert einen alternativen Layer
  • TCP-Server: Kanata kann einen Server starten, über den andere Programme automatisch Layer je nach aktiver Anwendung umschalten

Zwei Beispielszenarien:
Szenario 1: Pfeiltasten auf der Grundreihe (Layer + Tap-Hold)
Die Caps Lock Taste erhält per Tap Hold zwei Funktionen. Antippen löst Escape aus, Halten aktiviert den Navigations-Layer. J/K/L/Ö werden zu Pfeiltasten.

Normal tippen:  J K L Ö
Caps gedrückt:  ← ↓ → ↑

Szenario 2: Git-Workflow auf Speed (Makros + Leader-Sequenzen)
Mit Makros werden komplette Git-Befehle auf virtuelle Tasten gelegt, mit Leader-Sequenzen werden diese über kurze Tastenkombinationen abgerufen.

Caps Lock gedrückt halten, dann:

S = git status
A = git add .
C = git commit -m "
P = git push