summaryrefslogtreecommitdiffstats
path: root/windows
diff options
context:
space:
mode:
authormartin_r <martin_r@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2008-10-17 17:00:59 +0000
committermartin_r <martin_r@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2008-10-17 17:00:59 +0000
commit31266d63142c1d0ae2b188732b96fb38ccfeb045 (patch)
treeff4442859782cb8ac9cbf5dee697527c421c6649 /windows
parent3ba04b7bcb992ec98ed383075e13d21238aa1800 (diff)
weitere Modularisierung und Anpassung an die neuen toten Tasten
git-svn-id: https://svn.neo-layout.org@1009 b9310e46-f624-0410-8ea1-cfbb3a30dc96
Diffstat (limited to 'windows')
-rw-r--r--windows/autohotkey/Build-Update.bat2
-rw-r--r--windows/autohotkey/Source/All.ahk6
-rw-r--r--windows/autohotkey/Source/Keys-DeadKeys.ahk76
-rw-r--r--windows/autohotkey/Source/Keys-Neo.ahk1246
-rw-r--r--windows/autohotkey/Source/Keys-NumPad.ahk252
-rw-r--r--windows/autohotkey/Source/Keys-Numbers.ahk164
-rw-r--r--windows/autohotkey/Source/Keys-Special.ahk177
-rw-r--r--windows/autohotkey/Source/Methods-Other.ahk2
8 files changed, 956 insertions, 969 deletions
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,266 +1,41 @@
-/*
- 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:
+neo_a:
EbeneAktualisieren()
- if Ebene12
- OutputChar12("x","X","x","X")
+ 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)
- SendUnicodeChar(0x2026, "ellipsis") ; Ellipse horizontal
+ OutputChar("{{}", "braceleft")
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")
+ OutputChar("{Down}", "Down")
+ else if (Ebene = 5 and !(CheckDeadUni("g5",0x1F01)))
+ SendUnicodeChar(0x03B1, "Greek_alpha") ; alpha
else if (Ebene = 6)
- SendUnicodeChar(0x2259, "U2259") ; estimates/entspricht
+ SendUnicodeChar(0x2200, "U2200") ; für alle
return
-neo_l:
+neo_b:
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")
+ if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02)))
+ OutputChar12("b","B","b","B")
else if (Ebene = 3)
- OutputChar("[", "bracketleft")
+ if isMod2Locked
+ OutputChar("{Shift Up}{+}", "plus")
+ else OutputChar("{blind}{+}", "plus")
else if (Ebene = 4)
- OutputChar("{Up}", "Up")
+ OutputChar(":", "colon")
else if (Ebene = 5)
- SendUnicodeChar(0x03BB, "Greek_lambda") ; lambda
+ SendUnicodeChar(0x03B2, "Greek_beta") ; beta
else if (Ebene = 6)
- SendUnicodeChar(0x039B, "Greek_LAMBDA") ; Lambda
+ SendUnicodeChar(0x21D2, "implies") ; Doppel-Pfeil rechts
return
neo_c:
@@ -281,69 +56,45 @@ neo_c:
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
+neo_d:
+ EbeneAktualisieren()
+ if (Ebene12 and !(CheckDeadUni12("a4",0x1E0B,0x1E0A)
+ or CheckDeadUni12("c2",0x010F,0x010E)
+ or CheckDeadUni12("t2",0x0111,0x0110)
+ or CheckDeadUni12("t3",0x1E0D,0x1E0C)
+ or CheckDeadUni12("t4",0x00F0,0x00D0)))
+ OutputChar12("d","D","d","D")
+ else if (Ebene = 3)
+ OutputChar(":", "colon")
+ else if (Ebene = 4)
+ OutputChar("{NumpadDot}", "comma")
+ else if (Ebene = 5)
+ SendUnicodeChar(0x03B4, "Greek_delta") ; delta
+ else if (Ebene = 6)
+ SendUnicodeChar(0x0394, "Greek_DELTA") ; Delta
return
-neo_k:
+neo_e:
EbeneAktualisieren()
- if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136)
- or CheckDeadUni12("c6",0x1E33,0x1E32)))
- OutputChar12("k","K","k","K")
+ 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("{!}", "exclam")
+ OutputChar("{}}", "braceright")
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")
+ OutputChar("{Right}", "Right")
else if (Ebene = 5)
- SendUnicodeChar(0x03B3, "Greek_gamma") ; gamma
+ SendUnicodeChar(0x03B5, "Greek_epsilon") ; epsilon
else if (Ebene = 6)
- SendUnicodeChar(0x0393, "Greek_GAMMA") ; Gamma
+ SendUnicodeChar(0x2203, "U2203") ; es existiert
return
neo_f:
@@ -367,84 +118,40 @@ neo_f:
SendUnicodeChar(0x03A6, "Greek_PHI") ; Phi
return
-neo_q:
+neo_g:
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") ; !!!
+ 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(0x03D5, "U03D5") ; phi symbol (varphi)
+ SendUnicodeChar(0x03B3, "Greek_gamma") ; gamma
else if (Ebene = 6)
- SendUnicodeChar(0x211A, "U211A") ; Q (rationale Zahlen)
+ SendUnicodeChar(0x0393, "Greek_GAMMA") ; Gamma
return
-neo_sz:
+neo_h:
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
+ 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(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")
+ SendUnicodeChar(0x03C8, "Greek_psi") ; psi
else if (Ebene = 6)
- SendUnicodeChar(0x222E, "U222E") ; contour integral
+ SendUnicodeChar(0x03A8, "Greek_PSI") ; Psi
return
neo_i:
@@ -470,50 +177,88 @@ neo_i:
SendUnicodeChar(0x222B, "integral") ; integral
return
-neo_a:
+neo_j:
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","ä","Ä")))
- OutputChar12("a","A","a","A")
+ if (Ebene12 and !(CheckDeadUni12("c1",0x0135,0x0134)
+ or CheckDeadUni("c2",0x01F0)))
+ OutputChar12("j","J","j","J")
else if (Ebene = 3)
- OutputChar("{{}", "braceleft")
+ OutputChar("`;", "semicolon")
else if (Ebene = 4)
- OutputChar("{Down}", "Down")
+ OutputChar("`;", "semicolon")
else if (Ebene = 5)
- SendUnicodeChar(0x03B1, "Greek_alpha") ; alpha
+ SendUnicodeChar(0x03B8, "Greek_theta") ; theta
else if (Ebene = 6)
- SendUnicodeChar(0x2200, "U2200") ; für alle
+ SendUnicodeChar(0x2261, "identical") ; identisch
return
-neo_e:
+neo_k:
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")
+ if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136)
+ or CheckDeadUni12("c6",0x1E33,0x1E32)))
+ OutputChar12("k","K","k","K")
else if (Ebene = 3)
- OutputChar("{}}", "braceright")
+ OutputChar("{!}", "exclam")
else if (Ebene = 4)
- OutputChar("{Right}", "Right")
+ OutputChar("¡", "exclamdown")
else if (Ebene = 5)
- SendUnicodeChar(0x03B5, "Greek_epsilon") ; epsilon
+ SendUnicodeChar(0x03F0, "U03F0") ; kappa symbol (varkappa)
else if (Ebene = 6)
- SendUnicodeChar(0x2203, "U2203") ; es existiert
+ SendUnicodeChar(0x221A, "radical") ; Wurzel
+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_m:
+ EbeneAktualisieren()
+ if (Ebene12 and !(CheckDeadUni12("a4",0x1E41,0x1E40)
+ or CheckDeadUni12("c6",0x1E43,0x1E42)))
+ OutputChar12("m","M","m","M")
+ else if (Ebene = 3)
+ OutputChar("`%", "percent")
+ else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B9)
+ or CheckDeadUni("t4",0x2081)))
+ OutputChar("{Numpad1}", "KP_1")
+ else if (Ebene = 5)
+ SendUnicodeChar(0x03BC, "Greek_mu") ; griechisch mu, micro wäre 0x00B5
+ else if (Ebene = 6)
+ SendUnicodeChar(0x21D4, "ifonlyif") ; doppelter Doppelpfeil (genau dann wenn)
+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_o:
@@ -540,48 +285,33 @@ neo_o:
SendUnicodeChar(0x2208, "elementof") ; element of
return
-neo_s:
+neo_p:
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")
+ 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)
+ OutputChar("{Enter}", "Return")
else if (Ebene = 5)
- SendUnicodeChar(0x03C3, "Greek_sigma") ;sigma
+ SendUnicodeChar(0x03C0, "Greek_pi") ; pi
else if (Ebene = 6)
- SendUnicodeChar(0x03A3, "Greek_SIGMA") ;Sigma
+ SendUnicodeChar(0x03A0, "Greek_PI") ; Pi
return
-neo_n:
+neo_q:
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")
+ if (Ebene12)
+ OutputChar12("q","Q","q","Q")
else if (Ebene = 3)
- OutputChar("(", "parenleft")
- else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2074)
- or CheckDeadUni("t4",0x2084)))
- OutputChar("{Numpad4}", "KP_4")
+ OutputChar("{&}", "ampersand")
+ else if ((Ebene = 4) and !(CheckDeadUni("c1",0x207A)
+ or CheckDeadUni("c5",0x208A)))
+ OutputChar("{NumPadAdd}", "plus") ; !!!
else if (Ebene = 5)
- SendUnicodeChar(0x03BD, "Greek_nu") ; nu
+ SendUnicodeChar(0x03D5, "U03D5") ; phi symbol (varphi)
else if (Ebene = 6)
- SendUnicodeChar(0x2115, "U2115") ; N (natürliche Zahlen)
+ SendUnicodeChar(0x211A, "U211A") ; Q (rationale Zahlen)
return
neo_r:
@@ -603,6 +333,31 @@ neo_r:
SendUnicodeChar(0x211D, "U221D") ; R (reelle Zahlen)
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_t:
EbeneAktualisieren()
if (Ebene12 and !(CheckDeadUni12("a3",0x0163,0x0162)
@@ -623,101 +378,82 @@ neo_t:
SendUnicodeChar(0x2202, "partialderivative") ; partielle Ableitung
return
-neo_d:
- EbeneAktualisieren()
- if (Ebene12 and !(CheckDeadUni12("a4",0x1E0B,0x1E0A)
- or CheckDeadUni12("c2",0x010F,0x010E)
- or CheckDeadUni12("t2",0x0111,0x0110)
- or CheckDeadUni12("t3",0x1E0D,0x1E0C)
- or CheckDeadUni12("t4",0x00F0,0x00D0)))
- OutputChar12("d","D","d","D")
- else if (Ebene = 3)
- OutputChar(":", "colon")
- else if (Ebene = 4)
- OutputChar("{NumpadDot}", "comma")
- else if (Ebene = 5)
- SendUnicodeChar(0x03B4, "Greek_delta") ; delta
- else if (Ebene = 6)
- SendUnicodeChar(0x0394, "Greek_DELTA") ; Delta
-return
-
-neo_y:
+neo_u:
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",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("@", "at")
+ OutputChar("\", "backslash")
else if (Ebene = 4)
- OutputChar(".", "period")
- else if (Ebene = 5)
- SendUnicodeChar(0x03C5, "Greek_upsilon") ; upsilon
+ OutputChar("{Home}", "Home")
else if (Ebene = 6)
- SendUnicodeChar(0x2207, "nabla") ; nabla
+ SendUnicodeChar(0x222E, "U222E") ; contour integral
return
-/*
-
- Reihe 4
-
-*/
-
-neo_ü:
+neo_v:
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")
+ if (Ebene12 and !(CheckDeadUni12("c6",0x1E7F,0x1E7E)))
+ OutputChar12("v","V","v","V")
else if (Ebene = 3)
- if isMod2Locked
- OutputChar("{Shift Up}{#}", "numbersign")
- else OutputChar("{blind}{#}", "numbersign")
- else if (Ebene = 4)
- OutputChar("{Esc}", "Escape")
+ OutputChar("_","underscore")
+ else if (Ebene = 4) and (!lernModus or lernModus_neo_Backspace)
+ OutputChar("{Backspace}", "BackSpace")
else if (Ebene = 6)
- SendUnicodeChar(0x221D, "variation") ; proportional
+ SendUnicodeChar(0x2259, "U2259") ; estimates/entspricht
return
-neo_ö:
+neo_w:
EbeneAktualisieren()
- if (Ebene12 and !(CheckDeadUni12("t2",0x022B,0x022A)))
- OutputChar12("ö","Ö","odiaeresis","Odiaeresis")
+ if (Ebene12 and !(CheckDeadUni12("c1",0x0175,0x0174)))
+ OutputChar12("w","W","w","W")
else if (Ebene = 3)
- OutputChar("$", "dollar")
+ SendUnicodeChar(0x005E, "asciicircum") ; Zirkumflex
else if (Ebene = 4)
- OutputChar("{Tab}", "Tab")
+ OutputChar("{Insert}", "Insert") ; Einfg
+ else if (Ebene = 5)
+ SendUnicodeChar(0x03C9, "Greek_omega") ; omega
else if (Ebene = 6)
- SendUnicodeChar(0x2111, "U2221") ; Fraktur I
+ SendUnicodeChar(0x03A9, "Greek_OMEGA") ; Omega
return
-neo_ä:
+neo_x:
EbeneAktualisieren()
- if (Ebene12 and !(CheckDeadUni12("t2",0x01DF,0x01DE)))
- OutputChar12("ä","Ä","adiaeresis","Adiaeresis")
+ if Ebene12
+ OutputChar12("x","X","x","X")
else if (Ebene = 3)
- OutputChar("|", "bar")
+ SendUnicodeChar(0x2026, "ellipsis") ; Ellipse horizontal
else if (Ebene = 4)
- OutputChar("{PgDn}", "Next")
+ SendUnicodeChar(0x22EE, "U22EE") ; Ellipse vertikal
else if (Ebene = 5)
- SendUnicodeChar(0x03B7, "Greek_eta") ; eta
+ SendUnicodeChar(0x03BE, "Greek_xi") ; xi
else if (Ebene = 6)
- SendUnicodeChar(0x211C, "U221C") ; Fraktur R
+ SendUnicodeChar(0x039E, "Greek_XI") ; Xi
return
-neo_p:
+neo_y:
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("a1",0x00FD,0x00DD)
+ or CheckDeadUni12("c1",0x0177,0x0176)
+ or CheckDeadAsc12("t3","ÿ","Ÿ")))
+ OutputChar12("y","Y","y","Y")
+ else if (Ebene = 3)
+ OutputChar("@", "at")
else if (Ebene = 4)
- OutputChar("{Enter}", "Return")
+ OutputChar(".", "period")
else if (Ebene = 5)
- SendUnicodeChar(0x03C0, "Greek_pi") ; pi
+ SendUnicodeChar(0x03C5, "Greek_upsilon") ; upsilon
else if (Ebene = 6)
- SendUnicodeChar(0x03A0, "Greek_PI") ; Pi
+ SendUnicodeChar(0x2207, "nabla") ; nabla
return
neo_z:
@@ -735,488 +471,64 @@ neo_z:
SendUnicodeChar(0x2124, "U2124") ; Z (ganze Zahlen)
return
-neo_b:
+neo_ä:
EbeneAktualisieren()
- if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02)))
- OutputChar12("b","B","b","B")
+ if (Ebene12 and !(CheckDeadUni12("t2",0x01DF,0x01DE)))
+ OutputChar12("ä","Ä","adiaeresis","Adiaeresis")
else if (Ebene = 3)
- if isMod2Locked
- OutputChar("{Shift Up}{+}", "plus")
- else OutputChar("{blind}{+}", "plus")
+ OutputChar("|", "bar")
else if (Ebene = 4)
- OutputChar(":", "colon")
- else if (Ebene = 5)
- SendUnicodeChar(0x03B2, "Greek_beta") ; beta
- else if (Ebene = 6)
- SendUnicodeChar(0x21D2, "implies") ; Doppel-Pfeil rechts
-return
-
-neo_m:
- EbeneAktualisieren()
- if (Ebene12 and !(CheckDeadUni12("a4",0x1E41,0x1E40)
- or CheckDeadUni12("c6",0x1E43,0x1E42)))
- OutputChar12("m","M","m","M")
- else if (Ebene = 3)
- OutputChar("`%", "percent")
- else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B9)
- or CheckDeadUni("t4",0x2081)))
- OutputChar("{Numpad1}", "KP_1")
- else if (Ebene = 5)
- SendUnicodeChar(0x03BC, "Greek_mu") ; griechisch mu, micro wäre 0x00B5
- else if (Ebene = 6)
- 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")
+ OutputChar("{PgDn}", "Next")
else if (Ebene = 5)
- SendUnicodeChar(0x03D1, "U03D1") ; theta symbol (vartheta)
+ SendUnicodeChar(0x03B7, "Greek_eta") ; eta
else if (Ebene = 6)
- SendUnicodeChar(0x0398, "Greek_THETA") ; Theta
+ SendUnicodeChar(0x211C, "U221C") ; Fraktur R
return
-
-neo_j:
+neo_ö:
EbeneAktualisieren()
- if (Ebene12 and !(CheckDeadUni12("c1",0x0135,0x0134)
- or CheckDeadUni("c2",0x01F0)))
- OutputChar12("j","J","j","J")
+ if (Ebene12 and !(CheckDeadUni12("t2",0x022B,0x022A)))
+ OutputChar12("ö","Ö","odiaeresis","Odiaeresis")
else if (Ebene = 3)
- OutputChar("`;", "semicolon")
+ OutputChar("$", "dollar")
else if (Ebene = 4)
- OutputChar("`;", "semicolon")
- else if (Ebene = 5)
- SendUnicodeChar(0x03B8, "Greek_theta") ; theta
- else if (Ebene = 6)
- SendUnicodeChar(0x2261, "identical") ; identisch
-return
-
-/*
-
- Numpad
-
-*/
-
-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_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_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_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")
+ 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
}