ReNeo implementiert das Neo-Tastaturlayout und seine Verwandten (Bone, NeoQwertz usw.) für Windows. Es eignet sich zum Ausprobieren, für die kurzfristige Nutzung an fremden Rechnern, aber auch als dauerhafte Lösung. Dabei sind weder Installation, noch Neustart oder Admin-Rechte erforderlich.
1. Im _Standalone-Modus_ ersetzt ReNeo alle Tastendrücke des nativen Layouts (in der Regel Qwertz) durch das gewünschte Neo-Layout. Dafür muss lediglich `reneo.exe` ausgeführt werden, bspw. über einen Autostart-Eintrag.
1. Im _Erweiterungsmodus_ installiert man zusätzlich den nativen Neo-Treiber [kbdneo](kbdneo.md) bzw. dessen Varianten für Bone oder NeoQwertz. ReNeo ergänzt dann automatisch alle Funktionen, die nativ nicht umsetzbar sind: dazu gehören Capslock, Steuertasten auf Ebene 4, Compose, bessere Kompatibilität mit bestimmten Programmen, usw.
- ReNeo [herunterladen](../Download/index.md) (oder [hier](https://github.com/Rojetto/ReNeo/releases/latest)) und in ein Verzeichnis mit Schreibrechten entpacken (z.B. `C:\Users\[USER]\ReNeo`).
Bei Notebooks, die im den Ziffernblock im Hauptfeld integriert haben (bei eingeschaltetem Numlock), sollte die Option `autoNumlock` ausgeschaltet werden. Diese ist standardmäßig eingeschaltet, was nach dem Start zu einem dauerhaft aktivierten Ziffernblock führt und somit einen Teil der Tastatur unbrauchbar macht.
Setzt man diese Einstellung auf `false`, behält ReNeo den (meist ausgeschalteten) Numlock-Status beim Start bei. [Siehe dazu hier](#konfiguration) unter `autoNumlock`.
- Unterstützt von Haus aus die folgenden Neo-basierten Layouts: Neo, Bone, NeoQwertz, AdNW, KOY, Mine, [3l](https://github.com/jackrosenthal/threelayout)
- ein Wechsel zwischen diesen Layouts erfolgt über das Traymenü
- weitere Layouts können in `layouts.json` (siehe [Layouts anpassen](#layouts-anpassen)) hinzugefügt und/oder angepasst werden
- Alle Zeichen von toten Tasten und [Compose-Sequenzen](#compose) im Linux-kompatiblen Format. Diese sind auch durch den Nutzer erweiterbar. Beim Start werden alle `.module`-Dateien im Verzeichnis `compose/` geladen.
- Capslock (beide Shift-Tasten) und Mod4-Lock (beide Mod4-Tasten)
- ++Shift+Pause++ (de-)aktiviert ReNeo
- Bildschirmtastatur: Wird über Traymenü ein- und ausgeschaltet, oder per Shortcut ++Mod3+F1++. Die Anzeige wechselt zwischen den Ebenen, wenn Modifier gedrückt werden.
- Einhandmodus: Ist dieser Modus aktiv, wird bei gedrückt gehaltener Leertaste (einstellbar) die gesamte Tastatur „gespiegelt“. Umschalten ist über das Tray-Menü oder per Shortcut ++Mod3+F10++.
Alle Shortcuts sind einstellbar, siehe [Konfiguration](#konfiguration) unter `hotkeys`.
- Wird das native Layout als Neo-verwandt erkannt (kbdneo.dll, kbdbone.dll oder kbdgr2.dll), schaltet ReNeo automatisch in den Erweiterungsmodus. Das Umschalten zwischen nativen Layouts über die Windows-Einstellungen ist ganz normal möglich.
- Verbesserte Kompatibilität mit Qt- und GTK-Anwendungen. Workaround für [diesen Bug](https://git.neo-layout.org/neo/neo-layout/issues/510).
- Compose-Taste ++Mod3+Tab++ sendet keinen (zusätzlichen) Tab mehr an die Anwendung. Workaround für [diesen Bug](https://git.neo-layout.org/neo/neo-layout/issues/397).
### Bildschirmtastatur
Mit der Tastenkombination ++Mod3+F1++ erhält man eine graphische Zusammenfassung der Neo-Tastatur. Sie erleichtert das Finden eines noch nicht so vertrauten Zeichens und hilft zudem beim Erlernen des Blindschreibens, da der Blick auf den Bildschirm und nicht auf die Tastatur gerichtet ist. Werden während der Anzeige der Tastatur verschiedene Modifier (++Shift++, ++Mod3++, ++Mod4++) oder Kombinationen gedrückt, so springt die Abbildung automatisch in die entsprechende Ebene.
![image](images/reneo-bst.png)
Die Bildschirmtastatur ist halbtransparent und kann am linken oder rechten Rand angefasst und vergrößert oder verkleinert werden. Hält man sie an einer beliebigen Taste fest, lässt sie sich frei auf dem Bildschirm verschieben. Sie kann durch erneutes Drücken von ++Mod3+F1++ beendet werden.
Sämtliche Unicode-Zeichen lassen sich direkt durch Eingabe ihres [Codepoints](https://en.wikipedia.org/wiki/Unicode#Architecture_and_terminology) (in hexadezimaler Schreibweise) generieren. Dazu ist die Compose-Sequenz `♫uu`, gefolgt vom Codepoint und einem Leerzeichen (`␣`), einzugeben. Führende Nullen werden ignoriert.
Ähnlich wie bei Unicode-Zeichen können auch römische Zahlen automatisch generiert werden. Dazu wird die Compose-Sequenz `♫rn` (kleine Buchstaben) bzw. `♫RN` (große Buchstaben) verwendet. Beispielsweise erzeugt `♫rn74␣` die Zeichenfolge ⅼⅹⅹⅰⅴ, und `♫RN74␣` entsprechend ⅬⅩⅩⅠⅤ.
Ist das native Layout bereits Neo-verwandt (wie kbdneo), verändert ReNeo das Layout nicht und schaltet stattdessen automatisch in den Erweiterungsmodus.
- **false**: Ist das native Layout Neo-verwandt, schaltet ReNeo in den Erweiterungsmodus. Bei allen anderen Layouts deaktiviert sich ReNeo automatisch.
-`standaloneLayout`: Das Layout, das für den Standalone-Modus genutzt werden soll. Dies lässt sich auch über das Traymenü auswählen, unter allen Layouts, in die `layouts.json` definiert sind.
-`language`: Sprache des Programms. Zur Auswahl stehen `german` und `english`.
-`osk`: Die folgenden Optionen beeinflussen die Darstellung der Bildschirmtastatur
-`numpad`: Soll das Numpad in der Bildschirmtastatur angezeigt werden?
-`numberRow`: Soll die Zahlenreihe angezeigt werden?
-`theme`: Farbschema für Bildschirmtastatur. Mögliche Werte: `Grey` und `NeoBlue`
-`layout`: `iso` oder `ansi`
-`modifierNames`: `standard` (Mod3, Mod4 usw.) oder `three` (Sym, Cur) für das Three-Layout
-`hotkeys`: Hotkeys für verschiedene Funktionen. Beispiel: `Ctrl+Alt+F5` oder `Shift+Alt+Key_A`. Erlaubte Modifier sind Shift, Ctrl, Alt, Win. Die Haupttaste ist ein beliebiger VK aus [dieser Auflistung](https://github.com/Rojetto/ReNeo/blob/5bd304a7c42c768ed45813095ab5fbc69103773c/source/mapping.d#L17), die auf der [Win32-Doku](https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes) basiert. Ist ein Wert `null`, wird kein globaler Hotkey angelegt.
-`toggleOSK`: Bildschirmtastatur öffnen/schließen. Zusätzlich zu dem hier konfigurierten Hotkey funktioniert immer ++Mod3+F1++.
-`toggleOneHandedMode`: Einhandmodus (de)aktivieren. Zusätzlich funktioniert immer ++Mod3+F10++.
-`blacklist`: Eine Liste von Programmen, für die ReNeo automatisch deaktiviert werden soll (z.B. X-Server, Remote-Clients oder Spiele, bei denen es sonst Konflikte gibt). Momentan wird nach dem Fenstertitel entschieden, für den man einen regulären Ausdruck.
!!! example "Beispiel"
Für Fenster, die "emacs" oder "Virtual Machine Manager" im Titel enthalten, soll ReNeo sich deaktivieren. Die Config enthält dann diesen Abschnitt:
``` json
"blacklist": [
{
"windowTitle": "emacs"
},
{
"windowTitle": "Virtual Machine Manager"
}
]
```
-`autoNumlock`: Soll Numlock automatisch eingeschaltet werden? Wenn die Tastatur einen echten Ziffernblock besitzt, sollte diese Option für [beste Kompatibilität](https://github.com/Rojetto/ReNeo/issues/32) immer auf `true` gesetzt sein. Bei Laptops mit nativer Numpad-Ebene im Hauptfeld kann dieses Verhalten aber mit `false` deaktiviert werden.
-`filterNeoModifiers`:
- **true** (Standard): Die Tastenevents für ++Mod3++ und ++Mod4++ werden im Erweiterungsmodus von ReNeo weggefiltert, Anwendungen bekommen von diesen Tasten also nichts mit. Workaround für [diesen Bug](https://git.neo-layout.org/neo/neo-layout/issues/510).
- **false**: Anwendungen sehen Mod3/Mod4. Dies ist notwendig, wenn man in den Anwendungen mit diesen Tasten Optionen verknüpfen will.
-`oneHandedMode`:
-`mirrorKey`: Scancode der Taste zum Spiegeln. Standardmäßig ist die Leertaste (Scancode 44) eingestellt.
-`mirrorMap`: Zuordnung der gespiegelten Tasten nach Scancode in der Form `"[Originaltaste]": "[Spiegeltaste]"`. Muss für ergonomische oder Matrixtastaturen ggf. angepasst werden.
Die nachfolgenden Abschnitte sind nicht notwendig zur Verwendung von ReNeo. Sie sind dann von Interesse, wenn man Layouts nach eigenen Wünschen detailliert anpassen oder komplett eigene Layouts erstellen möchte.
### Layouts anpassen
In `layouts.json` können Layouts angepasst und hinzugefügt werden. Jeder Eintrag besitzt folgende Parameter:
-`name`: Name des Layouts, so wie er im Menü angezeigt wird.
-`dllName` (optional): Name der zugehörigen nativen Treiber-DLL. Existiert diese nicht, kann der Parameter weggelassen werden.
-`modifiers`: Scancodes der Modifier Shift, Mod3 und Mod4 (links und rechts). Mit `+` am Ende wird das Extended-Bit gesetzt, zum Beispiel `36+` für die rechte Shift-Taste. Mögliche Modifier sind `LShift`, `LCtrl`, `LAlt`, `LMod3`, `LMod4` (jeweils auch rechte Variante) sowie weitere Mod-Tasten `Mod5` bis `Mod9`.
-`layers`: Modifier-Kombinationen für jede Ebene. Die Ebenen werden zur Laufzeit nacheinander in der gegebenen Reihenfolge getestet. Es wird die erste Ebene übernommen, deren Modifier die spezifizierten Werte haben.
-`mods`: (Optional, nur für VK-Mappings) Modifier, die gedrückt (`true`) oder losgelassen (`false`) werden sollen. Beispiel: `"mods": {"LCtrl": true, "LAlt": true}`. Mögliche Modifier sind `LShift`, `RShift`, `LCtrl`, `RCtrl`, `LAlt`.
Zum Erstellen neuer Layouts hat sich folgender Arbeitsablauf bewährt:
1. Bestehendes Layout kopieren und neuen Namen eintragen
1. 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.
1. Mit Blockauswahl die Scancodes eines bestehenden Layouts kopieren, und die (jetzt falsch geordneten) Scancodes des neuen Layouts überschreiben.
1. Mit Blockauswahl Ebenen 3 und 4 eines bestehenden Layouts kopieren, und Ebenen 3 und 4 des neuen Layouts überschreiben.
1.`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.
ReNeo lädt beim Start automatisch alle Compose-Sequenzen, die sich im Verzeichnis `compose/` neben der .exe-Datei befinden. Das Format entspricht dem unter Linux üblichen Format von [XCompose](https://wiki.ubuntuusers.de/Sonderzeichen/#Eigene-Tastenkombinationen). Neben den `.module`-Dateien gibt es auch `.remove`-Dateien. Deren Inhalt _löscht_ eine identische Definition, was notwendig ist, falls mehrere Module-Dateien dieselbe Tastenkombination unterschiedlich belegen wollen. Die Dateien können nach Belieben verändert sowie neue Dateien hinzugefügt werden.