From 0a4b3c15d00cd17a5d2c62b2a466e0fe4677862a Mon Sep 17 00:00:00 2001 From: stmayer Date: Sun, 24 Feb 2008 00:40:05 +0000 Subject: Compose im ahk-Treiber git-svn-id: https://svn.neo-layout.org@365 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- FAQ.txt | 14 +- windows/XP/autohotkey/README.txt | 10 +- windows/XP/autohotkey/neo20-all-in-one.ahk | 1145 +++++++++++++++++++++++++--- windows/XP/autohotkey/neo20-all-in-one.exe | Bin 220349 -> 221801 bytes 4 files changed, 1066 insertions(+), 103 deletions(-) diff --git a/FAQ.txt b/FAQ.txt index 0c84247..ff52e94 100644 --- a/FAQ.txt +++ b/FAQ.txt @@ -420,18 +420,8 @@ ein »Apfel« + »c« nötig. 2.3 Windows -------------------------------------------------------------------------------- -F: Unter Windows Vista erscheinen einige Zeichen nicht, hauptsächlich die -exotischen Zeichen. Wieso? - -A: Dies tritt nur beim AHK-Treiber auf. Dort funktionieren sämtliche Zeichen, -die mit der Unicode()-Funktion eingefügt werden, gar nicht. - --------------------------------------------------------------------------------- - -F: Bei stark ausgelastetem Rechner mit Windows XP wird der Eingabepuffer -manchmal falschherum abgearbeitet, so dass die Zeichen eines Wortes rückwärts -erscheinen. Wenn man zu schnell tippt werden einzelne Zeichen manchmal auch -garnicht ersetzt. +F: Wenn man zu schnell tippt, werden einzelne Zeichen manchmal gar nicht +ersetzt. A: Ein bekanntes Problem des AHK-Treibers. Es gibt zwei mehr oder weniger gute Wege, dieses Problem zu umgehen. diff --git a/windows/XP/autohotkey/README.txt b/windows/XP/autohotkey/README.txt index 9186b06..3e46d24 100644 --- a/windows/XP/autohotkey/README.txt +++ b/windows/XP/autohotkey/README.txt @@ -10,6 +10,9 @@ Achtung: Da sich NEO in der Entwicklung befindet, kann es vorkommen, dass die exe-Datei gegenüber der Datei neo20-all-in-one.ahk leicht veraltet sein kann. Entwickler sollten daher Autohotkey selbst runterladen, wie unten beschrieben. +Um kurzzeitig zu QWERTZ zu wechseln, kann mit Shift+Pause das Skript pausiert +werden. + Momentan befindet sich in der Testphase, ob die 6. Ebene über Shift+Mod5 oder über Mod3+Mod5 angesprochen werden soll (Shift+Mod5 zum Markieren bleibt erhalten). Die Datei neo20_mod-test.ahk spricht die 6. Ebene über Mod3+Mod5 an. @@ -44,7 +47,12 @@ dann nur das Skript neu starten um die Änderungen zu übernehmen. == Bekannte Fehler == Der Tabulator macht Probleme mit DeadKeys. Ein DeadKey gefolgt von Tab und einer Taste, die mit dem DeadKey ein neues Zeichen ergibt, löscht -den Tab (Backslash) und sendet die Kombo. +den Tab (Backslash) und sendet die Kombo. Ebensolches Verhalten zeigt sich +bei der Compose-Taste. + +Beim Ziffernblock der 5. Ebene funktionieren die DeadKeys nicht, um Zahlen +hoch- oder tiefzustellen, wenn man auf die 5. Ebene über die AltGr-Taste +zugreift. Bisher reagieren nur die Buchstaben der 1. und 2. Ebene richtig auf CapsLock (also immer groß schreiben – CapsLock erreicht man unter Neo, wenn diff --git a/windows/XP/autohotkey/neo20-all-in-one.ahk b/windows/XP/autohotkey/neo20-all-in-one.ahk index 5bd1db5..e3a23a0 100644 --- a/windows/XP/autohotkey/neo20-all-in-one.ahk +++ b/windows/XP/autohotkey/neo20-all-in-one.ahk @@ -1,7 +1,7 @@ /* Titel: NEO 2.0 beta Autohotkey-Treiber - Version: 0.10 beta - Datum: 16.02.2008 + Version: 0.12 beta + Datum: 23.02.2008 Autor: Stefan Mayer Basiert auf: neo20-all-in-one.ahk vom 29.06.2007 @@ -14,16 +14,16 @@ verwendet wird. Bei anderen Tasten muss CapsLock in der ersten und zweiten Ebene explizit abgefragt werden. (Lässt sich das elegant in eine Funktion auslagern?) - |------------------| - | - Compose-Taste | - |------------------| Ideen: - Symbol ändern (Neo-Logo abwarten) - bei Ebene 5 rechte Hand (Numpad) z.B. Numpad5 statt 5 senden - CHANGES: - SUPERSCRIPT von 0 bis 9 sowie (auf Nummernblock) + und - - - Zahlenreihe: Entfernt: Brüche - Hinzugefügt: Geschlechts-Piktogramme, Listings-Zeichen + CHANGES: - SUBSCRIPT von 0 bis 9 sowie (auf Nummernblock) + 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) + • römische Zahlen + • Ligaturen und Copyright */ ; aus Noras script kopiert: @@ -107,6 +107,10 @@ return send {numpaddot} } return + +*LAlt:: + PriorDeadKey := "comp" +return /* @@ -164,15 +168,38 @@ return { If (PriorDeadKey = "c1") ; circumflex 1 BSSendUnicodeChar(0x00B9) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2081) + Else If (CompKey = "r_small_1") + Comp3UnicodeChar(0x217A) ; römisch xi + Else If (CompKey = "r_capital_1") + Comp3UnicodeChar(0x216A) ; römisch XI Else send {blind}1 + If (PriorDeadKey = "comp") + CompKey := "1" + Else If (CompKey = "r_small") + CompKey := "r_small_1" + Else If (CompKey = "r_capital") + CompKey := "r_capital_1" + Else + CompKey := "" } else if Ebene = 2 + { send ° + CompKey := "" + } else if Ebene = 4 + { SendUnicodeChar(0x2640) ; Piktogramm weiblich + CompKey := "" + } else if Ebene = 5 + { SendUnicodeChar(0x2022) ; bullet + CompKey := "" + } PriorDeadKey := "" return @@ -182,15 +209,38 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x00B2) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2082) + Else If (CompKey = "r_small") + CompUnicodeChar(0x2171) ; römisch ii + Else If (CompKey = "r_capital") + CompUnicodeChar(0x2161) ; römisch II + Else If (CompKey = "r_small_1") + Comp3UnicodeChar(0x217B) ; römisch xii + Else If (CompKey = "r_capital_1") + Comp3UnicodeChar(0x216B) ; römisch XII Else send {blind}2 + If (PriorDeadKey = "comp") + CompKey := "2" + Else + CompKey := "" } else if Ebene = 2 + { SendUnicodeChar(0x2116) ; numero + CompKey := "" + } else if Ebene = 4 + { SendUnicodeChar(0x26A5) ; Piktogramm Zwitter + CompKey := "" + } else if Ebene = 5 + { SendUnicodeChar(0x2023) ; aufzaehlungspfeil + CompKey := "" + } PriorDeadKey := "" return @@ -200,13 +250,33 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x00B3) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2083) + Else If (CompKey = "1") + CompUnicodeChar(0x2153) ; 1/3 + Else If (CompKey = "2") + CompUnicodeChar(0x2154) ; 2/3 + Else If (CompKey = "r_small") + CompUnicodeChar(0x2172) ; römisch iii + Else If (CompKey = "r_capital") + CompUnicodeChar(0x2162) ; römisch III Else send {blind}3 + If (PriorDeadKey = "comp") + CompKey := "3" + Else + CompKey := "" } else if Ebene = 2 + { send § + CompKey := "" + } else if Ebene = 4 + { SendUnicodeChar(0x2642) ; Piktogramm männlich + CompKey := "" + } PriorDeadKey := "" return @@ -216,17 +286,39 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x2074) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2084) + Else If (CompKey = "r_small") + CompUnicodeChar(0x2173) ; römisch iv + Else If (CompKey = "r_capital") + CompUnicodeChar(0x2163) ; römisch IV Else send {blind}4 + If (PriorDeadKey = "comp") + CompKey := "4" + Else + CompKey := "" } else if Ebene = 2 + { send » + CompKey := "" + } else if Ebene = 3 + { send › + CompKey := "" + } else if Ebene = 5 + { Send {PgUp} ; Prev + CompKey := "" + } else if Ebene = 6 + { Send +{Prev} + CompKey := "" + } PriorDeadKey := "" return @@ -236,15 +328,42 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x2075) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2085) + Else If (CompKey = "1") + CompUnicodeChar(0x2155) ; 1/5 + Else If (CompKey = "2") + CompUnicodeChar(0x2156) ; 2/5 + Else If (CompKey = "3") + CompUnicodeChar(0x2157) ; 3/5 + Else If (CompKey = "4") + CompUnicodeChar(0x2158) ; 4/5 + Else If (CompKey = "r_small") + CompUnicodeChar(0x2174) ; römisch v + Else If (CompKey = "r_capital") + CompUnicodeChar(0x2164) ; römisch V Else send {blind}5 + If (PriorDeadKey = "comp") + CompKey := "5" + Else + CompKey := "" } else if Ebene = 2 + { send « + CompKey := "" + } else if Ebene = 3 + { send ‹ + CompKey := "" + } else if Ebene = 6 + { SendUnicodeChar(0x21D2) ; Implikation + CompKey := "" + } PriorDeadKey := "" return @@ -254,17 +373,43 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x2076) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2086) + Else If (CompKey = "1") + CompUnicodeChar(0x2159) ; 1/6 + Else If (CompKey = "5") + CompUnicodeChar(0x215A) ; 5/6 + Else If (CompKey = "r_small") + CompUnicodeChar(0x2175) ; römisch vi + Else If (CompKey = "r_capital") + CompUnicodeChar(0x2165) ; römisch VI Else send {blind}6 + If (PriorDeadKey = "comp") + CompKey := "6" + Else + CompKey := "" } else if Ebene = 2 + { send $ + CompKey := "" + } else if Ebene = 3 + { send £ + CompKey := "" + } else if Ebene = 4 + { send ¤ + CompKey := "" + } else if Ebene = 6 + { SendUnicodeChar(0x21D4) ; Äquivalenz + CompKey := "" + } PriorDeadKey := "" return @@ -274,17 +419,38 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x2077) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2087) + Else If (CompKey = "r_small") + CompUnicodeChar(0x2176) ; römisch vii + Else If (CompKey = "r_capital") + CompUnicodeChar(0x2166) ; römisch VII Else send {blind}7 + If (PriorDeadKey = "comp") + CompKey := "7" + Else + CompKey := "" } else if Ebene = 2 + { send € + CompKey := "" + } else if Ebene = 3 + { send ¢ + CompKey := "" + } else if Ebene = 4 - send ¥ + { + send ¥CompKey := "" + } else if Ebene = 6 + { Send ¬ + CompKey := "" + } PriorDeadKey := "" return @@ -294,17 +460,47 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x2078) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2088) + Else If (CompKey = "1") + CompUnicodeChar(0x215B) ; 1/8 + Else If (CompKey = "3") + CompUnicodeChar(0x215C) ; 3/8 + Else If (CompKey = "5") + CompUnicodeChar(0x215D) ; 5/8 + Else If (CompKey = "7") + CompUnicodeChar(0x215E) ; 7/8 + Else If (CompKey = "r_small") + CompUnicodeChar(0x2177) ; römisch viii + Else If (CompKey = "r_capital") + CompUnicodeChar(0x2167) ; römisch VIII Else send {blind}8 + If (PriorDeadKey = "comp") + CompKey := "8" + Else + CompKey := "" } else if Ebene = 2 + { send „ + CompKey := "" + } else if Ebene = 3 + { send ‚ + CompKey := "" + } else if Ebene = 5 + { Send / + CompKey := "" + } else if Ebene = 6 + { SendUnicodeChar(0x2203) ; Existenzquantor + CompKey := "" + } PriorDeadKey := "" return @@ -314,17 +510,39 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x2079) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2089) + Else If (CompKey = "r_small") + CompUnicodeChar(0x2178) ; römisch ix + Else If (CompKey = "r_capital") + CompUnicodeChar(0x2168) ; römisch IX Else send {blind}9 + If (PriorDeadKey = "comp") + CompKey := "9" + Else + CompKey := "" } else if Ebene = 2 + { send “ + CompKey := "" + } else if Ebene = 3 + { send ‘ + CompKey := "" + } else if Ebene = 5 + { Send * + CompKey := "" + } else if Ebene = 6 + { SendUnicodeChar(0x2200) ; Allquantor + CompKey := "" + } PriorDeadKey := "" return @@ -334,17 +552,39 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x2070) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2080) + Else If (CompKey = "r_small_1") + Comp3UnicodeChar(0x2179) ; römisch x + Else If (CompKey = "r_capital_1") + Comp3UnicodeChar(0x2169) ; römisch X Else send {blind}0 + If (PriorDeadKey = "comp") + CompKey := "0" + Else + CompKey := "" } else if Ebene = 2 + { send ” + CompKey := "" + } else if Ebene = 3 + { send ’ + CompKey := "" + } else if Ebene = 5 + { Send - + CompKey := "" + } else if Ebene = 6 + { SendUnicodeChar(0x2228) ; logisch oder + CompKey := "" + } PriorDeadKey := "" return @@ -362,7 +602,7 @@ return SendUnicodeChar(0x2011) else if Ebene = 6 SendUnicodeChar(0x2227) ; logisch und - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *´:: @@ -420,7 +660,7 @@ return send @ ; Redundanz else if Ebene = 6 SendUnicodeChar(0x039E) ; Xi - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return @@ -446,7 +686,7 @@ return Send {Tab} else if Ebene = 6 Send +{Tab} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return @@ -469,6 +709,10 @@ return BSSendUnicodeChar(0x1E37) Else sendinput {blind}l + If (PriorDeadKey = "comp") ; compose + CompKey := "l_small" + Else + CompKey := "" } else if Ebene = 2 { @@ -486,15 +730,30 @@ return BSSendUnicodeChar(0x1E36) Else sendinput {blind}L + If (PriorDeadKey = "comp") ; compose + CompKey := "l_capital" + Else CompKey := "" } else if Ebene = 3 + { send [ + CompKey := "" + } else if Ebene = 4 + { SendUnicodeChar(0x03BB) ;lambda + CompKey := "" + } else if Ebene = 5 + { Sendinput {Blind}{Up} + CompKey := "" + } else if Ebene = 6 + { Sendinput {Blind}+{Up} + CompKey := "" + } PriorDeadKey := "" return @@ -513,8 +772,14 @@ return BSSendUnicodeChar(0x00E7) Else If (PriorDeadKey = "a5") ; punkt darüber BSSendUnicodeChar(0x010B) - Else + Else If ( (CompKey = "o_small") or (CompKey = "o_capital") ) + Send {bs}© + Else sendinput {blind}c + If (PriorDeadKey = "comp") + CompKey := "c_small" + Else + CompKey := "" } else if Ebene = 2 { @@ -528,17 +793,35 @@ return BSSendUnicodeChar(0x00E6) Else If (PriorDeadKey = "a5") ; punkt darüber BSSendUnicodeChar(0x010A) + Else If ( (CompKey = "o_small") or (CompKey = "o_capital") ) + Send {bs}© Else sendinput {blind}C + If (PriorDeadKey = "comp") + CompKey = "c_capital" + Else + CompKey := "" } else if Ebene = 3 + { send ] + CompKey := "" + } else if Ebene = 4 + { SendUnicodeChar(0x03C7) ;chi + CompKey := "" + } else if Ebene = 5 + { Send {Backspace} + CompKey := "" + } else if Ebene = 6 + { SendUnicodeChar(0x039B) ; Lambda + CompKey := "" + } PriorDeadKey := "" return @@ -564,7 +847,7 @@ return Send {Insert} else if Ebene = 6 Send +{Insert} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *z:: @@ -593,7 +876,7 @@ return SendUnicodeChar(0x03BA) ;kappa else if Ebene = 5 Send ¡ - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *u:: @@ -632,10 +915,17 @@ return else if Ebene = 4 SendUnicodeChar(0x03C8) ;psi else if Ebene = 5 - Send 7 + { + If (PriorDeadKey = "c1") ; circumflex + BSSendUnicodeChar(0x2077) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2087) + Else + Send 7 + } else if Ebene = 6 SendUnicodeChar(0x03A8) ; Psi - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *i:: @@ -674,10 +964,17 @@ return else if Ebene = 4 SendUnicodeChar(0x03B3) ;gamma else if Ebene = 5 - Send 8 + { + If (PriorDeadKey = "c1") ; circumflex + BSSendUnicodeChar(0x2078) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2088) + Else + Send 8 + } else if Ebene = 6 SendUnicodeChar(0x0393) ; Gamma - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *o:: @@ -718,10 +1015,17 @@ return else if Ebene = 4 SendUnicodeChar(0x03C6) ;phi else if Ebene = 5 - Send 9 + { + If (PriorDeadKey = "c1") ; circumflex + BSSendUnicodeChar(0x2079) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2089) + Else + Send 9 + } else if Ebene = 6 SendUnicodeChar(0x03A6) ; Phi - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *p:: @@ -735,10 +1039,17 @@ return else if Ebene = 4 SendUnicodeChar(0x0278) ; Varphi? (latin letter phi) else if Ebene = 5 - Send {+} + { + If (PriorDeadKey = "c1") ; circumflex + BSSendUnicodeChar(0x207A) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x208A) + Else + Send {+} + } else if Ebene = 6 SendUnicodeChar(0x2202) ; "verdrehtes e" (partielle Ableitung) - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *ü:: @@ -769,7 +1080,7 @@ return SendUnicodeChar(0x0259) ; schwa else if Ebene = 6 SendUnicodeChar(0x018F) ; Schwa - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return @@ -876,7 +1187,7 @@ return Send {blind}{Home} else if Ebene = 6 Send {blind}+{Home} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *s:: @@ -903,6 +1214,10 @@ return BSSendUnicodeChar(0x0131) Else sendinput {blind}i + If (PriorDeadKey = "comp") ; compose + CompKey := "i_small" + Else + CompKey := "" } else if Ebene = 2 { @@ -926,16 +1241,32 @@ return BSSendUnicodeChar(0x0130) Else sendinput {blind}I + If (PriorDeadKey = "comp") ; compose + CompKey := "i_capital" + Else + CompKey := "" } else if Ebene = 3 + { send `/ + CompKey := "" + } else if Ebene = 4 + { SendUnicodeChar(0x03B9) ;iota + CompKey := "" + } else if Ebene = 5 + { Sendinput {Blind}{Left} + CompKey := "" + } else if Ebene = 6 + { Sendinput {Blind}+{Left} - PriorDeadKey := "" + CompKey := "" + } + PriorDeadKey := "" return *d:: @@ -960,8 +1291,12 @@ return BSSendUnicodeChar(0x0101) Else If (PriorDeadKey = "c3") ; brevis BSSendUnicodeChar(0x0103) - Else + Else sendinput {blind}a + If (PriorDeadKey = "comp") ; compose + CompKey := "a_small" + Else + CompKey := "" } else if Ebene = 2 { @@ -983,17 +1318,33 @@ return BSSendUnicodeChar(0x0102) Else If (PriorDeadKey = "a4") ; ogonek BSSendUnicodeChar(0x0104) - Else + Else sendinput {blind}A + If (PriorDeadKey = "comp") ; compose + CompKey := "a_capital" + Else + CompKey := "" } else if Ebene = 3 + { sendraw { + CompKey := "" + } else if Ebene = 4 + { SendUnicodeChar(0x03B1) ;alpha + CompKey := "" + } else if Ebene = 5 + { Sendinput {Blind}{Down} + CompKey := "" + } else if Ebene = 6 + { Sendinput {Blind}+{Down} + CompKey := "" + } PriorDeadKey := "" return @@ -1019,7 +1370,17 @@ return BSSendUnicodeChar(0x011B) Else If (PriorDeadKey = "a5") ; punkt darüber BSSendUnicodeChar(0x0117) - Else + Else If (CompKey = "a_small") ; compose + { + Send {bs}æ + CompKey := "" + } + Else If (CompKey = "o_small") ; compose + { + Send {bs}œ + CompKey := "" + } + Else sendinput {blind}e } else if Ebene = 2 @@ -1042,6 +1403,16 @@ return BSSendUnicodeChar(0x0118) Else If (PriorDeadKey = "a5") ; punkt darüber BSSendUnicodeChar(0x0116) + Else If (CompKey = "a_capital") ; compose + { + Send {bs}Æ + CompKey := "" + } + Else If (CompKey = "o_capital") ; compose + { + Send {bs}Œ + CompKey := "" + } Else sendinput {blind}E } @@ -1053,7 +1424,7 @@ return Sendinput {Blind}{Right} else if Ebene = 6 Sendinput {Blind}+{Right} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *g:: @@ -1078,8 +1449,12 @@ return BSSendUnicodeChar(0x014D) Else If (PriorDeadKey = "c3") ; brevis BSSendUnicodeChar(0x014F) - Else + Else sendinput {blind}o + If (PriorDeadKey = "comp") ; compose + CompKey := "o_small" + Else + CompKey := "" } else if Ebene = 2 { @@ -1103,15 +1478,31 @@ return BSSendUnicodeChar(0x014E) Else sendinput {blind}O + If (PriorDeadKey = "comp") ; compose + CompKey := "o_capital" + Else + CompKey := "" } else if Ebene = 3 + { send * + CompKey := "" + } else if Ebene = 4 + { SendUnicodeChar(0x03C9) ;omega + CompKey := "" + } else if Ebene = 5 + { Send {blind}{End} + CompKey := "" + } else if Ebene = 6 + { Send {blind}+{End} + CompKey := "" + } PriorDeadKey := "" return @@ -1133,6 +1524,10 @@ return BSSendUnicodeChar(0x1E63) Else sendinput {blind}s + If (PriorDeadKey = "comp") + CompKey := "s_small" + Else + CompKey := "" } else if Ebene = 2 { @@ -1150,15 +1545,31 @@ return BSSendUnicodeChar(0x1E62) Else sendinput {blind}S + If (PriorDeadKey = "comp") + CompKey := "s_capital" + Else + CompKey := "" } else if Ebene = 3 + { send ? + CompKey := "" + } else if Ebene = 4 + { SendUnicodeChar(0x03C3) ;sigma + CompKey := "" + } else if Ebene = 5 + { Send ¿ + CompKey := "" + } else if Ebene = 6 + { SendUnicodeChar(0x03A3) ; Sigma + CompKey := "" + } PriorDeadKey := "" return @@ -1199,8 +1610,15 @@ return else if Ebene = 4 SendUnicodeChar(0x03BD) ;nu else if Ebene = 5 - Send 4 - PriorDeadKey := "" + { + If (PriorDeadKey = "c1") ; circumflex + BSSendUnicodeChar(0x2074) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2084) + Else + Send 4 + } + PriorDeadKey := "" CompKey := "" return *k:: @@ -1219,6 +1637,10 @@ return BSSendUnicodeChar(0x1E5B) Else sendinput {blind}r + If (PriorDeadKey = "comp") + CompKey := "r_small" + Else + CompKey := "" } else if Ebene = 2 { @@ -1234,13 +1656,31 @@ return BSSendUnicodeChar(0x1E5A) Else sendinput {blind}R + If (PriorDeadKey = "comp") + CompKey := "r_capital" + Else + CompKey := "" } else if Ebene = 3 + { send ) + CompKey := "" + } else if Ebene = 4 + { SendUnicodeChar(0x03C1) ;rho + CompKey := "" + } else if Ebene = 5 - Send 5 + { + If (PriorDeadKey = "c1") ; circumflex + BSSendUnicodeChar(0x2075) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2085) + Else + Send 5 + CompKey := "" + } PriorDeadKey := "" return @@ -1260,6 +1700,10 @@ return BSSendUnicodeChar(0x1E6D) Else sendinput {blind}t + If (PriorDeadKey = "comp") + CompKey := "t_small" + Else + CompKey := "" } else if Ebene = 2 { @@ -1275,13 +1719,31 @@ return BSSendUnicodeChar(0x1E6C) Else sendinput {blind}T + If (PriorDeadKey = "comp") + CompKey := "t_capital" + Else + CompKey := "" } else if Ebene = 3 + { send {blind}- ; Bind + CompKey := "" + } else if Ebene = 4 + { SendUnicodeChar(0x03C4) ;tau + CompKey := "" + } else if Ebene = 5 - Send 6 + { + If (PriorDeadKey = "c1") ; circumflex + BSSendUnicodeChar(0x2076) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2086) + Else + Send 6 + CompKey := "" + } PriorDeadKey := "" return @@ -1324,7 +1786,7 @@ return Send `, else if Ebene = 6 SendUnicodeChar(0x0394) ; Delta - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *ä:: @@ -1357,7 +1819,7 @@ return Send þ ; thorn else if Ebene = 6 Send Þ ; Thorn - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return ;SC02B (#) wird zu Mod3 @@ -1381,7 +1843,7 @@ return send {blind}{#} else if Ebene = 5 Send {Esc} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *x:: @@ -1396,7 +1858,7 @@ return Send {Del} else if Ebene = 6 Send +{Del} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *c:: @@ -1413,7 +1875,7 @@ return Send {PgDn} ; Next else if Ebene = 6 Send +{PgDn} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *v:: @@ -1445,7 +1907,7 @@ return Send {Enter} else if Ebene = 6 SendUnicodeChar(0x03A0) ; Pi - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *b:: @@ -1482,7 +1944,7 @@ return SendUnicodeChar(0x03B6) ;zeta else if Ebene = 6 SendUnicodeChar(0x03A9) ; Omega - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *n:: @@ -1507,7 +1969,7 @@ return SendUnicodeChar(0x03B2) ;beta else if Ebene = 6 SendUnicodeChar(0x221E) ;infty - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *m:: @@ -1518,7 +1980,11 @@ return BSSendUnicodeChar(0x1E41) Else If (PriorDeadKey = "c6") ; punkt darunter BSSendUnicodeChar(0x1E43) - Else + Else If ( (CompKey = "t_small") or (CompKey = "t_capital") ) ; compose + CompUnicodeChar(0x2122) ; TM + Else If ( (CompKey = "s_small") or (CompKey = "s_capital") ) ; compose + CompUnicodeChar(0x2120) ; SM + Else sendinput {blind}m } else if Ebene = 2 @@ -1527,6 +1993,10 @@ return BSSendUnicodeChar(0x1E40) Else If (PriorDeadKey = "c6") ; punkt darunter BSSendUnicodeChar(0x1E42) + Else If ( (CompKey = "t_capital") or (CompKey = "t_small") ) ; compose + CompUnicodeChar(0x2122) ; TM + Else If ( (CompKey = "s_capital") or (CompKey = "s_small") ) ; compose + CompUnicodeChar(0x2120) ; SM Else sendinput {blind}M } @@ -1535,10 +2005,17 @@ return else if Ebene = 4 SendUnicodeChar(0x03BC) ;micro, mu wäre 0x00B5 else if Ebene = 5 - Send 1 + { + If (PriorDeadKey = "c1") ; circumflex + BSSendUnicodeChar(0x00B9) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2081) + Else + Send 1 + } else if Ebene = 6 SendUnicodeChar(0x222B) ; Int - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *,:: @@ -1550,10 +2027,17 @@ return else if Ebene = 4 SendUnicodeChar(0x03F1) ; varrho else if Ebene = 5 - Send 2 + { + If (PriorDeadKey = "c1") ; circumflex + BSSendUnicodeChar(0x00B2) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2082) + Else + Send 2 + } else if Ebene = 6 SendUnicodeChar(0x221A) ; sqrt - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *.:: @@ -1567,10 +2051,17 @@ return else if Ebene = 4 SendUnicodeChar(0x03B8) ;theta else if Ebene = 5 - Send 3 + { + If (PriorDeadKey = "c1") ; circumflex + BSSendUnicodeChar(0x00B3) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2083) + Else + Send 3 + } else if Ebene = 6 SendUnicodeChar(0x0398) ; Theta - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return @@ -1582,6 +2073,12 @@ return BSSendUnicodeChar(0x0135) Else If (PriorDeadKey = "c2") ; caron BSSendUnicodeChar(0x01F0) + Else If (CompKey = "i_small") ; compose + CompUnicodeChar(0x0133) ; ij + Else If (CompKey = "l_small") ; compose + CompUnicodeChar(0x01C9) ; lj + Else If (CompKey = "l_capital") ; compose + CompUnicodeChar(0x01C8) ; Lj Else sendinput {blind}j } @@ -1589,6 +2086,10 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x0134) + Else If (CompKey = "i_capital") ; compose + CompUnicodeChar(0x0132) ; IJ + Else If (CompKey = "l_capital") ; compose + CompUnicodeChar(0x01C7) ; LJ Else sendinput {blind}J } @@ -1600,7 +2101,7 @@ return Send . else if Ebene = 6 SendUnicodeChar(0x2207) ; Nabla - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return /* @@ -1620,7 +2121,7 @@ return send ÷ else if ( (Ebene = 4) or (Ebene = 5) ) SendUnicodeChar(0x2215) ; slash - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *NumpadMult:: @@ -1631,7 +2132,7 @@ return send × else if ( (Ebene = 4) or (Ebene = 5) ) SendUnicodeChar(0x22C5) ; cdot - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *NumpadSub:: @@ -1640,12 +2141,14 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x207B) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x208B) Else send {blind}{NumpadSub} } else if Ebene = 3 SendUnicodeChar(0x2212) ; echtes minus - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *NumpadAdd:: @@ -1654,6 +2157,8 @@ return { If (PriorDeadKey = "c1") ; circumflex BSSendUnicodeChar(0x207A) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x208A) Else send {blind}{NumpadAdd} } @@ -1661,7 +2166,7 @@ return send ± else if ( (Ebene = 4) or (Ebene = 5) ) SendUnicodeChar(0x2213) ; -+ - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *NumpadEnter:: @@ -1672,7 +2177,7 @@ return SendUnicodeChar(0x2260) ; neq else if ( (Ebene = 4) or (Ebene = 5) ) SendUnicodeChar(0x2248) ; approx - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return /* @@ -1682,142 +2187,329 @@ return bei NumLock ein */ + + *Numpad7:: EbeneAktualisieren() if Ebene = 1 + { send {blind}{Numpad7} + If (PriorDeadKey = "comp") + CompKey := "Num_7" + Else + CompKey := "" + } else if Ebene = 2 + { send {NumpadHome} + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x226A) ; ll + CompKey := "" + } PriorDeadKey := "" return *Numpad8:: EbeneAktualisieren() if Ebene = 1 - send {blind}{Numpad8} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x215B) ; 1/8 + Else If (CompKey = "Num_3") + CompUnicodeChar(0x215C) ; 3/8 + Else If (CompKey = "Num_5") + CompUnicodeChar(0x215D) ; 5/8 + Else If (CompKey = "Num_7") + CompUnicodeChar(0x215E) ; 7/8 + Else + send {blind}{Numpad8} + If (PriorDeadKey = "comp") + CompKey := "Num_8" + Else + CompKey := "" + } else if Ebene = 2 + { send {NumpadUp} + CompKey := "" + } else if Ebene = 3 + { SendUnicodeChar(0x2191) ; uparrow + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x2229) ; intersection - PriorDeadKey := "" + CompKey := "" + } + PriorDeadKey := "" CompKey := "" return *Numpad9:: EbeneAktualisieren() if Ebene = 1 + { send {blind}{Numpad9} + If (PriorDeadKey = "comp") + CompKey := "Num_9" + Else + CompKey := "" + } else if Ebene = 2 + { send {NumpadPgUp} + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x226B) ; gg + CompKey := "" + } PriorDeadKey := "" return + + *Numpad4:: EbeneAktualisieren() if Ebene = 1 - send {blind}{Numpad4} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x00BC) ; 1/4 + Else If (CompKey = "Num_3") + CompUnicodeChar(0x00BE) ; 3/4 + Else + send {blind}{Numpad4} + If (PriorDeadKey = "comp") + CompKey := "Num_4" + Else + CompKey := "" + } else if Ebene = 2 + { send {NumpadLeft} + CompKey := "" + } else if Ebene = 3 + { SendUnicodeChar(0x2190) ; leftarrow + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x2282) ; subset of + CompKey := "" + } PriorDeadKey := "" return *Numpad5:: EbeneAktualisieren() if Ebene = 1 - send {blind}{Numpad5} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x2155) ; 1/5 + Else If (CompKey = "Num_2") + CompUnicodeChar(0x2156) ; 2/5 + Else If (CompKey = "Num_3") + CompUnicodeChar(0x2157) ; 3/5 + Else If (CompKey = "Num_4") + CompUnicodeChar(0x2158) ; 4/5 + Else + send {blind}{Numpad5} + If (PriorDeadKey = "comp") + CompKey := "Num_5" + Else + CompKey := "" + } else if Ebene = 2 + { send {NumpadClear} + CompKey := "" + } else if Ebene = 3 + { send † + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x220A) ; small element of + CompKey := "" + } PriorDeadKey := "" return *Numpad6:: EbeneAktualisieren() if Ebene = 1 - send {blind}{Numpad6} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x2159) ; 1/6 + Else If (CompKey = "Num_5") + CompUnicodeChar(0x215A) ; 5/6 + Else + send {blind}{Numpad6} + If (PriorDeadKey = "comp") + CompKey := "Num_6" + Else + CompKey := "" + } else if Ebene = 2 + { send {NumpadRight} + CompKey := "" + } else if Ebene = 3 + { SendUnicodeChar(0x2192) ; rightarrow + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x2283) ; superset of + CompKey := "" + } PriorDeadKey := "" return *Numpad1:: EbeneAktualisieren() if Ebene = 1 + { send {blind}{Numpad1} + If (PriorDeadKey = "comp") + CompKey := "Num_1" + Else + CompKey := "" + } else if Ebene = 2 + { send {NumpadEnd} + CompKey := "" + } else if Ebene = 3 + { SendUnicodeChar(0x21CB) ; LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON - else if ( (Ebene = 4) or (Ebene = 5) ) + CompKey := "" + } + else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x2264) ; leq + CompKey := "" + } PriorDeadKey := "" return *Numpad2:: EbeneAktualisieren() if Ebene = 1 - send {blind}{Numpad2} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x00BD) ; 1/2 + Else + send {blind}{Numpad2} + If (PriorDeadKey = "comp") + CompKey := "Num_2" + Else + CompKey := "" + } else if Ebene = 2 + { send {NumpadDown} + CompKey := "" + } else if Ebene = 3 + { SendUnicodeChar(0x2193) ; downarrow + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x222A) ; vereinigt + CompKey := "" + } PriorDeadKey := "" return *Numpad3:: EbeneAktualisieren() if Ebene = 1 - send {blind}{Numpad3} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x2153) ; 1/3 + Else If (CompKey = "Num_2") + CompUnicodeChar(0x2154) ; 2/3 + Else + send {blind}{Numpad3} + If (PriorDeadKey = "comp") + CompKey := "Num_3" + Else + CompKey := "" + } else if Ebene = 2 send {NumpadPgDn} else if Ebene = 3 SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON else if ( (Ebene = 4) or (Ebene = 5) ) SendUnicodeChar(0x2265) ; geq - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *Numpad0:: EbeneAktualisieren() if Ebene = 1 + { send {blind}{Numpad0} + If (PriorDeadKey = "comp") + CompKey := "Num_0" + Else + CompKey := "" + } else if Ebene = 2 + { send {NumpadIns} + CompKey := "" + } else if Ebene = 3 + { send `% + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { send ‰ + CompKey := "" + } PriorDeadKey := "" return *NumpadDot:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadDot} + CompKey := "" + } else if Ebene = 2 + { send {NumpadDel} + CompKey := "" + } else if Ebene = 3 + { send . + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { send `, + CompKey := "" + } PriorDeadKey := "" return @@ -1828,144 +2520,335 @@ return *NumpadHome:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadHome} + CompKey := "" + } else if Ebene = 2 + { send {Numpad7} + If (PriorDeadKey = "comp") + CompKey := "Num_7" + Else + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x226A) ; ll + CompKey := "" + } PriorDeadKey := "" return *NumpadUp:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadUp} + CompKey := "" + } else if Ebene = 2 - send {Numpad8} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x215B) ; 1/8 + Else If (CompKey = "Num_3") + CompUnicodeChar(0x215C) ; 3/8 + Else If (CompKey = "Num_5") + CompUnicodeChar(0x215D) ; 5/8 + Else If (CompKey = "Num_7") + CompUnicodeChar(0x215E) ; 7/8 + Else + send {Numpad8} + If (PriorDeadKey = "comp") + CompKey := "Num_8" + Else + CompKey := "" + } else if Ebene = 3 + { SendUnicodeChar(0x2191) ; uparrow + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x2229) ; intersection + CompKey := "" + } PriorDeadKey := "" return *NumpadPgUp:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadPgUp} + CompKey := "" + } else if Ebene = 2 + { send {Numpad9} + If (PriorDeadKey = "comp") + CompKey := "Num_9" + Else + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x226B) ; gg + CompKey := "" + } PriorDeadKey := "" return *NumpadLeft:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadLeft} + CompKey := "" + } else if Ebene = 2 - send {Numpad4} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x00BC) ; 1/4 + Else If (CompKey = "Num_3") + CompUnicodeChar(0x00BE) ; 3/4 + Else + send {Numpad4} + If (PriorDeadKey = "comp") + CompKey := "Num_4" + Else + CompKey := "" + } else if Ebene = 3 + { SendUnicodeChar(0x2190) ; leftarrow + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x2282) ; subset of + CompKey := "" + } PriorDeadKey := "" return *NumpadClear:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadClear} + CompKey := "" + } else if Ebene = 2 - send {Numpad5} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x2155) ; 1/5 + Else If (CompKey = "Num_2") + CompUnicodeChar(0x2156) ; 2/5 + Else If (CompKey = "Num_3") + CompUnicodeChar(0x2157) ; 3/5 + Else If (CompKey = "Num_4") + CompUnicodeChar(0x2158) ; 4/5 + Else + send {Numpad5} + If (PriorDeadKey = "comp") + CompKey := "Num_5" + Else + CompKey := "" + } else if Ebene = 3 + { send † + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x220A) ; small element of + CompKey := "" + } PriorDeadKey := "" return *NumpadRight:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadRight} + CompKey := "" + } else if Ebene = 2 - send {Numpad6} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x2159) ; 1/6 + Else If (CompKey = "Num_5") + CompUnicodeChar(0x215A) ; 5/6 + Else + send {Numpad6} + If (PriorDeadKey = "comp") + CompKey := "Num_6" + Else + CompKey := "" + } else if Ebene = 3 + { SendUnicodeChar(0x2192) ; rightarrow + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x2283) ; superset of + CompKey := "" + } PriorDeadKey := "" return *NumpadEnd:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadEnd} + CompKey := "" + } else if Ebene = 2 + { send {Numpad1} + If (PriorDeadKey = "comp") + CompKey := "Num_1" + Else + CompKey := "" + } else if Ebene = 3 + { SendUnicodeChar(0x21CB) ; LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x2264) ; leq + CompKey := "" + } PriorDeadKey := "" return *NumpadDown:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadDown} + CompKey := "" + } else if Ebene = 2 - send {Numpad2} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x00BD) ; 1/2 + Else + send {Numpad2} + If (PriorDeadKey = "comp") + CompKey := "Num_2" + Else + CompKey := "" + } else if Ebene = 3 + { SendUnicodeChar(0x2193) ; downarrow + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x222A) ; vereinigt + CompKey := "" + } PriorDeadKey := "" return *NumpadPgDn:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadPgDn} + CompKey := "" + } else if Ebene = 2 - send {Numpad3} + { + If (CompKey = "Num_1") + CompUnicodeChar(0x2153) ; 1/3 + Else If (CompKey = "Num_2") + CompUnicodeChar(0x2154) ; 2/3 + Else + send {Numpad3} + If (PriorDeadKey = "comp") + CompKey := "Num_3" + Else + CompKey := "" + } else if Ebene = 3 + { SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { SendUnicodeChar(0x2265) ; geq + CompKey := "" + } PriorDeadKey := "" return *NumpadIns:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadIns} + CompKey := "" + } else if Ebene = 2 + { send {Numpad0} + If (PriorDeadKey = "comp") + CompKey := "Num_0" + Else + CompKey := "" + } else if Ebene = 3 + { send `% + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { send ‰ + CompKey := "" + } PriorDeadKey := "" return *NumpadDel:: EbeneAktualisieren() if Ebene = 1 + { send {NumpadDel} + CompKey := "" + } else if Ebene = 2 + { send {NumpadDot} + CompKey := "" + } else if Ebene = 3 + { send . + CompKey := "" + } else if ( (Ebene = 4) or (Ebene = 5) ) + { send `, + CompKey := "" + } PriorDeadKey := "" return - /* ------------------------------------------------------ Sondertasten @@ -1974,15 +2857,33 @@ return *Space:: EbeneAktualisieren() + if Ebene = 1 + { + If (CompKey = "r_small_1") + Comp3UnicodeChar(0x2170) ; römisch i + Else If (CompKey = "r_capital_1") + Comp3UnicodeChar(0x2160) ; römisch I + Else + Send {blind}{Space} + } + if Ebene = 2 + Send {blind}{Space} + if Ebene = 3 + Send {blind}{Space} if Ebene = 4 SendUnicodeChar(0x00A0) ; geschütztes Leerzeichen else if Ebene = 5 - Send 0 + { + If (PriorDeadKey = "c1") ; circumflex + BSSendUnicodeChar(0x2070) + Else If (PriorDeadKey = "c4") ; toter - + BSSendUnicodeChar(0x2080) + Else + Send 0 + } else if Ebene = 6 SendUnicodeChar(0x202F) ; schmales Leerzeichen - else - Send {blind}{Space} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return /* @@ -1997,12 +2898,12 @@ return *Enter:: sendinput {Blind}{Enter} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *Backspace:: sendinput {Blind}{Backspace} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return @@ -2014,49 +2915,49 @@ einem DeadKey dr *Tab:: send {Blind}{Tab} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return */ *Home:: sendinput {Blind}{Home} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *End:: sendinput {Blind}{End} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *PgUp:: sendinput {Blind}{PgUp} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *PgDn:: sendinput {Blind}{PgDn} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *Up:: sendinput {Blind}{Up} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *Down:: sendinput {Blind}{Down} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *Left:: sendinput {Blind}{Left} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return *Right:: sendinput {Blind}{Right} - PriorDeadKey := "" + PriorDeadKey := "" CompKey := "" return @@ -2081,13 +2982,12 @@ EbeneAktualisieren() { Ebene += 2 } + ; ist Mod5 down? Mod3 hat Vorrang! else if ( GetKeyState("<","P") or GetKeyState("SC138","P") ) { Ebene += 4 } - - return } @@ -2127,7 +3027,6 @@ SendUnicodeChar(charCode) DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28) } - BSSendUnicodeChar(charCode) { send {bs} @@ -2143,6 +3042,37 @@ BSSendUnicodeChar(charCode) DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28) } +CompUnicodeChar(charCode) +{ + send {bs} + VarSetCapacity(ki, 28 * 2, 0) + + EncodeInteger(&ki + 0, 1) + EncodeInteger(&ki + 6, charCode) + EncodeInteger(&ki + 8, 4) + EncodeInteger(&ki +28, 1) + EncodeInteger(&ki +34, charCode) + EncodeInteger(&ki +36, 4|2) + + DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28) +} + +Comp3UnicodeChar(charCode) +{ + send {bs} + send {bs} + VarSetCapacity(ki, 28 * 2, 0) + + EncodeInteger(&ki + 0, 1) + EncodeInteger(&ki + 6, charCode) + EncodeInteger(&ki + 8, 4) + EncodeInteger(&ki +28, 1) + EncodeInteger(&ki +34, charCode) + EncodeInteger(&ki +36, 4|2) + + DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28) +} + EncodeInteger(ref, val) { @@ -2157,3 +3087,38 @@ EncodeInteger(ref, val) */ +pause::suspend + +/* + ------------------------------------------------------ + Maussteuerung, QWERTZ-Belegung! + ------------------------------------------------------ +*/ + +SetMouseDelay, -1 + +#i::MouseMove,0,-10,0,R +#k::MouseMove,0,10,0,R +#l::MouseMove,10,0,0,R +#j::MouseMove,-10,0,0,R + ++#i::MouseMove,0,-50,0,R ++#k::MouseMove,0,50,0,R ++#l::MouseMove,50,0,0,R ++#j::MouseMove,-50,0,0,R + + +#u::MouseClick, left +#o::MouseClick, right +;Redundanz, falls noch Shift gehalten ++#u::MouseClick, left ++#o::MouseClick, right +#m::WinMinimize, A +#Space::WinMaximize, A +#n::WinRestore, A +#.::WinClose, A + +#z::MouseClick, WheelUp,,,2 +#h::MouseClick, WheelDown,,,2 +;Funktionieren nicht, vermeiden aber Fehler, wenn Shift gehalten: ++#z::MouseClick, WheelUp,,,4 ++#h::MouseClick, Wheeldown,,,4 \ No newline at end of file diff --git a/windows/XP/autohotkey/neo20-all-in-one.exe b/windows/XP/autohotkey/neo20-all-in-one.exe index 7e7979d..49c20b7 100644 Binary files a/windows/XP/autohotkey/neo20-all-in-one.exe and b/windows/XP/autohotkey/neo20-all-in-one.exe differ -- cgit v1.2.3