Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?

2011-07-25 Diskussionsfäden Andreas Köpf

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?

2011-07-25 Diskussionsfäden Olaf Liebe
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?

2011-07-24 Diskussionsfäden Florian Janßen
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?

2011-07-23 Diskussionsfäden Olaf Liebe

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?

2011-07-22 Diskussionsfäden 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)



Re: [Neo] Navigation (Ebene 4) unter Windows per Treiber nicht realisierbar?

2011-07-22 Diskussionsfäden Christian Kluge
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?

2011-07-22 Diskussionsfäden Andreas Köpf

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?

2011-07-22 Diskussionsfäden Florian Janßen
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?

2011-07-22 Diskussionsfäden Josip Turkalj

 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?

2011-07-22 Diskussionsfäden Florian Janßen
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