From 83c294276dbb5fb5547b233ea2ed9620f0bc544e Mon Sep 17 00:00:00 2001 From: martin_r Date: Thu, 28 Aug 2008 01:13:00 +0000 Subject: Weitere Cokos ergänzt: ›Ə‹, ›dž‹, ›Dž‹, ›DŽ‹, glyphengleiche griechische Majuskeln. Echter Bindestich durch Shift+Mod3+Zirkumflex, Leertaste. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.neo-layout.org@820 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/autohotkey/Changelog-and-Todo.txt | 246 +++++++++++++++--------------- windows/autohotkey/Source/Keys-Neo.ahk | 49 ++++-- windows/autohotkey/neo20.ahk | 71 +++++---- windows/autohotkey/neo20.exe | Bin 423847 -> 423973 bytes 4 files changed, 201 insertions(+), 165 deletions(-) (limited to 'windows/autohotkey') diff --git a/windows/autohotkey/Changelog-and-Todo.txt b/windows/autohotkey/Changelog-and-Todo.txt index 4968d87..c0bb0d4 100644 --- a/windows/autohotkey/Changelog-and-Todo.txt +++ b/windows/autohotkey/Changelog-and-Todo.txt @@ -1,205 +1,207 @@ -== NEO 2.0 (beta) AutoHotkey-Treiber == +== NEO 2.0 (beta) AutoHotkey‐Treiber == === Autoren === -Alle E-Mail-Adressen sind »kodiert«, um die Erfassung durch E-Mail-Spider (und darauf folgenden Spam) zu vermeiden: +Alle E‐Mail‐Adressen sind »kodiert«, um die Erfassung durch E‐Mail‐Spider (und darauf folgenden Spam) zu vermeiden: -Stefan Mayer +Stefan Mayer Nora Geißler -Matthias Berg +Matthias Berg Martin Roppelt Dennis Heidsiek Matthias Wächter === To Do === -- Ausgiebig testen … (besonders Vollständigkeit bei Deadkeys). -- Compose vollständig implementieren (Welche Methode ist hierzu am besten geeignet?). -- Bessere Lösung für das Leeren von PriorDeadKey finden, damit die Sondertasten nicht mehr abgefangen werden müssen. +‐ Ausgiebig testen … (besonders Vollständigkeit bei Deadkeys). +‐ Compose vollständig implementieren (Welche Methode ist hierzu am besten geeignet?). +‐ Bessere Lösung für das Leeren von PriorDeadKey finden, damit die Sondertasten nicht mehr abgefangen werden müssen. === Ideen und Vorschläge === -- Die Compose-Kombinationen sollten automatisch aus den Referenzdateien im Compose-Verzeichnis erzeugt werden. -- Modi für vertauschte Ziffern in der Zahlenreihe und auf der 4. Ebene. -- Tote Zeichen durch Verbindungszeichen ersetzen, sie können in Abhängigkeit des vorigen Zeichens zusammengezogen werden. Alle Akzente sind an einer Stelle +‐ Die Compose‐Kombinationen sollen automatisch aus den Referenzdateien im Compose‐Verzeichnis erzeugt werden. +‐ Modi für vertauschte Ziffern in der Zahlenreihe und auf der 4. Ebene. === Änderungshistorie === +Revision 820 (von Martin Roppelt) +‐ Weitere Cokos ergänzt: ›Ə‹, ›dž‹, ›Dž‹, ›DŽ‹, glyphengleiche griechische Majuskeln. +‐ Echter Bindestich durch Shift+Mod3+Zirkumflex, Leertaste. Revision 815 (von Martin Roppelt) -- AHK um Verbindungszeichen bei doppelten toten Tasten ergänzt. -- Bei CapsLock, Mod3 und Shift wird jetzt ›+‹ statt ›*‹ gesendet. +‐ AHK um Verbindungszeichen bei doppelten toten Tasten ergänzt. +‐ Bei CapsLock, Mod3 und Shift wird jetzt ›+‹ statt ›*‹ gesendet. Revision 812 (von Martin Roppelt) -- Überflüssigen Code entfernt. -- Code gestrafft. +‐ Überflüssigen Code entfernt. +‐ Code gestrafft. Revision 810 (von Martin Roppelt) -- DeadCompose implementiert, uncomp…-Methoden gelöscht, »return 0«-Zeilen entfernt (wird sowieso gemacht). -- checkComp ausgebessert: »global« hatte gefehlt. +‐ DeadCompose implementiert, uncomp…‐Methoden gelöscht, »return 0«‐Zeilen entfernt (wird sowieso gemacht). +‐ checkComp ausgebessert: »global« hatte gefehlt. • Damit wurde ›ſt‹ ermöglicht (war defekt). -- ahkTreiberKombi rausgeschmissen (war für den gelöschten msklc-Treiber gedacht). -- Massenweise Formatierungen normalisiert. -- Zusätzliche Compose-Aktivierung über Mod3+Mod3. -- Einhand- und Lernmodus wiederhergestellt. +‐ ahkTreiberKombi rausgeschmissen (war für den gelöschten msklc‐Treiber gedacht). +‐ Massenweise Formatierungen normalisiert. +‐ Zusätzliche Compose‐Aktivierung über Mod3+Mod3. +‐ Einhand‐ und Lernmodus wiederhergestellt. Revision 806 (von Dennis Heidsiek) -- Die automatisch erzeugte Datei neo20.ahk wird wieder um die SVN-Keywords (Date, Author, Revision) ergänzt. +‐ Die automatisch erzeugte Datei neo20.ahk wird wieder um die SVN‐Keywords (Date, Author, Revision) ergänzt. Revision 804 (von Martin Roppelt) -- Formatierung vereinfacht und vereinheitlicht. -- Compose-Ligaturen implementiert: ›fl‹, ›ffl‹(♫Fl), ›fi‹, ›ffi‹(♫Fi), ›ff‹, ›st‹, ›ſt‹. +‐ Formatierung vereinfacht und vereinheitlicht. +‐ Compose‐Ligaturen implementiert: ›fl‹, ›ffl‹(♫Fl), ›fi‹, ›ffi‹(♫Fi), ›ff‹, ›st‹, ›ſt‹. Revision 789 (von Martin Roppelt) -- NumLock-Bug ausgebessert (NumLock konnte nach dem Beenden von Neo nicht mehr aktiviert werden). +‐ NumLock‐Bug ausgebessert (NumLock konnte nach dem Beenden von Neo nicht mehr aktiviert werden). Revision 778 (von Martin Roppelt) -- CapsLock+Shift-Fehler ausgebessert. +‐ CapsLock+Shift‐Fehler ausgebessert. Revision 777 (von Martin Roppelt) -- Syntaxfehler ausgebessert. +‐ Syntaxfehler ausgebessert. Revision 776 (von Martin Roppelt) -- Modularisierung des AHK konsequent weitergeführt. -- Global-Part.ahk, Keys-Neo.ahk: ZeigeLockBoxen in ZeigeLockBox umbenannt. -- Keys-Neo.ahk: Fehler ausgebessert, Quelltext neu ausgerichtet, Numpad an die Referenz angeglichen (Ebenen 2 und 4 vertauscht), Ebenen 7 und 8 ergänzt. -- Methods-Layers.ahk: Mod3-Lock abgeschafft, CapsLock neu geschrieben. +‐ Modularisierung des AHK konsequent weitergeführt. +‐ Global‐Part.ahk, Keys‐Neo.ahk: ZeigeLockBoxen in ZeigeLockBox umbenannt. +‐ Keys‐Neo.ahk: Fehler ausgebessert, Quelltext neu ausgerichtet, Numpad an die Referenz angeglichen (Ebenen 2 und 4 vertauscht), Ebenen 7 und 8 ergänzt. +‐ Methods‐Layers.ahk: Mod3‐Lock abgeschafft, CapsLock neu geschrieben. Revision 749 (von Dennis Heidsiek) -- »?« und »¿« funktionieren wieder (Klammer vergessen). +‐ »?« und »¿« funktionieren wieder (Klammer vergessen). Revision 748 (von Dennis Heidsiek) -- Neue globale Variable »zeigeLockBoxen«: Soll mit MsgBoxen explizit auf das Ein- und Ausschalten des Mod{3,4}-Locks hingewiesen werden? +‐ Neue globale Variable »zeigeLockBoxen«: Soll mit MsgBoxen explizit auf das Ein‐ und Ausschalten des Mod{3,4}‐Locks hingewiesen werden? Revision 746 (von Martin Roppelt) -- Zurücksetzen der Tastatur über M4+Esc. -- #[2] sendet nicht mehr »'«. -- Variablen Ebene7 und Ebene8 zum Abfragen eingeführt. -- s(12)[2s]-Bug von Matthias Wächter behoben (= Lang-ſ-Tastatur repariert). +‐ Zurücksetzen der Tastatur über M4+Esc. +‐ #[2] sendet nicht mehr »'«. +‐ Variablen Ebene7 und Ebene8 zum Abfragen eingeführt. +‐ s(12)[2s]‐Bug von Matthias Wächter behoben (= Lang‐ſ‐Tastatur repariert). Revision 744 (von Stefan Mayer) -- Ebene4-Ziffernblock: auf neo_d nun Komma (wie Referenz), »NumPadKomma« gibt es nicht. +‐ Ebene4‐Ziffernblock: auf neo_d nun Komma (wie Referenz), »NumPadKomma« gibt es nicht. Revision 743 (von Matthias Wächter) -- Ebene4-Ziffernblock: NumPadAdd und NumPadSub korrigiert. -Revision 740 (von Matthias Wächter) – »Mega-Patch« -- Straffung der Syntax bei der Abfrage der Ebenen und der Behandlung der toten Tasten und der Compose. -- Umstellung auf Virtual-Key-Scancodes; umgeht den AHK-Bug, dass Scancodemarken durch SendUnicodeChar angesprungen werden. -- Die Scancodes für das Numpad (jeweils für ein- und ausgeschaltetes NumLock) haben jetzt paarweise Sprungmarken, um die Tastenbehandlung untereinander konsistent zu halten. -- Wiederherstellung der Modifier-Locks. -- Reparatur der Bildschirmtastatur in der All.ahk. -- Modifier werder seltener und nur noch innerhalb der Sprungmarken abgefragt. -- Blinde tote Tasten auf M4+F9 (Toggle). -- Blinde Compose auf M4+F10 (Toggle) (noch nicht implementiert). +‐ Ebene4‐Ziffernblock: NumPadAdd und NumPadSub korrigiert. +Revision 740 (von Matthias Wächter) – »Mega‐Patch« +‐ Straffung der Syntax bei der Abfrage der Ebenen und der Behandlung der toten Tasten und der Compose. +‐ Umstellung auf Virtual‐Key‐Scancodes; umgeht den AHK‐Bug, dass Scancodemarken durch SendUnicodeChar angesprungen werden. +‐ Die Scancodes für das Numpad (jeweils für ein‐ und ausgeschaltetes NumLock) haben jetzt paarweise Sprungmarken, um die Tastenbehandlung untereinander konsistent zu halten. +‐ Wiederherstellung der Modifier‐Locks. +‐ Reparatur der Bildschirmtastatur in der All.ahk. +‐ Modifier werder seltener und nur noch innerhalb der Sprungmarken abgefragt. +‐ Blinde tote Tasten auf M4+F9 (Toggle). +‐ Blinde Compose auf M4+F10 (Toggle) (noch nicht implementiert). Revision 728 (von Dennis Heidsiek): -- Ist die Datei »%APPDATA%\NEO2\NEO2.ini« vorhanden, werden dort eventuell vorhandene Werte für die Globalen Schalter beim Start übernommen. -- »LangSTastaturStandardmäßigEingeschaltet.ahk« wird nicht mehr unterstützt, weil sonst immer neu kompiliert werden muss. +‐ Ist die Datei »%APPDATA%\NEO2\NEO2.ini« vorhanden, werden dort eventuell vorhandene Werte für die Globalen Schalter beim Start übernommen. +‐ »LangSTastaturStandardmäßigEingeschaltet.ahk« wird nicht mehr unterstützt, weil sonst immer neu kompiliert werden muss. Revision 707 (von Dennis Heidsiek): -- Die Resourcen-Dateien (PNGs, ICOs) werden nun nach »%TEMP%\NEO2\« extrahiert und nicht mehr in das Verzeichnis, in dem sich die EXE befindet. -- Die doppelten französischen Anführungszeichen werden nun ebenfalls über SendUnicodeChar gesendet. +‐ Die Resourcen‐Dateien (PNGs, ICOs) werden nun nach »%TEMP%\NEO2\« extrahiert und nicht mehr in das Verzeichnis, in dem sich die EXE befindet. +‐ Die doppelten französischen Anführungszeichen werden nun ebenfalls über SendUnicodeChar gesendet. Revision 694 (von Martin Roppelt): -- Lang-ſ-Tastatur auf M4+F11. -- Entwickler können durch das Erstellen einer Datei »LangSTastaturStandardmäßigEingeschaltet.ahk« mit dem Inhalt »LangSTastatur := 1« diese standardmäßig aktivieren. -- Interne Darstellung der Ebenen (4 und 5 bei den toton Tasten wieder richtig getauscht. +‐ Lang‐ſ‐Tastatur auf M4+F11. +‐ Entwickler können durch das Erstellen einer Datei »LangSTastaturStandardmäßigEingeschaltet.ahk« mit dem Inhalt »LangSTastatur := 1« diese standardmäßig aktivieren. +‐ Interne Darstellung der Ebenen (4 und 5 bei den toton Tasten wieder richtig getauscht. Revision 687 (von Dennis Heidsiek): -- Die SendUnicodeChar-Methode um den GDK-Workarround von Matthias Wächter ergänzt. -- (An/Aus) Icons an das Favicon der neuen Homepage angepasst. +‐ Die SendUnicodeChar‐Methode um den GDK‐Workarround von Matthias Wächter ergänzt. +‐ (An/Aus) Icons an das Favicon der neuen Homepage angepasst. Revision 645 (von Martin Roppelt): -- Ellipse (…) zusätzlich auf M3+x. -- Lang-ſ-Tastatur probeweise auf M4+Esc. +‐ Ellipse (…) zusätzlich auf M3+x. +‐ Lang‐ſ‐Tastatur probeweise auf M4+Esc. Revision 640 (von Dennis Heidsiek): -- Der untote Zirkumflex (^) auf Ebene 3 funktioniert jetzt auch in Java-Programmen. +‐ Der untote Zirkumflex (^) auf Ebene 3 funktioniert jetzt auch in Java‐Programmen. Revision 639 (von Martin Roppelt): -- Lang-ſ-Tastatur kann nicht mehr durch einen Hotkey aktiviert werden. +‐ Lang‐ſ‐Tastatur kann nicht mehr durch einen Hotkey aktiviert werden. Revision 629 (von Martin Roppelt): -- Spitze Klammern (bra und ket) auf M5+8/9. +‐ Spitze Klammern (bra und ket) auf M5+8/9. Revision 624 (von Martin Roppelt): -- Lang-ſ-Tastatur (ein- und auszuschalten durch Mod4+ß) hinzugefügt: »s« wird zu »ſ«, »ß« wird zu »s« und »ſ« wird zu »ß«. +‐ Lang‐ſ‐Tastatur (ein‐ und auszuschalten durch Mod4+ß) hinzugefügt: »s« wird zu »ſ«, »ß« wird zu »s« und »ſ« wird zu »ß«. Revision 616 (von Dennis Heidsiek): -- Der nicht funktionierende Mod5-Lock-Fix wurde wieder entfernt, da er sogar neue Fehler produzierte. +‐ Der nicht funktionierende Mod5‐Lock‐Fix wurde wieder entfernt, da er sogar neue Fehler produzierte. Revision 615 (von Dennis Heidsiek): -- Erfolgloser Versuch, den Mod4-Lock wiederherzustellen (durch eine Tilde vor den Scancodes der Bildschirmtastatur). -- Rechtschreibfehler korrigiert. -- Zwei AHK-Links eingefügt. +‐ Erfolgloser Versuch, den Mod4‐Lock wiederherzustellen (durch eine Tilde vor den Scancodes der Bildschirmtastatur). +‐ Rechtschreibfehler korrigiert. +‐ Zwei AHK‐Links eingefügt. Revision 609 (von Dennis Heidsiek): -- Vorläufiger Abschluss der AHK-Modularisierung. -- Bessere Testmöglichkeit »All.ahk« für AHK-Entwickler hinzugefügt, bei der sich die Zeilenangaben in Fehlermeldungen auf die tatsächlichen Module und nicht auf das große »vereinigte« Skript beziehen. +‐ Vorläufiger Abschluss der AHK‐Modularisierung. +‐ Bessere Testmöglichkeit »All.ahk« für AHK‐Entwickler hinzugefügt, bei der sich die Zeilenangaben in Fehlermeldungen auf die tatsächlichen Module und nicht auf das große »vereinigte« Skript beziehen. Revision 608 (von Martin Roppelt): -- Rechtschreibfehler korrigiert und Dateinamen aktualisiert und sortiert. +‐ Rechtschreibfehler korrigiert und Dateinamen aktualisiert und sortiert. Revision 590 (von Dennis Heidsiek): -- Erste technische Vorarbeiten zur logischen Modularisierung des viel zu lange gewordenen AHK-Quellcodes. -- Neue Batch-Datei Build-Update.bat zur einfachen Aktualisierung der EXE-Datei. +‐ Erste technische Vorarbeiten zur logischen Modularisierung des viel zu lange gewordenen AHK‐Quellcodes. +‐ Neue Batch‐Datei Build‐Update.bat zur einfachen Aktualisierung der EXE‐Datei. Revision 583 (von Dennis Heidsiek): -- Kleinere Korrekturen ((5)(3), (5)(5) und (9)(3) stimmen wieder mit der Referenz überein). +‐ Kleinere Korrekturen ((5)(3), (5)(5) und (9)(3) stimmen wieder mit der Referenz überein). Revision 580 (von Matthias Berg): -- Bildschirmtastatur jetzt mit Mod4+F* statt Strg+F*, dies deaktiviert jedoch leider den Mod4-Lock. +‐ Bildschirmtastatur jetzt mit Mod4+F* statt Strg+F*, dies deaktiviert jedoch leider den Mod4‐Lock. Revision 570 (von Matthias Berg): -- Hotkeys für einHandNeo und lernModus durch entsprechende ScanCodes ersetzt. +‐ Hotkeys für einHandNeo und lernModus durch entsprechende ScanCodes ersetzt. Revision 568 (von Matthias Berg): -- Sonderzeichen, Umlaute, z und y durch ScanCodes ersetzt. +‐ Sonderzeichen, Umlaute, z und y durch ScanCodes ersetzt. • jetzt wird auch bei eingestelltem US Layout Neo verwendet (z.B. für Chinesische InputMethodEditors). - • rechter Mod3 geht noch nicht bei US-Layout (weder ScanCode noch »\«). + • rechter Mod3 geht noch nicht bei US‐Layout (weder ScanCode noch »\«). Revision 567 (von Dennis Heidsiek): -- Aktivierter Mod4-Lock wird jetzt über die Rollen-LED des Keybord angezeigt (analog zu CapsLock), die Num-LED behält ihr bisheriges Verhalten. -- Neue Option im Skript: UseMod4Light. +‐ Aktivierter Mod4‐Lock wird jetzt über die Rollen‐LED des Keybord angezeigt (analog zu CapsLock), die Num‐LED behält ihr bisheriges Verhalten. +‐ Neue Option im Skript: UseMod4Light. Revision 561 (von Matthias Berg): -- M4+Tab verhält sich jetzt wie das andere Tab dank »goto neo_tab«. +‐ M4+Tab verhält sich jetzt wie das andere Tab dank »goto neo_tab«. Revision 560 (von Dennis Heidsiek): -- Neue Option im Skript: bildschirmTastaturEinbinden bindet die PNG-Bilder der Bildschirmtastur mit in die exe-Datei ein, so dass sich der Benutzer nur eine Datei herunterladen muss. +‐ Neue Option im Skript: bildschirmTastaturEinbinden bindet die PNG‐Bilder der Bildschirmtastur mit in die exe‐Datei ein, so dass sich der Benutzer nur eine Datei herunterladen muss. Revision 559 (von Matthias Berg): -- Shift+Alt+Tab Problem gelöst (muss noch mehr auf Nebeneffekte getestet werden). +‐ Shift+Alt+Tab Problem gelöst (muss noch mehr auf Nebeneffekte getestet werden). Revision 558 (von Matthias Berg): -- Icon-Bug behoben +‐ Icon‐Bug behoben • Hotkeys dürfen nicht vor der folgenden Zeile stehen: »menu, tray, icon, neo.ico,,1« -- lernModus-Konfigurations-Bug behoben: or statt and(not). -- Ein paar leere Else-Fälle eingebaut (um die Verständlichkeit zu erhöhen und mögliche Compilerprobleme zu vermeiden). +‐ lernModus‐Konfigurations‐Bug behoben: or statt and(not). +‐ Ein paar leere Else‐Fälle eingebaut (um die Verständlichkeit zu erhöhen und mögliche Compilerprobleme zu vermeiden). Revision 556 (von Matthias Berg): -- lernModus (an/aus mit Strg+Komma) +‐ lernModus (an/aus mit Strg+Komma) • im Skript konfigurierbar. • Schaltet z.B. Qwertz Tasten aus, die es auf der 4. Ebene gibt (Return, Backspace, …). • Kann auch Backspace und/oder Entfernen der 4. Ebene ausschalten (gut zum Lernen, richtig zu schreiben). -- Bug aufgetaucht: Icons werden nicht mehr angezeigt. +‐ Bug aufgetaucht: Icons werden nicht mehr angezeigt. Revision 544 (von Stefan Mayer): -- »,.:;« auf dem Mod4-Ziffernblock an die aktuelle Referenz angepasst. -- Versionen von rho, theta, kappa und phi an die aktuelle Referenz angepasst. +‐ »,.:;« auf dem Mod4‐Ziffernblock an die aktuelle Referenz angepasst. +‐ Versionen von rho, theta, kappa und phi an die aktuelle Referenz angepasst. Revision 542 (von Matthias Berg): -- Bei EinHandNeo ist jetzt Space+y auch Mod4. -- AltGr-Bug hoffentlich wieder behoben. Diesmal mit extra altGrPressed Variable. -- nurEbenenFuenfUndSechs umbenannt in ahkTreiberKombi und auf Ebene 4 statt 5 und 6 geändert. +‐ Bei EinHandNeo ist jetzt Space+y auch Mod4. +‐ AltGr‐Bug hoffentlich wieder behoben. Diesmal mit extra altGrPressed Variable. +‐ nurEbenenFuenfUndSechs umbenannt in ahkTreiberKombi und auf Ebene 4 statt 5 und 6 geändert. Revision 540 (von Matthias Berg): -- Stark überarbeitet um Wartbarkeit zu erhöhen und Redundanz zu verringern. -- nurEbenenFuenfUndSechs sollte nun auch auf Neo Treiber statt Qwertz laufen. +‐ Stark überarbeitet um Wartbarkeit zu erhöhen und Redundanz zu verringern. +‐ nurEbenenFuenfUndSechs sollte nun auch auf Neo Treiber statt Qwertz laufen. • aber es muss noch jemand testen. • Problem: was kann man abfangen, wenn eine tote Taste gedrückt wird. -- einHandNeo: - • An-/Ausschalten mit Strg+Punkt. +‐ einHandNeo: + • An‐/Ausschalten mit Strg+Punkt. • Buchstaben der rechten Hand werden mit Space zur linken Hand. • Nebeneffekt: es gibt beim Festhalten von Space keine wiederholten Leerzeichen mehr. Revision 532 (von Matthias Berg): -- BildschirmTastatur +‐ BildschirmTastatur • aktiviert mit Strg+F1 bis 7, schaltet Keyboard ein oder aus. • Strg+F7 zeigt die zuletzt angezeigte Ebene an (und wieder aus). • Strg+F8 schaltet AlwaysOnTop um. Revision 529 (von Stefan Mayer): -- Icon wird automatisch geladen, falls .ico-Dateien im selbem Ordner. -- In der .exe sind die .ico mitgespeichert und werden automatisch geladen. +‐ Icon wird automatisch geladen, falls .ico‐Dateien im selbem Ordner. +‐ In der .exe sind die .ico mitgespeichert und werden automatisch geladen. Revision 528 (von Matthias Berg): -- Neo-Icon ersetzt das bisherige Autohotkey-Standard-Icon im Tray-Bereich. -- Neo-Prozess jetzt automatisch auf hoher Priorität (siehe globale Schalter). -- Mod3-Lock (nur wenn rechtes Mod3 zuerst gedrückt wird, andere Lösung führte zum Caps-Bug). -- Mod4-Lock (nur wenn das linke Mod4 zuerst gedrückt wird, andere Lösung führte zum AltGr-Bug). -- Ein paar falsche Zeichen korrigiert. +‐ Neo‐Icon ersetzt das bisherige Autohotkey‐Standard‐Icon im Tray‐Bereich. +‐ Neo‐Prozess jetzt automatisch auf hoher Priorität (siehe globale Schalter). +‐ Mod3‐Lock (nur wenn rechtes Mod3 zuerst gedrückt wird, andere Lösung führte zum Caps‐Bug). +‐ Mod4‐Lock (nur wenn das linke Mod4 zuerst gedrückt wird, andere Lösung führte zum AltGr‐Bug). +‐ Ein paar falsche Zeichen korrigiert. Revision 527 (von Matthias Berg): -- AltGr-Problem hoffentlich behoben. -- Umschalt+Mod4-Bug behoben. +‐ AltGr‐Problem hoffentlich behoben. +‐ Umschalt+Mod4‐Bug behoben. Revision 526 (von Matthias Berg): -- Ebenen 1 bis 4 ausschalten per Umschalter siehe erste Codezeile nurEbenenFuenfUndSechs = 0. -- Mod4-Lock durch Mod4+Mod4. -- EbenenAktualisierung neu geschrieben. -- Ebene 6 über Mod3+Mod4. -- Ebenen (besonders Matheebene) an Referenz angepasst (allerdings kaum um Ebenen 1&2 gekümmert, besonders Compose könnte noch überholt werden). +‐ Ebenen 1 bis 4 ausschalten per Umschalter siehe erste Codezeile nurEbenenFuenfUndSechs = 0. +‐ Mod4‐Lock durch Mod4+Mod4. +‐ EbenenAktualisierung neu geschrieben. +‐ Ebene 6 über Mod3+Mod4. +‐ Ebenen (besonders Matheebene) an Referenz angepasst (allerdings kaum um Ebenen 1&2 gekümmert, besonders Compose könnte noch überholt werden). Revision 525 (von Matthias Berg): -- Capslock bei Zahlen und Sonderzeichen berücksichtigt. +‐ Capslock bei Zahlen und Sonderzeichen berücksichtigt. Revision 524 (von Matthias Berg): -- umgekehrtes ^ für o, a, ü,i sowie für die grossen vokale ( 3. ton chinesisch). +‐ umgekehrtes ^ für o, a, ü,i sowie für die grossen vokale ( 3. ton chinesisch). • damit wird jetzt PinYin vollständig unterstützt: caron, macron, akut, grave auf uiaeoü. -- Sonderzeichen senden wieder blind -> Shortcuts funktionieren, Capslock ist leider Shiftlock. +‐ Sonderzeichen senden wieder blind ‐> Shortcuts funktionieren, Capslock ist leider Shiftlock. Revision 523 (von Matthias Berg): -- CapsLock geht jetzt auch bei allen Zeichen (»send Zeichen« statt »send {blind} Zeichen«). -- vertikale Ellipse (⋮) eingebaut. -- Umschalt+Umschalt für Capslock statt Mod3+Mod3. -- bei Suspend wird jetzt wirklich togglesuspend aufgerufen (auch beim Aktivieren per shift+pause). +‐ CapsLock geht jetzt auch bei allen Zeichen (»send Zeichen« statt »send {blind} Zeichen«). +‐ vertikale Ellipse (⋮) eingebaut. +‐ Umschalt+Umschalt für Capslock statt Mod3+Mod3. +‐ bei Suspend wird jetzt wirklich togglesuspend aufgerufen (auch beim Aktivieren per shift+pause). Revsion 490 (von Stefan Mayer): -- SUBSCRIPT von 0 bis 9 sowie (auf Ziffernblock) + und - +‐ SUBSCRIPT von 0 bis 9 sowie (auf Ziffernblock) + und ‐ • auch bei Ziffernblock auf der 5. Ebene -- Kein Parsen über die Zwischenablage mehr. -- Vista-kompatibel. -- Compose-Taste - • Brüche (auf Zahlenreihe und Hardware-Ziffernblock). +‐ Kein Parsen über die Zwischenablage mehr. +‐ Vista‐kompatibel. +‐ Compose‐Taste + • Brüche (auf Zahlenreihe und Hardware‐Ziffernblock). • römische Zahlen. • Ligaturen und Copyright. diff --git a/windows/autohotkey/Source/Keys-Neo.ahk b/windows/autohotkey/Source/Keys-Neo.ahk index 8ab7509..61b2348 100644 --- a/windows/autohotkey/Source/Keys-Neo.ahk +++ b/windows/autohotkey/Source/Keys-Neo.ahk @@ -294,7 +294,7 @@ return neo_x: EbeneAktualisieren() - if (Ebene12) + if (Ebene12 or CheckCompUni12("G","",0x039D)) OutputChar("x","X") else if (Ebene = 3) SendUnicodeChar(0x2026) ; Ellipse horizontal @@ -380,7 +380,8 @@ return neo_k: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136) - or CheckDeadUni12("c6",0x1E33,0x1E32))) + or CheckDeadUni12("c6",0x1E33,0x1E32) + or CheckCompUni12("G","",0x039A))) OutputChar("k","K") else if (Ebene = 3) send {blind}{!} @@ -397,7 +398,8 @@ neo_h: if (Ebene12 and !(CheckDeadUni12("a4",0x1E23,0x1E22) or CheckDeadUni12("c1",0x0125,0x0124) or CheckDeadUni12("c5",0x0127,0x0126) - or CheckDeadUni12("c6",0x1E25,0x1E24))) + or CheckDeadUni12("c6",0x1E25,0x1E24) + or CheckCompUni12("G","",0x0397))) OutputChar("h","H") else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2264))) ; kleiner gleich send {blind}< @@ -556,7 +558,8 @@ neo_i: or CheckDeadUni12("t2",0x012B,0x012A) or CheckDeadAsc12("t3","","") or CheckCompUni("f",0xFB01) - or CheckCompUni("F",0xFB03))) + or CheckCompUni("F",0xFB03) + or CheckCompUni12("G","",0x0399))) OutputChar("i","I") else if (Ebene = 3) send {blind}`/ @@ -579,7 +582,8 @@ neo_a: or CheckDeadUni12("c3",0x0103,0x0102) or CheckDeadUni12("t1",0x00E3,0x00C3) or CheckDeadUni12("t2",0x0101,0x0100) - or CheckDeadAsc12("t3","",""))) + or CheckDeadAsc12("t3","","") + or CheckCompUni12("G","",0x0391))) OutputChar("a","A") else if (Ebene = 3) send {blind}{{} @@ -606,7 +610,9 @@ neo_e: or CheckCompAsc12("a","","") or CheckCompAsc12("A","","") or CheckCompAsc12("o","","") - or CheckCompAsc12("O","",""))) + or CheckCompAsc12("O","","") + or CheckCompUni12("G","",0x0395) + or CheckCompUni12("E","",0x018F))) OutputChar("e","E") else if (Ebene = 3) send {blind}{}} @@ -630,7 +636,8 @@ neo_o: or CheckDeadUni12("t2",0x014D,0x014C) or CheckDeadAsc12("t3","","") or CheckDeadUni12("t4",0x00F8,0x00D8) - or CheckDeadUni12("t5",0x0151,0x0150))) + or CheckDeadUni12("t5",0x0151,0x0150) + or CheckCompUni12("G","",0x039F))) OutputChar("o","O") else if (Ebene = 3) send {blind}* @@ -671,7 +678,8 @@ neo_n: or CheckDeadUni12("a3",0x0146,0x0145) or CheckDeadUni12("a4",0x1E45,0x1E44) or CheckDeadUni12("c2",0x0148,0x0147) - or CheckDeadUni12("t1",0x00F1,0x00D1))) + or CheckDeadUni12("t1",0x00F1,0x00D1) + or CheckCompUni12("G","",0x039D))) OutputChar("n","N") else if (Ebene = 3) send {blind}( @@ -713,7 +721,8 @@ neo_t: or CheckDeadUni12("c5",0x0167,0x0166) or CheckDeadUni12("c6",0x1E6D,0x1E6C) or CheckCompUni("lang_s",0xFB05) - or CheckCompUni("s",0xFB06))) + or CheckCompUni("s",0xFB06) + or CheckCompUni12("G","",0x03A4))) OutputChar("t","T") else if (Ebene = 3) send {blind}- ; Bisstrich @@ -748,7 +757,8 @@ neo_y: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("a1",0x00FD,0x00DD) or CheckDeadUni12("c1",0x0177,0x0176) - or CheckDeadAsc12("t3","",""))) + or CheckDeadAsc12("t3","","") + or CheckCompUni12("G","",0x03A5))) OutputChar("y","Y") else if (Ebene = 3) send {blind}@ @@ -815,7 +825,8 @@ return neo_p: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a4",0x1E57,0x1E56))) + if (Ebene12 and !(CheckDeadUni12("a4",0x1E57,0x1E56) + or CheckCompUni12("G","",0x03A1))) OutputChar("p","P") else if ((Ebene = 3) and !(CheckDeadUni("t1",0x2248))) send {blind}~ @@ -832,7 +843,10 @@ neo_z: if (Ebene12 and !(CheckDeadUni12("a1",0x017A,0x0179) or CheckDeadUni12("a4",0x017C,0x017B) or CheckDeadUni12("c2",0x017E,0x017D) - or CheckDeadUni12("c6",0x1E93,0x1E92))) + or CheckDeadUni12("c6",0x1E93,0x1E92) + or CheckCompUni("d",0x01C6) + or CheckCompUni12("D",0x01C5,0x01C4) + or CheckCompUni12("G","",0x0396))) OutputChar("z","Z") else if (Ebene = 3) send ``{space} ; untot @@ -847,7 +861,8 @@ return neo_b: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02))) + if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02) + or CheckCompUni12("G","",0x0392))) OutputChar("b","B") else if (Ebene = 3) if isMod2Locked @@ -866,7 +881,8 @@ neo_m: if (Ebene12 and !(CheckDeadUni12("a4",0x1E41,0x1E40) or CheckDeadUni12("c6",0x1E43,0x1E42) or CheckCompUni12("t",0x2122,0x2122) ; TM - or CheckCompUni12("s",0x2120,0x2120))) ; SM + or CheckCompUni12("s",0x2120,0x2120) ; SM + or CheckCompUni12("G","",0x039C))) OutputChar("m","M") else if (Ebene = 3) send {blind}`% @@ -920,10 +936,10 @@ neo_j: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("c1",0x0135,0x0134) or CheckDeadUni12("c2",0x01F0,"") + or CheckCompUni("I",0x0132) ; IJ or CheckCompUni("i",0x0133) ; ij or CheckCompUni("l",0x01C9) ; lj or CheckCompUni("n",0x01CC) ; nj - or CheckCompUni("I",0x0132) ; IJ or CheckCompUni12("L",0x01C8,0x01C7) ; Lj/LJ or CheckCompUni12("N",0x01CB,0x01CA))) ; Nj/NJ OutputChar("j","J") @@ -1171,7 +1187,8 @@ return neo_SpaceUp: EbeneAktualisieren() if (Ebene = 1) and !(CheckComp3Uni("r_1",0x2170) ; Rmisch i - or CheckComp3Uni("R_1",0x2160)) ; Rmisch I + or CheckComp3Uni("R_1",0x2160) ; Rmisch I + or CheckDeadUni("c5",0x2010)) ; Echter Bindestrich Send {blind}{Space} else if (Ebene = 2) or (Ebene = 3) Send {blind}{Space} diff --git a/windows/autohotkey/neo20.ahk b/windows/autohotkey/neo20.ahk index e87b6e4..3d7c5d9 100644 --- a/windows/autohotkey/neo20.ahk +++ b/windows/autohotkey/neo20.ahk @@ -1014,19 +1014,19 @@ neo_tot2: if (Ebene = 1) and !CheckDeadUni("a1",0x0301) { deadAsc("{}{space}") ; Akut, tot DeadKey := "a1" - } else if (Ebene = 2) !CheckDeadUni("a2",0x0300) { + } else if (Ebene = 2) and !CheckDeadUni("a2",0x0300) { deadAsc("``{space}") ; Gravis, tot DeadKey := "a2" - } else if (Ebene = 3) !CheckDeadUni("a3",0x0327) { + } else if (Ebene = 3) and !CheckDeadUni("a3",0x0327) { deadAsc("") ; Cedilla, tot DeadKey := "a3" - } else if (Ebene = 4) !CheckDeadUni("a4",0x0307) { + } else if (Ebene = 4) and !CheckDeadUni("a4",0x0307) { deadUni(0x02D9) ; Punkt oben DeadKey := "a4" - } else if (Ebene = 5) !CheckDeadUni("a5",0x0328) { + } else if (Ebene = 5) and !CheckDeadUni("a5",0x0328) { deadUni(0x02DB) ; Ogonek DeadKey := "a5" - } else if (Ebene = 6) !CheckDeadUni("a6",0x030A) { + } else if (Ebene = 6) and !CheckDeadUni("a6",0x030A) { deadUni(0x02DA) ; Ring oben DeadKey := "a6" } CompKey := PriorCompKey @@ -1041,7 +1041,7 @@ return neo_x: EbeneAktualisieren() - if (Ebene12) + if (Ebene12 or CheckCompUni12("G","",0x039D)) OutputChar("x","X") else if (Ebene = 3) SendUnicodeChar(0x2026) ; Ellipse horizontal @@ -1127,7 +1127,8 @@ return neo_k: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136) - or CheckDeadUni12("c6",0x1E33,0x1E32))) + or CheckDeadUni12("c6",0x1E33,0x1E32) + or CheckCompUni12("G","",0x039A))) OutputChar("k","K") else if (Ebene = 3) send {blind}{!} @@ -1144,7 +1145,8 @@ neo_h: if (Ebene12 and !(CheckDeadUni12("a4",0x1E23,0x1E22) or CheckDeadUni12("c1",0x0125,0x0124) or CheckDeadUni12("c5",0x0127,0x0126) - or CheckDeadUni12("c6",0x1E25,0x1E24))) + or CheckDeadUni12("c6",0x1E25,0x1E24) + or CheckCompUni12("G","",0x0397))) OutputChar("h","H") else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2264))) ; kleiner gleich send {blind}< @@ -1236,22 +1238,22 @@ return neo_tot3: noCaps = 1 EbeneAktualisieren() - if (Ebene = 1) !CheckDeadUni("t1",0x0303) { + if (Ebene = 1) and !CheckDeadUni("t1",0x0303) { deadUni(0x02DC) ; Tilde, tot DeadKey := "t1" - } else if (Ebene = 2) !CheckDeadUni("t2",0x0304) { + } else if (Ebene = 2) and !CheckDeadUni("t2",0x0304) { deadUni(0x00AF) ; Macron, tot DeadKey := "t2" - } else if (Ebene = 3) !CheckDeadUni("t3",0x0308) { + } else if (Ebene = 3) and !CheckDeadUni("t3",0x0308) { deadUni(0x00A8) ; Direse DeadKey := "t3" - } else if (Ebene = 4) !CheckDeadUni("t4",0x0337) { + } else if (Ebene = 4) and !CheckDeadUni("t4",0x0337) { deadUni(0x002F) ; Schrgstrich, tot DeadKey := "t4" - } else if (Ebene = 5) !CheckDeadUni("t5",0x030B) { + } else if (Ebene = 5) and !CheckDeadUni("t5",0x030B) { deadUni(0x02DD) ; Doppelakut DeadKey := "t5" - } else if (Ebene = 6) !CheckDeadUni("t6",0x0326) { + } else if (Ebene = 6) and !CheckDeadUni("t6",0x0326) { deadUni(0x02CF) ; Komma drunter, tot DeadKey := "t6" } @@ -1303,7 +1305,8 @@ neo_i: or CheckDeadUni12("t2",0x012B,0x012A) or CheckDeadAsc12("t3","","") or CheckCompUni("f",0xFB01) - or CheckCompUni("F",0xFB03))) + or CheckCompUni("F",0xFB03) + or CheckCompUni12("G","",0x0399))) OutputChar("i","I") else if (Ebene = 3) send {blind}`/ @@ -1326,7 +1329,8 @@ neo_a: or CheckDeadUni12("c3",0x0103,0x0102) or CheckDeadUni12("t1",0x00E3,0x00C3) or CheckDeadUni12("t2",0x0101,0x0100) - or CheckDeadAsc12("t3","",""))) + or CheckDeadAsc12("t3","","") + or CheckCompUni12("G","",0x0391))) OutputChar("a","A") else if (Ebene = 3) send {blind}{{} @@ -1353,7 +1357,9 @@ neo_e: or CheckCompAsc12("a","","") or CheckCompAsc12("A","","") or CheckCompAsc12("o","","") - or CheckCompAsc12("O","",""))) + or CheckCompAsc12("O","","") + or CheckCompUni12("G","",0x0395) + or CheckCompUni12("E","",0x018F))) OutputChar("e","E") else if (Ebene = 3) send {blind}{}} @@ -1377,7 +1383,8 @@ neo_o: or CheckDeadUni12("t2",0x014D,0x014C) or CheckDeadAsc12("t3","","") or CheckDeadUni12("t4",0x00F8,0x00D8) - or CheckDeadUni12("t5",0x0151,0x0150))) + or CheckDeadUni12("t5",0x0151,0x0150) + or CheckCompUni12("G","",0x039F))) OutputChar("o","O") else if (Ebene = 3) send {blind}* @@ -1418,7 +1425,8 @@ neo_n: or CheckDeadUni12("a3",0x0146,0x0145) or CheckDeadUni12("a4",0x1E45,0x1E44) or CheckDeadUni12("c2",0x0148,0x0147) - or CheckDeadUni12("t1",0x00F1,0x00D1))) + or CheckDeadUni12("t1",0x00F1,0x00D1) + or CheckCompUni12("G","",0x039D))) OutputChar("n","N") else if (Ebene = 3) send {blind}( @@ -1460,7 +1468,8 @@ neo_t: or CheckDeadUni12("c5",0x0167,0x0166) or CheckDeadUni12("c6",0x1E6D,0x1E6C) or CheckCompUni("lang_s",0xFB05) - or CheckCompUni("s",0xFB06))) + or CheckCompUni("s",0xFB06) + or CheckCompUni12("G","",0x03A4))) OutputChar("t","T") else if (Ebene = 3) send {blind}- ; Bisstrich @@ -1495,7 +1504,8 @@ neo_y: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("a1",0x00FD,0x00DD) or CheckDeadUni12("c1",0x0177,0x0176) - or CheckDeadAsc12("t3","",""))) + or CheckDeadAsc12("t3","","") + or CheckCompUni12("G","",0x03A5))) OutputChar("y","Y") else if (Ebene = 3) send {blind}@ @@ -1562,7 +1572,8 @@ return neo_p: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a4",0x1E57,0x1E56))) + if (Ebene12 and !(CheckDeadUni12("a4",0x1E57,0x1E56) + or CheckCompUni12("G","",0x03A1))) OutputChar("p","P") else if ((Ebene = 3) and !(CheckDeadUni("t1",0x2248))) send {blind}~ @@ -1579,7 +1590,10 @@ neo_z: if (Ebene12 and !(CheckDeadUni12("a1",0x017A,0x0179) or CheckDeadUni12("a4",0x017C,0x017B) or CheckDeadUni12("c2",0x017E,0x017D) - or CheckDeadUni12("c6",0x1E93,0x1E92))) + or CheckDeadUni12("c6",0x1E93,0x1E92) + or CheckCompUni("d",0x01C6) + or CheckCompUni12("D",0x01C5,0x01C4) + or CheckCompUni12("G","",0x0396))) OutputChar("z","Z") else if (Ebene = 3) send ``{space} ; untot @@ -1594,7 +1608,8 @@ return neo_b: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02))) + if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02) + or CheckCompUni12("G","",0x0392))) OutputChar("b","B") else if (Ebene = 3) if isMod2Locked @@ -1613,7 +1628,8 @@ neo_m: if (Ebene12 and !(CheckDeadUni12("a4",0x1E41,0x1E40) or CheckDeadUni12("c6",0x1E43,0x1E42) or CheckCompUni12("t",0x2122,0x2122) ; TM - or CheckCompUni12("s",0x2120,0x2120))) ; SM + or CheckCompUni12("s",0x2120,0x2120) ; SM + or CheckCompUni12("G","",0x039C))) OutputChar("m","M") else if (Ebene = 3) send {blind}`% @@ -1667,10 +1683,10 @@ neo_j: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("c1",0x0135,0x0134) or CheckDeadUni12("c2",0x01F0,"") + or CheckCompUni("I",0x0132) ; IJ or CheckCompUni("i",0x0133) ; ij or CheckCompUni("l",0x01C9) ; lj or CheckCompUni("n",0x01CC) ; nj - or CheckCompUni("I",0x0132) ; IJ or CheckCompUni12("L",0x01C8,0x01C7) ; Lj/LJ or CheckCompUni12("N",0x01CB,0x01CA))) ; Nj/NJ OutputChar("j","J") @@ -1918,7 +1934,8 @@ return neo_SpaceUp: EbeneAktualisieren() if (Ebene = 1) and !(CheckComp3Uni("r_1",0x2170) ; Rmisch i - or CheckComp3Uni("R_1",0x2160)) ; Rmisch I + or CheckComp3Uni("R_1",0x2160) ; Rmisch I + or CheckDeadUni("c5",0x2010)) ; Echter Bindestrich Send {blind}{Space} else if (Ebene = 2) or (Ebene = 3) Send {blind}{Space} diff --git a/windows/autohotkey/neo20.exe b/windows/autohotkey/neo20.exe index 462d9eb..03bbcc2 100644 Binary files a/windows/autohotkey/neo20.exe and b/windows/autohotkey/neo20.exe differ -- cgit v1.2.3