Merge branch 'feature/keyboard-adapter'

This commit is contained in:
Ulli Kehrle 2021-01-20 21:41:48 +01:00
commit b6aadf0838
Signed by untrusted user: hrnz
GPG Key ID: 06E88726998AB3C7
3 changed files with 38 additions and 0 deletions

View File

@ -4,6 +4,7 @@ Nachdem du dich ein wenig mit Neo beschäftigt hast und dir über alle Vor- und
Keine Panik: Das Einrichten ist einfacher, als die Länge dieser Seite befürchten lässt. Diese Seite dient als Überblick und Einstieg in die einzelnen Anleitungen. Da Neo auf verschiedenen Systemen eingerichtet werden kann, gibt es für jedes System eine eigene Anleitung.
Neben den folgenden Softwarelösungen gibt es auch Möglichkeiten, Neo mit spezieller [Hardware](../Hardware/Hardwaretreiber.md) zu nutzen.
## Windows

View File

@ -0,0 +1,36 @@
# Hardware-Treiber
Möchte oder kann man das Layout softwareseitig nicht ändern, besteht die Möglichkeit Neo mittels eines Tastaturadapters oder einer programmierbaren Tastatur zu nutzen.
## Umsetzungen
### Neo-Layout Projekt
Für das Neo-Layout existiert ein [Hardware-Adapter](https://github.com/Jonas-commits/Neo-Keyboard-Adapter) zum Eigenbau, welcher die Funktionalität der Neo-Tastatur weitgehend vollständig abbildet. Alle Ebenen und die wichtigsten Compose-Sequenzen sind implementiert. Weiter sind zusätzliche Features, wie das schnelle Umschalten zwischen Neo-Layout und Standard-Layout möglich.
### QMK Projekt
Das [QMK-Projekt](https://qmk.fm/) ist ein Projekt, welches einen generisches Tastaturtreiber bietet. Entweder direkt in programmierbaren Tastaturen wie der [Ergodox](Ergodox.md), oder durch Umsetzung auf Zwischensteckern wie einem [USB-USB-Konverter](https://github.com/qmk/qmk_firmware/tree/master/keyboards/converter/usb_usb). Es ist universeller nutzbar, unterstützt allerdings nicht alle Eigenarten des Neo-Layouts direkt ohne Erweiterung des QMK-Codes.
## Technik
Eine Standardtastatur sendet nicht etwa das Zeichen, welches gedrückt wird, sondern einen Code, welche die Position des Zeichens wiedergibt. Drückt man beispielsweise auf einer Qwertz-Tastatur das `Z`, wird das gleiche gesendet, wie wenn man auf einer Qwerty-Tastatur das `Y` sendet. Die Entscheidung, wie das Zeichen interpretiert wird, findet softwareseitig durch das ausgewählte Tastaturlayout statt. So wird hier bei einem deutschen Layout ein `Z` bei einem englischen ein `Y` und beim Neo-Layout ein `K` interpretiert.
Bei einer Hardware-Umsetzung greift man an dieser Stelle ein. Man sendet anstelle des eigentlich Scancodes einen anderen. Sendet man bei eingestelltem Qwertz-Layout beispielsweise anstelle des Scancodes der Taste `Z` den der Taste `K`, dann wird diese Taste als `K` interpretiert, bei eingestelltem Qwertz-Layout. Stellt man das Qwerty-Layout ein müsste man natürlich den Scancode der Taste `Y` modifizieren. Zum ummappen braucht es eine programmierbare Tastatur oder einen dedizierte Adapter mit einem Microcontroller wie einem Teensy oder Arduino Micro, welcher eine USB-Tastatur emuliert. Die eigentliche Tastatur ist über einen Adapter mit diesem Board verbunden und liest die Tastaureingaben ein. Bei Tastendruck wird eine Aktion abgeleitet. Dies kann das Senden eines Tastendrucks sein, oder aber auch eine interne Zustandsänderung, wie eine Ebenenumschaltung.
## Vor- und Nachteile
### Vorteile
* Keine Installation erforderlich
* Keine Probleme mit dem Layout bei Remote-Arbeit
* Keine Probleme bei Erkennung der zusätzlichen Modifier bei diversen Software-Produkten
* Verwendung von 2 Tastaturen mit unterschiedlichen Layouts gleichzeitig möglich (bspw. Paar-Programmierung, Remote Support)
* Vermeidung jeglicher weiterer Seiteneffekte des Layouts
* Einwandfreie Funktion von Standard-Tastenkombinationen
### Nachteile
* Spezielle Hardware erforderlich
* Beim Adapter sind Zusatzfunktionen der Tastatur nur begrenzt nutzbar (abhängig vom Umfang der Umsetzung des HID-Standards)
* Im Softwarelayout nicht enthalte Zeichen (bspw. griechische Zeichen) können nicht durch einen Tastaturcodes dargestellt werden, da sie eben nicht existieren für das Layout. Es muss sich hier der Betriebssystem-Bordmittel, wie bei Windows bspw. `Alt` + `Num-Block` bedient werden. Diese Makros funktionieren bei Windows wiederrum lückenhaft.
* Nicht nutzbar auf Laptop-Tastaturen
* Compose-Sequenzen auf Speicher der Hardware beschränkt
### Schlussfolgerung
Eine Hardwareumsetzung hat insbesondere dann Vorteile, wenn man mit Windows arbeitet, da dieser dort die meisten Probleme bereitet. Wenn man sich oft auf Remote Maschinen einwählt funktioniert die Arbeit einwandfrei. Nicht vorteilhaft ist die Verwendung dann, wenn oft Unicode-Zeichen in verschiedenen Anwendungen benötigt werden oder ohne externe Tastatur gearbeitet werden soll. Weiter sollte man auf Sonderfunktionen der verwendeten Tastatur verzichten können, da es nur schwer möglich ist, den kompletten HID-Standard in einem Adapter umzusetzen.

View File

@ -126,6 +126,7 @@ nav:
- 'Übersicht': Hardware/Standardtastatur.md
- 'Tastaturen mit Neo-Beschriftung': Hardware/NeoTastaturen.md
- 'Entwicklung einer Neo-Tastatur': Hardware/Hardwareentwicklung.md
- 'Hardware Treiber': Hardware/Hardwaretreiber.md
- 'Neo auf ergo. Tastaturen':
- 'Ergodox': Hardware/Ergodox.md
- 'Kinesis Advantage': Hardware/KinesisAdvantage.md