-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Jain.

windows unterstützt Unicodeeingabe.
Es muss allerdings unter HKEY_Current_User/Control Panel/Input Method
der Schlüssel EnableHexNumpad auf "1" gesetzt sein, sonst gehts nicht.

Daher lässt sich als Macro jedes Zeichen unabhängig von der
Tastatureinstellung von Windows eingeben; das makro muss nur "alt"
"+"(numpad) und anschließend den unicode in hexcode nach dem Drücken
der Taste senden.

Daneben verwendet Windows auch mit der Kombi Alt + Dezimalnummer auf
dem Keypad die Eingabe des Codepagespezifischen Zeichencodes; hiermit
bekommt man bei auf Deutsch eingestelltem Windows fast alle benötigten
Zeichen. Dies benötigt nicht den Registryschlüssel.

Als drittes kann in MSWord jedes Zeichen auch mit Eingabe des Unicodes
und anschließendem Alt+c zu generieren.

Sinn macht eine Tastatur mit einem Wählschalter, damit man sie an fast
beliebigen PCs einsetzen kann, ohne Adminrechte zu haben.

Mit Macros bildet man alles aus Neo ab, was das Deutsche
qwertz-Tastaturlayout - das quasi überall verfügbar ist - darstellen kan
n.
Das Drücken und Loslassen von Modifiern
(lshift,lwin,lctrl,lalt,rshift,rwin,rctrl,ralt) wird vom
Tastaturcontroller nicht direkt an den PC gemeldet, sondern intern für
die Wahl des Makros verwendet. Erst nach Kombination mit einer
Zeichentaste sendet der Controler dann die Keycodes, welche im
qwertz-Layout eben das gewünschte Zeichen ergeben.

Um z.B. mit linkem Shift und der 2 das Paragraphenzeichen zu bekommen
(das bei qwertz auf shift3 liegt), braucht man ein Makro für die
Tastenkombination LSHIFT, das an den PC meldet:

LSHIFT wurde gedrückt
3 wurde gedrückt und wieder losgelassen
LSHIFT wurde losgelassen

Mit dieser Technik lassen sich alle Zeichen abbilden, welche auch auf
qwertz verfügbar sind, aber an den Positionen auf der Tastatur, wie
man sie in neo vorgesehen hat.

Komplizierter ist es, wenn man Zeichen und Composings abbilden möchte,
die sich nicht in qwertz eintippen lassen. Dann kommt man um einen
Umschalter an der Tastatur nicht umhin.

Da kann man dann drei Modi (für Windows, evtl. weitere bei Linux)
vorsehen:

Mode 1:
Eingabe für Word, z.B. das große ß bei der Kombination Shift und -
Hier muss der Tastaturcontroller melden:

leerzeichen wurde gedrückt und wieder losgelassen
1 wurde gedrückt und wieder losgelassen
e wurde gedrückt und wieder losgelassen
9 wurde gedrückt und wieder losgelassen
e wurde gedrückt und wieder losgelassen
lalt wurde gedrückt
c wurde gedrückt und wieder losgelassen
lalt wurde losgelassen
cursor nach links wurde gedrückt und wieder losgelassen
backspace wurde gedrückt und wieder losgelassen
cursor nach rechts wurde gedrückt und wieder losgelassen

(leerzeichen corsorbewegungen und backspace sind notwendig, falls das
große ß hinter einer Ziffer oder a-f folgt, dann würde ansonsten ein
falscher Hexcode vor dem alt+c stehen und ein falsches Zeichen erzeugt
werden - den Fehler hate ich damals im Code meines Konverters noch drin)
Veröffentlicht und dikutiert hatte ich das 2013 (und auch hier in der
Liste geposted)
http://deskthority.net/workshop-f7/xt-at-ps2-terminal-to-usb-converter-w
ith-nkro-t2510-180.html#p102022

Mode 2:
Gleiches Spiel, nur etwas anderes Wrapping:
lalt wurde gedrückt
+(numpad) wurde gedrückt und wieder losgelassen
1 wurde gedrückt und wieder losgelassen
e wurde gedrückt und wieder losgelassen
9 wurde gedrückt und wieder losgelassen
e wurde gedrückt und wieder losgelassen
lalt wurde losgelassen

Mode 3:
Anderes Wrapping und anderer Code (wobei ich gar nicht weis, ob großes
ß damit geht)

Da sich mode 1+2 nur durchs wrapping unterscheiden, macht es sinn, die
Schalterstellung in einer Funktion auszulagern, welcher der Unicode
übergeben wird und die das richtige Wrapping nach Prüfen des Schalters
verwendet. Mit einer Codetabelle könnte man dann als dritte Variante
auch den Code aus der Codepage mit dem entsprechenden Wrapping senden,
soweit vorhanden.


Unter Linux sollte es ähnliches geben, meist stellt sich das Problem
dort aber nicht so, weil man entweder Aufgaben darauf erfüllt, für
welche die üblichen Zeichen reichen, oder es eh ein eigener Rechner
ist, bei dem der Neo-Treiber installiert werden kann. Dazu braucht man
aber eine weitere Schalterposition, welche die Keycodes transparent
durchreicht (bzw. nur wenige eigene Anpassungen innerhalb von Neo
vornimmt, z.B. bzgl. der Positionen für die Zehnertastatur, die bei
einem non-stagged-Keybord unglücklich lägen).


Der Entwurf einer solchen Tastatur, die man an quasi jedem Rechner
betreiben kann, ist also nicht unmöglich, nur schwierig. Mit den
ersten 3 Ebenen habe selbst ich das mit dem Soarer-Konverter hin
bekommen. Schwierig ist nur das Jonglieren zwischen Keycodes, deren
Bedeutung im qwertz, der gewünschten Bedeutung in neo und dabei nicht
durcheinander zu kommen, wenn man - wie beim soarer-konverter
vorgesehen - vorher noch das Mapping über keycodetausch verändert hat.

Die Soarer-Variante kann übrigens kein Lock. Um die Ebenen von neo2
abzubilden, musste ich wegen der knappen Zahl an verwendbaren
modifierkeys lshift und rshift für layer 2 bzw. 3 verwenden; in der
Mappingtabel sind beide Shifttasten mit lshift definiert, rshift liegt
auf zwei anderen Tasten. Beide Shifttasten zu drücken bringt da dann
nichts.

Wer allerdings eh einen Tastaturcontroller von der Pike auf
programmiert, hat das Problem nicht - er kann beliebige Tasten als
Modifier definieren, auf ein generelles Keymapping verzichten und
schlicht jeder Modifier+Tastenkombi tabellarisch die zu sendenden
Keycodes daneben stellen.



Am 13.11.2015 um 16:12 schrieb Peter Eberhard:

> Das ist prinzipiell nicht möglich. Das Betriebssystem bekommt von 
> der Tastatur keine Zeichencodes, sondern nur Tastenanschläge (mit 
> Nummer der Taste). Die Übersetzung in die Zeichen geschieht im 
> Treiber. Wenn man keinen neuen schreiben will, könnte man auch 
> höchstens die Zeichen eines vorhandenen Treibers nutzen, und auch 
> das nur mit Tricks. Die ganzen Extrasymbole auf den Ebenen 2-6
> sind so nicht nutzbar.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJWRkXwAAoJEK/9mgz7mg0ry3gP/1mv4cRxDzXc8u8Bu1CMs5s5
TvZTVmloNyqNPtEJ9v10uha5Y/SSiH0Cvqiw6Pxm3kn2Nms+b/EM4Qoyqt/dkB+z
9X2hJTx3KUXhebTbT92ccbuI6p5MXaPnWPa+I6PxI6g/r5vBNU+RzV2Neal3cFfz
J6EpLdPhoO8LAW7VTpHE7J7746rEweFAM71FzPcIxi9ZnY1oky7JWv+5WC8rLDup
2fkJDTWZlWjMwvlK6+ltJaPfOWjyDpfJdS0IKYr9CZ5ljx/rIeXTi5Ufo+edFV3f
RlUFvTXOmdvQEBOnq49Bl48qy6RoXZpKgpKB/To/Zhomvoy8mKR1EWdt0ZSrNhWe
0kB9xOHIWYqG5NN9jSjztUmPkQFajzzujPLZqoY7BonW4eAApRjivzgwMqzqplVy
clOpSB/UqZu5RqXDUC0n//LfOswBn5cHRVTe7f0y4aZkh9qZzbVZcBELdIjOQLvs
fFMoL9pePjRKHTEUXT1QdEgnzUWPbYhztqiqLG8TH2JwYnFiPg5VV7KbNcpvW/X9
jsA+zslGHSKE55BFb6Lg7bzNtg3SPV+E7Zn90j6XSeff2OyASZdpz2zf2MW9vzUg
X3hmKAKO5WjrMA5xv2rK62ith+9VirhCMbaaQ/T1C7zOLL8+rRsOD8+noZYDhjKj
xDudvpA2Dpg+Bl93B/EL
=UUTW
-----END PGP SIGNATURE-----

---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus


Antwort per Email an