Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?
Hallo Olaf, Am 23.07.2011 23:31, schrieb Olaf Liebe: Für alle, die es genau wissen wollen: http://stackoverflow.com/questions/5298719/is-there-a-way-to-emulate-arrow-keys-in-windows-keyboard-drivers/5352430 Danke für den Link! Eine Veröffentlichung deiner Prototyping-Arbeit auf github würde mich sehr freuen. Praktisch gesehen reichen kbdneo und der AHK-Treiber wohl für fast alles aus, (...) 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. 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? 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 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). 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. 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). Viele Grüße Andreas
Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?
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
Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?
Olaf Liebe schrieb am 23.07.2011 um 23:31 Uhr: Ich habe die Idee mit dem Treiber übrigens noch etwas weiter verfolgt und als Proof-of-Concept einen Filter-Treiber geschrieben, welcher die Tasten noch vor dem Scan-Code → VK Mapping umschreiben kann Wenn Interesse besteht, dann kann ich das evtl. in den nächsten Tagen auf github o. ä. hochladen. Immer her damit :D Gruß Florian signature.asc Description: OpenPGP digital signature
Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?
Am 22.07.2011, 16:13 Uhr, schrieb Florian Janßen please.m...@gmx.de: Im Treiber läuft die Belegung so ab: Dem Scancode wird ein Virtual-Key zugeordnet. Die Virtual-Keys sind in 2 Gruppen auf geteilt: Ein Teil ist belegbar, hier wird die Belegung (Unicode-Zeichen, tote Tasten, Ligaturen) später in Tabellen zugeordnet. Bei dem Teil der nicht belegbar ist, ist die Funktion bereits durch die Zuordnung der Virtual-Key gegeben. Das sind dummer Weise aber auch die Funktionen die wir gerne auf die 4. Ebene schieben wollen. Für alle, die es genau wissen wollen: http://stackoverflow.com/questions/5298719/is-there-a-way-to-emulate-arrow-keys-in-windows-keyboard-drivers/5352430 Ich habe die Idee mit dem Treiber übrigens noch etwas weiter verfolgt und als Proof-of-Concept einen Filter-Treiber geschrieben, welcher die Tasten noch vor dem Scan-Code → VK Mapping umschreiben kann (inkl. Tastenkombinationen). Man kann das Verhalten sogar vom User-Space aus konfigurieren, indem man eine State-Machine in den Treiber lädt, welche zur Ersetzung der Scan-Codes verwendet wird (dadurch muss man am Treiber nichts ändern, wenn man eine andere Belegung will). Wenn Interesse besteht, dann kann ich das evtl. in den nächsten Tagen auf github o. ä. hochladen. Das größte Problem ist allerdings die fehlende Treibersignatur. Unter XP ist das kein Thema aber ab Vista muss man entweder den Test-Modus aktivieren oder beim Start mit F8 die Signaturüberprüfung deaktivieren. Zumindest bei den 64-Bit-Versionen. Ansonsten habe ich eine C#-Library mit der sich eine State-Machine erstellen und in den Treiber laden lässt. Es ist also relativ einfach damit zu experimentieren (auch wenn die State-Machine etwas eingeschränkt ist). Ein kleines Testprogramm, das Teile von AdNW inkl. Ebene4 umsetzt gibt es auch. Zwischen AltGr+F und Cursor-Rechts sollte aus Anwendungssicht kein Unterschied mehr bestehen, unabhängig davon, wie die Anwendung die Tasten abfragt. Die Wirkung sollte im Grunde genommen genauso sein, als ob man die Tasten auf der Tastatur inklusive Schalter vertauschen würde (auch wenn die Analogie bei Tastenkombinationen etwas hinkt). Aber wie gesagt es ist ein Proof-of-Concept und es ging mir eher um die Machbarkeit. Praktisch gesehen reichen kbdneo und der AHK-Treiber wohl für fast alles aus, insofern bin ich mir atm. nicht sicher ob ich das überhaupt weiter verfolgen sollte. Zumal mir keine Anwendungen einfallen, die weder mit kbdneo oder AHK-Treiber funktionieren (außer „The Typing of the Dead“, das mag die Sonderzeichen nicht X-D). Gruß, Olaf
[Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?
Halle Neolinge, könnte einer der Entwickler des Neo-Treibers für Windows einmal kurz beschreiben, warum sich die Navigationsebene von Neo2 nicht unter Windows realisieren lässt? Für Links ins Archiv zu der Problematik wäre ich auch dankbar. Viele Grüße Andreas Köpf (blueling)
Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?
Am Freitag, den 22. Juli 2011 um 10:56 Uhr schrieb Andreas Köpf: Halle Neolinge, könnte einer der Entwickler des Neo-Treibers für Windows einmal kurz beschreiben, warum sich die Navigationsebene von Neo2 nicht unter Windows realisieren lässt? Für Links ins Archiv zu der Problematik wäre ich auch dankbar. Viele Grüße Andreas Köpf (blueling) Die 4. Ebene funktioniert unter Windows doch wunderbar. Jedenfalls mit dem NeoVars-Treiber¹, bei Verwendung von kbdneo² sollte man aber ein Zusatz-AHK-Skript verwenden, damit alles geht. Der einzige Treiber, bei dem 4. Ebene nicht geht ist meines Wissens nach, der MacOSX-Treiber. Mit freundlichen Grüßen Frakturfreak ¹ http://wiki.neo-layout.org/wiki/Neo%20unter%20Windows%20einrichten/NeoVars ² http://wiki.neo-layout.org/wiki/Neo%20unter%20Windows%20einrichten/kbdneo ³ http://wiki.neo-layout.org/wiki/Neo%20unter%20Windows%20einrichten/kbdneo#Einschr%C3%A4nkungendieserTreiberversion -- Wenns halt war, wies halt war, irgendwie wars, denn noch nie wars, dass es nicht irgendwie war. Mein Blog: http://frakturfreaks-kleine-dinge.1on.de
Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?
Am 22.07.2011 13:37, schrieb Christian Kluge: Die 4. Ebene funktioniert unter Windows doch wunderbar. Jedenfalls mit dem NeoVars-Treiber¹, bei Verwendung von kbdneo² sollte man aber ein Zusatz-AHK-Skript verwenden, damit alles geht. Danke für den Hinweis. Ich hatte bei mir bis jetzt unten Windows nur kbdneo intstalliert, weil ich ein zusätzliches Usermode-Programm etwas unattraktiv fand. Nachdem du mich nun noch einmal darauf hingewiesen hast, dass damit die Navigationstasten einwandfrei funktionieren, habe ich es installiert - auf den ersten Blick funktioniert es einwandfrei. Ich formuliere meine Frage dann mal um: Warum ist es nötig das Usermode-Proggi (kbdneo_ahk.exe) laufen zu lassen? Was sind die treiberseitigen Einschränkungen/Möglichkeiten für Keyboard-Layout-Treiber? Besten Gruß, Andreas
Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?
Andreas Köpf schrieb am 22.07.2011 um 14:17 Uhr: Danke für den Hinweis. Ich hatte bei mir bis jetzt unten Windows nur kbdneo intstalliert, weil ich ein zusätzliches Usermode-Programm etwas unattraktiv fand. Nachdem du mich nun noch einmal darauf hingewiesen hast, dass damit die Navigationstasten einwandfrei funktionieren, habe ich es installiert - auf den ersten Blick funktioniert es einwandfrei. Dafür habe ich es geschrieben ;) Sollte die Funktion der AHK-Erweiterung deutlicher im Wiki beschrieben werden? Ich formuliere meine Frage dann mal um: Warum ist es nötig das Usermode-Proggi (kbdneo_ahk.exe) laufen zu lassen? Was sind die treiberseitigen Einschränkungen/Möglichkeiten für Keyboard-Layout-Treiber? Im Treiber läuft die Belegung so ab: Dem Scancode wird ein Virtual-Key zugeordnet. Die Virtual-Keys sind in 2 Gruppen auf geteilt: Ein Teil ist belegbar, hier wird die Belegung (Unicode-Zeichen, tote Tasten, Ligaturen) später in Tabellen zugeordnet. Bei dem Teil der nicht belegbar ist, ist die Funktion bereits durch die Zuordnung der Virtual-Key gegeben. Das sind dummer Weise aber auch die Funktionen die wir gerne auf die 4. Ebene schieben wollen. Gruß Florian signature.asc Description: OpenPGP digital signature
Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?
Date: Fri, 22 Jul 2011 14:17:49 +0200 From: andreas.ko...@provisio.com To: diskussion@neo-layout.org Subject: Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar? Am 22.07.2011 13:37, schrieb Christian Kluge: Die 4. Ebene funktioniert unter Windows doch wunderbar. Jedenfalls mit dem NeoVars-Treiber¹, bei Verwendung von kbdneo² sollte man aber ein Zusatz-AHK-Skript verwenden, damit alles geht. Danke für den Hinweis. Ich hatte bei mir bis jetzt unten Windows nur kbdneo intstalliert, weil ich ein zusätzliches Usermode-Programm etwas unattraktiv fand. Nachdem du mich nun noch einmal darauf hingewiesen hast, dass damit die Navigationstasten einwandfrei funktionieren, habe ich es installiert - auf den ersten Blick funktioniert es einwandfrei. Ich formuliere meine Frage dann mal um: Warum ist es nötig das Usermode-Proggi (kbdneo_ahk.exe) laufen zu lassen? Was sind die treiberseitigen Einschränkungen/Möglichkeiten für Keyboard-Layout-Treiber? Besten Gruß, Andreas Hallo Neo-Leutz.Wo kriegt man dieses Zusatz-AHK-Skript für kbdneo²?Besten Dank,Josip
Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?
Josip Turkalj schrieb am 22.07.2011 um 16:23 Uhr: Wo kriegt man dieses Zusatz-AHK-Skript für kbdneo²? Ist auf der Seite¹ rund um den kbdneo-Treiber verlinkt. Direkter Link: http://neo-layout.org/kbdneo_ahk.exe Wenn man kbdneo mit dem Installer² installiert, wird er als Option angeboten und auf Wunsch im Autostart ergänzt. Gruß Florian ¹ http://wiki.neo-layout.org/wiki/Neo%20unter%20Windows%20einrichten/kbdneo ² http://wiki.neo-layout.org/export/2400/windows/Neo2.0_setup.exe signature.asc Description: OpenPGP digital signature