00:00:00Das ist Kanata, ein Open-Source-Tool, das das volle Potenzial eurer Tastatur ausschöpft,
00:00:03indem es etwa beim kurzen Tippen eine andere Taste registriert als beim Gedrückthalten,
00:00:08mit einer Taste mehrere Tastendrücke auslöst
00:00:10oder verschiedene Ebenen für individuelle Tastenbelegungen nutzt.
00:00:12Das ist ideal für jemanden wie mich, der versucht, fast alles über die Tastatur zu erledigen.
00:00:16Aber was hat es mit dieser seltsamen Konfigurations-Syntax auf sich?
00:00:19Und warum sollte ich das anstelle von Karabiner oder anderen Tools mit K verwenden?
00:00:24Abonniert den Kanal und lasst uns direkt loslegen.
00:00:27Kanata ist der indigene Name der Irokesen für "Dorf",
00:00:30was eigentlich rein gar nichts mit Tastaturen zu tun hat.
00:00:33Aber wenn ihr euch wie ich für mechanische Tastaturen interessiert, kennt ihr vielleicht QMK,
00:00:37eine beliebte Open-Source-Firmware,
00:00:39mit der man Tasten direkt auf der Hardware umbelegen kann, bevor das Signal den PC erreicht.
00:00:42Kanata ist wie QMK, arbeitet aber auf Software-Ebene
00:00:46und unterstützt daher alle Tastaturen – sogar die eures Laptops.
00:00:49Da es in Rust geschrieben ist, arbeitet es extrem schnell
00:00:52und es gibt praktisch keine spürbare Verzögerung beim Tippen.
00:00:55Die Einrichtung ist allerdings nicht ganz ohne,
00:00:57denn nach der Installation von Kanata mit Karabiner für Mac –
00:01:00dazu später mehr –
00:01:02muss man eine Konfigurationsdatei in der von Lisp inspirierten S-Expression-Syntax schreiben,
00:01:07was wohl die eigenartigste Syntax ist, die mir je untergekommen ist.
00:01:11Anstatt den Funktionsnamen wie gewohnt außerhalb der Klammern zu schreiben,
00:01:16schreibt man ihn hier direkt neben die Argumente in die Klammern hinein.
00:01:21Noch wilder wird es, wenn man Funktionen verschachtelt,
00:01:24was in der Konfiguration ziemlich oft vorkommt.
00:01:26Weil die Funktionsnamen nie vor den Klammern stehen,
00:01:30befindet sich alles im Inneren, was anfangs echt unübersichtlich wirkt.
00:01:35Aber man gewöhnt sich nach einer Weile daran.
00:01:36Nehmen wir als einfaches Beispiel an, ich möchte die A-Taste auf X mappen.
00:01:41Das mache ich mit einer "defsource"-Funktion, um die Quelltasten mit dem Argument A festzulegen,
00:01:46und mindestens einer "deflayer"-Funktion für die Ausgabetasten.
00:01:50Ich nenne diese Ebene "base" und gebe ihr das Argument X.
00:01:53Jede Taste, die nicht in der Datei steht, verhält sich ganz normal.
00:01:57Füge ich Tasten wie B und C hinzu und mappe sie auf Y und Z, sieht das so aus.
00:02:02Glücklicherweise spielen Leerzeichen und Tabs keine Rolle,
00:02:04man kann die Tasten also für bessere Lesbarkeit beliebig anordnen.
00:02:08Hier sind noch ein paar coole Dinge, die man konfigurieren kann.
00:02:10Ich kann "Tap-Hold" einrichten: Kurzes Tippen führt Aktion A aus, Halten Aktion B.
00:02:15Dazu definiere ich ein Zeitlimit und lege die entsprechenden Tasten fest.
00:02:19In diesem Fall schreibt ein Tippen auf A ein X, während langes Halten die linke Umschalttaste aktiviert.
00:02:24Um es einfacher zu machen, kann ich mit "defvar" Variablen registrieren,
00:02:28die ich mehrfach verwende und dann mit einem Dollarzeichen referenziere.
00:02:32Das ist perfekt für "Home Row Mods", bei denen die mittlere Tastenreihe als Modifikatoren dient.
00:02:36Ehrlich gesagt wirkt das anfangs total schräg,
00:02:39aber ich habe mich so daran gewöhnt, dass ich es mir nicht mehr anders vorstellen kann.
00:02:42Ich könnte auch eine neue Ebene mit dem Namen "Editor" erstellen,
00:02:46die ich speziell für den Videoschnitt nutze, mit völlig neuen Tastenzuweisungen,
00:02:51und per Tastendruck zu dieser Ebene wechseln.
00:02:54Und für richtig fortgeschrittene Setups beim Ebenenwechsel oder anderen Aktionen
00:02:58kann man den TCP-Server von Kanata aktivieren, damit andere Apps darauf lauschen können.
00:03:03In meinem Fall hört SketchyBar auf Kanata,
00:03:06sodass mir oben auf dem Desktop angezeigt wird, wenn ich die Ebene wechsle.
00:03:10Ja, es war ein langer Weg durch die Konfiguration,
00:03:13aber nichts, wobei einem KI nicht helfen könnte.
00:03:16Aber mal im Ernst: Warum sollte man Kanata statt Karabiner-Elements nutzen?
00:03:21Immerhin kann Karabiner alles, was Kanata kann, und noch viel mehr –
00:03:24wie app- und tastaturspezifische Belegungen,
00:03:28einen intuitiven Event-Viewer zum Testen von Tasten
00:03:30und eine grafische Benutzeroberfläche für alle, die das Terminal meiden.
00:03:35Aber für mich war das Tap-Hold-Feature bei Karabiner, gerade für Home Row Mods, unzureichend.
00:03:40Es brauchte viel Recherche und Konfigurationsaufwand, bis es überhaupt lief.
00:03:45Und selbst dann war es nicht so präzise wie bei Kanata.
00:03:49Oft wurden Halte-Vorgänge fälschlicherweise als einfaches Tippen registriert.
00:03:51Kanata hingegen beherrschte dieses Feature sofort perfekt, ohne mühsames Feintuning.
00:03:56Seitdem hatte ich nie das Bedürfnis, zu Karabiner-Elements zurückzukehren.
00:03:59Wenn ihr also Home Row Mods wollt, empfehle ich Kanata.
00:04:03Perfekt ist es allerdings auch nicht.
00:04:05Man braucht für verschiedene Tastaturen eigene Konfigurationsdateien,
00:04:09was nervig ist, wenn man eine Tastatur abzieht,
00:04:12da man das neue Mapping manuell per Befehl aktivieren muss.
00:04:15Ich konnte die Play/Pause-Taste meiner Tastatur nicht auf F8 umbelegen,
00:04:20was mit Karabiner problemlos möglich war.
00:04:22Und für die MX Master Maus waren einige Anpassungen nötig, damit alles funktionierte.
00:04:26Zum Glück konnte ich für die meisten Probleme Lösungen zusammenbasteln,
00:04:30die ich vielleicht bald als Open Source veröffentliche.
00:04:31Ich wünschte nur, Kanata hätte eine größere Community –
00:04:34was dieses Video hoffentlich ändert, wenn ihr es fleißig teilt, oder?