summaryrefslogtreecommitdiff
path: root/windows/autohotkey/Source
diff options
context:
space:
mode:
Diffstat (limited to 'windows/autohotkey/Source')
-rw-r--r--windows/autohotkey/Source/All.ahk8
-rw-r--r--windows/autohotkey/Source/Global-Part.ahk102
-rw-r--r--windows/autohotkey/Source/Keys-Neo.ahk792
-rw-r--r--windows/autohotkey/Source/Keys-Qwert-to-Neo.ahk1
-rw-r--r--windows/autohotkey/Source/Methods-Layers.ahk200
-rw-r--r--windows/autohotkey/Source/Methods-Lights.ahk4
-rw-r--r--windows/autohotkey/Source/Methods-Other.ahk138
-rw-r--r--windows/autohotkey/Source/Methods-ScreenKeyboard.ahk94
-rw-r--r--windows/autohotkey/Source/Methods-Unicode.ahk29
-rw-r--r--windows/autohotkey/Source/Warning.ahk5
10 files changed, 649 insertions, 724 deletions
diff --git a/windows/autohotkey/Source/All.ahk b/windows/autohotkey/Source/All.ahk
index a207bca..1b899b7 100644
--- a/windows/autohotkey/Source/All.ahk
+++ b/windows/autohotkey/Source/All.ahk
@@ -1,9 +1,11 @@
/*
------------------------------------------------------
- Liste der Module
-
+ 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. :-)
+
Siehe auch:
http://www.autohotkey.com/docs/commands/_Include.htm
diff --git a/windows/autohotkey/Source/Global-Part.ahk b/windows/autohotkey/Source/Global-Part.ahk
index 105ad64..a0257d1 100644
--- a/windows/autohotkey/Source/Global-Part.ahk
+++ b/windows/autohotkey/Source/Global-Part.ahk
@@ -1,4 +1,4 @@
-
+SetNumLockState AlwaysOff
/****************
* Verzeichnisse *
@@ -36,8 +36,8 @@ IniRead, einHandNeo, %ApplicationFolder%\NEO2.ini, Global, einHandNeo, 0
; Soll der Lernmodus aktiviert werden?
IniRead, lernModus, %ApplicationFolder%\NEO2.ini, Global, lernModus, 0
-; Soll mit MessageBoxen explizit auf das Ein- und Ausschalten des Mod{3,4}-Locks hingewiesen werden?
-IniRead, zeigeLockBoxen, %ApplicationFolder%\NEO2.ini, Global, zeigeLockBoxen, 1
+; Soll mit einer MsgBox explizit auf das Ein- und Ausschalten des Mod4-Locks hingewiesen werden?
+IniRead, zeigeLockBox, %ApplicationFolder%\NEO2.ini, Global, zeigeLockBox, 1
; Soll aktivierter Mod4-Lock über die Rollen-LED des Keybord angezeigt werden (analog zu CapsLock)?
IniRead, UseMod4Light, %ApplicationFolder%\NEO2.ini, Global, UseMod4Light, 1
@@ -260,3 +260,99 @@ return
else
send {blind}{Esc}
return
+
+/*
+ ------------------------------------------------------
+ Shift+Pause "pausiert" das Skript.
+ ------------------------------------------------------
+*/
+
+*pause::
+Suspend, Permit
+ if isshiftpressed()
+ goto togglesuspend
+ else
+ send {blind}{pause}
+return
+
+; ------------------------------------
+
+^.::einHandNeo := not(einHandNeo) ; Punkt
+^,::lernModus := not(lernModus) ; Komma
+
+
+
+togglesuspend:
+ if A_IsSuspended
+ {
+ menu, tray, rename, %enable%, %disable%
+ menu, tray, tip, %name%
+ if (iconBenutzen)
+ menu, tray, icon, %ResourceFolder%\neo.ico,,1
+ suspend , off ; Schaltet Suspend aus -> NEO
+ }
+ else
+ {
+ menu, tray, rename, %disable%, %enable%
+ menu, tray, tip, %name% : Deaktiviert
+ if (iconBenutzen)
+ menu, tray, icon, %ResourceFolder%\neo_disabled.ico,,1
+ suspend , on ; Schaltet Suspend ein -> QWERTZ
+ }
+
+return
+
+
+help:
+ Run, %A_WinDir%\hh mk:@MSITStore:autohotkey.chm
+return
+
+
+about:
+ msgbox, 64, %name% – Ergonomische Tastaturbelegung,
+ (
+ %name%
+ `nDas Neo-Layout ersetzt das übliche deutsche
+ Tastaturlayout mit der Alternative Neo,
+ beschrieben auf http://neo-layout.org/.
+ `nDazu sind keine Administratorrechte nötig.
+ `nWenn Autohotkey aktiviert ist, werden alle Tastendrucke
+ abgefangen und statt dessen eine Übersetzung weitergeschickt.
+ `nDies geschieht transparent für den Anwender,
+ es muss nichts installiert werden.
+ `nDie Zeichenübersetzung kann leicht über das Icon im
+ Systemtray deaktiviert werden. `n
+ )
+return
+
+
+neo:
+ run http://neo-layout.org/
+return
+
+autohotkey:
+ run http://autohotkey.com/
+return
+
+open:
+ ListLines ; shows the Autohotkey window
+return
+
+edit:
+ edit
+return
+
+reload:
+ Reload
+return
+
+hide:
+ menu, tray, noicon
+return
+
+exitprogram:
+ exitapp
+return
+
+
+ \ No newline at end of file
diff --git a/windows/autohotkey/Source/Keys-Neo.ahk b/windows/autohotkey/Source/Keys-Neo.ahk
index 15a8be1..2c1fd53 100644
--- a/windows/autohotkey/Source/Keys-Neo.ahk
+++ b/windows/autohotkey/Source/Keys-Neo.ahk
@@ -2,13 +2,13 @@
Die eigentliche NEO-Belegung und der Hauptteil des AHK-Treibers.
Ablauf bei toten Tasten:
- 1. Ebene Aktualisieren
- 2. Abhängig von der Variablen "Ebene" Zeichen ausgeben und die Variable "PriorDeadKey" setzen
+ 1. Ebene Aktualisieren.
+ 2. Abhängig von der Variablen "Ebene" Zeichen ausgeben und die Variable "PriorDeadKey" setzen.
Ablauf bei "untoten" Tasten:
- 1. Ebene Aktualisieren
- 2. Abhängig von den Variablen "Ebene" und "PriorDeadKey" Zeichen ausgeben
- 3. "PriorDeadKey" mit leerem String überschreiben
+ 1. Ebene Aktualisieren.
+ 2. Abhängig von den Variablen "Ebene" und "PriorDeadKey" Zeichen ausgeben.
+ 3. "PriorDeadKey" mit leerem String überschreiben.
Reihe 1
*/
@@ -38,12 +38,12 @@ neo_tot1:
}
else if (Ebene = 5)
{
- deadAsc("-") ; Querstrich, tot
+ deadUni(0x002D) ; Querstrich, tot
DeadKey := "c5"
}
else if (Ebene = 6)
{
- deadAsc(".") ; Punkt drunter (Colon), tot
+ deadUni(0x002E) ; Punkt drunter (Colon), tot
DeadKey := "c6"
}
CompKey := PriorCompKey
@@ -72,9 +72,9 @@ neo_1:
else if (Ebene = 2)
send °
else if (Ebene = 3)
- SendUnicodeChar(0x00B9) ; 2 Hochgestellte
+ SendUnicodeChar(0x00B9) ; Hochgestellte 2
else if (Ebene = 4)
- SendUnicodeChar(0x2022) ; bullet
+ SendUnicodeChar(0x2022) ; Bullet
else if (Ebene = 5)
SendUnicodeChar(0x2640) ; Piktogramm weiblich
else if (Ebene = 6)
@@ -100,11 +100,11 @@ neo_2:
CompKey := "2"
}
else if (Ebene = 2)
- SendUnicodeChar(0x2116) ; numero
+ SendUnicodeChar(0x2116) ; Numero
else if (Ebene = 3)
- SendUnicodeChar(0x00B2) ; 2 Hochgestellte
+ SendUnicodeChar(0x00B2) ; Hochgestellte 2
else if (Ebene = 4)
- SendUnicodeChar(0x2023) ; aufzaehlungspfeil
+ SendUnicodeChar(0x2023) ; Aufzählungspfeil
else if (Ebene = 5)
SendUnicodeChar(0x26A5) ; Piktogramm Zwitter
else if (Ebene = 6)
@@ -132,7 +132,7 @@ neo_3:
else if (Ebene = 2)
send §
else if (Ebene = 3)
- SendUnicodeChar(0x00B3) ; 3 Hochgestellte
+ SendUnicodeChar(0x00B3) ; Hochgestellte 3
else if (Ebene = 4)
{
CompKey := PriorCompKey
@@ -161,11 +161,11 @@ neo_4:
CompKey := "4"
}
else if (Ebene = 2)
- SendUnicodeChar(0x00BB) ; », Double guillemot right
+ SendUnicodeChar(0x00BB) ; Double guillemot right
else if (Ebene = 3)
Send {blind}› ; Single guillemot right
else if (Ebene = 4)
- Send {blind}{PgUp} ; Prev
+ Send {blind}{PgUp}
else if (Ebene = 5)
SendUnicodeChar(0x2113) ; Script small L
else if (Ebene = 6)
@@ -295,7 +295,7 @@ neo_8:
else if (Ebene = 4)
Send {blind}{NumpadDiv}
else if (Ebene = 5)
- SendUnicodeChar(0x27E8) ;bra (öffnende spitze klammer)
+ SendUnicodeChar(0x27E8) ; bra (öffnende spitze Klammer)
else if (Ebene = 6)
SendUnicodeChar(0x2204) ; es existiert nicht
return
@@ -323,7 +323,7 @@ neo_9:
else if (Ebene = 4)
Send {blind}{NumpadMult}
else if (Ebene = 5)
- SendUnicodeChar(0x27E9) ;ket (schließende spitze klammer)
+ SendUnicodeChar(0x27E9) ; ket (schließende spitze Klammer)
else if (Ebene = 6)
SendUnicodeChar(0x2226) ; nicht parallel
return
@@ -370,11 +370,11 @@ neo_strich:
SendUnicodeChar(0x2013) ; Gedankenstrich
else if (Ebene = 3)
SendUnicodeChar(0x2014) ; Englischer Gedankenstrich (Geviertstrich)
- else if (Ebene = 4)
+ else if (Ebene = 4) ; leer
{
CompKey := PriorCompKey
DeadKey := PriorDeadKey
- } ; leer
+ }
else if (Ebene = 5)
SendUnicodeChar(0x2011) ; geschützter Bindestrich (Bindestrich ohne Zeilenumbruch)
else if (Ebene = 6)
@@ -447,11 +447,11 @@ neo_v:
else if (Ebene = 4)
if (not(lernModus) or lernModus_neo_Backspace)
Send {blind}{Backspace}
- else
+ else ; leer
{
CompKey := PriorCompKey
DeadKey := PriorDeadKey
- } ; leer
+ }
else if (Ebene = 6)
SendUnicodeChar(0x2259) ; estimates
return
@@ -461,11 +461,11 @@ 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)))
+ 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)))
OutputChar("l","L")
else if (Ebene = 3)
send {blind}[
@@ -481,27 +481,26 @@ 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)
- or CheckCompAsc12("o","©","©")
- or CheckCompAsc12("O","©","©")))
+ or CheckDeadUni12("a3",0x00E7,0x00E6)
+ or CheckDeadUni12("a4",0x010B,0x010A)
+ or CheckDeadUni12("c1",0x0109,0x0108)
+ or CheckDeadUni12("c2",0x010D,0x010C)
+ or CheckCompAsc("o","©")))
OutputChar("c","C")
else if (Ebene = 3)
send {blind}]
else if (Ebene = 4)
if (not(lernModus) or lernModus_neo_Entf)
Send {blind}{Del}
- else
+ else ; leer
{
CompKey := PriorCompKey
DeadKey := PriorDeadKey
- } ; leer
+ }
else if (Ebene = 5)
- SendUnicodeChar(0x03C7) ;chi
+ SendUnicodeChar(0x03C7) ; chi
else if (Ebene = 6)
- SendUnicodeChar(0x2102) ; C (Komplexe Zahlen)
+ SendUnicodeChar(0x2102) ; C (Komplexe Zahlen)
return
neo_w:
@@ -509,10 +508,9 @@ neo_w:
if (Ebene12 and !(CheckDeadUni12("c1",0x0175,0x0174)))
OutputChar("w","W")
else if (Ebene = 3)
- SendUnicodeChar(0x005E) ; untotes ^ - Unicode-Name: CIRCUMFLEX ACCENT
- ;send {^}{space} ; Funktioniert nicht unter Java-Programmen
+ SendUnicodeChar(0x005E) ; Zirkumflex
else if (Ebene = 4)
- Send {blind}{Insert}
+ Send {blind}{Insert} ; Einfg
else if (Ebene = 5)
SendUnicodeChar(0x03C9) ; omega
else if (Ebene = 6)
@@ -522,7 +520,7 @@ return
neo_k:
EbeneAktualisieren()
if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136)
- or CheckDeadUni12("c6",0x1E33,0x1E32)))
+ or CheckDeadUni12("c6",0x1E33,0x1E32)))
OutputChar("k","K")
else if (Ebene = 3)
send {blind}{!}
@@ -537,9 +535,9 @@ 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)))
+ or CheckDeadUni12("c1",0x0125,0x0124)
+ or CheckDeadUni12("c5",0x0127,0x0126)
+ or CheckDeadUni12("c6",0x1E25,0x1E24)))
OutputChar("h","H")
else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2264))) ; kleiner gleich
send {blind}<
@@ -547,27 +545,27 @@ neo_h:
or CheckDeadUni("c5",0x2087)))
Send {blind}{NumPad7}
else if (Ebene = 5)
- SendUnicodeChar(0x03C8) ;psi
+ SendUnicodeChar(0x03C8) ; psi
else if (Ebene = 6)
- SendUnicodeChar(0x03A8) ; Psi
+ SendUnicodeChar(0x03A8) ; 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)))
+ or CheckDeadUni12("a4",0x0121,0x0120)
+ or CheckDeadUni12("c1",0x011D,0x011C)
+ or CheckDeadUni12("c3",0x011F,0x011E)))
OutputChar("g","G")
- else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2265))) ; größer gleich
- send {blind}>
+ else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2265)))
+ send {blind}> ; größer gleich
else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2078)
- or CheckDeadUni("c5",0x2088)))
+ or CheckDeadUni("c5",0x2088)))
Send {blind}{NumPad8}
else if (Ebene = 5)
- SendUnicodeChar(0x03B3) ;gamma
+ SendUnicodeChar(0x03B3) ; gamma
else if (Ebene = 6)
- SendUnicodeChar(0x0393) ; Gamma
+ SendUnicodeChar(0x0393) ; Gamma
return
neo_f:
@@ -576,19 +574,19 @@ neo_f:
or CheckDeadUni12("t4",0x0192,0x0191)))
OutputChar("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("c5",0x2261) ; identisch
- or CheckDeadUni("t1",0x2245) ; ungefähr gleich
- or CheckDeadUni("t4",0x2260))) ; ungleich
+ or CheckDeadUni("c1",0x2259) ; entspricht
+ or CheckDeadUni("c2",0x225A) ; EQUIANGULAR TO
+ or CheckDeadUni("c5",0x2261) ; identisch
+ or CheckDeadUni("t1",0x2245) ; ungefähr gleich
+ or CheckDeadUni("t4",0x2260))) ; ungleich
send {blind}`=
else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2079)
- or CheckDeadUni("c5",0x2089)))
- Send {blind}{NumPad9}
+ or CheckDeadUni("c5",0x2089)))
+ send {blind}{NumPad9}
else if (Ebene = 5)
SendUnicodeChar(0x03C6) ; phi
else if (Ebene = 6)
- SendUnicodeChar(0x03A6) ; Phi
+ SendUnicodeChar(0x03A6) ; Phi
return
neo_q:
@@ -611,27 +609,27 @@ neo_sz:
if (Ebene = 1)
if (GetKeyState("CapsLock","T"))
SendUnicodeChar(0x1E9E) ; versal-ß
- else if (LangSTastatur = 1)
+ else if LangSTastatur
send {blind}s
else
send ß
else if (Ebene = 2)
if (GetKeyState("CapsLock","T"))
- if (LangSTastatur = 1)
+ if LangSTastatur
send {blind}s
else
send ß
else
SendUnicodeChar(0x1E9E) ; versal-ß
else if (Ebene = 3)
- if (LangSTastatur = 1)
+ if LangSTastatur
send ß
else
SendUnicodeChar(0x017F) ; langes s
else if (Ebene = 5)
- SendUnicodeChar(0x03C2) ; varsigma
+ SendUnicodeChar(0x03C2) ; varsigma
else if (Ebene = 6)
- SendUnicodeChar(0x2218) ; Verknüpfungsoperator
+ SendUnicodeChar(0x2218) ; Verknüpfungsoperator
return
@@ -639,7 +637,7 @@ neo_tot3:
EbeneAktualisieren()
if (Ebene = 1)
{
- deadUni(0x02DC) ;Tilde, tot
+ deadUni(0x02DC) ; Tilde, tot
DeadKey := "t1"
}
else if (Ebene = 2)
@@ -659,7 +657,7 @@ neo_tot3:
}
else if (Ebene = 5)
{
- deadUni(0x02DD) ;Doppelakut
+ deadUni(0x02DD) ; Doppelakut
DeadKey := "t5"
}
else if (Ebene = 6)
@@ -680,26 +678,26 @@ return
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)))
+ 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)))
OutputChar("u","U")
else if (Ebene = 3)
send {blind}\
else if (Ebene = 4)
Send {blind}{Home}
- else if (Ebene = 5)
+ else if (Ebene = 5) ; leer
{
CompKey := PriorCompKey
DeadKey := PriorDeadKey
- } ; leer
+ }
else if (Ebene = 6)
SendUnicodeChar(0x222E) ; contour integral
return
@@ -707,21 +705,21 @@ 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","ï","Ï")))
+ 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","ï","Ï")))
OutputChar("i","I")
else if (Ebene = 3)
send {blind}`/
else if (Ebene = 4)
Send {Blind}{Left}
- else if (Ebene = 5 )
+ else if (Ebene = 5)
SendUnicodeChar(0x03B9) ; iota
else if (Ebene = 6)
SendUnicodeChar(0x222B) ; integral
@@ -730,65 +728,65 @@ 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","ä","Ä")))
+ 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","ä","Ä")))
OutputChar("a","A")
else if (Ebene = 3)
send {blind}{{}
else if (Ebene = 4)
Send {Blind}{Down}
else if (Ebene = 5)
- SendUnicodeChar(0x03B1) ;alpha
+ SendUnicodeChar(0x03B1) ; alpha
else if (Ebene = 6)
- SendUnicodeChar(0x2200) ;für alle
+ SendUnicodeChar(0x2200) ; 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("t2",0x0113,0x0112)
- or CheckDeadAsc12("t3","ë","Ë")
- or CheckCompAsc12("a","æ","Æ")
- or CheckCompAsc12("A","Æ","Æ")
- or CheckCompAsc12("o","œ","Œ")
- or CheckCompAsc12("O","Œ","Œ")))
+ 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("t2",0x0113,0x0112)
+ or CheckDeadAsc12("t3","ë","Ë")
+ or CheckCompAsc12("a","æ","Æ")
+ or CheckCompAsc12("A","Æ","Æ")
+ or CheckCompAsc12("o","œ","Œ")
+ or CheckCompAsc12("O","Œ","Œ")))
OutputChar("e","E")
- else if (Ebene = 3) ; {
+ else if (Ebene = 3)
send {blind}{}}
else if (Ebene = 4)
Send {Blind}{Right}
else if (Ebene = 5)
- SendUnicodeChar(0x03B5) ;epsilon
+ SendUnicodeChar(0x03B5) ; epsilon
else if (Ebene = 6)
- SendUnicodeChar(0x2203) ;es existiert
+ SendUnicodeChar(0x2203) ; 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)))
+ 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)))
OutputChar("o","O")
else if (Ebene = 3)
send {blind}*
@@ -803,35 +801,55 @@ 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)))
+ 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 (Ebene = 1)
{
if LangSTastatur
if (GetKeyState("CapsLock","T"))
+ {
send {blind}s
+ if (PriorDeadKey = "comp")
+ Compkey := "s"
+ }
else
+ {
SendUnicodeChar(0x017F) ;langes S
+ if (PriorDeadKey = "comp")
+ CompKey := "lang_s"
+ }
else
+ {
send {blind}s
- if (PriorDeadKey = "comp")
- CompKey := "s"
+ if (PriorDeadKey = "comp")
+ CompKey := "s"
+ }
}
else if (Ebene = 2)
{
if LangSTastatur
if (GetKeyState("CapsLock","T"))
+ {
SendUnicodeChar(0x017F) ;langes S
+ if (PriorDeadKey = "comp")
+ CompKey := "lang_s"
+ }
else
+ {
send {blind}S
+ if (PriorDeadKey = "comp")
+ CompKey := "s"
+ }
else
+ {
send {blind}S
- if (PriorDeadKey = "comp")
- CompKey := "S"
+ if (PriorDeadKey = "comp")
+ CompKey := "S"
+ }
}
}
else if (Ebene = 3)
@@ -841,21 +859,21 @@ neo_s:
else if (Ebene = 5)
SendUnicodeChar(0x03C3) ;sigma
else if (Ebene = 6)
- SendUnicodeChar(0x03A3) ; Sigma
+ SendUnicodeChar(0x03A3) ;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)))
+ or CheckDeadUni12("a3",0x0146,0x0145)
+ or CheckDeadUni12("a4",0x1E45,0x1E44)
+ or CheckDeadUni12("c2",0x0148,0x0147)
+ or CheckDeadUni12("t1",0x00F1,0x00D1)))
OutputChar("n","N")
else if (Ebene = 3)
- send {blind}( ; )
+ send {blind}(
else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2074)
- or CheckDeadUni("c5",0x2084)))
+ or CheckDeadUni("c5",0x2084)))
Send {blind}{NumPad4}
else if (Ebene = 5)
SendUnicodeChar(0x03BD) ; nu
@@ -866,17 +884,17 @@ return
neo_r:
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("c6",0x1E5B,0x1E5A)
- or CheckCompAsc12("o","®","®")
- or CheckCompAsc12("O","®","®")))
+ or CheckDeadUni12("a3",0x0157,0x0156)
+ or CheckDeadUni12("a4",0x0E59,0x0E58)
+ or CheckDeadUni12("c2",0x0159,0x0158)
+ or CheckDeadUni12("c6",0x1E5B,0x1E5A)
+ or CheckCompAsc12("o","®","®")
+ or CheckCompAsc12("O","®","®")))
OutputChar("r","R")
- else if (Ebene = 3) ;(
+ else if (Ebene = 3)
send {blind})
else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2075)
- or CheckDeadUni("c5",0x2085)))
+ or CheckDeadUni("c5",0x2085)))
Send {blind}{NumPad5}
else if (Ebene = 5)
SendUnicodeChar(0x03F1) ; rho symbol (varrho)
@@ -887,20 +905,20 @@ return
neo_t:
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("c6",0x1E6D,0x1E6C)))
+ or CheckDeadUni12("a4",0x1E6B,0x1E6A)
+ or CheckDeadUni12("c2",0x0165,0x0164)
+ or CheckDeadUni12("c5",0x0167,0x0166)
+ or CheckDeadUni12("c6",0x1E6D,0x1E6C)))
OutputChar("t","T")
else if (Ebene = 3)
- send {blind}- ; Bis
+ send {blind}- ; Bisstrich
else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2076)
or CheckDeadUni("c5",0x2086)))
Send {blind}{NumPad6}
else if (Ebene = 5)
SendUnicodeChar(0x03C4) ; tau
else if (Ebene = 6)
- SendUnicodeChar(0x2202 ) ; partielle Ableitung
+ SendUnicodeChar(0x2202) ; partielle Ableitung
return
neo_d:
@@ -916,16 +934,16 @@ neo_d:
else if (Ebene = 4)
send `,
else if (Ebene = 5)
- SendUnicodeChar(0x03B4) ;delta
+ SendUnicodeChar(0x03B4) ; delta
else if (Ebene = 6)
- SendUnicodeChar(0x0394) ; Delta
+ SendUnicodeChar(0x0394) ; Delta
return
neo_y:
EbeneAktualisieren()
if (Ebene12 and !(CheckDeadUni12("a1",0x00FD,0x00DD)
- or CheckDeadUni12("c1",0x0177,0x0176)
- or CheckDeadAsc12("t3","ÿ",Ÿ)))
+ or CheckDeadUni12("c1",0x0177,0x0176)
+ or CheckDeadAsc12("t3","ÿ","Ÿ")))
OutputChar("y","Y")
else if (Ebene = 3)
send {blind}@
@@ -946,19 +964,19 @@ return
neo_ü:
EbeneAktualisieren()
if (Ebene12 and !(CheckDeadUni12("a1",0x01D8,0x01D7)
- or CheckDeadUni12("a2",0x01DC,0x01DB)
- or CheckDeadUni12("c2",0x01DA,0x01D9)
- or CheckDeadUni12("t2",0x01D6,0x01D5)))
+ or CheckDeadUni12("a2",0x01DC,0x01DB)
+ or CheckDeadUni12("c2",0x01DA,0x01D9)
+ or CheckDeadUni12("t2",0x01D6,0x01D5)))
OutputChar("ü","Ü")
else if (Ebene = 3)
send {#}
else if (Ebene = 4)
Send {blind}{Esc}
- else if (Ebene = 5)
+ else if (Ebene = 5) ; leer
{
DeadKey := PriorDeadKey
CompKey := PriorCompKey
- } ; leer
+ }
else if (Ebene = 6)
SendUnicodeChar(0x221D) ; proportional
return
@@ -987,11 +1005,11 @@ neo_ä:
else if (Ebene = 3)
send {blind}|
else if (Ebene = 4)
- Send {blind}{PgDn} ; Next
+ Send {blind}{PgDn} ; Next
else if (Ebene = 5)
SendUnicodeChar(0x03B7) ; eta
else if (Ebene = 6)
- SendUnicodeChar(0x211C) ; altes R
+ SendUnicodeChar(0x211C) ; Fraktur R
return
neo_p:
@@ -1003,29 +1021,29 @@ neo_p:
else if (Ebene = 4)
Send {blind}{Enter}
else if (Ebene = 5)
- SendUnicodeChar(0x03C0) ;pi
+ SendUnicodeChar(0x03C0) ; pi
else if (Ebene = 6)
- SendUnicodeChar(0x03A0) ; Pi
+ SendUnicodeChar(0x03A0) ; Pi
return
neo_z:
EbeneAktualisieren()
if (Ebene12 and !(CheckDeadUni12("a1",0x017A,0x0179)
- or CheckDeadUni12("a4",0x017C,0x017B)
- or CheckDeadUni12("c2",0x017E,0x017D)
- or CheckDeadUni12("c6",0x1E93,0x1E92)))
+ or CheckDeadUni12("a4",0x017C,0x017B)
+ or CheckDeadUni12("c2",0x017E,0x017D)
+ or CheckDeadUni12("c6",0x1E93,0x1E92)))
OutputChar("z","Z")
else if (Ebene = 3)
- send ``{space} ; untot
+ send ``{space} ; untot
else if (Ebene = 4)
{
DeadKey := PriorDeadKey
CompKey := PriorCompKey
} ; leer
else if (Ebene = 5)
- SendUnicodeChar(0x03B6) ;zeta
+ SendUnicodeChar(0x03B6) ; zeta
else if (Ebene = 6)
- SendUnicodeChar(0x2124) ; Z (ganze Zahlen)
+ SendUnicodeChar(0x2124) ; Z (ganze Zahlen)
return
neo_b:
@@ -1045,17 +1063,14 @@ return
neo_m:
EbeneAktualisieren()
if (Ebene12 and !(CheckDeadUni12("a4",0x1E41,0x1E40)
- or CheckDeadUni12("c6",0x1E43,0x1E42)
- or CheckCompUni12("t",0x2122,0x2122) ; TM
- or CheckCompUni12("T",0x2122,0x2122) ; TM
- or CheckCompUni12("s",0x2120,0x2120) ; SM
- or CheckCompUni12("S",0x2120,0x2120))) ; SM
-
+ or CheckDeadUni12("c6",0x1E43,0x1E42)
+ or CheckCompUni12("t",0x2122,0x2122) ; TM
+ or CheckCompUni12("s",0x2120,0x2120))) ; SM
OutputChar("m","M")
else if (Ebene = 3)
send {blind}`%
else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B9)
- or CheckDeadUni("c5",0x2081)))
+ or CheckDeadUni("c5",0x2081)))
Send {blind}{NumPad1}
else if (Ebene = 5)
SendUnicodeChar(0x03BC) ; griechisch mu, micro wäre 0x00B5
@@ -1075,7 +1090,7 @@ neo_komma:
else if (Ebene = 3)
send {blind}"
else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B2)
- or CheckDeadUni("c5",0x2082)))
+ or CheckDeadUni("c5",0x2082)))
Send {blind}{NumPad2}
else if (Ebene = 5)
SendUnicodeChar(0x03C1) ; rho
@@ -1095,12 +1110,12 @@ neo_punkt:
else if (Ebene = 3)
send {blind}'
else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B3)
- or CheckDeadUni("c5",0x2083)))
+ or CheckDeadUni("c5",0x2083)))
Send {blind}{NumPad3}
else if (Ebene = 5)
SendUnicodeChar(0x03D1) ; theta symbol (vartheta)
else if (Ebene = 6)
- SendUnicodeChar(0x0398) ; Theta
+ SendUnicodeChar(0x0398) ; Theta
return
@@ -1108,12 +1123,12 @@ neo_j:
EbeneAktualisieren()
if (Ebene12 and !(CheckDeadUni12("c1",0x0135,0x0134)
or CheckDeadUni12("c2",0x01F0,"")
- or CheckCompUni12("i",0x0133,"") ; ij
- or CheckCompUni12("I","",0x0132) ; IJ
- or CheckCompUni12("l",0x01C9,"") ; lj
- or CheckCompUni12("L",0x01C8,0x01C7) ; Lj/LJ
- or CheckCompUni12("n",0x01CC,"") ; nj
- or CheckCompUni12("N",0x01CB,0x01CA))) ; Nj/NJ
+ or CheckCompUni("i",0x0133) ; ij
+ or CheckCompUni("l",0x01C9) ; lj
+ or CheckCompUni("n",0x01CC) ; nj
+ or CheckCompUni("I",0x0132) ; IJ
+ or CheckCompUni12("L",0x01C8,0x01C7) ; Lj/LJ
+ or CheckCompUni12("N",0x01CB,0x01CA))) ; Nj/NJ
OutputChar("j","J")
else if (Ebene = 3)
send {blind}`;
@@ -1129,343 +1144,325 @@ return
Numpad
-
- folgende Tasten verhalten sich bei ein- und ausgeschaltetem
- NumLock gleich:
*/
+neo_NumLock:
+ EbeneAktualisieren()
+ if (Ebene = 1)
+ send `=
+ if (Ebene = 2) ; Funktioniert nicht
+ {
+ SetNumLockState
+ send {NumLock}
+ }
+ if (Ebene = 3)
+ SendUnicodeChar(0x2248) ; Fast gleich
+ if (Ebene = 4)
+ SendUnicodeChar(0x2260) ; Ungleich zu
+return
+
neo_NumpadDiv:
EbeneAktualisieren()
- if ((Ebene = 1) or (Ebene = 2))
+ if Ebene14
send {blind}{NumpadDiv}
+ else if (Ebene = 2)
+ SendUnicodeChar(0x2215) ; Slash
else if (Ebene = 3)
send {blind}÷
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x2215) ; slash
return
neo_NumpadMult:
EbeneAktualisieren()
- if ((Ebene = 1) or (Ebene = 2))
+ if Ebene14
send {blind}{NumpadMult}
+ else if (Ebene = 2)
+ SendUnicodeChar(0x22C5) ; Cdot
else if (Ebene = 3)
send {blind}×
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x22C5) ; cdot
return
neo_NumpadSub:
EbeneAktualisieren()
- if (((Ebene = 1) or (Ebene = 2)) and !(CheckDeadUni("c1",0x207B)
- or CheckDeadUni("c5",0x208B)))
+ if (Ebene14 and !(CheckDeadUni("c1",0x207B)
+ or CheckDeadUni("c5",0x208B)))
send {blind}{NumpadSub}
else if (Ebene = 3)
- SendUnicodeChar(0x2212) ; echtes minus
+ SendUnicodeChar(0x2212) ; Echtes Minus
return
neo_NumpadAdd:
EbeneAktualisieren()
- if (((Ebene = 1) or (Ebene = 2)) and !(CheckDeadUni("c1",0x207A)
- or CheckDeadUni("c5",0x208A)))
+ if (Ebene14 and !(CheckDeadUni("c1",0x207A)
+ or CheckDeadUni("c5",0x208A)))
send {blind}{NumpadAdd}
else if (Ebene = 3)
send {blind}±
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x2213) ; -+
+ else if (Ebene = 2)
+ SendUnicodeChar(0x2213) ; Inverses ±
return
neo_NumpadEnter:
- EbeneAktualisieren()
- if ((Ebene = 1) or (Ebene = 2))
- send {blind}{NumpadEnter}
- else if (Ebene = 3)
- SendUnicodeChar(0x2260) ; neq
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x2248) ; approx
+ send {blind}{NumpadEnter}
return
-/*
- folgende Tasten verhalten sich bei ein- und ausgeschaltetem NumLock
- unterschiedlich
-*/
-
-
-
neo_Numpad7:
EbeneAktualisieren()
- if ((Ebene = 1) and (NumLock = 0))
- send {blind}{NumpadHome}
- else if ((Ebene = 2) and (NumLock = 1))
- send {blind}{Shift up}{NumpadHome}{Shift down}
- else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0)))
+ if (Ebene = 1)
{
- if (Ebene = 1)
+ if NumLock
send {blind}{Numpad7}
else
- send {blind){Shift up}{Numpad7}{Shift down}
-
+ send {blind){Shift up}{Numpad7}
if (PriorDeadKey = "comp")
- CompKey := "Num_7"
+ CompKey := "7"
}
+ else if (Ebene = 2)
+ SendUnicodeChar(0x2020) ; Kreuz
else if (Ebene = 3)
- SendUnicodeChar(0x2195) ; Hoch-Runter-Pfeil
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x226A) ; ll
+ SendUnicodeChar(0x2195) ; Hoch-Runter-Pfeil
+ else if (Ebene = 4)
+ if NumLock
+ send {blind}{Shift up}{NumpadHome}
+ else
+ send {blind}{NumpadHome}
return
neo_Numpad8:
EbeneAktualisieren()
- if ((Ebene = 1) and (NumLock = 0))
- send {blind}{NumpadUp}
- else if ((Ebene = 2) and (NumLock = 1))
- send {blind}{Shift up}{NumpadUp}{Shift down}
- else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0)))
+ if ((Ebene = 1) and !(CheckCompUni("1",0x215B) ; 1/8
+ or CheckCompUni("3",0x215C) ; 3/8
+ or CheckCompUni("5",0x215D) ; 5/8
+ or CheckCompUni("7",0x215E))) ; 7/8
{
- if !(CheckCompUni("Num_1",0x215B) ; 1/8
- or CheckCompUni("1",0x215B) ; 1/8
- or CheckCompUni("Num_3",0x215C) ; 3/8
- or CheckCompUni("3",0x215C) ; 3/8
- or CheckCompUni("Num_5",0x215D) ; 3/8
- or CheckCompUni("5",0x215D) ; 5/8
- or CheckCompUni("Num_7",0x215E) ; 7/8
- or CheckCompUni("7",0x215E)) ; 7/8
- if (Ebene = 1)
- send {blind}{Numpad8}
- else
- send {blind){Shift up}{Numpad8}{Shift down}
-
+ if NumLock
+ send {blind}{Numpad8}
+ else
+ send {blind){Shift up}{Numpad8}
if (PriorDeadKey = "comp")
- CompKey := "Num_8"
+ CompKey := "8"
}
+ else if (Ebene = 2)
+ SendUnicodeChar(0x2229) ; Durchschnitt
else if (Ebene = 3)
- SendUnicodeChar(0x2191) ; uparrow
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x2229) ; intersection
+ SendUnicodeChar(0x2191) ; Hochpfeil
+ else if (Ebene = 4)
+ if NumLock
+ send {blind}{Shift up}{NumpadUp}
+ else
+ send {blind}{NumpadUp}
return
neo_Numpad9:
EbeneAktualisieren()
- if ((Ebene = 1) and (NumLock = 0))
- send {blind}{NumpadPgUp}
- else if ((Ebene = 2) and (NumLock = 1))
- send {blind}{Shift up}{NumpadPgUp}{Shift down}
- else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0)))
+ if (Ebene = 1)
{
- if (Ebene = 1)
+ if NumLock
send {blind}{Numpad9}
else
- send {blind){Shift up}{Numpad9}{Shift down}
-
+ send {blind){Shift up}{Numpad9}
if (PriorDeadKey = "comp")
- CompKey := "Num_9"
+ CompKey := "9"
}
+ else if (Ebene = 2)
+ SendUnicodeChar(0x2297) ; Tensorprodukt / Vektor in die Ebene zeigend
else if (Ebene = 3)
- SendUnicodeChar(0x2297) ; Tensorprodukt ; Vektor in die Ebene zeigend
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x226B) ; gg
+ SendUnicodeChar(0x220D) ; Kleines umgekehrtes Elementzeichen
+ else if (Ebene = 4)
+ if NumLock
+ send {blind}{Shift up}{NumpadPgUp}
+ else
+ send {blind}{NumpadPgUp}
return
-
-
neo_Numpad4:
EbeneAktualisieren()
- if ((Ebene = 1) and (NumLock = 0))
- send {blind}{NumpadLeft}
- else if ((Ebene = 2) and (NumLock = 1))
- send {blind}{Shift up}{NumpadLeft}{Shift down}
- else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0)))
+ if ((Ebene = 1) and !(CheckCompUni("1",0x00BC) ; 1/4
+ or CheckCompUni("3",0x00BE))) ; 3/4
{
- if !(CheckCompUni("Num_1",0x00BC) ; 1/4
- or CheckCompUni("1",0x00BE) ; 1/4
- or CheckCompUni("Num_3",0x00BE) ; 3/4
- or CheckCompUni("3",0x00BE)) ; 3/4
- if (Ebene = 1)
- send {blind}{Numpad4}
- else
- send {blind){Shift up}{Numpad4}{Shift down}
-
+ if NumLock
+ send {blind}{Numpad4}
+ else
+ send {blind){Shift up}{Numpad4}
if (PriorDeadKey = "comp")
- CompKey := "Num_4"
+ CompKey := "4"
}
+ else if (Ebene = 2)
+ SendUnicodeChar(0x2282) ; Teilmenge
else if (Ebene = 3)
- SendUnicodeChar(0x2190) ; leftarrow
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x2282) ; subset of
+ SendUnicodeChar(0x2190) ; Linkspfeil
+ else if (Ebene = 4)
+ if NumLock
+ send {blind}{Shift up}{NumpadLeft}
+ else
+ send {blind}{NumpadLeft}
return
neo_Numpad5:
EbeneAktualisieren()
- if ((Ebene = 1) and (NumLock = 0))
- send {blind}{NumpadClear}
- else if ((Ebene = 2) and (NumLock = 1))
- send {blind}{Shift up}{NumpadClear}{Shift down}
- else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0)))
+ if ((Ebene = 1) and !(CheckCompUni("1",0x2155) ; 1/5
+ or CheckCompUni("2",0x2156) ; 2/5
+ or CheckCompUni("3",0x2157) ; 3/5
+ or CheckCompUni("4",0x2158))) ; 4/5
{
- if !(CheckCompUni("Num_1",0x2155) ; 1/5
- or CheckCompUni("1",0x2155) ; 1/5
- or CheckCompUni("Num_2",0x2156) ; 2/5
- or CheckCompUni("2",0x2156) ; 2/5
- or CheckCompUni("Num_3",0x2157) ; 3/5
- or CheckCompUni("3",0x2157) ; 3/5
- or CheckCompUni("Num_4",0x2158) ; 4/5
- or CheckCompUni("4",0x2158)) ; 4/5
- if (Ebene = 1)
- send {blind}{Numpad5}
- else
- send {blind){Shift up}{Numpad5}{Shift down}
-
+ if NumLock
+ send {blind}{Numpad5}
+ else
+ send {blind){Shift up}{Numpad5}
if (PriorDeadKey = "comp")
- CompKey := "Num_5"
+ CompKey := "5"
}
else if (Ebene = 3)
- SendUnicodeChar(0x221E) ; INFINITY
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x220B) ; enthält das Element
+ SendUnicodeChar(0x221E) ; Unendlich
+ else if (Ebene = 2)
+ SendUnicodeChar(0x20AC) ; Euro
+ else if (Ebene = 4) ; Beg
+ if NumLock
+ send {NumPad5}
+ else
+ send {Shift}{Numpad5}
return
neo_Numpad6:
EbeneAktualisieren()
- if ((Ebene = 1) and (NumLock = 0))
- send {blind}{NumpadRight}
- else if ((Ebene = 2) and (NumLock = 1))
- send {blind}{Shift up}{NumpadRight}{Shift down}
- else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0)))
+ if ((Ebene = 1) and !(CheckCompUni("1",0x2159) ; 1/6
+ or CheckCompUni("5",0x215a))) ; 5/6
{
- if !(CheckCompUni("Num_1",0x2159) ; 1/6
- or CheckCompUni("1",0x2159) ; 1/6
- or CheckCompUni("Num_5",0x215A) ; 5/6
- or CheckCompUni("5",0x215A)) ; 5/6
- if (Ebene = 1)
- send {blind}{Numpad6}
- else
- send {blind){Shift up}{Numpad6}{Shift down}
-
+ if NumLock
+ send {blind}{Numpad6}
+ else
+ send {blind){Shift up}{Numpad6}
if (PriorDeadKey = "comp")
- CompKey := "Num_6"
+ CompKey := "6"
}
+ else if (Ebene = 2)
+ SendUnicodeChar(0x2283) ; Obermenge
else if (Ebene = 3)
- SendUnicodeChar(0x2192) ; rightarrow
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x2283) ; superset of
+ SendUnicodeChar(0x2192) ; Rechtspfeil
+ else if (Ebene = 4)
+ if NumLock
+ send {blind}{Shift up}{NumpadRight}
+ else
+ send {blind}{NumpadRight}
return
neo_Numpad1:
EbeneAktualisieren()
- if ((Ebene = 1) and (NumLock = 0))
- send {blind}{NumpadEnd}
- else if ((Ebene = 2) and (NumLock = 1))
- send {blind}{Shift up}{NumpadEnd}{Shift down}
- else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0)))
+ if (Ebene = 1)
{
- if (Ebene = 1)
+ if NumLock
send {blind}{Numpad1}
else
- send {blind){Shift up}{Numpad1}{Shift down}
-
+ send {blind){Shift up}{Numpad1}
if (PriorDeadKey = "comp")
- CompKey := "Num_1"
+ CompKey := "1"
}
+ else if (Ebene = 2)
+ SendUnicodeChar(0x2714) ; Häkchen
else if (Ebene = 3)
SendUnicodeChar(0x2194) ; Links-Rechts-Pfeil
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x2264) ; leq
+ else if (Ebene = 4)
+ if NumLock
+ send {blind}{Shift up}{NumpadEnd}
+ else
+ send {blind}{NumpadEnd}
return
neo_Numpad2:
EbeneAktualisieren()
- if ((Ebene = 1) and (NumLock = 0))
- send {blind}{NumpadDown}
- else if ((Ebene = 2) and (NumLock = 1))
- send {blind}{Shift up}{NumpadDown}{Shift down}
- else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0)))
+ if ((Ebene = 1) and !(CheckCompUni("1",0x00BD))) ; 1/2
{
- if !(CheckCompUni("Num_1",0x00BD) ; 1/2
- or CheckCompUni("1",0x00BD)) ; 1/2
- if (Ebene = 1)
- send {blind}{Numpad2}
- else
- send {blind){Shift up}{Numpad2}{Shift down}
-
+ if NumLock
+ send {blind}{Numpad2}
+ else
+ send {blind){Shift up}{Numpad2}
if (PriorDeadKey = "comp")
- CompKey := "Num_2"
+ CompKey := "2"
}
+ else if (Ebene = 2)
+ SendUnicodeChar(0x222A) ; Vereinigung
else if (Ebene = 3)
- SendUnicodeChar(0x2193) ; downarrow
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x222A) ; vereinigt
+ SendUnicodeChar(0x2192) ; Untenpfeil
+ else if (Ebene = 4)
+ if NumLock
+ send {blind}{Shift up}{NumpadDown}
+ else
+ send {blind}{NumpadDown}
return
neo_Numpad3:
EbeneAktualisieren()
- if ((Ebene = 1) and (NumLock = 0))
- send {blind}{NumpadPgDn}
- else if ((Ebene = 2) and (NumLock = 1))
- send {blind}{Shift up}{NumpadPgDn}{Shift down}
- else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0)))
+ if ((Ebene = 1) and !(CheckCompUni("1",0x2153) ; 1/3
+ or CheckCompUni("5",0x2154))) ; 2/3
{
- if !(CheckCompUni("Num_1",0x2153) ; 1/3
- or CheckCompUni("1",0x2154) ; 1/3
- or CheckCompUni("Num_2",0x2154) ; 2/3
- or CheckCompUni("2",0x2154)) ; 2/3
- if (Ebene = 1)
- send {blind}{Numpad3}
- else
- send {blind){Shift up}{Numpad3}{Shift down}
-
+ if NumLock
+ send {blind}{Numpad3}
+ else
+ send {blind){Shift up}{Numpad3}
if (PriorDeadKey = "comp")
- CompKey := "Num_3"
+ CompKey := "3"
}
+ else if (Ebene = 2)
+ SendUnicodeChar(0x2718) ; Kreuzchen
else if (Ebene = 3)
- SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
- else if ((Ebene = 4) or (Ebene = 5))
- SendUnicodeChar(0x2265) ; geq
+ SendUnicodeChar(0x2192) ; Rechtspfeil
+ else if (Ebene = 4)
+ if NumLock
+ send {blind}{Shift up}{NumpadPgDn}
+ else
+ send {blind}{NumpadPgDn}
return
neo_Numpad0:
EbeneAktualisieren()
- if ((Ebene = 1) and (NumLock = 0))
- send {blind}{NumpadIns}
- else if ((Ebene = 2) and (NumLock = 1))
- send {blind}{Shift up}{NumpadIns}{Shift down}
- else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0)))
+ if (Ebene = 1)
{
- if (Ebene = 1)
+ if NumLock
send {blind}{Numpad0}
else
- send {blind){Shift up}{Numpad0}{Shift down}
-
+ send {blind){Shift up}{Numpad0}
if (PriorDeadKey = "comp")
- CompKey := "Num_0"
+ CompKey := "0"
}
+ else if (Ebene = 2)
+ SendUnicodeChar(0x2030) ; Promille
else if (Ebene = 3)
- send {blind}`%
- else if ((Ebene = 4) or (Ebene = 5))
- send ‰
+ SendUnicodeChar(0x0025) ; Prozent
+ else if (Ebene = 4)
+ if NumLock
+ send {blind}{Shift up}{NumpadIns}
+ else
+ send {blind}{NumpadIns}
return
neo_NumpadDot:
EbeneAktualisieren()
- if ((Ebene = 1) and (NumLock = 0))
- send {blind}{NumpadDel}
- else if ((Ebene = 2) and (NumLock = 1))
- send {blind}{Shift up}{NumpadDel}{Shift down}
- else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0)))
- if (Ebene = 1)
+ if (Ebene = 1)
+ {
+ if NumLock
send {blind}{NumpadDot}
- else
- send {blind){Shift up}{NumpadDot}{Shift down}
+ else
+ send {blind){Shift up}{NumpadDot}
+ }
+ else if (Ebene = 2)
+ send `,
else if (Ebene = 3)
send {blind}.
- else if ((Ebene = 4) or (Ebene = 5))
- send `,
+ else if (Ebene = 4)
+ if NumLock
+ send {blind}{Shift up}{NumpadDel}
+ else
+ send {blind}{NumpadDel}
return
+
+
/*
Sondertasten
*/
+
*space::
if ((einHandNeo))
spacepressed := 1
@@ -1512,11 +1509,7 @@ return
/*
Folgende Tasten sind nur aufgeführt, um PriorDeadKey zu leeren.
Irgendwie sieht das noch nicht schön aus. Vielleicht lässt sich dieses
- Problem irgendwie eleganter lösen...
-
- Nachtrag:
- Weil es mit Alt+Tab Probleme gab, wird hier jetzt erstmal rumgeflickschustert,
- bis eine allgemeinere Lösung gefunden wurde.
+ Problem auch eleganter lösen...
*/
*Enter::
@@ -1535,6 +1528,7 @@ return
}
return
+
*Del::
if (not(lernModus) or lernModus_std_Entf)
send {Blind}{Del}
diff --git a/windows/autohotkey/Source/Keys-Qwert-to-Neo.ahk b/windows/autohotkey/Source/Keys-Qwert-to-Neo.ahk
index 8485b03..062fcb2 100644
--- a/windows/autohotkey/Source/Keys-Qwert-to-Neo.ahk
+++ b/windows/autohotkey/Source/Keys-Qwert-to-Neo.ahk
@@ -443,6 +443,7 @@ VK09SC00F::goto neo_tab
}
; Numpad
+*VK90SC145::goto neo_NumLock
*VK6FSC135::goto neo_NumpadDiv
*VK6ASC037::goto neo_NumpadMult
*VK6DSC04A::goto neo_NumpadSub
diff --git a/windows/autohotkey/Source/Methods-Layers.ahk b/windows/autohotkey/Source/Methods-Layers.ahk
index e2cdb99..362858c 100644
--- a/windows/autohotkey/Source/Methods-Layers.ahk
+++ b/windows/autohotkey/Source/Methods-Layers.ahk
@@ -1,103 +1,137 @@
-/*
- ------------------------------------------------------
- Modifier
- ------------------------------------------------------
-*/
-
-
-;LShift+RShift == CapsLock (simuliert)
+; LShift+RShift == CapsLock (simuliert)
; Es werden nur die beiden Tastenkombinationen abgefragt,
; daher kommen LShift und RShift ungehindert bis in die
; Applikation. Dies ist aber merkwürdig, da beide Shift-
; Tasten nun /modifier keys/ werden und, wie in der AHK-
; Hilfe beschrieben, eigentlich nicht mehr bis zur App
; durchkommen sollten.
+; KeyboardLED(4,"switch") hatte ich zuerst genommen, aber
+; das schaltet, oh Wunder, die LED nicht wieder aus.
+isMod2Locked = 0
VKA1SC136 & VKA0SC02A:: ; RShift, dann LShift
VKA0SC02A & VKA1SC136:: ; LShift, dann RShift
-;
-; mit diesen funktioniert das automatische Übernehmen der
-; gedrückten Shift-Tasten nicht, also z.B. Shift-Ins, wenn Ins
-; bei gedrückter Shift-Taste {blind} gesendet wird
-; *VKA1SC136::
-; *VKA0SC02A::
- if (GetKeyState("VKA1SC136", "P") and GetKeyState("VKA0SC02A", "P"))
- send {blind}{CapsLock}
+ if (GetKeyState("VKA1SC136", "P") and GetKeyState("VKA0SC02A", "P"))
+ {
+ if isMod2Locked
+ {
+ isMod2Locked = 0
+ KeyboardLED(4,"off")
+ }
+ else
+ {
+ isMod2Locked = 1
+ KeyBoardLED(4,"on")
+ }
+ }
return
-
-; Mod3+Mod3 == Mod3-Lock
-; Im Gegensatz zu LShift+RShift werden die beiden Tasten
-; _nicht_ zur Applikation weitergeleitet, da '#' kein
-; Modifier ist und CapsLock sonst den CapsLock-Status
-; beeinflusst. Dafür werden sämtliche Events dieser
-; Tasten abgefangen, und nur bei gleichzeitigem Drücken
-; wird der Mod3-Lock aktiviert und angezeigt.
-
-IsMod3Locked := 0
-; VKBFSC02B & VK14SC03A::
-; VK14SC03A & VKBFSC02B::
+;Mod3-Tasten (Wichtig, sie werden sonst nicht verarbeitet!)
*VKBFSC02B:: ; #
*VK14SC03A:: ; CapsLock
- if (GetKeyState("VKBFSC02B", "P") and GetKeyState("VK14SC03A", "P"))
- {
- if (IsMod3Locked)
- {
- IsMod3Locked = 0
- if (zeigeLockBoxen==1)
- {
- MsgBox Mod3-Feststellung aufgebehoben!
- }
- }
- else
- {
- IsMod3Locked = 1
- if (zeigeLockBoxen==1)
- {
- MsgBox Mod3 festgestellt: Um Mod3 wieder zu lösen drücke beide Mod3 Tasten gleichzeitig!
- }
-
- }
- }
return
-; Mod4+Mod4 == Mod4-Lock
-; Wie bei Mod3-Lock werden im Gegensatz zu LShift+RShift
-; die beiden Tasten _nicht_ zur Applikation weitergeleitet,
-; und nur bei gleichzeitigem Drücken wird der Mod4-Lock
-; aktiviert und angezeigt.
+;Mod4+Mod4 == Mod4-Lock
+; Im Gegensatz zu LShift+RShift werden die beiden Tasten
+; _nicht_ zur Applikation weitergeleitet, und nur bei
+; gleichzeitigem Drücken wird der Mod4-Lock aktiviert und
+; angezeigt.
IsMod4Locked := 0
-; VKA5SC138 & VKE2SC056:: ; AltGr, dann <
-; VKE2SC056 & VKA5SC138:: ; <, dann AltGr
*VKA5SC138::
*VKE2SC056::
- if (GetKeyState("VKA5SC138", "P") and GetKeyState("VKE2SC056", "P"))
- {
- ; Mod4-Lock durch Mod4(rechts)+Mod4(links)
- if (IsMod4Locked)
- {
- if (zeigeLockBoxen==1)
- {
- MsgBox Mod4-Feststellung aufgebehoben!
- }
- IsMod4Locked = 0
- if (UseMod4Light==1)
- {
- KeyboardLED(1,"off")
- }
- }
- else
- {
- if (zeigeLockBoxen==1)
- {
- MsgBox Mod4 festgestellt: Um Mod4 wieder zu lösen drücke beide Mod3 Tasten gleichzeitig!
- }
- IsMod4Locked = 1
- if (UseMod4Light==1)
- {
- KeyboardLED(1,"on")
- }
- }
- }
+ if (GetKeyState("VKA5SC138", "P") and GetKeyState("VKE2SC056", "P"))
+ {
+ if IsMod4Locked
+ {
+ if zeigeLockBox
+ MsgBox Mod4-Feststellung aufgebehoben!
+ IsMod4Locked = 0
+ if UseMod4Light
+ KeyboardLED(1,"off")
+ }
+ else
+ {
+ if zeigeLockBox
+ MsgBox Mod4 festgestellt: Um Mod4 wieder zu lösen, drücke beide Mod4-Tasten gleichzeitig!
+ IsMod4Locked = 1
+ if UseMod4Light
+ KeyboardLED(1,"on")
+ }
+ }
return
+
+Ebene12 := 0
+Ebene7 := 0
+Ebene8 := 0
+
+EbeneAktualisieren()
+{
+ global
+ PriorDeadKey := DeadKey
+ PriorCompKey := CompKey
+ DeadKey := ""
+ CompKey := ""
+ Modstate := IsMod4Pressed() . IsMod3Pressed() . IsShiftPressed()
+ if ahkTreiberKombi
+ if ( Modstate = "001")
+ Ebene = 6
+ else
+ Ebene = -1
+ else
+ if (Modstate = "000") ; Ebene 1: Ohne Mod
+ Ebene = 1
+ else if (Modstate = "001") ; Ebene 2: Shift
+ Ebene = 2
+ else if (Modstate = "010") ; Ebene 3: Mod3
+ Ebene = 3
+ else if (Modstate = "100") ; Ebene 4: Mod4
+ Ebene = 4
+ else if (Modstate = "011") ; Ebene 5: Shift+Mod3
+ Ebene = 5
+ else if (Modstate = "110") ; Ebene 6: Mod3+Mod4
+ Ebene = 6
+ else if (Modstate = "101") ; Ebene 7: Shift+Mod4 impliziert Ebene 4
+ {
+ Ebene = 4
+ Ebene7 = 1
+ }
+ else if (Modstate = "111") ; Ebene 8: Shift+Mod3+Mod4 impliziert Ebene 6
+ {
+ Ebene = 6
+ Ebene8 = 1
+ }
+ Ebene12 := ((Ebene = 1) or (Ebene = 2))
+ Ebene14 := ((Ebene = 1) or (Ebene = 4))
+ GetKeyState("NumLock","T")
+}
+
+
+IsShiftPressed()
+{aAAA
+ global
+ return ((GetKeyState("Shift","P")) = !(isMod2Locked)) ;xor
+}
+
+IsMod3Pressed()
+{
+ global
+ return ((GetKeyState("CapsLock","P")) or (GetKeyState("#","P")))
+}
+
+IsMod4Pressed()
+{
+ global
+ if( not(einHandNeo) or not(spacepressed))
+ if IsMod4Locked
+ return (not ( GetKeyState("<","P") or GetKeyState("SC138","P")))
+ else
+ return ( GetKeyState("<","P") or GetKeyState("SC138","P"))
+ else
+ if IsMod4Lock
+ return (not ( GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P")))
+ else
+ return ( GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P"))
+}
+
+
diff --git a/windows/autohotkey/Source/Methods-Lights.ahk b/windows/autohotkey/Source/Methods-Lights.ahk
index 4c327e1..860d583 100644
--- a/windows/autohotkey/Source/Methods-Lights.ahk
+++ b/windows/autohotkey/Source/Methods-Lights.ahk
@@ -6,7 +6,7 @@
Benutzungshinweise: Man benutze
KeyboardLED(LEDvalue,"Cmd"), wobei
Cmd = on/off/switch,
- LEDvalue: ScrollLock=1, NumLock=2, CapsLock=4
+ LEDvalue: ScrollLock=1, NumLock=2, CapsLock=4,
bzw. eine beliebige Summe dieser Werte:
AlleAus=0, CapsLock+NumLock=6, etc.
@@ -14,7 +14,7 @@
http://www.autohotkey.com/forum/viewtopic.php?t=10532
Um eventuelle Wechselwirkungen mit dem bestehenden
- Code (insb. der Unicode-Konvertierung) auszuschießen,
+ Code (insb. der Unicode-Konvertierung) auszuschließen,
sind auch alle (Hilfsmethoden) mit dem Postfix LED
versehen worden.
------------------------------------------------------
diff --git a/windows/autohotkey/Source/Methods-Other.ahk b/windows/autohotkey/Source/Methods-Other.ahk
index e80d2e4..610f763 100644
--- a/windows/autohotkey/Source/Methods-Other.ahk
+++ b/windows/autohotkey/Source/Methods-Other.ahk
@@ -1,135 +1,3 @@
-/*
- Funktionen
-*/
-
-/*
-Ebenen laut Referenz:
-1. Ebene (kein Mod) 4. Ebene (Mod4)
-2. Ebene (Umschalt) 5. Ebene (Umschalt+Mod3)
-3. Ebene (Mod3) 6. Ebene (Mod3+Mod4)
-*/
-
-EbeneAktualisieren()
-{
- global
- PriorDeadKey := DeadKey
- PriorCompKey := CompKey
- DeadKey := ""
- CompKey := ""
- Ebene12 := 0
- Ebene7 := 0
- Ebene8 := 0
- Modstate := IsShiftPressed() . IsMod3Pressed() . IsMod4Pressed()
-
- if (ahkTreiberKombi)
- if ( Modstate = "001")
- Ebene = 6
- else
- Ebene = -1
- else
- if (Modstate = "000")
- Ebene = 1 ; Ebene 1: Ohne Mod
- else if (Modstate = "100")
- Ebene = 2 ; Ebene 2: Shift
- else if (Modstate = "010")
- Ebene = 3 ; Ebene 3: Mod3
- else if (Modstate = "001")
- Ebene = 4 ; Ebene 4: Mod4
- else if (Modstate = "110")
- Ebene = 5 ; Ebene 5: Shift+Mod3
- else if (Modstate = "011")
- Ebene = 6 ; Ebene 6: Mod3+Mod4
- else if (Modstate = "101")
- {
- Ebene = 4 ; Ebene 7: Shift+Mod4 impliziert Ebene 4
- Ebene7 = 1
- }
- else if (Modstate = "111")
- {
- Ebene = 6 ; Ebene 8: Shift+Mod3+Mod4 impliziert Ebene 6
- Ebene8 = 1
- }
-
- Ebene12 := ((Ebene = 1) or (Ebene = 2))
-
- if GetKeyState("NumLock","T")
- NumLock = 1
- else
- NumLock = 0
-}
-
-
-IsShiftPressed()
-{
- return GetKeyState("Shift","P")
-}
-
-IsMod3Pressed()
-{
- global
- if (IsMod3Locked)
- {
- return (not ( GetKeyState("CapsLock","P") or GetKeyState("#","P") )) ; # = SC02B
- }
- else {
- return ( GetKeyState("CapsLock","P") or GetKeyState("#","P") ) ; # = SC02B
- }
-}
-
-IsMod4Pressed()
-{
- global
- if( not(einHandNeo) or not(spacepressed) )
- {
- if (IsMod4Locked)
- {
- return (not ( GetKeyState("<","P") or GetKeyState("SC138","P")))
- }
- else {
- return ( GetKeyState("<","P") or GetKeyState("SC138","P"))
- }
- }
- else
- {
- if (IsMod4Locked)
- {
- return (not ( GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P")))
- }
- else {
- return ( GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P"))
- }
- }
-
-}
-
-
-SendUnicodeChar(charCode)
-{
- IfWinActive, ahk_class gdkWindowToplevel
- {
- StringLower, charCode, charCode
- send % "^+u" . SubStr(charCode,3) . " "
- } else {
- VarSetCapacity(ki, 28 * 2, 0)
-
- EncodeInteger(&ki + 0, 1)
- EncodeInteger(&ki + 6, charCode)
- EncodeInteger(&ki + 8, 4)
- EncodeInteger(&ki +28, 1)
- EncodeInteger(&ki +34, charCode)
- EncodeInteger(&ki +36, 4|2)
-
- DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28)
- }
-}
-/*
-Über den GTK-Workaround:
-Dieser basiert auf http://www.autohotkey.com/forum/topic32947.html
-
-Der Aufruf von »SubStr(charCode,3)« geht davon aus, dass alle charCodes in Hex mit führendem „0x“ angegeben sind. Die abenteuerliche „^+u“-Konstruktion benötigt im Übrigen den Hex-Wert in Kleinschrift, was derzeit nicht bei den Zeichendefinitionen umgesetzt ist, daher zentral und weniger fehlerträchtig an dieser Stelle. Außerdem ein abschließend gesendetes Space, sonst bleibt der „eingetippte“ Unicode-Wert noch kurz sichtbar stehen, bevor er sich GTK-sei-dank in das gewünschte Zeichen verwandelt.
-*/
-
-
BSSendUnicodeChar(charCode)
{
send {bs}
@@ -148,12 +16,6 @@ Comp3UnicodeChar(charCode)
SendUnicodeChar(charCode)
}
-
-EncodeInteger(ref, val)
-{
- DllCall("ntdll\RtlFillMemoryUlong", "Uint", ref, "Uint", 4, "Uint", val)
-}
-
deadAsc(val)
{
global
diff --git a/windows/autohotkey/Source/Methods-ScreenKeyboard.ahk b/windows/autohotkey/Source/Methods-ScreenKeyboard.ahk
index 6b12990..a64c426 100644
--- a/windows/autohotkey/Source/Methods-ScreenKeyboard.ahk
+++ b/windows/autohotkey/Source/Methods-ScreenKeyboard.ahk
@@ -173,98 +173,4 @@ ToggleAlwaysOnTop:
alwaysOnTop = 1
}
Return
- ; Ende der BildschirmTastatur
-
-/*
- ------------------------------------------------------
- Shift+Pause "pausiert" das Script.
- ------------------------------------------------------
-*/
-
-*pause::
-Suspend, Permit
- if isshiftpressed()
- goto togglesuspend
- else
- send {blind}{pause}
-return
-
-; ------------------------------------
-
-^.::einHandNeo := not(einHandNeo) ; Punkt
-^,::lernModus := not(lernModus) ; Komma
-
-
-
-togglesuspend:
- if A_IsSuspended
- {
- menu, tray, rename, %enable%, %disable%
- menu, tray, tip, %name%
- if (iconBenutzen)
- menu, tray, icon, %ResourceFolder%\neo.ico,,1
- suspend , off ; Schaltet Suspend aus -> NEO
- }
- else
- {
- menu, tray, rename, %disable%, %enable%
- menu, tray, tip, %name% : Deaktiviert
- if (iconBenutzen)
- menu, tray, icon, %ResourceFolder%\neo_disabled.ico,,1
- suspend , on ; Schaltet Suspend ein -> QWERTZ
- }
-
-return
-
-
-help:
- Run, %A_WinDir%\hh mk:@MSITStore:autohotkey.chm
-return
-
-
-about:
- msgbox, 64, %name% – Ergonomische Tastaturbelegung,
- (
- %name%
- `nDas Neo-Layout ersetzt das übliche deutsche
- Tastaturlayout mit der Alternative Neo,
- beschrieben auf http://neo-layout.org/.
- `nDazu sind keine Administratorrechte nötig.
- `nWenn Autohotkey aktiviert ist, werden alle Tastendrucke
- abgefangen und statt dessen eine Übersetzung weitergeschickt.
- `nDies geschieht transparent für den Anwender,
- es muss nichts installiert werden.
- `nDie Zeichenübersetzung kann leicht über das Icon im
- Systemtray deaktiviert werden. `n
- )
-return
-
-
-neo:
- run http://neo-layout.org/
-return
-
-autohotkey:
- run http://autohotkey.com/
-return
-
-open:
- ListLines ; shows the Autohotkey window
-return
-
-edit:
- edit
-return
-
-reload:
- Reload
-return
-
-hide:
- menu, tray, noicon
-return
-
-exitprogram:
- exitapp
-return
diff --git a/windows/autohotkey/Source/Methods-Unicode.ahk b/windows/autohotkey/Source/Methods-Unicode.ahk
index 00a5ba5..227bedf 100644
--- a/windows/autohotkey/Source/Methods-Unicode.ahk
+++ b/windows/autohotkey/Source/Methods-Unicode.ahk
@@ -32,5 +32,34 @@ BSUnicode(code)
Neuer Weg – Benutzung der entsprechenden Win32-API-Methode
************************************************************/
+/*
+Über den GTK-Workaround:
+Dieser basiert auf http://www.autohotkey.com/forum/topic32947.html
+Der Aufruf von »SubStr(charCode,3)« geht davon aus, dass alle charCodes in Hex mit führendem „0x“ angegeben sind. Die abenteuerliche „^+u“-Konstruktion benötigt im Übrigen den Hex-Wert in Kleinschrift, was derzeit nicht bei den Zeichendefinitionen umgesetzt ist, daher zentral und weniger fehlerträchtig an dieser Stelle. Außerdem ein abschließend gesendetes Space, sonst bleibt der „eingetippte“ Unicode-Wert noch kurz sichtbar stehen, bevor er sich GTK-sei-dank in das gewünschte Zeichen verwandelt.
+*/
+
+SendUnicodeChar(charCode)
+{
+ IfWinActive, ahk_class gdkWindowToplevel
+ {
+ StringLower, charCode, charCode
+ send % "^+u" . SubStr(charCode,3) . " "
+ } else {
+ VarSetCapacity(ki, 28 * 2, 0)
+
+ EncodeInteger(&ki + 0, 1)
+ EncodeInteger(&ki + 6, charCode)
+ EncodeInteger(&ki + 8, 4)
+ EncodeInteger(&ki +28, 1)
+ EncodeInteger(&ki +34, charCode)
+ EncodeInteger(&ki +36, 4|2)
+ DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28)
+ }
+}
+
+EncodeInteger(ref, val)
+{
+ DllCall("ntdll\RtlFillMemoryUlong", "Uint", ref, "Uint", 4, "Uint", val)
+}
diff --git a/windows/autohotkey/Source/Warning.ahk b/windows/autohotkey/Source/Warning.ahk
index 6148298..514b391 100644
--- a/windows/autohotkey/Source/Warning.ahk
+++ b/windows/autohotkey/Source/Warning.ahk
@@ -10,7 +10,6 @@ Alle weiterführende Informationen finden sich im Abschnitt
== Hinweise für Entwickler ==
in der Datei README.txt!
*******************************************
-*/
@@ -28,7 +27,9 @@ in der Datei README.txt!
-/*
+
+
+
*******************************************
Das war die letzte WARNUNG, ich hoffe nur dass
Sie wirklich wissen was Sie hier tun wollen ...