Rojetto / ReNeo

Neo-Tastaturlayouts für Windows
GNU General Public License v3.0
60 stars 11 forks source link

Einrastfunktion (Sticky Keys) für Neo-Modifier #80

Open Rojetto opened 3 years ago

Rojetto commented 3 years ago

Die Einrastfunktion in Windows funktioniert nativ für Shift, Strg, Alt, Win (und im Standalone-Modus für AltGr und damit M4). Sie funktioniert hingegen nicht mit M3 und M4, obwohl diese Tasten in kbdneo als Modifier implementiert sind. Deshalb muss hier mit ReNeo nachgeholfen werden.

Idealerweise funktioniert das Einrasten einfach, wenn die Funktion in Windows aktiv ist und ReNeo läuft. Zum Auslesen der Einrasteinstellungen gibt es die Funktion SystemParametersInfo. Etwas aufwändiger wird hier, die Zustandsmaschine vollständig nachzubauen, inklusive Latch (Modifier einmal drücken), Lock (Modifier zweimal drücken), Aktivieren (Shift 5 Mal drücken) und Deaktivieren (Modifier+Taste drücken). Darüber hinaus können alle diese Funktionen individuell aktiviert und deaktiviert werden. Es scheint auch keinen offensichtlichen Weg zu geben, über Änderungen der Einrasteinstellungen direkt informiert zu werden.

hborchardt commented 2 years ago

Hi, ich wollte soeben genau diese Funktion vorschlagen! +1

Ich habe herausgefunden, dass man über Änderungen an den Einrastfunktionseinstellungen informiert werden kann, indem man die WM_SETTINGCHANGE window messages beachtet: https://docs.microsoft.com/en-us/windows/win32/winmsg/wm-settingchange