Rojetto / ReNeo

Neo-Tastaturlayouts für Windows
GNU General Public License v3.0
57 stars 11 forks source link

ReNeo – Die Neo-Tastaturlayouts für Windows

Click here for English

ReNeo implementiert das Neo-Tastaturlayout und seine Verwandten für Windows. Dabei kann man sich für eine von zwei Varianten entscheiden:

  1. Im Standalone-Modus ersetzt ReNeo alle Tastendrücke des nativen Layouts (meistens QWERTZ) durch das gewünschte Neo-Layout. Dafür muss zum Systemstart nur die ReNeo-EXE ausgeführt werden.
  2. Im Erweiterungsmodus installiert man einen nativen Neo-Treiber wie kbdneo. ReNeo ergänzt dann alle Funktionen, die nativ nicht umsetzbar sind (Capslock, Steuertasten auf Ebene 4, Compose, ...).

ReNeo Bildschirmtastatur Ebene 1

Installation

  1. Optional: kbdneo normal installieren
  2. Neuesten ReNeo-Release herunterladen und in ein Verzeichnis mit Schreibrechten entpacken (z. B. C:\Users\[USER]\ReNeo)
  3. reneo.exe starten oder zu Autostart hinzufügen. Über das Trayicon kann das Programm deaktiviert und beendet werden.
  4. Optional: config.json anpassen (wird beim ersten Start generiert)

Update

Neuen Release herunterladen und vorhandene Dateien mit den neuen überschreiben. Da config.json nicht im Release enthalten ist, bleiben Nutzereinstellungen erhalten.

Deinstallation

  1. Optional: kbdneo nach Wiki-Anleitung deinstallieren
  2. ReNeo-Verzeichnis löschen und aus Autostart entfernen

Funktionen

Allgemein:

Als Erweiterung zum nativen Treiber:

Konfiguration

ReNeo kann mit zwei Konfigurationsdateien angepasst werden.

Allgemeine Konfiguration

config.json hat folgende Optionen:

Layouts anpassen

In layouts.json können Layouts angepasst und hinzugefügt werden. Jeder Eintrag besitzt folgende Parameter:

Zum Erstellen neuer Layouts hat sich folgender Arbeitsablauf bewährt:

  1. Bestehendes Layout kopieren und neuen Namen eintragen
  2. Die Zeilen der Buchstabentasten (also ab Scancode 0C) neu ordnen, sodass diese auf der Tastatur von oben links nach unten rechts gelesen in der richtigen Reihenfolge sind.
  3. Mit Blockauswahl die Scancodes eines bestehenden Layouts kopieren, und die (jetzt falsch geordneten) Scancodes des neuen Layouts überschreiben.
  4. Mit Blockauswahl Ebenen 3 und 4 eines bestehenden Layouts kopieren, und Ebenen 3 und 4 des neuen Layouts überschreiben.
  5. modifiers und capslockableKeys ggf. anpassen

So bleiben Ebenen 3 und 4 an der richtigen Stelle, und die anderen Ebenen werden nach der neuen Buchstabenanordnung permutiert.

Folgende Regex kann beim Ausrichten der Spalten helfen: "[\dA-Fa-f]+\+?": *\[(\{.*?\}, *){5}\{

Virtuelle Maschinen und Remote Desktop

Sobald mehrere „ineinander“ laufende Betriebssysteme ins Spiel kommen, wird es mit alternativen Tastaturlayouts fast immer haarig. Da sich die verschiedenen VM-Programme und Remote Desktop Clients unterschiedlich verhalten, gibt es leider keine universelle Lösung, sondern nur eine grundsätzliche Empfehlung und ein paar erprobte Konfigurationen.

Für beste Kompatibilität sollte im Allgemeinen das innerste System das Alternativlayout übernehmen, und in allen äußeren Systeme QWERTZ eingestellt sein. Bei VMs bedeutet das QWERTZ im Wirt und den passenden Neo-Treiber im Gast. Im Fall von Remote-Desktop-Verbindungen heißt es QWERTZ lokal und einen Neo-Treiber im Remote-System.

Wenn sich herausstellt, dass es ohne ReNeo besser funktioniert, können die entsprechenden Programme auch auf die Blacklist gesetzt werden, sodass sich ReNeo automatisch deaktiviert. Siehe dazu Konfiguration.

WSL mit VcXsrv als X-Server

In Windows QWERTZ (ohne ReNeo), dann das Neo-Layout in X11 einstellen. Für Neo lautet der Befehl setxkbmap de neo, für andere Layouts muss eventuell noch eine passende xkbmap installiert werden.

VirtualBox

Im Wirtsystem QWERTZ einstellen, dann Neo-Treiber (z. B. ReNeo) im Gastsystem installieren.

Remote Desktop Manager

Es geht offenbar auch ReNeo im Standalone-Modus auf dem lokalen System mit QWERTZ auf dem Remote-System. Zumindest Buchstaben und (nicht-Unicode)-Sonderzeichen werden dann auf die Remote-Systeme korrekt weitergeleitet.

Für Entwickler

Kompilieren

ReNeo ist in D geschrieben und nutzt dub für Projektkonfiguration und Kompilation. Es gibt drei wichtige Kompilationsvarianten:

  1. Debug mit dub build: Neben Debuggingsymbolen öffnet die generierte EXE eine Konsole um Informationen ausgeben zu können.
  2. Debug und Log mit dub build --build=debug-log: Wie debug, nur dass zusätzlich in reneo_log.txt alle Konsolenausgaben abgespeichert werden. Achtung: Hier können potentiell sensible Daten landen.
  3. Release mit dub build --build=release: Optimierungen sind aktiviert und es wird keine Konsole geöffnet.

Die Ressourcendatei res/reneo.res wird mit rc.exe aus dem Windows SDK erstellt (x86-Version, die generierte res-Datei funktioniert sonst nicht). Dazu reicht der Befehl rc.exe reneo.rc.

Cairo-DLL stammt von https://github.com/preshing/cairo-windows. Die zugehörigen D-Header wurden mit DStep aus den C-Headern generiert und manuell angepasst.

Release

Wenn ein Tag nach dem Schema v* im Repo ankommt, löst eine GitHub Action den Release aus. Auf Basis der config.[layout].json Dateien werden verschiedene vorkonfigurierte ZIP-Archive erstellt und ein Release-Draft angelegt. Der kann dann manuell bearbeitet und freigeschaltet werden.

Bibliotheken

Nutzt Cairo, lizensiert unter der GNU Lesser General Public License (LGPL) Version 2.1.