#537 NeoVars: Seltsames Verhalten

Open
opened 1 month ago by Boddlnagg · 3 comments

(Issue war ursprünglich auf https://github.com/neo-layout/neo-layout/issues/11)

Ich nutze NeoVars jetzt seit über 10 Jahren, und meistens funktioniert alles, aber ab und zu macht NeoVars wirklich seltsame Dinge. Zum Beispiel wird die Alt-Taste gelockt (was eigentlich gar nicht geht mit Neo). Ich versuche das dann zu “beheben”, indem ich wild in die linken und rechten Alt-, Strg- und Shift-Tasten haue, bis ich in einen Zustand komme, wo Alt nicht mehr gelockt ist, aber dafür Shift, was ich dann mit Shift L+R beheben kann.

Auf GitHub haben drei weitere Personen bestätigt, dass bei ihnen auch solche Probleme auftreten.

Weiß irgendjemand, woran das liegt, oder wie man es verhindern kann?

(Issue war ursprünglich auf https://github.com/neo-layout/neo-layout/issues/11) Ich nutze NeoVars jetzt seit über 10 Jahren, und meistens funktioniert alles, aber ab und zu macht NeoVars wirklich seltsame Dinge. Zum Beispiel wird die Alt-Taste gelockt (was eigentlich gar nicht geht mit Neo). Ich versuche das dann zu "beheben", indem ich wild in die linken und rechten Alt-, Strg- und Shift-Tasten haue, bis ich in einen Zustand komme, wo Alt nicht mehr gelockt ist, aber dafür Shift, was ich dann mit Shift L+R beheben kann. Auf [GitHub](https://github.com/neo-layout/neo-layout/issues/11) haben drei weitere Personen bestätigt, dass bei ihnen auch solche Probleme auftreten. Weiß irgendjemand, woran das liegt, oder wie man es verhindern kann?

Ich hatte ähnliche Probleme. Daraufhin wurde mir der Treiber neo2-llkh als Alternative genannt. Der lief auf Anhieb, hatte aber nur wenige Funktionen und hat nur Neo unterstützt. Ich hab ihn dann etwas erweitert: https://github.com/MaxGyver83/neo2-llkh

Kannst du ja mal auprobieren.

Grüße, Max

Ich hatte ähnliche Probleme. Daraufhin wurde mir der Treiber neo2-llkh als Alternative genannt. Der lief auf Anhieb, hatte aber nur wenige Funktionen und hat nur Neo unterstützt. Ich hab ihn dann etwas erweitert: https://github.com/MaxGyver83/neo2-llkh Kannst du ja mal auprobieren. Grüße, Max
Boddlnagg commented 1 month ago
Poster

Danke, werde ich bei Gelegenheit mal ausprobieren. Allerdings finde ich dort im README folgenden Hinweis:

Ein Benutzer hat berichtet, dass es ab und zu passiert, dass die Strg-Taste “virtuell” zu klemmen scheint. Wenn das passiert, kann jede weitere Eingabe eine Tastenkombination mit Strg auslösen. Vorsicht: Hier besteht die Gefahr eines Datenverlustes (wenn z.B. ein ungespeichertes Dokument ungewollt geschlossen wird). Leider konnte ich noch nicht herausfinden, wie es dazu kommen kann. Ich bin für jeden Hinweis dankbar.

Das ist ja ein ähnliches Problem ... scheint mir auch nicht viel besser ...

Danke, werde ich bei Gelegenheit mal ausprobieren. Allerdings finde ich dort im README folgenden Hinweis: > Ein Benutzer hat berichtet, dass es ab und zu passiert, dass die Strg-Taste "virtuell" zu klemmen scheint. Wenn das passiert, kann jede weitere Eingabe eine Tastenkombination mit Strg auslösen. Vorsicht: Hier besteht die Gefahr eines Datenverlustes (wenn z.B. ein ungespeichertes Dokument ungewollt geschlossen wird). Leider konnte ich noch nicht herausfinden, wie es dazu kommen kann. Ich bin für jeden Hinweis dankbar. Das ist ja ein ähnliches Problem ... scheint mir auch nicht viel besser ...
qwertfisch commented 1 month ago
Owner

Prinzipiell arbeiten beide Programme mit denselben Methoden: AutoHotkey verwendet die Lowlevel-Routinen, die Windows entsprechend bereitstellt, um Tastendrücke abzufangen, zu verändern oder zu simulieren. neo-llkh macht das nicht anders.

Der Unterschied ist, dass AutoHotkey für diese Methoden allgemeine Highlevel-Funktionen in einer (für die meisten Zwecke) einfacheren Sprache bereitstellt. NeoVars benutzt diese Methoden dann, um ein komplettes Tastaturlayout zu simulieren. Bei neo-llkh entfällt die Zwischenschicht des AHK-Skripts, was theoretisch vorteilhaft sein kann: man ist nicht darauf angewiesen, mit den Mitteln von AutoHotkey auszukommen und ggf. Workarounds zu verwenden. Zudem könnten die Highlevel-Funktionen Seiteneffekte oder gar Fehler aufweisen.

Bei neo-llkh ist es andererseits notwendig, gewisse Eigenheiten von Windows zu umschiffen (Dinge, die nicht klar in den Windowsfunktionen dokumentiert sind). Diese Aufgabe hat AutoHotkey bereits erledigt, und man kann die entsprechenden Codestellen auch finden und verwenden.

Fazit

Meiner Ansicht nach resultieren die hier beschriebenen Probleme beider Treiber aber aus den Lowlevel-Funktionen von Windows, da diese nicht wirklich dafür gemacht sind, ein komplettes Tastaturlayout zu ersetzen. Aber es funktioniert, und eventuell muss man nur mehr Spezialfälle abfangen – dies gilt sowohl für NeoVars wie für neo-llkh.

Prinzipiell arbeiten beide Programme mit denselben Methoden: AutoHotkey verwendet die Lowlevel-Routinen, die Windows entsprechend bereitstellt, um Tastendrücke abzufangen, zu verändern oder zu simulieren. neo-llkh macht das nicht anders. Der Unterschied ist, dass AutoHotkey für diese Methoden allgemeine Highlevel-Funktionen in einer (für die meisten Zwecke) einfacheren Sprache bereitstellt. NeoVars benutzt diese Methoden dann, um ein komplettes Tastaturlayout zu simulieren. Bei neo-llkh entfällt die Zwischenschicht des AHK-Skripts, was theoretisch vorteilhaft sein kann: man ist nicht darauf angewiesen, mit den Mitteln von AutoHotkey auszukommen und ggf. Workarounds zu verwenden. Zudem könnten die Highlevel-Funktionen Seiteneffekte oder gar Fehler aufweisen. Bei neo-llkh ist es andererseits notwendig, gewisse Eigenheiten von Windows zu umschiffen (Dinge, die nicht klar in den Windowsfunktionen dokumentiert sind). Diese Aufgabe hat AutoHotkey bereits erledigt, und man kann die entsprechenden Codestellen auch finden und verwenden. ## Fazit Meiner Ansicht nach resultieren die hier beschriebenen Probleme beider Treiber aber aus den Lowlevel-Funktionen von Windows, da diese nicht wirklich dafür gemacht sind, ein komplettes Tastaturlayout zu ersetzen. Aber es funktioniert, und eventuell muss man nur mehr Spezialfälle abfangen – dies gilt sowohl für NeoVars wie für neo-llkh.
Sign in to join this conversation.
Loading…
Cancel
Save
There is no content yet.