summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/README.txt40
-rw-r--r--plum-tastatur/INSTALL.txt72
-rw-r--r--plum-tastatur/README.txt150
-rw-r--r--windows/README.txt76
-rw-r--r--windows/autohotkey/CHANGES.txt106
-rw-r--r--windows/kbdneo2/Quelldateien/1st_README.txt34
-rw-r--r--windows/kbdneo2/Treiber/1stREADME.txt84
-rw-r--r--windows/kbdneo2/ahk_für_kbdneo2_Test/1stREADME.txt36
8 files changed, 299 insertions, 299 deletions
diff --git a/linux/README.txt b/linux/README.txt
index 31512a7..2020d91 100644
--- a/linux/README.txt
+++ b/linux/README.txt
@@ -1,20 +1,20 @@
-== Neo 2.0 für Linux ==
-Für viele Linuxdistributionen sind hier Treiber zu finden.
-
-=== X ===
-Dieser Treiber ersetzt die veraltete Neo Version 1.0, die bei allen
-Linuxdistributionen schon dabei ist. Zur sauberen Installation braucht man
-Administrator-Rechte (root-Rechte).
-
-=== xmodmap ===
-Dieser Treiber nutzt das Programm xmodmap des X-Servers. Man braucht also
-keine Administrator-Rechte (root-Rechte), um diesen zu nutzen. Allerdings hat
-man hiermit bei der Anmeldung keine Neo-Tastaturbelegung (bei der
-Passworteingabe bedenken!). Jedoch hat man hiermit den Vorteil hoher
-Portabilität: Beispielsweise die Xmodmap-Datei auf einen USB-Stick kopieren
-und in den fremden Linux-Rechner einstecken, schon kann man mit Neo tippen.
-
-=== bin ===
-Dieses Verzeichnis enthält einige nützliche Shell-Befehle zur Ausgabe der
-Neo-Tastaturbelegung (auch einzelne Ebenen) sowie die Möglichkeit, über »uiae«
-bzw. »asdf« einfach zwischen NEO und QWERT* hin- und herzuwechseln.
+== Neo 2.0 für Linux ==
+Für viele Linuxdistributionen sind hier Treiber zu finden.
+
+=== X ===
+Dieser Treiber ersetzt die veraltete Neo Version 1.0, die bei allen
+Linuxdistributionen schon dabei ist. Zur sauberen Installation braucht man
+Administrator-Rechte (root-Rechte).
+
+=== xmodmap ===
+Dieser Treiber nutzt das Programm xmodmap des X-Servers. Man braucht also
+keine Administrator-Rechte (root-Rechte), um diesen zu nutzen. Allerdings hat
+man hiermit bei der Anmeldung keine Neo-Tastaturbelegung (bei der
+Passworteingabe bedenken!). Jedoch hat man hiermit den Vorteil hoher
+Portabilität: Beispielsweise die Xmodmap-Datei auf einen USB-Stick kopieren
+und in den fremden Linux-Rechner einstecken, schon kann man mit Neo tippen.
+
+=== bin ===
+Dieses Verzeichnis enthält einige nützliche Shell-Befehle zur Ausgabe der
+Neo-Tastaturbelegung (auch einzelne Ebenen) sowie die Möglichkeit, über »uiae«
+bzw. »asdf« einfach zwischen NEO und QWERT* hin- und herzuwechseln.
diff --git a/plum-tastatur/INSTALL.txt b/plum-tastatur/INSTALL.txt
index 0150349..736f2a7 100644
--- a/plum-tastatur/INSTALL.txt
+++ b/plum-tastatur/INSTALL.txt
@@ -1,36 +1,36 @@
-
- Treiber zur Benutzung einer PLUM-Tastatur als Matrixtastatur
- Hans-Christoph Wirth <hcw*at*gmx*dot*de>
-
-* Installation unter Linux
-
- Der Treiber besteht aus einem Perlskript, welches die gerade aktive
- Belegung mittels xmodmap ausliest und verdreht wieder setzt. Es
- gibt keine (zuverlässige) Methode zu verhindern, dass dieser Vorgang
- zweimal ausgeführt wird; das Ergebnis wäre eine unbenutzbare
- Tastatureingabe. Daher sind Vorkehrungen zu treffen, im Fehlerfall
- eine nutzbare Tastaturbelegung etwa mit der Maus wiederherstellbar
- zu machen; ein Icon auf dem Desktop, welches einen Befehl der Art
- "xmodmap $HOME/.xmodmap" zur Ausführung bringt, ist dafür
- ausreichend.
-
- 1. Einstellen des gewünschten Layouts für die QWERT-Tastatur (mit
- xmodmap o.ä.)
-
- 2. Gemäß obiger Anleitung eine Strategie zum Zurückschalten
- zurechtlegen.
-
- 3. Das Skript "enable-plum" ohne Parameter aufrufen.
-
- Zu Testzwecken kann "enable-plum -n" aufgerufen werden, was die
- Befehle nur anzeigt, aber nicht ausführt.
-
-* Installation unter Windows
-
- Genutzt wird der Mechanismus von Windows, mittels eines Eintrags in
- der Registry Tastaturscancodes zu transformieren. Durch Doppelclick
- auf "Tastatur PLUM.reg" wird auf PLUM umgeschaltet, Doppelklick auf
- "Tastatur NORMAL.reg" schaltet wieder zurück.
-
- Die Änderung wird erst beim nächsten Einloggen wirksam und gilt dann
- systemweit.
+
+ Treiber zur Benutzung einer PLUM-Tastatur als Matrixtastatur
+ Hans-Christoph Wirth <hcw*at*gmx*dot*de>
+
+* Installation unter Linux
+
+ Der Treiber besteht aus einem Perlskript, welches die gerade aktive
+ Belegung mittels xmodmap ausliest und verdreht wieder setzt. Es
+ gibt keine (zuverlässige) Methode zu verhindern, dass dieser Vorgang
+ zweimal ausgeführt wird; das Ergebnis wäre eine unbenutzbare
+ Tastatureingabe. Daher sind Vorkehrungen zu treffen, im Fehlerfall
+ eine nutzbare Tastaturbelegung etwa mit der Maus wiederherstellbar
+ zu machen; ein Icon auf dem Desktop, welches einen Befehl der Art
+ "xmodmap $HOME/.xmodmap" zur Ausführung bringt, ist dafür
+ ausreichend.
+
+ 1. Einstellen des gewünschten Layouts für die QWERT-Tastatur (mit
+ xmodmap o.ä.)
+
+ 2. Gemäß obiger Anleitung eine Strategie zum Zurückschalten
+ zurechtlegen.
+
+ 3. Das Skript "enable-plum" ohne Parameter aufrufen.
+
+ Zu Testzwecken kann "enable-plum -n" aufgerufen werden, was die
+ Befehle nur anzeigt, aber nicht ausführt.
+
+* Installation unter Windows
+
+ Genutzt wird der Mechanismus von Windows, mittels eines Eintrags in
+ der Registry Tastaturscancodes zu transformieren. Durch Doppelclick
+ auf "Tastatur PLUM.reg" wird auf PLUM umgeschaltet, Doppelklick auf
+ "Tastatur NORMAL.reg" schaltet wieder zurück.
+
+ Die Änderung wird erst beim nächsten Einloggen wirksam und gilt dann
+ systemweit.
diff --git a/plum-tastatur/README.txt b/plum-tastatur/README.txt
index c068ea4..fb89f5a 100644
--- a/plum-tastatur/README.txt
+++ b/plum-tastatur/README.txt
@@ -1,75 +1,75 @@
-
- Treiber zur Benutzung einer PLUM-Tastatur als Matrixtastatur
- Hans-Christoph Wirth <hcw*at*gmx*dot*de>
-
-* Was ist eine PLUM-Tastatur?
-
- Der interessante Aspekt ist die physikalische Anordnung der Tasten.
- Während bei einer herkömmlichen Tastatur die Reihen horizontal
- gegeneinander versetzt liegen, bildet die PLUM-Tastatur eine Matrix,
- d.h. die Tastenspalten liegen streng gerade untereinander.
-
- Für uns an der PLUM-Tastatur weniger interessant ist die Belegung
- der Tasten, die in der oberen Reihe das Wort PLUM und auf der
- Grundlinie die Wörter READONTHIS bildet.
-
- Die Tastatur ist günstig und preiswert bei www.plum.bz zu beziehen
- und wird per USB-Kabel angeschlossen.
-
-* Wofür brauche ich einen Treiber?
-
- Das PLUM-Layout ist fest verdrahtet, d.h. die Tastatur sendet
- verdrehte Scancodes. Um ein Layout, welches auf einer herkömmlichen
- 105-Tasten-PC-Tastatur läuft, mit der Plum-Tastatur zu nutzen,
- müssen die verdrehten Scancodes angepasst werden.
-
-* Kann ich PLUM nur mit NEO nutzen?
-
- Die Nutzung ist völlig unabhängig von dem gewählten Layout. Der
- Treiber sorgt nur dafür, dass sich die PLUM-Tastatur möglichst so
- verhält wie eine klassische QWERT-Tastatur.
-
-* Welche Einschränkungen bestehen?
-
- Die PLUM-Tastatur hat weniger Tasten, und manche müssen umgeordnet
- werden, damit das Blindschreiben im Zentralen weiterhin ermöglicht
- wird. Im Einzelnen:
-
- - die Taste '^' links von der '1' wandert neben die rechte
- Shifttaste
- - die Taste '<' zwischen Shift und 'y' wandert nach unten
- - es gibt keine linke Windowstaste und keine Menü-Taste mehr
- - die Taste 'return' nimmt die linke Hälfte der Leertaste ein
-
- Herkömmliche Tastatur
-
- +---+ +---+---+---+---+ +---+---+---+---+ +---+---+---+---+
- |esc| |f1 |f2 |f3 |f4 | |f5 |f6 |f7 |f8 | |f9 |f10|f11|f12|
- +---+---+---+---+---+---+-+-+-+-+-+-+-+-+-+-+---+---+---+---+
- | ^ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß | ' | bsp |
- +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+
- | tab | q | w | e | r | t | z | u | i | o | p | ü | + | ret |
- +-----++--++--++--++--++--++--++--++--++--++--++--++--++ |
- | lock | a | s | d | f | g | h | j | k | l | ö | ä | # | |
- +----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+----+
- |shf | < | y | x | c | v | b | n | m | , | . | - | shf |
- +----+---++--+-+-+---+---+---+---+---+--++---+---++----+----+
- |ctrl| win| alt| spc |agr | win|menu|ctrl|
- +----+----+----+------------------------+----+----+----+----+
-
-
- PLUM-Belegung nach Installation des Treibers
-
- +---+---+---+---+---+---+---+---+---+---+---+---+---+
- |esc|f1 |f2 |f3 |f4 |f5 |f6 |f7 |f8 |f9 |f10|f11|f12|
- +---+---+---+---+---+---+---+---+---+---+---+---+---+
- | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß | ' |bsp|
- +---+---+---+---+---+---+---+---+---+---+---+---+---+
- |tab| q | w | e | r | t | z | u | i | o | p | ü | + |
- +---+---+---+---+---+---+---+---+---+---+---+---+---+
- |lck| a | s | d | f | g | h | j | k | l | ö | ä | # |
- +---+---+---+---+---+---+---+---+---+---+---+---+---+
- |shf| y | x | c | v | b | n | m | , | . | - |shf| ^ |
- +---+---+---+---+---+---+---+---+---+---+---+---+---+
- |ctr| < |alt| ret | spc |agr|win|ctl|
- +---+---+---+-----------+-----------+---+---+---+
+
+ Treiber zur Benutzung einer PLUM-Tastatur als Matrixtastatur
+ Hans-Christoph Wirth <hcw*at*gmx*dot*de>
+
+* Was ist eine PLUM-Tastatur?
+
+ Der interessante Aspekt ist die physikalische Anordnung der Tasten.
+ Während bei einer herkömmlichen Tastatur die Reihen horizontal
+ gegeneinander versetzt liegen, bildet die PLUM-Tastatur eine Matrix,
+ d.h. die Tastenspalten liegen streng gerade untereinander.
+
+ Für uns an der PLUM-Tastatur weniger interessant ist die Belegung
+ der Tasten, die in der oberen Reihe das Wort PLUM und auf der
+ Grundlinie die Wörter READONTHIS bildet.
+
+ Die Tastatur ist günstig und preiswert bei www.plum.bz zu beziehen
+ und wird per USB-Kabel angeschlossen.
+
+* Wofür brauche ich einen Treiber?
+
+ Das PLUM-Layout ist fest verdrahtet, d.h. die Tastatur sendet
+ verdrehte Scancodes. Um ein Layout, welches auf einer herkömmlichen
+ 105-Tasten-PC-Tastatur läuft, mit der Plum-Tastatur zu nutzen,
+ müssen die verdrehten Scancodes angepasst werden.
+
+* Kann ich PLUM nur mit NEO nutzen?
+
+ Die Nutzung ist völlig unabhängig von dem gewählten Layout. Der
+ Treiber sorgt nur dafür, dass sich die PLUM-Tastatur möglichst so
+ verhält wie eine klassische QWERT-Tastatur.
+
+* Welche Einschränkungen bestehen?
+
+ Die PLUM-Tastatur hat weniger Tasten, und manche müssen umgeordnet
+ werden, damit das Blindschreiben im Zentralen weiterhin ermöglicht
+ wird. Im Einzelnen:
+
+ - die Taste '^' links von der '1' wandert neben die rechte
+ Shifttaste
+ - die Taste '<' zwischen Shift und 'y' wandert nach unten
+ - es gibt keine linke Windowstaste und keine Menü-Taste mehr
+ - die Taste 'return' nimmt die linke Hälfte der Leertaste ein
+
+ Herkömmliche Tastatur
+
+ +---+ +---+---+---+---+ +---+---+---+---+ +---+---+---+---+
+ |esc| |f1 |f2 |f3 |f4 | |f5 |f6 |f7 |f8 | |f9 |f10|f11|f12|
+ +---+---+---+---+---+---+-+-+-+-+-+-+-+-+-+-+---+---+---+---+
+ | ^ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß | ' | bsp |
+ +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+
+ | tab | q | w | e | r | t | z | u | i | o | p | ü | + | ret |
+ +-----++--++--++--++--++--++--++--++--++--++--++--++--++ |
+ | lock | a | s | d | f | g | h | j | k | l | ö | ä | # | |
+ +----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+----+
+ |shf | < | y | x | c | v | b | n | m | , | . | - | shf |
+ +----+---++--+-+-+---+---+---+---+---+--++---+---++----+----+
+ |ctrl| win| alt| spc |agr | win|menu|ctrl|
+ +----+----+----+------------------------+----+----+----+----+
+
+
+ PLUM-Belegung nach Installation des Treibers
+
+ +---+---+---+---+---+---+---+---+---+---+---+---+---+
+ |esc|f1 |f2 |f3 |f4 |f5 |f6 |f7 |f8 |f9 |f10|f11|f12|
+ +---+---+---+---+---+---+---+---+---+---+---+---+---+
+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß | ' |bsp|
+ +---+---+---+---+---+---+---+---+---+---+---+---+---+
+ |tab| q | w | e | r | t | z | u | i | o | p | ü | + |
+ +---+---+---+---+---+---+---+---+---+---+---+---+---+
+ |lck| a | s | d | f | g | h | j | k | l | ö | ä | # |
+ +---+---+---+---+---+---+---+---+---+---+---+---+---+
+ |shf| y | x | c | v | b | n | m | , | . | - |shf| ^ |
+ +---+---+---+---+---+---+---+---+---+---+---+---+---+
+ |ctr| < |alt| ret | spc |agr|win|ctl|
+ +---+---+---+-----------+-----------+---+---+---+
diff --git a/windows/README.txt b/windows/README.txt
index 8725284..25fa292 100644
--- a/windows/README.txt
+++ b/windows/README.txt
@@ -1,38 +1,38 @@
-== Neo 2.0 für Windows ==
-Für viele Windowsversionen sind hier Treiber zu finden.
-
-== autohotkey ==
-Hier befindet sich ein Treiber, der mit der Autohotkey-Scriptsprache (http://www.autohotkey.com) erstellt wurde. Hierfür muss lediglich eine ausführbare EXE-Datei heruntergeladen und gestartet werden.
-Dazu benötigt man insbesondere keine Administratorrechte, wenn man das Programm beispielsweise in dem Verzeichnis „Eigene Dateien“ abspeichert, so dass sich dieser Treiber gut zum schnellen ausprobieren von NEO eignet. Zudem kann man diesen Treiber etwa von einem USB-Stick aus starten, wenn man auf einem fremden Rechner arbeiten muss/will:
-
-== neo_portable.zip ==
-Wenn man den Inhalt dieses zip-Archives auf einen USB-Stick entpackt, startet sich der Autohotkey-Treiber automatisch, sobald man den USB-Stick in den USB-Port steckt.
-
-== kbdneo2 ==
-Hier entsteht mit Hilfe des WinDDK (http://www.microsoft.com/whdc/devtools/ddk/default.mspx) ein nativer Windowstreiber mit allen 6 Ebenen, um Neo dauerhaft als Tastaturlayout auf einem Windows-PC zu installieren.
-In dem Ordner befinden sich der Treiber für viele Windowsversionen und auch die Quelldateien. Bitte die jeweilige README.txt beachten. Dieser Treiber ist der älteren MSKLC-Variante überlegen.
-
-== msklc ==
-Im Verzeichnis msklc sind Dateien, die mit dem MS Keyboard Layout Creator erstellt wurden. Nach Installation der dort abgelegten Dateien, ist das NEO-Layout in das Windowssystem integriert, als wäre es eins der vielen anderen Layouts verschiedener Sprachen.
-Man benötigt für die Installation jedoch Administratorrechte, weshalb man diese Variante nicht überall installieren kann. Außerdem ist diese Variante nicht mehr aktuell, stattdessen sollte der kbdneo2-Treiber installiert werden.
-
-
-== Eigabe beliebiger Unicode-Zeichen unter Windows ==
-Hierzu muss in der Registry der Schlüssel
-HKEY_Current_User/Control Panel/Input Method/EnableHexNumpad
-angelegt und auf den Wert "1" (vom Typ REG_SZ, d.h. »Zeichenkette«) gesetzt sein. Diese Änderung wird erst nach einem Neustart wirksam.
-
-Anschließend können beliebige Unicode-Zeichen über die Angabe des heximalen Unicode-Wertes eingeben werden, beispielsweise das Unendlich-Zeichen ∞ (=UxU221E):
-ALT-herunterdrücken + 2 2 1 e ALT-Loslassen
-Alternativ (oder wenn die Eingabe ein bischen komfortabler erfolgen soll) kann auch das folgende kleine Programm genutzt werden:
-UnicodeInput — a utility to enter Unicode characters on Microsoft Windows
-http://www.fileformat.info/tool/unicodeinput/index.htm
-
-
-== Windows 95 und 98 ==
-Für Windows 95 und 98 gibt es nur die Version 1 von NEO. Und zwar hier: [Link fehlt!]
-
-[Zu klären/testen: Funktioniert der ahk oder der kbdneo2 auch noch unter Windows 95? Benutzt das noch jemand?]
-
-
-
+== Neo 2.0 für Windows ==
+Für viele Windowsversionen sind hier Treiber zu finden.
+
+== autohotkey ==
+Hier befindet sich ein Treiber, der mit der Autohotkey-Scriptsprache (http://www.autohotkey.com) erstellt wurde. Hierfür muss lediglich eine ausführbare EXE-Datei heruntergeladen und gestartet werden.
+Dazu benötigt man insbesondere keine Administratorrechte, wenn man das Programm beispielsweise in dem Verzeichnis „Eigene Dateien“ abspeichert, so dass sich dieser Treiber gut zum schnellen ausprobieren von NEO eignet. Zudem kann man diesen Treiber etwa von einem USB-Stick aus starten, wenn man auf einem fremden Rechner arbeiten muss/will:
+
+== neo_portable.zip ==
+Wenn man den Inhalt dieses zip-Archives auf einen USB-Stick entpackt, startet sich der Autohotkey-Treiber automatisch, sobald man den USB-Stick in den USB-Port steckt.
+
+== kbdneo2 ==
+Hier entsteht mit Hilfe des WinDDK (http://www.microsoft.com/whdc/devtools/ddk/default.mspx) ein nativer Windowstreiber mit allen 6 Ebenen, um Neo dauerhaft als Tastaturlayout auf einem Windows-PC zu installieren.
+In dem Ordner befinden sich der Treiber für viele Windowsversionen und auch die Quelldateien. Bitte die jeweilige README.txt beachten. Dieser Treiber ist der älteren MSKLC-Variante überlegen.
+
+== msklc ==
+Im Verzeichnis msklc sind Dateien, die mit dem MS Keyboard Layout Creator erstellt wurden. Nach Installation der dort abgelegten Dateien, ist das NEO-Layout in das Windowssystem integriert, als wäre es eins der vielen anderen Layouts verschiedener Sprachen.
+Man benötigt für die Installation jedoch Administratorrechte, weshalb man diese Variante nicht überall installieren kann. Außerdem ist diese Variante nicht mehr aktuell, stattdessen sollte der kbdneo2-Treiber installiert werden.
+
+
+== Eigabe beliebiger Unicode-Zeichen unter Windows ==
+Hierzu muss in der Registry der Schlüssel
+HKEY_Current_User/Control Panel/Input Method/EnableHexNumpad
+angelegt und auf den Wert "1" (vom Typ REG_SZ, d.h. »Zeichenkette«) gesetzt sein. Diese Änderung wird erst nach einem Neustart wirksam.
+
+Anschließend können beliebige Unicode-Zeichen über die Angabe des heximalen Unicode-Wertes eingeben werden, beispielsweise das Unendlich-Zeichen ∞ (=UxU221E):
+ALT-herunterdrücken + 2 2 1 e ALT-Loslassen
+Alternativ (oder wenn die Eingabe ein bischen komfortabler erfolgen soll) kann auch das folgende kleine Programm genutzt werden:
+UnicodeInput — a utility to enter Unicode characters on Microsoft Windows
+http://www.fileformat.info/tool/unicodeinput/index.htm
+
+
+== Windows 95 und 98 ==
+Für Windows 95 und 98 gibt es nur die Version 1 von NEO. Und zwar hier: [Link fehlt!]
+
+[Zu klären/testen: Funktioniert der ahk oder der kbdneo2 auch noch unter Windows 95? Benutzt das noch jemand?]
+
+
+
diff --git a/windows/autohotkey/CHANGES.txt b/windows/autohotkey/CHANGES.txt
index d1230fa..4123181 100644
--- a/windows/autohotkey/CHANGES.txt
+++ b/windows/autohotkey/CHANGES.txt
@@ -1,53 +1,53 @@
-== Neo 2.0 Autohotkey-Treiber für Windows ==
-
-== 2008-08-11 Matthias Wächter ==
-
-Ebene4-Ziffernblock: NumPadAdd und NumPadSub korrigiert
-
-
-== 2008-08-10 Matthias Wächter ==
-
-• Erstmal ist fast kein Stein auf dem anderen geblieben. Die grobe Struktur und das Verhalten (natürlich ist auch die Tastenbelegung 100% NEO!) sind grundsätzlich gleich geblieben, aber einerseits hat sich im Feinen viel getan (z.B. Tab-Behandlung), andererseits schauen viele Zeilen altbekannten Codes jetzt anders aus.
-
-• Beim »Booten« wird einmal EbeneAktualisieren() aufgerufen, um die Ebene sicher richtig zu haben. Dieses fragt jetzt auch den Zustand von NumLock ab, damit man es bei der NumPad-Behandlung gleich parat hat.
-
-• Die DeadKey- und CompKey-Behandlung ist zwar im Prinzip gleich geblieben, aber die Syntax habe ich wesentlich gestrafft. Die einzelnen Subs haben jetzt nur mehr den Job, DeadKey und CompKey zu setzen, wenn dieser nach Verlassen des Subs einen Wert haben soll. EbeneAktualisieren() überträgt für eine einfachere Handhabung die beiden Variablen DeadKey und CompKey nach PriorDeadKey und PriorCompKey. Letztere können im Programm abgefragt werden, während die nicht-Prior-Varianten schamlos verändert werden dürfen. Das entfernt die immer gleichen (aber doch manchmal unterschiedlichen und nicht selten lückenhaften) Zeilen a la »CompKey := ""«.
-
-• Ich habe ganz dreist auf Scancodes mit Virtual Keys umgestellt. Schöner wäre es natürlich gewesen, wenn ich auf die VKs hätte verzichten können, aber das führt ja zu bekannten Problemen mit AHK-Bugs, sodass Scancode-Trigger plötzlich von SendUnicodeChar-Zeilen aktiviert werden. Durch das Abfragen der VKs sind wir aber immer noch nicht soweit, dass wir Layout-agnostisch arbeiten können.
-
-• Dabei gibt es noch ein paar wesentliche Änderungen im Bereich der Tastentrigger: Erstens gehen alle bekannten Scancodes für den NumPad auf paarweise gemeinsame Routinen. Das hält sie nicht nur konsistent, sondern ermöglicht erst eine konsequente Analyse in Zusammenhang mit NumLock und Shift. Zweitens wird bei der Tab-Taste _nur_ noch der Trigger ohne Modifier abgefragt. Das bedeutet, dass beispielsweise Tab in Verbindung mit Alt an unserem Skript vorbei geschleust wird, um Probleme zu verhindern.
-
-• Schließlich, und eines eigenen Punktes in dieser Liste würdig, werden die Modifier in deutlich reduziertem Umfang abgefragt und nur die wirklich interessanten Fälle behandelt. Auch das erlaubt beispielsweise der Alt-Taste wieder ungestörten Einsatz, Shifts werden ganz normal der Applikation gemeldet, wenn sie gedrückt sind, und weniger Merkwürdigkeiten mit lange gehaltenen Modifiern. Grundsätzlich ist in diesem Bereich aber einer der Schwachpunkte des AHK-Skripts sauberer Key-Repeat.
-
-• In jedem Fall laufen bei mir alle Modifier-Locks: Shift+Shift in jedwelcher Reihenfolge für CapsLock, Mod3+Mod3 genauso, und auch Mod4-Lock spielt auf die Art problemlos!
-
-• Bei mir hat die Bildschirmtastatur nicht richtig funktionieren wollen, wenn ich das all.ahk aus dem source/-Verzeichnis verwendet habe. Ein kleiner Patch, und schon geht’s. Ein Refresh beim ersten Start war auch eingebaut, der hat ein unnötiges Flackern produziert. Vielleicht braucht ihn ja wer, bitte melden (mit Begründung!). Außerdem habe ich die Abfragen für die Funktionstasten und von Shift+Pause im Stil der anderen Tasten abgeändert.
-
-• Nachdem ich viel Zeit verplempert hatte, weil ich den Unterschied zwischen »if Ebene = 2« und »if (Ebene = 2)« nicht gekannt und daher den ganzen Quellcode großzügig editiert hatte, um dann herauszufinden, dass es so nicht geht, habe ich jetzt konsequent (hoffentlich) alle Abfragen mit »if ()«, also mit konsequenter Klammersetzung zur richtigen Evaluierung durch AHK gemacht.
-
-• Nicht ganz fertig bin ich mit meinem deadKeys-deadComposeKeys geworden: Über Tastendrücke (z.B. Mod4+F9) sollen sich die Deadkeys und ComposeKeys tatsächlich dergestalt »umbringen«, dass sie nicht mehr am Schirm erscheinen, wodurch das Skript sie auch nicht mehr mit {bs} löschen muss, wenn das endgültige Zeichen fest steht. Für die DeadKeys ist’s schon drinnen, aber für die Compose-Sachen müsste ich die Logik ein weiteres Mal auf den Kopf stellen, und das ist mir für heute einfach zu viel.
-
-• Für das Abfragen von gemerkten DeadKeys und CompKeys habe ich Routinen geschrieben, die sich mit einem Shortcut-Evaluations-Trick recht kompakt darstellen lassen. Zusätzlich habe ich bei den Buchstaben die Abfragen für die Ebenen 1 und 2 zusammen gelegt, was nochmals deutlich Platz spart und der Übersichtlichkeit dienlich ist.
-
-• Ich habe jetzt, wo möglich, doch die Ausgabe mit »send« der mit »SendUnicodeChar« vorgezogen, da so manches Windows-Programm doch nicht ganz so intelligent wie der Rest der Meute ist. Andererseits habe ich ziemlich konsequent mit {blind} gearbeitet. Ein paar Passagen fehlen noch, insbesondere auf Ebene 2, die noch ohne {blind} sind, diese sollte man wohl umstellen auf »send {blind}{Shift up}..{shift down}«, um auch mit Alt, Strg und Win korrekt kombinieren zu können (Shift fällt ja leider flach, da bereits gedrückt).
-
-• Diverse Compose-Namen habe ich gekürzt, wenn man case-sensitive vergleichen möchte, muss man nur mit == abfragen, statt die Strings auf beispielsweise »r_capital« zu setzen.
-
-• Die Sache mit Capslock ist für meinen Geschmack immer noch nicht befriedigend gelöst, scheint aber im Moment ganz gut zu laufen. Mit Compose verträgt sich CapsLock garnicht, außer man erwartet bei aktiviertem CapsLock nach Eingabe von »R12« das da: ?.
-
-• Ungeachtet der Vorschläge, wie mit dem NumPad weiter vor zu gehen ist, habe ich es jetzt erst mal unangetastet lassen, wenn man bei solch einer Baustelle noch von Unversehrtheit sprechen kann.
-
-• Das Numpad auf Ebene 4 unter der rechten Hand habe ich derart abgeändert, dass es statt der blanken Zahlen NumPad-Codes liefert. Damit kann man es reichhaltiger verwenden als die Tasten in Zeile 1. Auch die Cursortasten auf gleicher Ebene, linke Hand, werden jetzt {blind} geschickt, um diverse Navigationsmöglichkeiten mit den anderen Modifiern (Shift, Strg) zu öffnen.
-
-• Insgesamt hat sich der Code-Umfang drastisch verringert: meine fertige neo20.ahk hat jetzt nur noch 93 kB, wogegen die alte noch 126 kB hatte. Das ist mit 33 kB fast ¼ weniger Code! Ob’s damit auch ¼ weniger Bugs sind, kann ich nicht sagen … ;-)
-
-Known Bugs:
-===========
-
-• Ich kann keine Flash-Spiele spielen (Firefox), die die Tastatur benötigen. Ist das bekannt? Ist davon auch Java betroffen?
-
-• Manche Compose-Kombinationen zwischen den Zahlen habe ich auf dem NumPad vereinheitlicht aber noch nicht auf Zeile 1.
-
-• Die diversen Compose-Experimentierkästen unter Compose/ habe ich nicht angerührt, sie werden wohl auch kleine Anpassungen benötigen.
-
-• Der Patch ist in dieser Form quasi ungetestet. Die wichtigsten funktionalen Änderungen wie die Mod-Lock und das Zusammenführen der Numlock-Numpad-Ebenen habe ich schon vor diesem Patch ausprobiert, aber insbesondere die diversen CheckDead* und CheckComp*-Aufrufe sind erst vor ein paar Stunden entstanden.
+== Neo 2.0 Autohotkey-Treiber für Windows ==
+
+== 2008-08-11 Matthias Wächter ==
+
+Ebene4-Ziffernblock: NumPadAdd und NumPadSub korrigiert
+
+
+== 2008-08-10 Matthias Wächter ==
+
+• Erstmal ist fast kein Stein auf dem anderen geblieben. Die grobe Struktur und das Verhalten (natürlich ist auch die Tastenbelegung 100% NEO!) sind grundsätzlich gleich geblieben, aber einerseits hat sich im Feinen viel getan (z.B. Tab-Behandlung), andererseits schauen viele Zeilen altbekannten Codes jetzt anders aus.
+
+• Beim »Booten« wird einmal EbeneAktualisieren() aufgerufen, um die Ebene sicher richtig zu haben. Dieses fragt jetzt auch den Zustand von NumLock ab, damit man es bei der NumPad-Behandlung gleich parat hat.
+
+• Die DeadKey- und CompKey-Behandlung ist zwar im Prinzip gleich geblieben, aber die Syntax habe ich wesentlich gestrafft. Die einzelnen Subs haben jetzt nur mehr den Job, DeadKey und CompKey zu setzen, wenn dieser nach Verlassen des Subs einen Wert haben soll. EbeneAktualisieren() überträgt für eine einfachere Handhabung die beiden Variablen DeadKey und CompKey nach PriorDeadKey und PriorCompKey. Letztere können im Programm abgefragt werden, während die nicht-Prior-Varianten schamlos verändert werden dürfen. Das entfernt die immer gleichen (aber doch manchmal unterschiedlichen und nicht selten lückenhaften) Zeilen a la »CompKey := ""«.
+
+• Ich habe ganz dreist auf Scancodes mit Virtual Keys umgestellt. Schöner wäre es natürlich gewesen, wenn ich auf die VKs hätte verzichten können, aber das führt ja zu bekannten Problemen mit AHK-Bugs, sodass Scancode-Trigger plötzlich von SendUnicodeChar-Zeilen aktiviert werden. Durch das Abfragen der VKs sind wir aber immer noch nicht soweit, dass wir Layout-agnostisch arbeiten können.
+
+• Dabei gibt es noch ein paar wesentliche Änderungen im Bereich der Tastentrigger: Erstens gehen alle bekannten Scancodes für den NumPad auf paarweise gemeinsame Routinen. Das hält sie nicht nur konsistent, sondern ermöglicht erst eine konsequente Analyse in Zusammenhang mit NumLock und Shift. Zweitens wird bei der Tab-Taste _nur_ noch der Trigger ohne Modifier abgefragt. Das bedeutet, dass beispielsweise Tab in Verbindung mit Alt an unserem Skript vorbei geschleust wird, um Probleme zu verhindern.
+
+• Schließlich, und eines eigenen Punktes in dieser Liste würdig, werden die Modifier in deutlich reduziertem Umfang abgefragt und nur die wirklich interessanten Fälle behandelt. Auch das erlaubt beispielsweise der Alt-Taste wieder ungestörten Einsatz, Shifts werden ganz normal der Applikation gemeldet, wenn sie gedrückt sind, und weniger Merkwürdigkeiten mit lange gehaltenen Modifiern. Grundsätzlich ist in diesem Bereich aber einer der Schwachpunkte des AHK-Skripts sauberer Key-Repeat.
+
+• In jedem Fall laufen bei mir alle Modifier-Locks: Shift+Shift in jedwelcher Reihenfolge für CapsLock, Mod3+Mod3 genauso, und auch Mod4-Lock spielt auf die Art problemlos!
+
+• Bei mir hat die Bildschirmtastatur nicht richtig funktionieren wollen, wenn ich das all.ahk aus dem source/-Verzeichnis verwendet habe. Ein kleiner Patch, und schon geht’s. Ein Refresh beim ersten Start war auch eingebaut, der hat ein unnötiges Flackern produziert. Vielleicht braucht ihn ja wer, bitte melden (mit Begründung!). Außerdem habe ich die Abfragen für die Funktionstasten und von Shift+Pause im Stil der anderen Tasten abgeändert.
+
+• Nachdem ich viel Zeit verplempert hatte, weil ich den Unterschied zwischen »if Ebene = 2« und »if (Ebene = 2)« nicht gekannt und daher den ganzen Quellcode großzügig editiert hatte, um dann herauszufinden, dass es so nicht geht, habe ich jetzt konsequent (hoffentlich) alle Abfragen mit »if ()«, also mit konsequenter Klammersetzung zur richtigen Evaluierung durch AHK gemacht.
+
+• Nicht ganz fertig bin ich mit meinem deadKeys-deadComposeKeys geworden: Über Tastendrücke (z.B. Mod4+F9) sollen sich die Deadkeys und ComposeKeys tatsächlich dergestalt »umbringen«, dass sie nicht mehr am Schirm erscheinen, wodurch das Skript sie auch nicht mehr mit {bs} löschen muss, wenn das endgültige Zeichen fest steht. Für die DeadKeys ist’s schon drinnen, aber für die Compose-Sachen müsste ich die Logik ein weiteres Mal auf den Kopf stellen, und das ist mir für heute einfach zu viel.
+
+• Für das Abfragen von gemerkten DeadKeys und CompKeys habe ich Routinen geschrieben, die sich mit einem Shortcut-Evaluations-Trick recht kompakt darstellen lassen. Zusätzlich habe ich bei den Buchstaben die Abfragen für die Ebenen 1 und 2 zusammen gelegt, was nochmals deutlich Platz spart und der Übersichtlichkeit dienlich ist.
+
+• Ich habe jetzt, wo möglich, doch die Ausgabe mit »send« der mit »SendUnicodeChar« vorgezogen, da so manches Windows-Programm doch nicht ganz so intelligent wie der Rest der Meute ist. Andererseits habe ich ziemlich konsequent mit {blind} gearbeitet. Ein paar Passagen fehlen noch, insbesondere auf Ebene 2, die noch ohne {blind} sind, diese sollte man wohl umstellen auf »send {blind}{Shift up}..{shift down}«, um auch mit Alt, Strg und Win korrekt kombinieren zu können (Shift fällt ja leider flach, da bereits gedrückt).
+
+• Diverse Compose-Namen habe ich gekürzt, wenn man case-sensitive vergleichen möchte, muss man nur mit == abfragen, statt die Strings auf beispielsweise »r_capital« zu setzen.
+
+• Die Sache mit Capslock ist für meinen Geschmack immer noch nicht befriedigend gelöst, scheint aber im Moment ganz gut zu laufen. Mit Compose verträgt sich CapsLock garnicht, außer man erwartet bei aktiviertem CapsLock nach Eingabe von »R12« das da: ?.
+
+• Ungeachtet der Vorschläge, wie mit dem NumPad weiter vor zu gehen ist, habe ich es jetzt erst mal unangetastet lassen, wenn man bei solch einer Baustelle noch von Unversehrtheit sprechen kann.
+
+• Das Numpad auf Ebene 4 unter der rechten Hand habe ich derart abgeändert, dass es statt der blanken Zahlen NumPad-Codes liefert. Damit kann man es reichhaltiger verwenden als die Tasten in Zeile 1. Auch die Cursortasten auf gleicher Ebene, linke Hand, werden jetzt {blind} geschickt, um diverse Navigationsmöglichkeiten mit den anderen Modifiern (Shift, Strg) zu öffnen.
+
+• Insgesamt hat sich der Code-Umfang drastisch verringert: meine fertige neo20.ahk hat jetzt nur noch 93 kB, wogegen die alte noch 126 kB hatte. Das ist mit 33 kB fast ¼ weniger Code! Ob’s damit auch ¼ weniger Bugs sind, kann ich nicht sagen … ;-)
+
+Known Bugs:
+===========
+
+• Ich kann keine Flash-Spiele spielen (Firefox), die die Tastatur benötigen. Ist das bekannt? Ist davon auch Java betroffen?
+
+• Manche Compose-Kombinationen zwischen den Zahlen habe ich auf dem NumPad vereinheitlicht aber noch nicht auf Zeile 1.
+
+• Die diversen Compose-Experimentierkästen unter Compose/ habe ich nicht angerührt, sie werden wohl auch kleine Anpassungen benötigen.
+
+• Der Patch ist in dieser Form quasi ungetestet. Die wichtigsten funktionalen Änderungen wie die Mod-Lock und das Zusammenführen der Numlock-Numpad-Ebenen habe ich schon vor diesem Patch ausprobiert, aber insbesondere die diversen CheckDead* und CheckComp*-Aufrufe sind erst vor ein paar Stunden entstanden.
diff --git a/windows/kbdneo2/Quelldateien/1st_README.txt b/windows/kbdneo2/Quelldateien/1st_README.txt
index 9f7179d..a587d65 100644
--- a/windows/kbdneo2/Quelldateien/1st_README.txt
+++ b/windows/kbdneo2/Quelldateien/1st_README.txt
@@ -1,17 +1,17 @@
-1. WinDDK installieren (Bestandteil von WDK, über das MSDN zu erhalten).
-
-2. Im Ordner \src\input\layout\all_kbds\kbdneo2 des WDKs einen neuen Ordner namens 'kbdneo2' anlegen.
-
-3. Alle Quelldateien in diesen Ordner kopieren.
-
-4. Die Datei 'dirs' im Ordner \src\input\layout\all_kbds\ des WinnDDKs um die Zeile 'kbdneo2' erweitern. Die Datei könnte nun so aussehen:
-> DIRS= \
-> kbdfr \
-> kbdgr \
-> kbdneo2
-
-5. Mit einem normalem Texteditor können nun die Quelldateien bearbeitet werden. Kommentare befinden sich in den jeweiligen Dateien.
-
-6. Zum kompilieren des Treibers die 'Checked Build Environment' starten und zum Ordner mit den Quelldateien wechseln und den Befehl »Build« ausführen.
-> cd src\input\layout\all_kbds\kbdneo2
-> build
+1. WinDDK installieren (Bestandteil von WDK, über das MSDN zu erhalten).
+
+2. Im Ordner \src\input\layout\all_kbds\kbdneo2 des WDKs einen neuen Ordner namens 'kbdneo2' anlegen.
+
+3. Alle Quelldateien in diesen Ordner kopieren.
+
+4. Die Datei 'dirs' im Ordner \src\input\layout\all_kbds\ des WinnDDKs um die Zeile 'kbdneo2' erweitern. Die Datei könnte nun so aussehen:
+> DIRS= \
+> kbdfr \
+> kbdgr \
+> kbdneo2
+
+5. Mit einem normalem Texteditor können nun die Quelldateien bearbeitet werden. Kommentare befinden sich in den jeweiligen Dateien.
+
+6. Zum kompilieren des Treibers die 'Checked Build Environment' starten und zum Ordner mit den Quelldateien wechseln und den Befehl »Build« ausführen.
+> cd src\input\layout\all_kbds\kbdneo2
+> build
diff --git a/windows/kbdneo2/Treiber/1stREADME.txt b/windows/kbdneo2/Treiber/1stREADME.txt
index db335ad..548d4b2 100644
--- a/windows/kbdneo2/Treiber/1stREADME.txt
+++ b/windows/kbdneo2/Treiber/1stREADME.txt
@@ -1,42 +1,42 @@
-== Installation der Windows-Treiber ==
-Zur Zeit gibt es leider noch keine eigene Installationsroutine für diese Treiber.
-Deshalb muss der Treiber noch von Hand registriert werden.
-
-Installation:
-1.) reg_backup.bat ausführen.
- Dies sichert einen bereits vorhandenen Schlüssel. Wenn der Schlüssel bislang
- noch nicht vorhanden war wird auch keine Sicherungsdatei angelegt.
-2.) kbdneo2.dll (Windowsversion beachten) nach \%SystemRoot%\system32\ (in der
- Regel C:\Windows\system32\) kopieren.
-3.) kbdneo2_install.reg ausführen.
-4.) Nun kann das in den Sprachoptionen Neo 2.0 ausgewählt werden. D(Start->
- Einstellungen->Systemsteuerung) unter „Regions- und Sprachoptionen“-> Reiter
- „Sprachen“ -> „Details“ -> „Hinzufügen“ -> „Tastaturlayout/IME“ -> „Deutsch
- (NEO ergonomisch 2.0)“ hinzugefügt werden.
-
-Deinstallation:
-1.) Neo 2.0 nicht mehr als Tastaturlayout verwenden. Dazu das Layout in den
- „Regions- und Sprachoptionen“ entfernen.
-2.) kbdneo2_uninstall.reg ausführen. Hierbei werden alle vorgenommenen Einträge in
- der Registry gelöscht.
-3.) Falls vorhanden die gesicherten Schlüssel zurückspielen (backup1.reg,
- backup2.reg und backup3reg –soweit vorhanden– ausführen)
-
-Je nach Windows-Version sind für die einzelnen Schritte Administrator-Rechte nötig.
-
-
-== Einschränkungen dieser Treiberversion ==
-1.) Einige spezielle Funktionen lassen sich nicht belegen und sind deshalb nicht
- verfügbar.
- Dazu gehören leider die Pfeiltasten, Entf, Seite hoch/runter, Einfg, Pos1 und
- Ende.
-2.) Ein Einrasten von Modifiern ist treibertechnisch leider nicht möglich.
-3.) Die Kombo-/Komponier-/Compose-Taste wird von Windows nicht unterstützt.
-
-Diese Mängel sollen durch einen spezielle AutoHotKey-Treiber noch behoben werden.
-
-
-== Entfernen einer evtl. vorhandenen MSKLC-Treibers ==
-1. Setup des MSKLC aufrufen
-2. „Remove the keyboard layout“ auswählen und mit „Finish“ bestätigen.
-
+== Installation der Windows-Treiber ==
+Zur Zeit gibt es leider noch keine eigene Installationsroutine für diese Treiber.
+Deshalb muss der Treiber noch von Hand registriert werden.
+
+Installation:
+1.) reg_backup.bat ausführen.
+ Dies sichert einen bereits vorhandenen Schlüssel. Wenn der Schlüssel bislang
+ noch nicht vorhanden war wird auch keine Sicherungsdatei angelegt.
+2.) kbdneo2.dll (Windowsversion beachten) nach \%SystemRoot%\system32\ (in der
+ Regel C:\Windows\system32\) kopieren.
+3.) kbdneo2_install.reg ausführen.
+4.) Nun kann das in den Sprachoptionen Neo 2.0 ausgewählt werden. D(Start->
+ Einstellungen->Systemsteuerung) unter „Regions- und Sprachoptionen“-> Reiter
+ „Sprachen“ -> „Details“ -> „Hinzufügen“ -> „Tastaturlayout/IME“ -> „Deutsch
+ (NEO ergonomisch 2.0)“ hinzugefügt werden.
+
+Deinstallation:
+1.) Neo 2.0 nicht mehr als Tastaturlayout verwenden. Dazu das Layout in den
+ „Regions- und Sprachoptionen“ entfernen.
+2.) kbdneo2_uninstall.reg ausführen. Hierbei werden alle vorgenommenen Einträge in
+ der Registry gelöscht.
+3.) Falls vorhanden die gesicherten Schlüssel zurückspielen (backup1.reg,
+ backup2.reg und backup3reg –soweit vorhanden– ausführen)
+
+Je nach Windows-Version sind für die einzelnen Schritte Administrator-Rechte nötig.
+
+
+== Einschränkungen dieser Treiberversion ==
+1.) Einige spezielle Funktionen lassen sich nicht belegen und sind deshalb nicht
+ verfügbar.
+ Dazu gehören leider die Pfeiltasten, Entf, Seite hoch/runter, Einfg, Pos1 und
+ Ende.
+2.) Ein Einrasten von Modifiern ist treibertechnisch leider nicht möglich.
+3.) Die Kombo-/Komponier-/Compose-Taste wird von Windows nicht unterstützt.
+
+Diese Mängel sollen durch einen spezielle AutoHotKey-Treiber noch behoben werden.
+
+
+== Entfernen einer evtl. vorhandenen MSKLC-Treibers ==
+1. Setup des MSKLC aufrufen
+2. „Remove the keyboard layout“ auswählen und mit „Finish“ bestätigen.
+
diff --git a/windows/kbdneo2/ahk_für_kbdneo2_Test/1stREADME.txt b/windows/kbdneo2/ahk_für_kbdneo2_Test/1stREADME.txt
index 5ee849a..20a0786 100644
--- a/windows/kbdneo2/ahk_für_kbdneo2_Test/1stREADME.txt
+++ b/windows/kbdneo2/ahk_für_kbdneo2_Test/1stREADME.txt
@@ -1,19 +1,19 @@
-Dieses AHK-Skript soll den nativen Neo2.0-Treiber um die fehlenden Funktionen
-ergänzen und befindet sich noch in der Testphase.
-
-== Umgesetzte Funktionen ==
-»Bild auf«
-»Bild ab«
-Cursor »Hoch«
-Cursor »Links«
-Cursor »Runter«
-Cursor »Rechts«
-»Ende«
-»Entfernen«
-»Einfügen«
-»Pos1«
-CapsLock über Shift+Shift
-
-== Noch fehlende Funktionen ==
-Mod3- und Mod4-Lock
+Dieses AHK-Skript soll den nativen Neo2.0-Treiber um die fehlenden Funktionen
+ergänzen und befindet sich noch in der Testphase.
+
+== Umgesetzte Funktionen ==
+»Bild auf«
+»Bild ab«
+Cursor »Hoch«
+Cursor »Links«
+Cursor »Runter«
+Cursor »Rechts«
+»Ende«
+»Entfernen«
+»Einfügen«
+»Pos1«
+CapsLock über Shift+Shift
+
+== Noch fehlende Funktionen ==
+Mod3- und Mod4-Lock
Compose \ No newline at end of file