From 31266d63142c1d0ae2b188732b96fb38ccfeb045 Mon Sep 17 00:00:00 2001 From: martin_r Date: Fri, 17 Oct 2008 17:00:59 +0000 Subject: weitere Modularisierung und Anpassung an die neuen toten Tasten git-svn-id: https://svn.neo-layout.org@1009 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/autohotkey/Build-Update.bat | 2 +- windows/autohotkey/Source/All.ahk | 6 +- windows/autohotkey/Source/Keys-DeadKeys.ahk | 76 ++ windows/autohotkey/Source/Keys-Neo.ahk | 1342 +++++++-------------------- windows/autohotkey/Source/Keys-NumPad.ahk | 252 +++++ windows/autohotkey/Source/Keys-Numbers.ahk | 164 ++++ windows/autohotkey/Source/Keys-Special.ahk | 177 ++++ windows/autohotkey/Source/Methods-Other.ahk | 2 + 8 files changed, 1004 insertions(+), 1017 deletions(-) create mode 100644 windows/autohotkey/Source/Keys-DeadKeys.ahk create mode 100644 windows/autohotkey/Source/Keys-NumPad.ahk create mode 100644 windows/autohotkey/Source/Keys-Numbers.ahk create mode 100644 windows/autohotkey/Source/Keys-Special.ahk (limited to 'windows') diff --git a/windows/autohotkey/Build-Update.bat b/windows/autohotkey/Build-Update.bat index 3c38e10..c8efd57 100644 --- a/windows/autohotkey/Build-Update.bat +++ b/windows/autohotkey/Build-Update.bat @@ -14,7 +14,7 @@ rem tskill %fn% echo Creating a new joined script from the Source code cd "%svn%\Source" REM The order *is* important! -copy "Warning.ahk" + "Global-Part.ahk" + "Methods-Layers.ahk" + "Keys-Qwert-to-Neo.ahk" + "Keys-Neo.ahk"+ "Methods-Lights.ahk" + "Methods-Other.ahk" + "Compose.ahk" + "Methods-Unicode.ahk" + "Methods-ScreenKeyboard.ahk" "..\%fn%.ahk" +copy "Warning.ahk" + "Global-Part.ahk" + "Methods-Layers.ahk" + "Keys-Qwert-to-Neo.ahk" + "Keys-Neo.ahk" + "Keys-Numbers.ahk" + "Keys-Special.ahk" + "Keys-Numpad.ahk" + "Keys-DeadKeys.ahk" + "Methods-Lights.ahk" + "Methods-Other.ahk" + "Compose.ahk" + "Methods-Unicode.ahk" + "Methods-ScreenKeyboard.ahk" "..\%fn%.ahk" cd.. echo Compiling the new Driver using Autohotkey diff --git a/windows/autohotkey/Source/All.ahk b/windows/autohotkey/Source/All.ahk index cd5ef3e..55f8a4b 100644 --- a/windows/autohotkey/Source/All.ahk +++ b/windows/autohotkey/Source/All.ahk @@ -1,7 +1,7 @@ /* All.ahk: Diese Datei ist für Entwickler zum schnellen Testen von Änderungen vorgesehen. Bei Syntaxfehlern bietet sie zudem den Vorteil, dass die Zeilennummern relativ zu den einzelnen Modulen angezeigt werden. - Die Reihenfolge der Includes *ist* relevant! Denn: Vor dem Menü in der Global-Part.ahk dürfen keine Tastenkombinationen definiert werden. Ansonsten können Sie die Dateien hier beliebig anordnen. + Die Reihenfolge der Includes *ist* relevant! Denn: Vor dem Menü in der Global-Part.ahk dürfen keine Tastenkombinationen definiert werden. Ansonsten kannst du die Dateien hier beliebig anordnen. */ #Include %a_scriptdir%\Warning.ahk @@ -9,6 +9,10 @@ #Include %a_scriptdir%\Methods-Layers.ahk #Include %a_scriptdir%\Keys-Qwert-to-Neo.ahk #Include %a_scriptdir%\Keys-Neo.ahk +#Include %a_scriptdir%\Keys-Numbers.ahk +#Include %a_scriptdir%\Keys-Special.ahk +#Include %a_scriptdir%\Keys-NumPad.ahk +#Include %a_scriptdir%\Keys-DeadKeys.ahk #Include %a_scriptdir%\Methods-Lights.ahk #Include %a_scriptdir%\Methods-Other.ahk #Include %a_scriptdir%\Compose.ahk diff --git a/windows/autohotkey/Source/Keys-DeadKeys.ahk b/windows/autohotkey/Source/Keys-DeadKeys.ahk new file mode 100644 index 0000000..5622d91 --- /dev/null +++ b/windows/autohotkey/Source/Keys-DeadKeys.ahk @@ -0,0 +1,76 @@ +neo_tot1: + noCaps = 1 + EbeneAktualisieren() + if (Ebene = 1) and !CheckDeadUni("c1",0x0302) ; Zirkumflex, tot + + deadUni(0x02C6, "dead_circumflex", "c1") + + else if (Ebene = 2) and !CheckDeadUni("c2",0x0303) ; Tilde, tot + + deadUni(0x02DC, "dead_tilde", "c2") + + else if (Ebene = 3) and !CheckDeadUni("c3",0x030A) ; Ring, tot + + deadUni(0x02DA, "dead_breve", "c3") + + else if (Ebene = 4) and !CheckDeadUni("c4",0x030C) ; Caron, tot + + deadUni(0x02C7, "dead_caron", "c4") + + else if (Ebene = 5) and !CheckDeadUni("c5",0x0306) ; Brevis, tot + + deadUni(0x02D8, "dead_breve", "c5") + + else if (Ebene = 6) and !CheckDeadUni("c6",0x0304) ; Makron, tot + + deadUni(0x00AF, "dead_macron", "c6") +return + +neo_tot2: + noCaps = 1 + EbeneAktualisieren() + if (Ebene = 1) and !CheckDeadUni("g1",0x0300) ; Gravis, tot + + deadAsc("``{space}", "dead_grave", "g1") + + if (Ebene = 2) and !CheckDeadUni("g2",0x030F) ; Doppelgravis, tot + + deadUni(0x02F5, "dead_doublegrave", "g2") + + else if (Ebene = 3) and !CheckDeadUni("g3",0x0308) ; Diärese, tot + + deadUni(0x00A8, "dead_diaeresis", "g3") + + else if (Ebene = 5) and !CheckDeadUni("g5",0x0485) ; Spiritus asper, tot + + deadUni(0x1FFE, "U1FFE", "g5") +return + +neo_tot3: + noCaps = 1 + EbeneAktualisieren() + if (Ebene = 1) and !CheckDeadUni("a1",0x0301) ; Akut, tot + + deadUni("{´}{space}", "dead_acute", "a1") + + else if (Ebene = 2) and !CheckDeadUni("a2",0x0327) ; Cedille, tot + + deadAsc("¸", "dead_cedilla", "a2") + + else if (Ebene = 3) and !CheckDeadUni("a3",0x0337) ; Strich, tot + + deadUni(0x002F, "dead_stroke", "a3") + + else if (Ebene = 4) and !CheckDeadUni("a4",0x0338) ; Doppelakut, tot + + deadUni(0x02DD, "dead_doubleacute", "a4") + + else if (Ebene = 5) and !CheckDeadUni("a5",0x0486) ; Spiritus lenis, tot + + deadUni(0x1FBF, "U1FBF", "a5") + + else if (Ebene = 6) and !CheckDeadUni("a6",0x0307) ; Punkt darüber, tot + + deadUni(0x02D9, "dead_abovedot", "a6") +return + diff --git a/windows/autohotkey/Source/Keys-Neo.ahk b/windows/autohotkey/Source/Keys-Neo.ahk index e2e89fc..75d76da 100644 --- a/windows/autohotkey/Source/Keys-Neo.ahk +++ b/windows/autohotkey/Source/Keys-Neo.ahk @@ -1,626 +1,59 @@ -/* - Die eigentliche NEO-Belegung und der Hauptteil des AHK-Treibers. - - Reihe 1 -*/ - -neo_tot1: - noCaps = 1 - EbeneAktualisieren() - if (Ebene = 1) and !CheckDeadUni("c1",0x0302) - deadUni(0x02C6, "dead_circumflex", "c1") ; Zirkumflex, tot - else if (Ebene = 2) and !CheckDeadUni("c2",0x0303) - deadUni(0x02DC, "dead_tilde", "c2") ; Tilde, tot - else if (Ebene = 3) and !CheckDeadUni("c3",0x030A) - deadUni(0x02DA, "dead_breve", "c3") ; Ring, tot - else if (Ebene = 4) and !CheckDeadUni("c4",0x030C) - deadUni(0x02C7, "dead_caron", "c4") ; Caron, tot - else if (Ebene = 5) and !CheckDeadUni("c5",0x0306) - deadUni(0x02D8, "dead_breve", "c5") ; Brevis, tot - else if (Ebene = 6) and !CheckDeadUni("c6",0x0304) - deadUni(0x00AF, "dead_macron", "c6") ; Makron, tot -return - -neo_1: - noCaps=1 - EbeneAktualisieren() - if Ebene12 and !(CheckDeadUni("c1",0x00B9) ; Hochgestellte 1 - or CheckDeadUni("c5",0x2081)) ; Tiefgestellte 1 - OutputChar12(1,"°",1,"degree") - else if (Ebene = 3) - SendUnicodeChar(0x00B9, "onesuperior") ; Hochgestellte 1 - else if (Ebene = 4) - SendUnicodeChar(0x2022, "enfilledcircbullet") ; Bullet - else if (Ebene = 5) - SendUnicodeChar(0x2081, "U2081") ; Tiefgestellte 1 - else if (Ebene = 6) - SendUnicodeChar(0x00AC, "notsign") ; Nicht-Symbol -return - -neo_2: - noCaps = 1 - EbeneAktualisieren() - if (Ebene = 1 and !(CheckDeadUni("c1",0x00B2) ; Hochgestellte 2 - or CheckDeadUni("c5",0x2082))) ; Tiefgestellte 2 - OutputChar(2,2) - else if (Ebene = 2) - SendUnicodeChar(0x2116, "numerosign") ; Numero - else if (Ebene = 3) - SendUnicodeChar(0x00B2, "twosuperior") ; Hochgestellte 2 - else if (Ebene = 4) - SendUnicodeChar(0x2023, "U2023") ; Aufzählungspfeil - else if (Ebene = 5) - SendUnicodeChar(0x2082, "U2082") ; Tiefgestellte 2 - else if (Ebene = 6) - SendUnicodeChar(0x2228, "logicalor") ; Logisches Oder -return - -neo_3: - noCaps = 1 - EbeneAktualisieren() - if Ebene12 and !(CheckDeadUni("c1",0x00B3) ; Hochgestellte 3 - or CheckDeadUni("c5",0x2083)) ; Tiefgestellte 3 - OutputChar12(3,"§",3,"section") - else if (Ebene = 3) - SendUnicodeChar(0x00B3, "threesuperior") ; Hochgestellte 3 - else if (Ebene = 4) - SendUnicodeChar(0x266B, "U226B") ; 2 Achtelnoten - else if (Ebene = 5) - SendUnicodeChar(0x2083, "U2083") ; Tiefgestellte 3 - else if (Ebene = 6) - SendUnicodeChar(0x2227, "logicaland") ; Logisches Und -return - -neo_4: - noCaps = 1 - EbeneAktualisieren() - if (Ebene = 1) and !(CheckDeadUni("c1",0x2074) ; Hochgestellte 4 - or CheckDeadUni("c5",0x2084)) ; Tiefgestellte 4 - OutputChar(4,4) - else if (Ebene = 2) - SendUnicodeChar(0x00BB, "guillemotright") ; Double guillemot right - else if (Ebene = 3) - OutputChar("›", "U230A") ; Single guillemot right - else if (Ebene = 4) - OutputChar("{PgUp}", "Prior") ; Bild auf - else if (Ebene = 5) - SendUnicodeChar(0x2113, "U2213") ; Script small L - else if (Ebene = 6) - SendUnicodeChar(0x22A5, "uptack") ; Senkrecht -return - -neo_5: - noCaps = 1 - EbeneAktualisieren() - if (Ebene = 1) and !(CheckDeadUni("c1",0x2075) ; Hochgestellte 5 - or CheckDeadUni("c5",0x2085)) ; Tiefgestellte 5 - OutputChar(5,5) - else if (Ebene = 2) - SendUnicodeChar(0x00AB, "guillemotleft") ; Double guillemot left - else if (Ebene = 3) - OutputChar("‹", "U2039") ; Single guillemot left - else if (Ebene = 5) - SendUnicodeChar(0x0AF8, "femalesymbol") ; Kreuz (Dagger) - else if (Ebene = 6) - SendUnicodeChar(0x2221, "U2221") ; Winkel -return - -neo_6: - noCaps = 1 - EbeneAktualisieren() - if (Ebene = 1) and !(CheckDeadUni("c1",0x2076) ; Hochgestellte 6 - or CheckDeadUni("c5",0x2086)) ; Tiefgestellte 6 - OutputChar(6,6) - else if (Ebene = 2) - SendUnicodeChar(0x20AC, "EuroSign") - else if (Ebene = 3) - OutputChar("¢", "cent") - else if (Ebene = 4) - OutputChar("£", "sterling") - else if (Ebene = 5) - SendUnicodeChar(0x0AF7, "malesymbol") - else if (Ebene = 6) - SendUnicodeChar(0x2225, "U2225") ; parallel -return - -neo_7: - noCaps = 1 - EbeneAktualisieren() - if Ebene12 and !(CheckDeadUni("c1",0x2077) ; Hochgestellte 7 - or CheckDeadUni("c5",0x2087)) ; Tiefgestellte 7 - OutputChar12(7,"$",7,"dollar") - else if (Ebene = 3) - OutputChar("¥", "yen") - else if (Ebene = 4) - OutputChar("¤", "currency") - else if (Ebene = 5) - SendUnicodeChar(0x03BA, "Greek_kappa") ; greek small letter kappa - else if (Ebene = 6) - SendUnicodeChar(0x2209, "notelementof") ; nicht Element von -return - -neo_8: - noCaps = 1 - EbeneAktualisieren() - if Ebene12 and !(CheckDeadUni("c1",0x2078) ; Hochgestellte 8 - or CheckDeadUni("c5",0x2088)) ; Tiefgestellte 8 - OutputChar12(8,"„",8,"doublelowquotemark") - else if (Ebene = 3) - OutputChar("‚", "singlelowquotemark") - else if (Ebene = 4) - OutputChar("{NumpadDiv}", "KP_Divide") - else if (Ebene = 5) - SendUnicodeChar(0x27E8, "U27E8") ; bra (öffnende spitze Klammer) - else if (Ebene = 6) - SendUnicodeChar(0x2204, "U2204") ; es existiert nicht -return - -neo_9: - noCaps = 1 - EbeneAktualisieren() - if Ebene12 and !(CheckDeadUni("c1",0x2079) ; Hochgestellte 9 - or CheckDeadUni("c5",0x2089)) ; Tiefgestellte 9 - OutputChar12(9,"“",9,"leftdoublequotemark") - else if (Ebene = 3) - OutputChar("‘", "leftsinglequotemark") - else if (Ebene = 4) - OutputChar("{NumpadMult}", "KP_Multiply") - else if (Ebene = 5) - SendUnicodeChar(0x27E9, "U27E9") ; ket (schließende spitze Klammer) - else if (Ebene = 6) - SendUnicodeChar(0x2226, "U2226") ; nicht parallel -return - -neo_0: - noCaps = 1 - EbeneAktualisieren() - if Ebene12 and !(CheckDeadUni("c1",0x2070) ; Hochgestellte 0 - or CheckDeadUni("c5",0x2080)) ; Tiefgestellte 0 - OutputChar12(0,"”",0,"rightdoublequotemark") - else if (Ebene = 3) - OutputChar("’", "rightsingleqoutemark") - else if (Ebene = 4) - OutputChar("{NumpadSub}", "minus") ; s. Mail vom Sun, 14 Sep 2008 00:33:47 +0200 - else if (Ebene = 6) - SendUnicodeChar(0x2205, "emptyset") ; leere Menge -return - -neo_strich: - noCaps = 1 - EbeneAktualisieren() - if (Ebene = 1) - OutputChar("-", "minus") ; Bindestrich-Minus - else if (Ebene = 2) - SendUnicodeChar(0x2013, "endash") ; Gedankenstrich - else if (Ebene = 3) - SendUnicodeChar(0x2014, "emdash") ; Englischer Gedankenstrich (Geviertstrich) - else if (Ebene = 5) - SendUnicodeChar(0x2011, "U2011") ; geschützter Bindestrich (Bindestrich ohne Zeilenumbruch) - else if (Ebene = 6) - SendUnicodeChar(0x00AD, "hyphen") ; weicher Bindestrich -return - -neo_tot2: - noCaps = 1 - EbeneAktualisieren() - if (Ebene = 1) and !CheckDeadUni("a1",0x0300) - deadAsc("``{space}", "dead_grave", "a1") ; Gravis, tot - else if (Ebene = 3) and !CheckDeadUni("a3",0x0308) - deadAsc(0x00A8, "dead_diaeresis", "a3") ; Diärese, tot - else if (Ebene = 5) and !CheckDeadUni("a5",0x0485) - deadUni(0x1FFE, "dead_dasia", "a5") ; Ogonek -return - - -/* - - Reihe 2 - -*/ - -neo_x: - EbeneAktualisieren() - if Ebene12 - OutputChar12("x","X","x","X") - else if (Ebene = 3) - SendUnicodeChar(0x2026, "ellipsis") ; Ellipse horizontal - else if (Ebene = 4) - SendUnicodeChar(0x22EE, "U22EE") ; Ellipse vertikal - else if (Ebene = 5) - SendUnicodeChar(0x03BE, "Greek_xi") ; xi - else if (Ebene = 6) - SendUnicodeChar(0x039E, "Greek_XI") ; Xi -return - -neo_v: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("c6",0x1E7F,0x1E7E))) - OutputChar12("v","V","v","V") - else if (Ebene = 3) - OutputChar("_","underscore") - else if (Ebene = 4) and (!lernModus or lernModus_neo_Backspace) - OutputChar("{Backspace}", "BackSpace") - else if (Ebene = 6) - SendUnicodeChar(0x2259, "U2259") ; estimates/entspricht -return - -neo_l: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x013A,0x0139) - or CheckDeadUni12("a3",0x013C,0x013B) - or CheckDeadUni12("c2",0x013E,0x013D) - or CheckDeadUni12("c4",0x0140,0x013F) - or CheckDeadUni12("c6",0x1E37,0x1E36) - or CheckDeadUni12("t4",0x0142,0x0141))) - OutputChar12("l","L","l","L") - else if (Ebene = 3) - OutputChar("[", "bracketleft") - else if (Ebene = 4) - OutputChar("{Up}", "Up") - else if (Ebene = 5) - SendUnicodeChar(0x03BB, "Greek_lambda") ; lambda - else if (Ebene = 6) - SendUnicodeChar(0x039B, "Greek_LAMBDA") ; Lambda -return - -neo_c: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x0107,0x0106) - or CheckDeadUni12("a3",0x00E7,0x00E6) - or CheckDeadUni12("a4",0x010B,0x010A) - or CheckDeadUni12("c1",0x0109,0x0108) - or CheckDeadUni12("c2",0x010D,0x010C))) - OutputChar12("c","C","c","C") - else if (Ebene = 3) - OutputChar("]", "bracketright") - else if (Ebene = 4) and (!lernModus or lernModus_neo_Entf) - OutputChar("{Del}", "Delete") - else if (Ebene = 5) - SendUnicodeChar(0x03C7, "Greek_chi") ; chi - else if (Ebene = 6) - SendUnicodeChar(0x2102, "U2102") ; C (Komplexe Zahlen)] -return - -neo_w: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("c1",0x0175,0x0174))) - OutputChar12("w","W","w","W") - else if (Ebene = 3) - SendUnicodeChar(0x005E, "asciicircum") ; Zirkumflex - else if (Ebene = 4) - OutputChar("{Insert}", "Insert") ; Einfg - else if (Ebene = 5) - SendUnicodeChar(0x03C9, "Greek_omega") ; omega - else if (Ebene = 6) - SendUnicodeChar(0x03A9, "Greek_OMEGA") ; Omega -return - -neo_k: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136) - or CheckDeadUni12("c6",0x1E33,0x1E32))) - OutputChar12("k","K","k","K") - else if (Ebene = 3) - OutputChar("{!}", "exclam") - else if (Ebene = 4) - OutputChar("¡", "exclamdown") - else if (Ebene = 5) - SendUnicodeChar(0x03F0, "U03F0") ; kappa symbol (varkappa) - else if (Ebene = 6) - SendUnicodeChar(0x221A, "radical") ; Wurzel -return - -neo_h: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a4",0x1E23,0x1E22) - or CheckDeadUni12("c1",0x0125,0x0124) - or CheckDeadUni12("c5",0x0127,0x0126) - or CheckDeadUni12("c6",0x1E25,0x1E24))) - OutputChar12("h","H","h","H") - else if ((Ebene = 3) and !(CheckDeadUni("t4",0x2264))) ; kleiner gleich - OutputChar("<", "less") - else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2077) - or CheckDeadUni("t4",0x2087))) - OutputChar("{Numpad7}", "KP_7") - else if (Ebene = 5) - SendUnicodeChar(0x03C8, "Greek_psi") ; psi - else if (Ebene = 6) - SendUnicodeChar(0x03A8, "Greek_PSI") ; Psi -return - -neo_g: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a3",0x0123,0x0122) - or CheckDeadUni12("a4",0x0121,0x0120) - or CheckDeadUni12("c1",0x011D,0x011C) - or CheckDeadUni12("c3",0x011F,0x011E))) - OutputChar12("g","G","g","G") - else if ((Ebene = 3) and !(CheckDeadUni("t4",0x2265))) ; größer gleich - OutputChar(">", "greater") - else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2078) - or CheckDeadUni("t4",0x2088))) - OutputChar("{Numpad8}", "KP_8") - else if (Ebene = 5) - SendUnicodeChar(0x03B3, "Greek_gamma") ; gamma - else if (Ebene = 6) - SendUnicodeChar(0x0393, "Greek_GAMMA") ; Gamma -return - -neo_f: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a4",0x1E1F,0x1E1E) - or CheckDeadUni12("t4",0x0192,0x0191))) - OutputChar12("f","F","f","F") - else if ((Ebene = 3) and !(CheckDeadUni("a6",0x2257) ; ring equal to - or CheckDeadUni("c1",0x2259) ; entspricht - or CheckDeadUni("c2",0x225A) ; EQUIANGULAR TO - or CheckDeadUni("t2",0x2261) ; identisch - or CheckDeadUni("t1",0x2245) ; ungefähr gleich - or CheckDeadUni("t4",0x2260))) ; ungleich - OutputChar("`=", "equal") - else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2079) - or CheckDeadUni("t4",0x2089))) - OutputChar("{Numpad9}", "KP_9") - else if (Ebene = 5) - SendUnicodeChar(0x03C6, "Greek_phi") ; phi - else if (Ebene = 6) - SendUnicodeChar(0x03A6, "Greek_PHI") ; Phi -return - -neo_q: - EbeneAktualisieren() - if (Ebene12) - OutputChar12("q","Q","q","Q") - else if (Ebene = 3) - OutputChar("{&}", "ampersand") - else if ((Ebene = 4) and !(CheckDeadUni("c1",0x207A) - or CheckDeadUni("c5",0x208A))) - OutputChar("{NumPadAdd}", "plus") ; !!! - else if (Ebene = 5) - SendUnicodeChar(0x03D5, "U03D5") ; phi symbol (varphi) - else if (Ebene = 6) - SendUnicodeChar(0x211A, "U211A") ; Q (rationale Zahlen) -return - -neo_sz: - EbeneAktualisieren() - if (Ebene = 1) - if LangSTastatur - OutputChar("s", "s") - else OutputChar("ß", "ssharp") - else if (Ebene = 2) - SendUnicodeChar(0x1E9E, "U1E9E") ; versal-ß - else if (Ebene = 3) - if LangSTastatur - OutputChar("ß", "ssharp") - else SendUnicodeChar(0x017F, "17F") ; langes s - else if (Ebene = 5) - SendUnicodeChar(0x03C2, "Greek_finalsmallsigma") ; varsigma - else if (Ebene = 6) - SendUnicodeChar(0x2218, "jot") ; Verknüpfungsoperator -return - - -neo_tot3: - noCaps = 1 - EbeneAktualisieren() - if (Ebene = 1) and !CheckDeadUni("t1",0x0301) - deadUni({´}{space}, "dead_acute", "t1") ; Akut, tot - else if (Ebene = 2) and !CheckDeadUni("t2",0x0327) - deadUni("¸", "dead_cedilla", "t2") ; Cedille, tot - else if (Ebene = 3) and !CheckDeadUni("t3",0x0337) - deadUni(0x002F, "dead_stroke", "t3") ; Strich, tot - else if (Ebene = 4) and !CheckDeadUni("t4",0x0338) - deadUni(0x02DD, "dead_doubleacute", "t4") ; Doppelakut, tot - else if (Ebene = 5) and !CheckDeadUni("t5",0x0486) - deadUni(0x1FBF, "", "t5") ; Spiritus lenis, tot - else if (Ebene = 6) and !CheckDeadUni("t6",0x0307) - deadUni(0x02D9, "dead_abovedot", "t6") ; Punkt darüber, tot -return - - -/* - - Reihe 3 - -*/ - -neo_u: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x00FA,0x00DA) - or CheckDeadUni12("a2",0x00F9,0x00D9) - or CheckDeadUni12("a5",0x0173,0x0172) - or CheckDeadUni12("a6",0x016F,0x016E) - or CheckDeadUni12("c1",0x00FB,0x00DB) - or CheckDeadUni12("c2",0x01D4,0x01D3) - or CheckDeadUni12("c3",0x016D,0x016C) - or CheckDeadUni12("t1",0x0169,0x0168) - or CheckDeadUni12("t2",0x016B,0x016A) - or CheckDeadAsc12("t3","ü","Ü") - or CheckDeadUni12("t5",0x0171,0x0170))) - OutputChar12("u","U","u","U") - else if (Ebene = 3) - OutputChar("\", "backslash") - else if (Ebene = 4) - OutputChar("{Home}", "Home") - else if (Ebene = 6) - SendUnicodeChar(0x222E, "U222E") ; contour integral -return - -neo_i: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x00ED,0x00CD) - or CheckDeadUni12("a2",0x00EC,0x00CC) - or CheckDeadUni12("a4",0x012F,0x012E) - or CheckDeadUni12("a5",0x0131,0x0130) - or CheckDeadUni12("c1",0x00EE,0x00CE) - or CheckDeadUni12("c2",0x01D0,0x01CF) - or CheckDeadUni12("c3",0x012D,0x012C) - or CheckDeadUni12("t1",0x0129,0x0128) - or CheckDeadUni12("t2",0x012B,0x012A) - or CheckDeadAsc12("t3","ï","Ï"))) - OutputChar12("i","I","i","I") - else if (Ebene = 3) - OutputChar("`/", "slash") - else if (Ebene = 4) - OutputChar("{Left}", "Left") - else if (Ebene = 5) - SendUnicodeChar(0x03B9, "Greek_iota") ; iota - else if (Ebene = 6) - SendUnicodeChar(0x222B, "integral") ; integral -return - neo_a: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x00E1,0x00C1) - or CheckDeadUni12("a2",0x00E0,0x00C0) - or CheckDeadUni12("a5",0x0105,0x0104) - or CheckDeadAsc12("a6","å","Å") - or CheckDeadUni12("c1",0x00E2,0x00C2) - or CheckDeadUni12("c2",0x01CE,0x01CD) - or CheckDeadUni12("c3",0x0103,0x0102) - or CheckDeadUni12("t1",0x00E3,0x00C3) - or CheckDeadUni12("t2",0x0101,0x0100) - or CheckDeadAsc12("t3","ä","Ä"))) + if (Ebene12 and !(CheckDeadUni12("c1",0x00E2,0x00C2) + or CheckDeadUni12("c2",0x00E3,0x00C3) + or CheckDeadAsc12("c3","å","Å") + or CheckDeadUni12("c4",0x01CE,0x01CD) + or CheckDeadUni12("c5",0x0103,0x0102) + or CheckDeadUni12("c6",0x0101,0x0100) + or CheckDeadUni12("g1",0x00E0,0x00C0) + or CheckDeadAsc12("g3","ä","Ä") + or CheckDeadUni12("g5",0x1F01,0x1F09) + or CheckDeadUni12("a1",0x00E1,0x00C1) + or CheckDeadUni12("a2",0x0105,0x0104))) OutputChar12("a","A","a","A") else if (Ebene = 3) OutputChar("{{}", "braceleft") else if (Ebene = 4) OutputChar("{Down}", "Down") - else if (Ebene = 5) + else if (Ebene = 5 and !(CheckDeadUni("g5",0x1F01))) SendUnicodeChar(0x03B1, "Greek_alpha") ; alpha else if (Ebene = 6) SendUnicodeChar(0x2200, "U2200") ; für alle return -neo_e: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x00E9,0x00C9) - or CheckDeadUni12("a2",0x00E8,0x00C8) - or CheckDeadUni12("a4",0x0117,0x0116) - or CheckDeadUni12("a5",0x0119,0x0118) - or CheckDeadUni12("c1",0x00EA,0x00CA) - or CheckDeadUni12("c2",0x011B,0x011A) - or CheckDeadUni12("c3",0x0115,0x0114) - or CheckDeadUni12("t1",0x1EBD,0x1EBC) - or CheckDeadUni12("t2",0x0113,0x0112) - or CheckDeadAsc12("t3","ë","Ë"))) - OutputChar12("e","E","e","E") - else if (Ebene = 3) - OutputChar("{}}", "braceright") - else if (Ebene = 4) - OutputChar("{Right}", "Right") - else if (Ebene = 5) - SendUnicodeChar(0x03B5, "Greek_epsilon") ; epsilon - else if (Ebene = 6) - SendUnicodeChar(0x2203, "U2203") ; es existiert -return - -neo_o: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x00F3,0x00D3) - or CheckDeadUni12("a2",0x00F2,0x00D2) - or CheckDeadUni12("a5",0x01EB,0x01EA) - or CheckDeadUni12("c1",0x00F4,0x00D4) - or CheckDeadUni12("c2",0x01D2,0x01D1) - or CheckDeadUni12("c3",0x014F,0x014E) - or CheckDeadUni12("t1",0x00F5,0x00D5) - or CheckDeadUni12("t2",0x014D,0x014C) - or CheckDeadAsc12("t3","ö","Ö") - or CheckDeadUni12("t4",0x00F8,0x00D8) - or CheckDeadUni12("t5",0x0151,0x0150))) - OutputChar12("o","O","o","O") - else if (Ebene = 3) - OutputChar("*", "asterisk") - else if (Ebene = 4) - OutputChar("{End}", "End") - else if (Ebene = 5) - SendUnicodeChar(0x03BF, "Greek_omicron") ; omicron - else if (Ebene = 6) - SendUnicodeChar(0x2208, "elementof") ; element of -return - -neo_s: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x015B,0x015A) - or CheckDeadUni12("a3",0x015F,0x015E) - or CheckDeadUni12("a4",0x1E61,0x1E60) - or CheckDeadUni12("c1",0x015D,0x015C) - or CheckDeadUni12("c2",0x0161,0x0160) - or CheckDeadUni12("c6",0x1E63,0x1A62))) { - if LangSTastatur and (Ebene = 1) - SendUnicodeChar(0x017F, "17F") ; langes s - else OutputChar12("s","S","s","S") - } else if (Ebene = 3) - OutputChar("?", "question") - else if Ebene7 { - if LangSTastatur - OutputChar("s", "s") - else SendUnicodeChar(0x017F, "17F") - } else if (Ebene = 4) - OutputChar("¿", "questiondown") - else if (Ebene = 5) - SendUnicodeChar(0x03C3, "Greek_sigma") ;sigma - else if (Ebene = 6) - SendUnicodeChar(0x03A3, "Greek_SIGMA") ;Sigma -return - -neo_n: - EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x0144,0x0143) - or CheckDeadUni12("a3",0x0146,0x0145) - or CheckDeadUni12("a4",0x1E45,0x1E44) - or CheckDeadUni12("c2",0x0148,0x0147) - or CheckDeadUni12("t1",0x00F1,0x00D1))) - OutputChar12("n","N","n","N") - else if (Ebene = 3) - OutputChar("(", "parenleft") - else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2074) - or CheckDeadUni("t4",0x2084))) - OutputChar("{Numpad4}", "KP_4") - else if (Ebene = 5) - SendUnicodeChar(0x03BD, "Greek_nu") ; nu - else if (Ebene = 6) - SendUnicodeChar(0x2115, "U2115") ; N (natürliche Zahlen) -return - -neo_r: +neo_b: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x0155,0x0154) - or CheckDeadUni12("a3",0x0157,0x0156) - or CheckDeadUni12("a4",0x0E59,0x0E58) - or CheckDeadUni12("c2",0x0159,0x0158) - or CheckDeadUni12("t3",0x1E5B,0x1E5A))) - OutputChar12("r","R","r","R") + if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02))) + OutputChar12("b","B","b","B") else if (Ebene = 3) - OutputChar(")", "parenright") - else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2075) - or CheckDeadUni("t4",0x2085))) - OutputChar("{Numpad5}", "KP_5") + if isMod2Locked + OutputChar("{Shift Up}{+}", "plus") + else OutputChar("{blind}{+}", "plus") + else if (Ebene = 4) + OutputChar(":", "colon") else if (Ebene = 5) - SendUnicodeChar(0x03F1, "U03F1") ; rho symbol (varrho) + SendUnicodeChar(0x03B2, "Greek_beta") ; beta else if (Ebene = 6) - SendUnicodeChar(0x211D, "U221D") ; R (reelle Zahlen) + SendUnicodeChar(0x21D2, "implies") ; Doppel-Pfeil rechts return -neo_t: +neo_c: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a3",0x0163,0x0162) - or CheckDeadUni12("a4",0x1E6B,0x1E6A) - or CheckDeadUni12("c2",0x0165,0x0164) - or CheckDeadUni12("c5",0x0167,0x0166) - or CheckDeadUni12("t4",0x1E6D,0x1E6C) - or CheckDeadUni("t3",0x1E97))) - OutputChar12("t","T","t","T") + if (Ebene12 and !(CheckDeadUni12("a1",0x0107,0x0106) + or CheckDeadUni12("a3",0x00E7,0x00E6) + or CheckDeadUni12("a4",0x010B,0x010A) + or CheckDeadUni12("c1",0x0109,0x0108) + or CheckDeadUni12("c2",0x010D,0x010C))) + OutputChar12("c","C","c","C") else if (Ebene = 3) - OutputChar("-", "minus") ; Bisstrich - else if (Ebene = 4) and !(CheckDeadUni("c1",0x2076) - or CheckDeadUni("c5",0x2086)) - OutputChar("{Numpad6}", "KP_6") + OutputChar("]", "bracketright") + else if (Ebene = 4) and (!lernModus or lernModus_neo_Entf) + OutputChar("{Del}", "Delete") else if (Ebene = 5) - SendUnicodeChar(0x03C4, "Greek_tau") ; tau + SendUnicodeChar(0x03C7, "Greek_chi") ; chi else if (Ebene = 6) - SendUnicodeChar(0x2202, "partialderivative") ; partielle Ableitung + SendUnicodeChar(0x2102, "U2102") ; C (Komplexe Zahlen)] return neo_d: @@ -641,114 +74,156 @@ neo_d: SendUnicodeChar(0x0394, "Greek_DELTA") ; Delta return -neo_y: +neo_e: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x00FD,0x00DD) - or CheckDeadUni12("c1",0x0177,0x0176) - or CheckDeadAsc12("t3","ÿ","Ÿ"))) - OutputChar12("y","Y","y","Y") + if (Ebene12 and !(CheckDeadUni12("a1",0x00E9,0x00C9) + or CheckDeadUni12("a2",0x00E8,0x00C8) + or CheckDeadUni12("a4",0x0117,0x0116) + or CheckDeadUni12("a5",0x0119,0x0118) + or CheckDeadUni12("c1",0x00EA,0x00CA) + or CheckDeadUni12("c2",0x011B,0x011A) + or CheckDeadUni12("c3",0x0115,0x0114) + or CheckDeadUni12("t1",0x1EBD,0x1EBC) + or CheckDeadUni12("t2",0x0113,0x0112) + or CheckDeadAsc12("t3","ë","Ë"))) + OutputChar12("e","E","e","E") else if (Ebene = 3) - OutputChar("@", "at") + OutputChar("{}}", "braceright") else if (Ebene = 4) - OutputChar(".", "period") + OutputChar("{Right}", "Right") else if (Ebene = 5) - SendUnicodeChar(0x03C5, "Greek_upsilon") ; upsilon + SendUnicodeChar(0x03B5, "Greek_epsilon") ; epsilon else if (Ebene = 6) - SendUnicodeChar(0x2207, "nabla") ; nabla + SendUnicodeChar(0x2203, "U2203") ; es existiert return -/* - - Reihe 4 - -*/ +neo_f: + EbeneAktualisieren() + if (Ebene12 and !(CheckDeadUni12("a4",0x1E1F,0x1E1E) + or CheckDeadUni12("t4",0x0192,0x0191))) + OutputChar12("f","F","f","F") + else if ((Ebene = 3) and !(CheckDeadUni("a6",0x2257) ; ring equal to + or CheckDeadUni("c1",0x2259) ; entspricht + or CheckDeadUni("c2",0x225A) ; EQUIANGULAR TO + or CheckDeadUni("t2",0x2261) ; identisch + or CheckDeadUni("t1",0x2245) ; ungefähr gleich + or CheckDeadUni("t4",0x2260))) ; ungleich + OutputChar("`=", "equal") + else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2079) + or CheckDeadUni("t4",0x2089))) + OutputChar("{Numpad9}", "KP_9") + else if (Ebene = 5) + SendUnicodeChar(0x03C6, "Greek_phi") ; phi + else if (Ebene = 6) + SendUnicodeChar(0x03A6, "Greek_PHI") ; Phi +return -neo_ü: +neo_g: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x01D8,0x01D7) - or CheckDeadUni12("a2",0x01DC,0x01DB) - or CheckDeadUni12("c2",0x01DA,0x01D9) - or CheckDeadUni12("t2",0x01D6,0x01D5))) - OutputChar12("ü","Ü","udiaeresis","Udiaeresis") - else if (Ebene = 3) - if isMod2Locked - OutputChar("{Shift Up}{#}", "numbersign") - else OutputChar("{blind}{#}", "numbersign") - else if (Ebene = 4) - OutputChar("{Esc}", "Escape") + if (Ebene12 and !(CheckDeadUni12("a3",0x0123,0x0122) + or CheckDeadUni12("a4",0x0121,0x0120) + or CheckDeadUni12("c1",0x011D,0x011C) + or CheckDeadUni12("c3",0x011F,0x011E))) + OutputChar12("g","G","g","G") + else if ((Ebene = 3) and !(CheckDeadUni("t4",0x2265))) ; größer gleich + OutputChar(">", "greater") + else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2078) + or CheckDeadUni("t4",0x2088))) + OutputChar("{Numpad8}", "KP_8") + else if (Ebene = 5) + SendUnicodeChar(0x03B3, "Greek_gamma") ; gamma else if (Ebene = 6) - SendUnicodeChar(0x221D, "variation") ; proportional + SendUnicodeChar(0x0393, "Greek_GAMMA") ; Gamma return -neo_ö: +neo_h: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("t2",0x022B,0x022A))) - OutputChar12("ö","Ö","odiaeresis","Odiaeresis") - else if (Ebene = 3) - OutputChar("$", "dollar") - else if (Ebene = 4) - OutputChar("{Tab}", "Tab") + if (Ebene12 and !(CheckDeadUni12("a4",0x1E23,0x1E22) + or CheckDeadUni12("c1",0x0125,0x0124) + or CheckDeadUni12("c5",0x0127,0x0126) + or CheckDeadUni12("c6",0x1E25,0x1E24))) + OutputChar12("h","H","h","H") + else if ((Ebene = 3) and !(CheckDeadUni("t4",0x2264))) ; kleiner gleich + OutputChar("<", "less") + else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2077) + or CheckDeadUni("t4",0x2087))) + OutputChar("{Numpad7}", "KP_7") + else if (Ebene = 5) + SendUnicodeChar(0x03C8, "Greek_psi") ; psi else if (Ebene = 6) - SendUnicodeChar(0x2111, "U2221") ; Fraktur I + SendUnicodeChar(0x03A8, "Greek_PSI") ; Psi return -neo_ä: +neo_i: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("t2",0x01DF,0x01DE))) - OutputChar12("ä","Ä","adiaeresis","Adiaeresis") + if (Ebene12 and !(CheckDeadUni12("a1",0x00ED,0x00CD) + or CheckDeadUni12("a2",0x00EC,0x00CC) + or CheckDeadUni12("a4",0x012F,0x012E) + or CheckDeadUni12("a5",0x0131,0x0130) + or CheckDeadUni12("c1",0x00EE,0x00CE) + or CheckDeadUni12("c2",0x01D0,0x01CF) + or CheckDeadUni12("c3",0x012D,0x012C) + or CheckDeadUni12("t1",0x0129,0x0128) + or CheckDeadUni12("t2",0x012B,0x012A) + or CheckDeadAsc12("t3","ï","Ï"))) + OutputChar12("i","I","i","I") else if (Ebene = 3) - OutputChar("|", "bar") + OutputChar("`/", "slash") else if (Ebene = 4) - OutputChar("{PgDn}", "Next") + OutputChar("{Left}", "Left") else if (Ebene = 5) - SendUnicodeChar(0x03B7, "Greek_eta") ; eta + SendUnicodeChar(0x03B9, "Greek_iota") ; iota else if (Ebene = 6) - SendUnicodeChar(0x211C, "U221C") ; Fraktur R + SendUnicodeChar(0x222B, "integral") ; integral return -neo_p: +neo_j: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a4",0x1E57,0x1E56))) - OutputChar12("p","P","p","P") - else if ((Ebene = 3) and !(CheckDeadUni("t1",0x2248))) - OutputChar("~", "asciitilde") + if (Ebene12 and !(CheckDeadUni12("c1",0x0135,0x0134) + or CheckDeadUni("c2",0x01F0))) + OutputChar12("j","J","j","J") + else if (Ebene = 3) + OutputChar("`;", "semicolon") else if (Ebene = 4) - OutputChar("{Enter}", "Return") + OutputChar("`;", "semicolon") else if (Ebene = 5) - SendUnicodeChar(0x03C0, "Greek_pi") ; pi + SendUnicodeChar(0x03B8, "Greek_theta") ; theta else if (Ebene = 6) - SendUnicodeChar(0x03A0, "Greek_PI") ; Pi + SendUnicodeChar(0x2261, "identical") ; identisch return -neo_z: +neo_k: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a1",0x017A,0x0179) - or CheckDeadUni12("a4",0x017C,0x017B) - or CheckDeadUni12("c2",0x017E,0x017D) - or CheckDeadUni12("c6",0x1E93,0x1E92))) - OutputChar12("z","Z","z","Z") + if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136) + or CheckDeadUni12("c6",0x1E33,0x1E32))) + OutputChar12("k","K","k","K") else if (Ebene = 3) - OutputChar("``{space}", "grave") ; untot + OutputChar("{!}", "exclam") + else if (Ebene = 4) + OutputChar("¡", "exclamdown") else if (Ebene = 5) - SendUnicodeChar(0x03B6, "Greek_zeta") ; zeta + SendUnicodeChar(0x03F0, "U03F0") ; kappa symbol (varkappa) else if (Ebene = 6) - SendUnicodeChar(0x2124, "U2124") ; Z (ganze Zahlen) + SendUnicodeChar(0x221A, "radical") ; Wurzel return -neo_b: +neo_l: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02))) - OutputChar12("b","B","b","B") + if (Ebene12 and !(CheckDeadUni12("a1",0x013A,0x0139) + or CheckDeadUni12("a3",0x013C,0x013B) + or CheckDeadUni12("c2",0x013E,0x013D) + or CheckDeadUni12("c4",0x0140,0x013F) + or CheckDeadUni12("c6",0x1E37,0x1E36) + or CheckDeadUni12("t4",0x0142,0x0141))) + OutputChar12("l","L","l","L") else if (Ebene = 3) - if isMod2Locked - OutputChar("{Shift Up}{+}", "plus") - else OutputChar("{blind}{+}", "plus") + OutputChar("[", "bracketleft") else if (Ebene = 4) - OutputChar(":", "colon") + OutputChar("{Up}", "Up") else if (Ebene = 5) - SendUnicodeChar(0x03B2, "Greek_beta") ; beta + SendUnicodeChar(0x03BB, "Greek_lambda") ; lambda else if (Ebene = 6) - SendUnicodeChar(0x21D2, "implies") ; Doppel-Pfeil rechts + SendUnicodeChar(0x039B, "Greek_LAMBDA") ; Lambda return neo_m: @@ -767,456 +242,293 @@ neo_m: SendUnicodeChar(0x21D4, "ifonlyif") ; doppelter Doppelpfeil (genau dann wenn) return -neo_komma: - noCaps = 1 - EbeneAktualisieren() - if (Ebene = 1) - OutputChar(",", "comma") - else if (Ebene = 2) - SendUnicodeChar(0x22EE, "U22EE") ; vertikale Ellipse - else if (Ebene = 3) - OutputChar(Chr(34), "quotedbl") - else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B2) - or CheckDeadUni("c5",0x2082))) - OutputChar("{Numpad2}", "KP_2") - else if (Ebene = 5) - SendUnicodeChar(0x03C1, "Greek_rho") ; rho - else if (Ebene = 6) - SendUnicodeChar(0x21D0, "U21D0") ; Doppelpfeil links -return - -neo_punkt: - noCaps = 1 - EbeneAktualisieren() - if (Ebene = 1) - OutputChar(".", "period") - else if (Ebene = 2) - SendUnicodeChar("0x2026", "ellipsis") ; Ellipse - else if (Ebene = 3) - OutputChar("'", "apostrophe") - else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B3) - or CheckDeadUni("t4",0x2083))) - OutputChar("{Numpad3}", "KP_3") - else if (Ebene = 5) - SendUnicodeChar(0x03D1, "U03D1") ; theta symbol (vartheta) - else if (Ebene = 6) - SendUnicodeChar(0x0398, "Greek_THETA") ; Theta -return - - -neo_j: +neo_n: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni12("c1",0x0135,0x0134) - or CheckDeadUni("c2",0x01F0))) - OutputChar12("j","J","j","J") + if (Ebene12 and !(CheckDeadUni12("a1",0x0144,0x0143) + or CheckDeadUni12("a3",0x0146,0x0145) + or CheckDeadUni12("a4",0x1E45,0x1E44) + or CheckDeadUni12("c2",0x0148,0x0147) + or CheckDeadUni12("t1",0x00F1,0x00D1))) + OutputChar12("n","N","n","N") else if (Ebene = 3) - OutputChar("`;", "semicolon") - else if (Ebene = 4) - OutputChar("`;", "semicolon") + OutputChar("(", "parenleft") + else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2074) + or CheckDeadUni("t4",0x2084))) + OutputChar("{Numpad4}", "KP_4") else if (Ebene = 5) - SendUnicodeChar(0x03B8, "Greek_theta") ; theta + SendUnicodeChar(0x03BD, "Greek_nu") ; nu else if (Ebene = 6) - SendUnicodeChar(0x2261, "identical") ; identisch + SendUnicodeChar(0x2115, "U2115") ; N (natürliche Zahlen) return -/* - - Numpad - -*/ - -neo_NumLock: +neo_o: EbeneAktualisieren() - if Ebene12 - OutputChar("{Tab}", "Tab") + if (Ebene12 and !(CheckDeadUni12("a1",0x00F3,0x00D3) + or CheckDeadUni12("a2",0x00F2,0x00D2) + or CheckDeadUni12("a5",0x01EB,0x01EA) + or CheckDeadUni12("c1",0x00F4,0x00D4) + or CheckDeadUni12("c2",0x01D2,0x01D1) + or CheckDeadUni12("c3",0x014F,0x014E) + or CheckDeadUni12("t1",0x00F5,0x00D5) + or CheckDeadUni12("t2",0x014D,0x014C) + or CheckDeadAsc12("t3","ö","Ö") + or CheckDeadUni12("t4",0x00F8,0x00D8) + or CheckDeadUni12("t5",0x0151,0x0150))) + OutputChar12("o","O","o","O") else if (Ebene = 3) - OutputChar("`=", "equal") + OutputChar("*", "asterisk") else if (Ebene = 4) - SendUnicodeChar(0x2260, "notequal") ; Ungleich zu + OutputChar("{End}", "End") else if (Ebene = 5) - SendUnicodeChar(0x2248, "approxeq") ; Fast gleich + SendUnicodeChar(0x03BF, "Greek_omicron") ; omicron else if (Ebene = 6) - SendUnicodeChar(0x2261, "identical") + SendUnicodeChar(0x2208, "elementof") ; element of return -neo_NumpadDiv: +neo_p: EbeneAktualisieren() - if Ebene12 - OutputChar("{NumpadDiv}", "KP_Divide") - else if (Ebene = 3) - OutputChar("÷", "division") + if (Ebene12 and !(CheckDeadUni12("a4",0x1E57,0x1E56))) + OutputChar12("p","P","p","P") + else if ((Ebene = 3) and !(CheckDeadUni("t1",0x2248))) + OutputChar("~", "asciitilde") else if (Ebene = 4) - SendUnicodeChar(0x2300, "U2300") ; diameter + OutputChar("{Enter}", "Return") else if (Ebene = 5) - SendUnicodeChar(0x2223, "U2223") ; divides + SendUnicodeChar(0x03C0, "Greek_pi") ; pi else if (Ebene = 6) - SendUnicodeChar(0x2044, "U2044") ; fraction slash + SendUnicodeChar(0x03A0, "Greek_PI") ; Pi return -neo_NumpadMult: +neo_q: EbeneAktualisieren() - if Ebene12 - send {blind}{NumpadMult} + if (Ebene12) + OutputChar12("q","Q","q","Q") else if (Ebene = 3) - SendUnicodeChar(0x22C5, "U22C5") ; multiplication dot - else if (Ebene = 4) - SendUnicodeChar(0x2299, "U2299") ; circled dot + OutputChar("{&}", "ampersand") + else if ((Ebene = 4) and !(CheckDeadUni("c1",0x207A) + or CheckDeadUni("c5",0x208A))) + OutputChar("{NumPadAdd}", "plus") ; !!! else if (Ebene = 5) - OutputChar("×", "multiply") + SendUnicodeChar(0x03D5, "U03D5") ; phi symbol (varphi) else if (Ebene = 6) - SendUnicodeChar(0x2297, "U2297") ; circled times + SendUnicodeChar(0x211A, "U211A") ; Q (rationale Zahlen) return -neo_NumpadSub: +neo_r: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni("c1",0x207B) - or CheckDeadUni("t4",0x208B))) - send {blind}{NumpadSub} + if (Ebene12 and !(CheckDeadUni12("a1",0x0155,0x0154) + or CheckDeadUni12("a3",0x0157,0x0156) + or CheckDeadUni12("a4",0x0E59,0x0E58) + or CheckDeadUni12("c2",0x0159,0x0158) + or CheckDeadUni12("t3",0x1E5B,0x1E5A))) + OutputChar12("r","R","r","R") else if (Ebene = 3) - SendUnicodeChar(0x2212, "U2212") ; Echtes Minus - else if (Ebene = 4) - SendUnicodeChar(0x2296, "U2296") ; circled minus + OutputChar(")", "parenright") + else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2075) + or CheckDeadUni("t4",0x2085))) + OutputChar("{Numpad5}", "KP_5") else if (Ebene = 5) - SendUnicodeChar(0x2216, "U2216") ; set minus + SendUnicodeChar(0x03F1, "U03F1") ; rho symbol (varrho) else if (Ebene = 6) - SendUnicodeChar(0x2238, "U2238") ; dot minus + SendUnicodeChar(0x211D, "U221D") ; R (reelle Zahlen) return -neo_NumpadAdd: +neo_s: EbeneAktualisieren() - if (Ebene12 and !(CheckDeadUni("c1",0x207A) - or CheckDeadUni("c5",0x208A))) - send {blind}{NumpadAdd} - else if (Ebene = 3) - OutputChar("±", "plusminus") - else if (Ebene = 4) - SendUnicodeChar(0x2295, "U2295") ; circled plus + if (Ebene12 and !(CheckDeadUni12("a1",0x015B,0x015A) + or CheckDeadUni12("a3",0x015F,0x015E) + or CheckDeadUni12("a4",0x1E61,0x1E60) + or CheckDeadUni12("c1",0x015D,0x015C) + or CheckDeadUni12("c2",0x0161,0x0160) + or CheckDeadUni12("c6",0x1E63,0x1A62))) { + if LangSTastatur and (Ebene = 1) + SendUnicodeChar(0x017F, "17F") ; langes s + else OutputChar12("s","S","s","S") + } else if (Ebene = 3) + OutputChar("?", "question") + else if Ebene7 { + if LangSTastatur + OutputChar("s", "s") + else SendUnicodeChar(0x017F, "17F") + } else if (Ebene = 4) + OutputChar("¿", "questiondown") else if (Ebene = 5) - SendUnicodeChar(0x2213, "U2213") ; minus-plus + SendUnicodeChar(0x03C3, "Greek_sigma") ;sigma else if (Ebene = 6) - SendUnicodeChar(0x2214, "U2214") ; dot plus -return - -neo_NumpadEnter: - send {blind}{NumpadEnter} + SendUnicodeChar(0x03A3, "Greek_SIGMA") ;Sigma return -neo_Numpad7: +neo_t: EbeneAktualisieren() - if (Ebene = 1) - OutputChar("{Numpad7}", "KP_7") - else if (Ebene = 2) - SendUnicodeChar(0x2714, "U2714") ; check mark + if (Ebene12 and !(CheckDeadUni12("a3",0x0163,0x0162) + or CheckDeadUni12("a4",0x1E6B,0x1E6A) + or CheckDeadUni12("c2",0x0165,0x0164) + or CheckDeadUni12("c5",0x0167,0x0166) + or CheckDeadUni12("t4",0x1E6D,0x1E6C) + or CheckDeadUni("t3",0x1E97))) + OutputChar12("t","T","t","T") else if (Ebene = 3) - SendUnicodeChar(0x2195, "U2195") ; Hoch-Runter-Pfeil - else if (Ebene = 4) - send {blind}{NumpadHome} + OutputChar("-", "minus") ; Bisstrich + else if (Ebene = 4) and !(CheckDeadUni("c1",0x2076) + or CheckDeadUni("c5",0x2086)) + OutputChar("{Numpad6}", "KP_6") else if (Ebene = 5) - SendUnicodeChar(0x230A, "downstile") ;linke Untergrenze + SendUnicodeChar(0x03C4, "Greek_tau") ; tau else if (Ebene = 6) - SendUnicodeChar(0x2308, "upstile") ; linke Obergrenze + SendUnicodeChar(0x2202, "partialderivative") ; partielle Ableitung return -neo_Numpad8: +neo_u: EbeneAktualisieren() - if (Ebene = 1) - OutputChar("{Numpad8}", "KP_8") - else if (Ebene = 2) - SendUnicodeChar(0x2718, "U2718") ; ballot x + if (Ebene12 and !(CheckDeadUni12("a1",0x00FA,0x00DA) + or CheckDeadUni12("a2",0x00F9,0x00D9) + or CheckDeadUni12("a5",0x0173,0x0172) + or CheckDeadUni12("a6",0x016F,0x016E) + or CheckDeadUni12("c1",0x00FB,0x00DB) + or CheckDeadUni12("c2",0x01D4,0x01D3) + or CheckDeadUni12("c3",0x016D,0x016C) + or CheckDeadUni12("t1",0x0169,0x0168) + or CheckDeadUni12("t2",0x016B,0x016A) + or CheckDeadAsc12("t3","ü","Ü") + or CheckDeadUni12("t5",0x0171,0x0170))) + OutputChar12("u","U","u","U") else if (Ebene = 3) - SendUnicodeChar(0x2191, "uparrow") ; Hochpfeil + OutputChar("\", "backslash") else if (Ebene = 4) - send {blind}{NumpadUp} - else if (Ebene = 5) - SendUnicodeChar(0x2229, "intersection") ; Durchschnitt + OutputChar("{Home}", "Home") else if (Ebene = 6) - SendUnicodeChar(0x22C2, "U22C2") ; n-ary intersection + SendUnicodeChar(0x222E, "U222E") ; contour integral return -neo_Numpad9: +neo_v: EbeneAktualisieren() - if (Ebene = 1) - OutputChar("{Numpad9}", "KP_9") - else if (Ebene = 2) - SendUnicodeChar(0x2020, "dagger") ; Kreuz + if (Ebene12 and !(CheckDeadUni12("c6",0x1E7F,0x1E7E))) + OutputChar12("v","V","v","V") else if (Ebene = 3) - SendUnicodeChar(0x20D7, "U20D7") ; Vektor - else if (Ebene = 4) - send {blind}{NumpadPgUp} - else if (Ebene = 5) - SendUnicodeChar(0x230B, "U230B") ; rechte Untergrenze + OutputChar("_","underscore") + else if (Ebene = 4) and (!lernModus or lernModus_neo_Backspace) + OutputChar("{Backspace}", "BackSpace") else if (Ebene = 6) - SendUnicodeChar(0x2309, "U2309") ; rechte Obergrenze + SendUnicodeChar(0x2259, "U2259") ; estimates/entspricht return -neo_Numpad4: +neo_w: EbeneAktualisieren() - if (Ebene = 1) - OutputChar("{Numpad4}", "KP_4") - else if (Ebene = 2) - SendUnicodeChar(0x2663, "club") ; schwarzes Kreuz + if (Ebene12 and !(CheckDeadUni12("c1",0x0175,0x0174))) + OutputChar12("w","W","w","W") else if (Ebene = 3) - SendUnicodeChar(0x2190, "leftarrow") ; Linkspfeil + SendUnicodeChar(0x005E, "asciicircum") ; Zirkumflex else if (Ebene = 4) - send {blind}{NumpadLeft} + OutputChar("{Insert}", "Insert") ; Einfg else if (Ebene = 5) - SendUnicodeChar(0x2282, "includein") ; Teilmenge + SendUnicodeChar(0x03C9, "Greek_omega") ; omega else if (Ebene = 6) - SendUnicodeChar(0x2286, "U2286") ; Teilmenge-gleich + SendUnicodeChar(0x03A9, "Greek_OMEGA") ; Omega return -neo_Numpad5: +neo_x: EbeneAktualisieren() - if (Ebene = 1) - OutputChar("{Numpad5}", "KP_5") - else if (Ebene = 2) - SendUnicodeChar(0x20AC, "EuroSign") ; Euro + if Ebene12 + OutputChar12("x","X","x","X") else if (Ebene = 3) - SendUnicodeChar(0x221E, "infinity") ; Unendlich + SendUnicodeChar(0x2026, "ellipsis") ; Ellipse horizontal else if (Ebene = 4) - send {blind}{NumPadClear} ; begin + SendUnicodeChar(0x22EE, "U22EE") ; Ellipse vertikal else if (Ebene = 5) - SendUnicodeChar(0x22B6, "U22B6") ; original of + SendUnicodeChar(0x03BE, "Greek_xi") ; xi else if (Ebene = 6) - SendUnicodeChar(0x22B7, "U22B7") ; image of + SendUnicodeChar(0x039E, "Greek_XI") ; Xi return -neo_Numpad6: +neo_y: EbeneAktualisieren() - if (Ebene = 1) - OutputChar("{Numpad6}", "KP_6") - if (Ebene = 2) - OutputChar("¦", "brokenbar") + if (Ebene12 and !(CheckDeadUni12("a1",0x00FD,0x00DD) + or CheckDeadUni12("c1",0x0177,0x0176) + or CheckDeadAsc12("t3","ÿ","Ÿ"))) + OutputChar12("y","Y","y","Y") else if (Ebene = 3) - SendUnicodeChar(0x2192, "rightarrow") ; Rechtspfeil + OutputChar("@", "at") else if (Ebene = 4) - send {blind}{NumpadRight} + OutputChar(".", "period") else if (Ebene = 5) - SendUnicodeChar(0x2283, "includes") ; Obermenge + SendUnicodeChar(0x03C5, "Greek_upsilon") ; upsilon else if (Ebene = 6) - SendUnicodeChar(0x2287, "U2287") ; Obermenge-gleich + SendUnicodeChar(0x2207, "nabla") ; nabla return -neo_Numpad1: +neo_z: EbeneAktualisieren() - if (Ebene = 1) - OutputChar("{Numpad1}", "KP_1") - else if (Ebene = 2) - SendUnicodeChar(0x2666, "diamond") ; Karo + if (Ebene12 and !(CheckDeadUni12("a1",0x017A,0x0179) + or CheckDeadUni12("a4",0x017C,0x017B) + or CheckDeadUni12("c2",0x017E,0x017D) + or CheckDeadUni12("c6",0x1E93,0x1E92))) + OutputChar12("z","Z","z","Z") else if (Ebene = 3) - SendUnicodeChar(0x2194, "U2194") ; Links-Rechts-Pfeil - else if (Ebene = 4) - send {blind}{NumpadEnd} + OutputChar("``{space}", "grave") ; untot else if (Ebene = 5) - SendUnicodeChar(0x226A, "U226A") ; much less + SendUnicodeChar(0x03B6, "Greek_zeta") ; zeta else if (Ebene = 6) - SendUnicodeChar(0x2264, "lessthanequal") + SendUnicodeChar(0x2124, "U2124") ; Z (ganze Zahlen) return -neo_Numpad2: +neo_ä: EbeneAktualisieren() - if (Ebene = 1) - OutputChar("{Numpad2}", "KP_2") - else if (Ebene = 2) - SendUnicodeChar(0x2265, "heart") + if (Ebene12 and !(CheckDeadUni12("t2",0x01DF,0x01DE))) + OutputChar12("ä","Ä","adiaeresis","Adiaeresis") else if (Ebene = 3) - SendUnicodeChar(0x2192, "downarrow") + OutputChar("|", "bar") else if (Ebene = 4) - send {blind}{NumpadDown} + OutputChar("{PgDn}", "Next") else if (Ebene = 5) - SendUnicodeChar(0x222A, "union") ; Vereinigung + SendUnicodeChar(0x03B7, "Greek_eta") ; eta else if (Ebene = 6) - SendUnicodeChar(0x22C3, "U22C3") ; n-ary union + SendUnicodeChar(0x211C, "U221C") ; Fraktur R return -neo_Numpad3: +neo_ö: EbeneAktualisieren() - if (Ebene = 1) - OutputChar("{Numpad3}", "KP_3") - else if (Ebene = 2) - SendUnicodeChar(0x2660, "U2660") ; Pik + if (Ebene12 and !(CheckDeadUni12("t2",0x022B,0x022A))) + OutputChar12("ö","Ö","odiaeresis","Odiaeresis") else if (Ebene = 3) - SendUnicodeChar(0x21CC, "U21CC") ; Harpune + OutputChar("$", "dollar") else if (Ebene = 4) - send {blind}{NumpadPgDn} - else if (Ebene = 5) - SendUnicodeChar(0x226B, "U226B") ; much greater + OutputChar("{Tab}", "Tab") else if (Ebene = 6) - SendUnicodeChar(0x2265, "greaterthanequal") + SendUnicodeChar(0x2111, "U2221") ; Fraktur I return -neo_Numpad0: +neo_ü: EbeneAktualisieren() - if (Ebene = 1) - OutputChar("{Numpad0}", "KP_0") - else if (Ebene = 2) - SendUnicodeChar(0x2423, "U2423") ; space sign + if (Ebene12 and !(CheckDeadUni12("a1",0x01D8,0x01D7) + or CheckDeadUni12("a2",0x01DC,0x01DB) + or CheckDeadUni12("c2",0x01DA,0x01D9) + or CheckDeadUni12("t2",0x01D6,0x01D5))) + OutputChar12("ü","Ü","udiaeresis","Udiaeresis") else if (Ebene = 3) - SendUnicodeChar(0x0025, "percent") ; Prozent + if isMod2Locked + OutputChar("{Shift Up}{#}", "numbersign") + else OutputChar("{blind}{#}", "numbersign") else if (Ebene = 4) - send {blind}{NumpadIns} - else if (Ebene = 5) - SendUnicodeChar(0x2030, "U2030") ; Promille + OutputChar("{Esc}", "Escape") else if (Ebene = 6) - SendUnicodeChar(0x25A1, "U25A1") ; white square + SendUnicodeChar(0x221D, "variation") ; proportional return -neo_NumpadDot: +neo_sz: EbeneAktualisieren() if (Ebene = 1) - send {blind}{NumpadDot} + if LangSTastatur + OutputChar("s", "s") + else OutputChar("ß", "ssharp") else if (Ebene = 2) - send {blind}. + SendUnicodeChar(0x1E9E, "U1E9E") ; versal-ß else if (Ebene = 3) - send `, - else if (Ebene = 4) - send {blind}{NumpadDel} - else if (Ebene = 5) - SendUnicodeChar(0x2032, "minutes") - else if (Ebene = 6) - SendUnicodeChar(0x2033, "seconds") -return - -/* - - Sondertasten - -*/ - -*space:: - if einHandNeo - spacepressed := 1 - else goto neo_SpaceUp -return - -*space up:: - if einHandNeo - if keypressed { - keypressed := 0 - spacepressed := 0 - } else goto neo_SpaceUp - return - -neo_SpaceUp: - EbeneAktualisieren() - if (Ebene = 1) and !CheckDeadUni("t4",0x2010) ; Echter Bindestrich - OutputChar("{Space}", "Space") - else if (Ebene = 2) or (Ebene = 3) - Send {blind}{Space} - else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2070) - or CheckDeadUni("c5",0x2080))) - OutputChar("{Numpad0}", "KP_0") + if LangSTastatur + OutputChar("ß", "ssharp") + else SendUnicodeChar(0x017F, "17F") ; langes s else if (Ebene = 5) - SendUnicodeChar(0x00A0, "U00A0") ; geschütztes Leerzeichen + SendUnicodeChar(0x03C2, "Greek_finalsmallsigma") ; varsigma else if (Ebene = 6) - SendUnicodeChar(0x202F, "U202F") ; schmales geschütztes Leerzeichen - DeadKey := "" - CompKey := "" - spacepressed := 0 - keypressed := 0 -return - -/* - Folgende Tasten sind nur aufgeführt, um DeadKey zu leeren. - Irgendwie sieht das noch nicht schön aus. Vielleicht lässt sich dieses - Problem auch eleganter lösen... -*/ - -*Enter:: - EbeneAktualisieren() - if !lernModus or lernModus_std_Return { - if (Ebene = 4) - send {blind}{NumpadEnter} - else send {blind}{Enter} - DeadKey := "" - CompKey := "" - } return - -*Backspace:: - if !lernModus or lernModus_std_Backspace { - send {Blind}{Backspace} - DeadKey := "" - CompKey := "" - } return - -*Del:: - if !lernModus or lernModus_std_Entf - send {Blind}{Del} -return - -*Ins:: - if !lernModus or lernModus_std_Einf - send {Blind}{Ins} + SendUnicodeChar(0x2218, "jot") ; Verknüpfungsoperator return -/* -Auf Mod3+Tab liegt Compose. -*/ - -neo_tab: - if (IsMod3Pressed()) { - DeadKey := "comp" - CompKey := "" - } else { - OutputChar("{Tab}","Tab") - DeadKey := "" - CompKey := "" - } return - -*Home:: - if !lernModus or lernModus_std_Pos1 { - send {Blind}{Home} - DeadKey := "" - CompKey := "" - } return - -*End:: - if !lernModus or lernModus_std_Ende { - send {Blind}{End} - DeadKey := "" - CompKey := "" - } return - -*PgUp:: - if !lernModus or lernModus_std_PgUp { - send {Blind}{PgUp} - DeadKey := "" - CompKey := "" - } return - -*PgDn:: - if !lernModus or lernModus_std_PgDn { - send {Blind}{PgDn} - DeadKey := "" - CompKey := "" - } return - -*Up:: - if !lernModus or lernModus_std_Hoch { - send {Blind}{Up} - DeadKey := "" - CompKey := "" - } return - -*Down:: - if !lernModus or lernModus_std_Runter { - send {Blind}{Down} - DeadKey := "" - CompKey := "" - } return - -*Left:: - if !lernModus or lernModus_std_Links { - send {Blind}{Left} - DeadKey := "" - CompKey := "" - } return - -*Right:: - if !lernModus or lernModus_std_Rechts { - send {Blind}{Right} - DeadKey := "" - CompKey := "" - } return - - diff --git a/windows/autohotkey/Source/Keys-NumPad.ahk b/windows/autohotkey/Source/Keys-NumPad.ahk new file mode 100644 index 0000000..a9fdaef --- /dev/null +++ b/windows/autohotkey/Source/Keys-NumPad.ahk @@ -0,0 +1,252 @@ +neo_Numpad0: + EbeneAktualisieren() + if (Ebene = 1) + OutputChar("{Numpad0}", "KP_0") + else if (Ebene = 2) + SendUnicodeChar(0x2423, "U2423") ; space sign + else if (Ebene = 3) + SendUnicodeChar(0x0025, "percent") ; Prozent + else if (Ebene = 4) + send {blind}{NumpadIns} + else if (Ebene = 5) + SendUnicodeChar(0x2030, "U2030") ; Promille + else if (Ebene = 6) + SendUnicodeChar(0x25A1, "U25A1") ; white square +return + +neo_Numpad1: + EbeneAktualisieren() + if (Ebene = 1) + OutputChar("{Numpad1}", "KP_1") + else if (Ebene = 2) + SendUnicodeChar(0x2666, "diamond") ; Karo + else if (Ebene = 3) + SendUnicodeChar(0x2194, "U2194") ; Links-Rechts-Pfeil + else if (Ebene = 4) + send {blind}{NumpadEnd} + else if (Ebene = 5) + SendUnicodeChar(0x226A, "U226A") ; much less + else if (Ebene = 6) + SendUnicodeChar(0x2264, "lessthanequal") +return + +neo_Numpad2: + EbeneAktualisieren() + if (Ebene = 1) + OutputChar("{Numpad2}", "KP_2") + else if (Ebene = 2) + SendUnicodeChar(0x2265, "heart") + else if (Ebene = 3) + SendUnicodeChar(0x2192, "downarrow") + else if (Ebene = 4) + send {blind}{NumpadDown} + else if (Ebene = 5) + SendUnicodeChar(0x222A, "union") ; Vereinigung + else if (Ebene = 6) + SendUnicodeChar(0x22C3, "U22C3") ; n-ary union +return + +neo_Numpad3: + EbeneAktualisieren() + if (Ebene = 1) + OutputChar("{Numpad3}", "KP_3") + else if (Ebene = 2) + SendUnicodeChar(0x2660, "U2660") ; Pik + else if (Ebene = 3) + SendUnicodeChar(0x21CC, "U21CC") ; Harpune + else if (Ebene = 4) + send {blind}{NumpadPgDn} + else if (Ebene = 5) + SendUnicodeChar(0x226B, "U226B") ; much greater + else if (Ebene = 6) + SendUnicodeChar(0x2265, "greaterthanequal") +return + +neo_Numpad4: + EbeneAktualisieren() + if (Ebene = 1) + OutputChar("{Numpad4}", "KP_4") + else if (Ebene = 2) + SendUnicodeChar(0x2663, "club") ; schwarzes Kreuz + else if (Ebene = 3) + SendUnicodeChar(0x2190, "leftarrow") ; Linkspfeil + else if (Ebene = 4) + send {blind}{NumpadLeft} + else if (Ebene = 5) + SendUnicodeChar(0x2282, "includein") ; Teilmenge + else if (Ebene = 6) + SendUnicodeChar(0x2286, "U2286") ; Teilmenge-gleich +return + +neo_Numpad5: + EbeneAktualisieren() + if (Ebene = 1) + OutputChar("{Numpad5}", "KP_5") + else if (Ebene = 2) + SendUnicodeChar(0x20AC, "EuroSign") ; Euro + else if (Ebene = 3) + SendUnicodeChar(0x221E, "infinity") ; Unendlich + else if (Ebene = 4) + send {blind}{NumPadClear} ; begin + else if (Ebene = 5) + SendUnicodeChar(0x22B6, "U22B6") ; original of + else if (Ebene = 6) + SendUnicodeChar(0x22B7, "U22B7") ; image of +return + +neo_Numpad6: + EbeneAktualisieren() + if (Ebene = 1) + OutputChar("{Numpad6}", "KP_6") + if (Ebene = 2) + OutputChar("¦", "brokenbar") + else if (Ebene = 3) + SendUnicodeChar(0x2192, "rightarrow") ; Rechtspfeil + else if (Ebene = 4) + send {blind}{NumpadRight} + else if (Ebene = 5) + SendUnicodeChar(0x2283, "includes") ; Obermenge + else if (Ebene = 6) + SendUnicodeChar(0x2287, "U2287") ; Obermenge-gleich +return + +neo_Numpad7: + EbeneAktualisieren() + if (Ebene = 1) + OutputChar("{Numpad7}", "KP_7") + else if (Ebene = 2) + SendUnicodeChar(0x2714, "U2714") ; check mark + else if (Ebene = 3) + SendUnicodeChar(0x2195, "U2195") ; Hoch-Runter-Pfeil + else if (Ebene = 4) + send {blind}{NumpadHome} + else if (Ebene = 5) + SendUnicodeChar(0x230A, "downstile") ;linke Untergrenze + else if (Ebene = 6) + SendUnicodeChar(0x2308, "upstile") ; linke Obergrenze +return + +neo_Numpad8: + EbeneAktualisieren() + if (Ebene = 1) + OutputChar("{Numpad8}", "KP_8") + else if (Ebene = 2) + SendUnicodeChar(0x2718, "U2718") ; ballot x + else if (Ebene = 3) + SendUnicodeChar(0x2191, "uparrow") ; Hochpfeil + else if (Ebene = 4) + send {blind}{NumpadUp} + else if (Ebene = 5) + SendUnicodeChar(0x2229, "intersection") ; Durchschnitt + else if (Ebene = 6) + SendUnicodeChar(0x22C2, "U22C2") ; n-ary intersection +return + +neo_Numpad9: + EbeneAktualisieren() + if (Ebene = 1) + OutputChar("{Numpad9}", "KP_9") + else if (Ebene = 2) + SendUnicodeChar(0x2020, "dagger") ; Kreuz + else if (Ebene = 3) + SendUnicodeChar(0x20D7, "U20D7") ; Vektor + else if (Ebene = 4) + send {blind}{NumpadPgUp} + else if (Ebene = 5) + SendUnicodeChar(0x230B, "U230B") ; rechte Untergrenze + else if (Ebene = 6) + SendUnicodeChar(0x2309, "U2309") ; rechte Obergrenze +return + +neo_NumLock: + EbeneAktualisieren() + if Ebene12 + OutputChar("{Tab}", "Tab") + else if (Ebene = 3) + OutputChar("`=", "equal") + else if (Ebene = 4) + SendUnicodeChar(0x2260, "notequal") ; Ungleich zu + else if (Ebene = 5) + SendUnicodeChar(0x2248, "approxeq") ; Fast gleich + else if (Ebene = 6) + SendUnicodeChar(0x2261, "identical") +return + +neo_NumpadDiv: + EbeneAktualisieren() + if Ebene12 + OutputChar("{NumpadDiv}", "KP_Divide") + else if (Ebene = 3) + OutputChar("÷", "division") + else if (Ebene = 4) + SendUnicodeChar(0x2300, "U2300") ; diameter + else if (Ebene = 5) + SendUnicodeChar(0x2223, "U2223") ; divides + else if (Ebene = 6) + SendUnicodeChar(0x2044, "U2044") ; fraction slash +return + +neo_NumpadMult: + EbeneAktualisieren() + if Ebene12 + send {blind}{NumpadMult} + else if (Ebene = 3) + SendUnicodeChar(0x22C5, "U22C5") ; multiplication dot + else if (Ebene = 4) + SendUnicodeChar(0x2299, "U2299") ; circled dot + else if (Ebene = 5) + OutputChar("×", "multiply") + else if (Ebene = 6) + SendUnicodeChar(0x2297, "U2297") ; circled times +return + +neo_NumpadSub: + EbeneAktualisieren() + if (Ebene12 and !(CheckDeadUni("c1",0x207B) + or CheckDeadUni("t4",0x208B))) + send {blind}{NumpadSub} + else if (Ebene = 3) + SendUnicodeChar(0x2212, "U2212") ; Echtes Minus + else if (Ebene = 4) + SendUnicodeChar(0x2296, "U2296") ; circled minus + else if (Ebene = 5) + SendUnicodeChar(0x2216, "U2216") ; set minus + else if (Ebene = 6) + SendUnicodeChar(0x2238, "U2238") ; dot minus +return + +neo_NumpadAdd: + EbeneAktualisieren() + if (Ebene12 and !(CheckDeadUni("c1",0x207A) + or CheckDeadUni("c5",0x208A))) + send {blind}{NumpadAdd} + else if (Ebene = 3) + OutputChar("±", "plusminus") + else if (Ebene = 4) + SendUnicodeChar(0x2295, "U2295") ; circled plus + else if (Ebene = 5) + SendUnicodeChar(0x2213, "U2213") ; minus-plus + else if (Ebene = 6) + SendUnicodeChar(0x2214, "U2214") ; dot plus +return + +neo_NumpadEnter: + send {blind}{NumpadEnter} +return + +neo_NumpadDot: + EbeneAktualisieren() + if (Ebene = 1) + send {blind}{NumpadDot} + else if (Ebene = 2) + send {blind}. + else if (Ebene = 3) + send `, + else if (Ebene = 4) + send {blind}{NumpadDel} + else if (Ebene = 5) + SendUnicodeChar(0x2032, "minutes") + else if (Ebene = 6) + SendUnicodeChar(0x2033, "seconds") +return + diff --git a/windows/autohotkey/Source/Keys-Numbers.ahk b/windows/autohotkey/Source/Keys-Numbers.ahk new file mode 100644 index 0000000..26f70f6 --- /dev/null +++ b/windows/autohotkey/Source/Keys-Numbers.ahk @@ -0,0 +1,164 @@ +neo_0: + noCaps = 1 + EbeneAktualisieren() + if Ebene12 and !(CheckDeadUni("c1",0x2070) ; Hochgestellte 0 + or CheckDeadUni("c5",0x2080)) ; Tiefgestellte 0 + OutputChar12(0,"”",0,"rightdoublequotemark") + else if (Ebene = 3) + OutputChar("’", "rightsingleqoutemark") + else if (Ebene = 4) + OutputChar("{NumpadSub}", "minus") ; s. Mail vom Sun, 14 Sep 2008 00:33:47 +0200 + else if (Ebene = 6) + SendUnicodeChar(0x2205, "emptyset") ; leere Menge +return + +neo_1: + noCaps=1 + EbeneAktualisieren() + if Ebene12 and !(CheckDeadUni("c1",0x00B9) ; Hochgestellte 1 + or CheckDeadUni("c5",0x2081)) ; Tiefgestellte 1 + OutputChar12(1,"°",1,"degree") + else if (Ebene = 3) + SendUnicodeChar(0x00B9, "onesuperior") ; Hochgestellte 1 + else if (Ebene = 4) + SendUnicodeChar(0x2022, "enfilledcircbullet") ; Bullet + else if (Ebene = 5) + SendUnicodeChar(0x2081, "U2081") ; Tiefgestellte 1 + else if (Ebene = 6) + SendUnicodeChar(0x00AC, "notsign") ; Nicht-Symbol +return + +neo_2: + noCaps = 1 + EbeneAktualisieren() + if (Ebene = 1 and !(CheckDeadUni("c1",0x00B2) ; Hochgestellte 2 + or CheckDeadUni("c5",0x2082))) ; Tiefgestellte 2 + OutputChar(2,2) + else if (Ebene = 2) + SendUnicodeChar(0x2116, "numerosign") ; Numero + else if (Ebene = 3) + SendUnicodeChar(0x00B2, "twosuperior") ; Hochgestellte 2 + else if (Ebene = 4) + SendUnicodeChar(0x2023, "U2023") ; Aufzählungspfeil + else if (Ebene = 5) + SendUnicodeChar(0x2082, "U2082") ; Tiefgestellte 2 + else if (Ebene = 6) + SendUnicodeChar(0x2228, "logicalor") ; Logisches Oder +return + +neo_3: + noCaps = 1 + EbeneAktualisieren() + if Ebene12 and !(CheckDeadUni("c1",0x00B3) ; Hochgestellte 3 + or CheckDeadUni("c5",0x2083)) ; Tiefgestellte 3 + OutputChar12(3,"§",3,"section") + else if (Ebene = 3) + SendUnicodeChar(0x00B3, "threesuperior") ; Hochgestellte 3 + else if (Ebene = 4) + SendUnicodeChar(0x266B, "U226B") ; 2 Achtelnoten + else if (Ebene = 5) + SendUnicodeChar(0x2083, "U2083") ; Tiefgestellte 3 + else if (Ebene = 6) + SendUnicodeChar(0x2227, "logicaland") ; Logisches Und +return + +neo_4: + noCaps = 1 + EbeneAktualisieren() + if (Ebene = 1) and !(CheckDeadUni("c1",0x2074) ; Hochgestellte 4 + or CheckDeadUni("c5",0x2084)) ; Tiefgestellte 4 + OutputChar(4,4) + else if (Ebene = 2) + SendUnicodeChar(0x00BB, "guillemotright") ; Double guillemot right + else if (Ebene = 3) + OutputChar("›", "U230A") ; Single guillemot right + else if (Ebene = 4) + OutputChar("{PgUp}", "Prior") ; Bild auf + else if (Ebene = 5) + SendUnicodeChar(0x2113, "U2213") ; Script small L + else if (Ebene = 6) + SendUnicodeChar(0x22A5, "uptack") ; Senkrecht +return + +neo_5: + noCaps = 1 + EbeneAktualisieren() + if (Ebene = 1) and !(CheckDeadUni("c1",0x2075) ; Hochgestellte 5 + or CheckDeadUni("c5",0x2085)) ; Tiefgestellte 5 + OutputChar(5,5) + else if (Ebene = 2) + SendUnicodeChar(0x00AB, "guillemotleft") ; Double guillemot left + else if (Ebene = 3) + OutputChar("‹", "U2039") ; Single guillemot left + else if (Ebene = 5) + SendUnicodeChar(0x0AF8, "femalesymbol") ; Kreuz (Dagger) + else if (Ebene = 6) + SendUnicodeChar(0x2221, "U2221") ; Winkel +return + +neo_6: + noCaps = 1 + EbeneAktualisieren() + if (Ebene = 1) and !(CheckDeadUni("c1",0x2076) ; Hochgestellte 6 + or CheckDeadUni("c5",0x2086)) ; Tiefgestellte 6 + OutputChar(6,6) + else if (Ebene = 2) + SendUnicodeChar(0x20AC, "EuroSign") + else if (Ebene = 3) + OutputChar("¢", "cent") + else if (Ebene = 4) + OutputChar("£", "sterling") + else if (Ebene = 5) + SendUnicodeChar(0x0AF7, "malesymbol") + else if (Ebene = 6) + SendUnicodeChar(0x2225, "U2225") ; parallel +return + +neo_7: + noCaps = 1 + EbeneAktualisieren() + if Ebene12 and !(CheckDeadUni("c1",0x2077) ; Hochgestellte 7 + or CheckDeadUni("c5",0x2087)) ; Tiefgestellte 7 + OutputChar12(7,"$",7,"dollar") + else if (Ebene = 3) + OutputChar("¥", "yen") + else if (Ebene = 4) + OutputChar("¤", "currency") + else if (Ebene = 5) + SendUnicodeChar(0x03BA, "Greek_kappa") ; greek small letter kappa + else if (Ebene = 6) + SendUnicodeChar(0x2209, "notelementof") ; nicht Element von +return + +neo_8: + noCaps = 1 + EbeneAktualisieren() + if Ebene12 and !(CheckDeadUni("c1",0x2078) ; Hochgestellte 8 + or CheckDeadUni("c5",0x2088)) ; Tiefgestellte 8 + OutputChar12(8,"„",8,"doublelowquotemark") + else if (Ebene = 3) + OutputChar("‚", "singlelowquotemark") + else if (Ebene = 4) + OutputChar("{NumpadDiv}", "KP_Divide") + else if (Ebene = 5) + SendUnicodeChar(0x27E8, "U27E8") ; bra (öffnende spitze Klammer) + else if (Ebene = 6) + SendUnicodeChar(0x2204, "U2204") ; es existiert nicht +return + +neo_9: + noCaps = 1 + EbeneAktualisieren() + if Ebene12 and !(CheckDeadUni("c1",0x2079) ; Hochgestellte 9 + or CheckDeadUni("c5",0x2089)) ; Tiefgestellte 9 + OutputChar12(9,"“",9,"leftdoublequotemark") + else if (Ebene = 3) + OutputChar("‘", "leftsinglequotemark") + else if (Ebene = 4) + OutputChar("{NumpadMult}", "KP_Multiply") + else if (Ebene = 5) + SendUnicodeChar(0x27E9, "U27E9") ; ket (schließende spitze Klammer) + else if (Ebene = 6) + SendUnicodeChar(0x2226, "U2226") ; nicht parallel +return + diff --git a/windows/autohotkey/Source/Keys-Special.ahk b/windows/autohotkey/Source/Keys-Special.ahk new file mode 100644 index 0000000..87e8623 --- /dev/null +++ b/windows/autohotkey/Source/Keys-Special.ahk @@ -0,0 +1,177 @@ +neo_punkt: + noCaps = 1 + EbeneAktualisieren() + if (Ebene = 1) + OutputChar(".", "period") + else if (Ebene = 2) + SendUnicodeChar("0x2026", "ellipsis") ; Ellipse + else if (Ebene = 3) + OutputChar("'", "apostrophe") + else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B3) + or CheckDeadUni("t4",0x2083))) + OutputChar("{Numpad3}", "KP_3") + else if (Ebene = 5) + SendUnicodeChar(0x03D1, "U03D1") ; theta symbol (vartheta) + else if (Ebene = 6) + SendUnicodeChar(0x0398, "Greek_THETA") ; Theta +return + +neo_komma: + noCaps = 1 + EbeneAktualisieren() + if (Ebene = 1) + OutputChar(",", "comma") + else if (Ebene = 2) + SendUnicodeChar(0x22EE, "U22EE") ; vertikale Ellipse + else if (Ebene = 3) + OutputChar(Chr(34), "quotedbl") + else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B2) + or CheckDeadUni("c5",0x2082))) + OutputChar("{Numpad2}", "KP_2") + else if (Ebene = 5) + SendUnicodeChar(0x03C1, "Greek_rho") ; rho + else if (Ebene = 6) + SendUnicodeChar(0x21D0, "U21D0") ; Doppelpfeil links +return + +neo_strich: + noCaps = 1 + EbeneAktualisieren() + if (Ebene = 1) + OutputChar("-", "minus") ; Bindestrich-Minus + else if (Ebene = 2) + SendUnicodeChar(0x2013, "endash") ; Gedankenstrich + else if (Ebene = 3) + SendUnicodeChar(0x2014, "emdash") ; Englischer Gedankenstrich (Geviertstrich) + else if (Ebene = 5) + SendUnicodeChar(0x2011, "U2011") ; geschützter Bindestrich (Bindestrich ohne Zeilenumbruch) + else if (Ebene = 6) + SendUnicodeChar(0x00AD, "hyphen") ; weicher Bindestrich +return + +*space:: + if einHandNeo + spacepressed := 1 + else goto neo_SpaceUp +return + +*space up:: + if einHandNeo + if keypressed { + keypressed := 0 + spacepressed := 0 + } else goto neo_SpaceUp + return + +neo_SpaceUp: + EbeneAktualisieren() + if (Ebene = 1) and !CheckDeadUni("t4",0x2010) ; Echter Bindestrich + OutputChar("{Space}", "Space") + else if (Ebene = 2) or (Ebene = 3) + Send {blind}{Space} + else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2070) + or CheckDeadUni("c5",0x2080))) + OutputChar("{Numpad0}", "KP_0") + else if (Ebene = 5) + SendUnicodeChar(0x00A0, "U00A0") ; geschütztes Leerzeichen + else if (Ebene = 6) + SendUnicodeChar(0x202F, "U202F") ; schmales geschütztes Leerzeichen + DeadKey := "" + CompKey := "" + spacepressed := 0 + keypressed := 0 +return + +*Enter:: + EbeneAktualisieren() + if !lernModus or lernModus_std_Return { + if (Ebene = 4) + send {blind}{NumpadEnter} + else send {blind}{Enter} + DeadKey := "" + CompKey := "" + } return + +*Backspace:: + if !lernModus or lernModus_std_Backspace { + send {Blind}{Backspace} + DeadKey := "" + CompKey := "" + } return + +*Del:: + if !lernModus or lernModus_std_Entf + send {Blind}{Del} +return + +*Ins:: + if !lernModus or lernModus_std_Einf + send {Blind}{Ins} +return + +neo_tab: + if (IsMod3Pressed()) { ; Compose! + DeadKey := "comp" + CompKey := "" + } else { + OutputChar("{Tab}","Tab") + DeadKey := "" + CompKey := "" + } return + +*Home:: + if !lernModus or lernModus_std_Pos1 { + send {Blind}{Home} + DeadKey := "" + CompKey := "" + } return + +*End:: + if !lernModus or lernModus_std_Ende { + send {Blind}{End} + DeadKey := "" + CompKey := "" + } return + +*PgUp:: + if !lernModus or lernModus_std_PgUp { + send {Blind}{PgUp} + DeadKey := "" + CompKey := "" + } return + +*PgDn:: + if !lernModus or lernModus_std_PgDn { + send {Blind}{PgDn} + DeadKey := "" + CompKey := "" + } return + +*Up:: + if !lernModus or lernModus_std_Hoch { + send {Blind}{Up} + DeadKey := "" + CompKey := "" + } return + +*Down:: + if !lernModus or lernModus_std_Runter { + send {Blind}{Down} + DeadKey := "" + CompKey := "" + } return + +*Left:: + if !lernModus or lernModus_std_Links { + send {Blind}{Left} + DeadKey := "" + CompKey := "" + } return + +*Right:: + if !lernModus or lernModus_std_Rechts { + send {Blind}{Right} + DeadKey := "" + CompKey := "" + } return + diff --git a/windows/autohotkey/Source/Methods-Other.ahk b/windows/autohotkey/Source/Methods-Other.ahk index c32bdd9..30fbcb2 100644 --- a/windows/autohotkey/Source/Methods-Other.ahk +++ b/windows/autohotkey/Source/Methods-Other.ahk @@ -2,6 +2,7 @@ deadAsc(val1, val2, a) { global if !DeadSilence OutputChar(val1, val2) + else CheckComp(val2) DeadKey := a } @@ -9,6 +10,7 @@ deadUni(val1, val2, a) { global if !DeadSilence SendUnicodeChar(val1, val2) + else CheckComp(val2) DeadKey := a } -- cgit v1.2.3