Am 25.07.2011, 11:50 Uhr, schrieb Andreas Köpf
<andreas.ko...@provisio.com>:
Ich persönlich fände eine 'original Neo-Lösung' mit einem State-Machine
Filtertreiber schöner als aktuell die Integration (Verwurstung) des
externen AHK-Tools.
Hm allerdings ist der Unterschied auch nicht so groß. Statt dem AHK hat
man eben einen Treiber laufen. Damit das gut bedienbar ist, braucht man
wohl sowieso noch ein Programm im User-Space. Die Lösung bietet im
Wesentlichen den Vorteil, dass man so ziemlich jedes Programm austricksen
kann, indem man ein Qwertz-Layout vorgaukelt, wo keines ist.
Allerdings müsste sich eine neue Lösung reibungslos mit mehreren
installierten Layouts vertragen. Ich könnte mir vorstellen, dass es
ein Problem ist aus dem Filter-Treiber mitzubekommen welches Layout
derzeit aktiv ist, oder gibt es da Möglichkeiten?
Ich weiß es nicht genau (bin noch Anfänger was Treiberprogrammierung
angeht), bezweifle es aber. Der Treiber liegt vermutlich zu weit unten.
Ein Dienst könnte natürlich dem Treiber IOCTL Nachrichten über Layout-
Wechsel schicken, aber dies wäre dann genauso umständlich wie mit dem
AHK.
Ich vermute mal das wäre die einzige Möglichkeit. Ich hatte mir sowieso
überlegt, ob man ein kleines Hilfsprogramm schreiben kann, mit dem man
schnell verschiedene Kompatibilitätseinstellungen durchschalten kann
(ausgeschaltet, Neo-Layout + Ebene 4, angepasstes Layout + so viel wie
möglich über den Treiber, etc.).
Ich fände es gut an dem Thema dranzubleiben. Ein Programm mit UI, das
die State-Machine reprogrammieren könnte ohne permanent mitlaufen zu
müssen, wäre eine klasse Sache (Speicherung der State-Machine
Konfiguration in den Registry-Settings des Filter-Treibers sollte kein
Problem sein).
Im Moment setzt sich der Treiber bei jedem Start auf ein 1:1-Mapping
zurück. Das über die Registry zu speichern sollte aber möglich sein.
Noch besser wäre natürlich ein voll konfigurierbares Zusammenspiel
zwischen Layout- und Filter-Treiber, so dass per UI die Möglichkeit
geboten würde die gesamte Tastaturbelegung von Neo zu
konfigurieren/modifizieren.
Es wäre schon cool, wenn man das per GUI schnell und bequem anpassen
könnte (wobei das beim AHK theoretisch auch machbar wäre). Der
Filter-Treiber sollte so etwas auch können. Das gilt allerdings nur,
solange die gewünschten Zeichen bereits im gewählten Layout vorhanden sind
und solange es nicht zu kompliziert wird (längere Tastenfolgen – wie bei
Compose – gut zu erkennen dürfte schwierig sein).
Ich habe mir allerdings den Aufbau von Layout-Treibern noch nicht genau
angesehen .. also insbesondere ob es sich bei den Layouts nur um
Daten-Tabellen handelt oder ob da auch Code ausgeführt werden kann (um
z.B. dynamisch Änderungen am Layout vornehmen zu können).
Reine Datentabellen. Das ist ja gerade das Problem ;).
Gruß,
Olaf