summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--windows/XP/autohotkey/neo20-all-in-one.ahk4218
-rw-r--r--windows/XP/autohotkey/neo20-all-in-one.exebin0 -> 220493 bytes
-rw-r--r--windows/XP/autohotkey/neo20-all-in-one.zipbin214826 -> 0 bytes
3 files changed, 2135 insertions, 2083 deletions
diff --git a/windows/XP/autohotkey/neo20-all-in-one.ahk b/windows/XP/autohotkey/neo20-all-in-one.ahk
index 4155e4a..783c35b 100644
--- a/windows/XP/autohotkey/neo20-all-in-one.ahk
+++ b/windows/XP/autohotkey/neo20-all-in-one.ahk
@@ -1,2083 +1,2135 @@
-/*
- Titel: NEO 2.0 beta Autohotkey-Treiber
- Version: 0.08 beta
- Datum: 29.06.2007
- Basiert auf: neo20.ahk und neo20-remap.ahk vom 25.05.2007
-
- TODO: - ausgiebig testen...
- - Men des Tasksymbols
- - Bessere Lsung fr das leeren von PriorDeadKey finden, damit die Sondertasten
- nicht mehr abgefangen werden mssen.
- - CapsLock auf 1. und 2. Ebene einbauen:
- Die Buchstaben reagieren richtig auf CapsLock, da hier "sendinput {blind}"
- verwendet wird. Bei anderen Tasten muss CapsLock in der ersten und zweiten Ebene
- explizit abgefragt werden.
- (Lsst sich das elegant in eine Funktion auslagern?)
- Ideen: - DeadKeys tot machen
- - Symbol ndern (Neo-Logo abwarten)
- - bei Ebene 5 rechte Hand (Numpad) z.B. Numpad5 statt 5 senden
-*/
-
-; aus Nora's script kopiert:
-#usehook on
-#singleinstance force
-#LTrim
- ; Quelltext kann eingerckt werden,
- ; msgbox ist trotzdem linksbndig
-
-SendMode Input
-SetTitleMatchMode 2
-
-;name = NEO 2.0
-;enable = Aktiviere %name%
-;disable = Deaktiviere %name%
-
-; berprfung auf deutsches Tastaturlayout
-; ----------------------------------------
-
-regread, inputlocale, HKEY_CURRENT_USER, Keyboard Layout\Preload, 1
-regread, inputlocalealias, HKEY_CURRENT_USER
- , Keyboard Layout\Substitutes, %inputlocale%
-if inputlocalealias <>
- inputlocale = %inputlocalealias%
-if inputlocale <> 00000407
-{
- suspend
- regread, inputlocale, HKEY_LOCAL_MACHINE
- , SYSTEM\CurrentControlSet\Control\Keyboard Layouts\%inputlocale%
- , Layout Text
- msgbox, 48, Warnung!,
- (
- Nicht kompatibles Tastaturlayout:
- `t%inputlocale%
- `nDas deutsche QWERTZ muss als Standardlayout eingestellt
- sein, damit %name% wie erwartet funktioniert.
- `nndern Sie die Tastatureinstellung unter
- `tSystemsteuerung
- `t-> Regions- und Sprachoptionen
- `t-> Sprachen
- `t-> Details... `n
- )
- exitapp
-}
-
-/*
- Variablen initialisieren
-*/
-
-Ebene = 1
-PriorDeadKey := ""
-
-
-/*
- ------------------------------------------------------
- Modifier
- ------------------------------------------------------
-*/
-
-; CapsLock durch Mod3+Mod3
-*#::
-*CapsLock::
- if GetKeyState("#","P") and GetKeyState("CapsLock","P")
- {
- if GetKeyState("CapsLock","T")
- {
- setcapslockstate, off
- }
- else
- {
- setcapslockstate, on
- }
- }
-return
-
-; KP_Decimal durch Mod5+Mod5
-*<::
-*SC138::
- if GetKeyState("<","P") and GetKeyState("SC138","P")
- {
- send {numpaddot}
- }
- return
-
-
-/*
- Ablauf bei toten Tasten:
- 1. Ebene Aktualisieren
- 2. Abhngig von der Variablen "Ebene" Zeichen ausgeben und die Variable "PriorDeadKey" setzen
-
- Ablauf bei "lebenden" (sagt man das?) Tasten:
- 1. Ebene Aktualisieren
- 2. Abhngig von den Variablen "Ebene" und "PriorDeadKey" Zeichen ausgeben
- 3. "PriorDeadKey" mit leerem String berschreiben
-
- ------------------------------------------------------
- Reihe 1
- ------------------------------------------------------
-*/
-
-*^::
- EbeneAktualisieren()
- if Ebene = 1
- {
- Unicode("ˆ") ; circumflex, tot
- PriorDeadKey := "c1"
- }
- else if Ebene = 2
- {
- Unicode("ˇ") ; caron, tot
- PriorDeadKey := "c2"
- }
- else if Ebene = 3
- {
- Unicode("˘") ; brevis
- PriorDeadKey := "c3"
- }
- else if Ebene = 4
- {
- send - ; querstrich, tot
- PriorDeadKey := "c4"
- }
- else if Ebene = 5
- {
- Unicode("·") ; Mittenpunkt, tot
- PriorDeadKey := "c5"
- }
- else if Ebene = 6
- {
- Send . ; punkt darunter
- PriorDeadKey := "c6"
- }
-return
-
-*1::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex 1
- BSUnicode("¹")
- Else
- send {blind}1
- }
- else if Ebene = 2
- send
- else if Ebene = 4
- send
- else if Ebene = 5
- Unicode("•") ; bullet
- PriorDeadKey := ""
-return
-
-*2::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("²")
- Else
- send {blind}2
- }
- else if Ebene = 2
- send
- else if Ebene = 4
- send
- PriorDeadKey := ""
-return
-
-*3::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("³")
- Else
- send {blind}3
- }
- else if Ebene = 2
- send
- else if Ebene = 4
- send
- else if Ebene = 5
- Unicode("⅜") ; 3/8
- PriorDeadKey := ""
-return
-
-*4::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}4
- else if Ebene = 2
- send
- else if Ebene = 3
- send
- else if Ebene = 5
- Send {PgUp} ; Prev
- else if Ebene = 6
- Send +{Prev}
- PriorDeadKey := ""
-return
-
-*5::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}5
- else if Ebene = 2
- send
- else if Ebene = 3
- send
- else if Ebene = 5
- Unicode("⅝") ; 5/8
- else if Ebene = 6
- Unicode("⇒") ; Implikation
- PriorDeadKey := ""
-return
-
-*6::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}6
- else if Ebene = 2
- send $
- else if Ebene = 3
- send
- else if Ebene = 4
- send
- else if Ebene = 6
- Unicode("⇔") ; quivalenz
- PriorDeadKey := ""
-return
-
-*7::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}7
- else if Ebene = 2
- send
- else if Ebene = 3
- send
- else if Ebene = 4
- send
- else if Ebene = 5
- Unicode("⅞") ; 7/8
- else if Ebene = 6
- Send
- PriorDeadKey := ""
-return
-
-*8::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}8
- else if Ebene = 2
- send
- else if Ebene = 3
- send
- else if Ebene = 5
- Send /
- else if Ebene = 6
- Unicode("∃") ; Existenzquantor
- PriorDeadKey := ""
-return
-
-*9::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}9
- else if Ebene = 2
- send
- else if Ebene = 3
- send
- else if Ebene = 5
- Send *
- else if Ebene = 6
- Unicode("∀") ; Allquantor
- PriorDeadKey := ""
-return
-
-*0::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}0
- else if Ebene = 2
- send
- else if Ebene = 3
- send
- else if Ebene = 5
- Send -
- else if Ebene = 6
- Unicode("∨") ; logisch oder
- PriorDeadKey := ""
-return
-
-*::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}- ; Bind
- else if Ebene = 2
- Unicode("–") ; Ged
- else if Ebene = 3
- Unicode("—")
- else if Ebene = 6
- Unicode("∧") ; logisch und
- PriorDeadKey := ""
-return
-
-*::
- EbeneAktualisieren()
- if Ebene = 1
- {
- send {}{space} ; akut, tot
- PriorDeadKey := "a1"
- }
- else if Ebene = 2
- {
- send ``{space}
- PriorDeadKey := "a2"
- }
- else if Ebene = 3
- {
- send ; cedilla
- PriorDeadKey := "a3"
- }
- else if Ebene = 4
- {
- Unicode("˛") ; ogonek
- PriorDeadKey := "a4"
- }
- else if Ebene = 5
- {
- Unicode("˙") ; punkt oben drber
- PriorDeadKey := "a5"
- }
- else if Ebene = 6
- {
- Unicode("˚") ; ring obendrauf
- PriorDeadKey := "a6"
- }
-return
-
-
-/*
- ------------------------------------------------------
- Reihe 2
- ------------------------------------------------------
-*/
-
-*q::
- EbeneAktualisieren()
- if Ebene = 1
- sendinput {blind}x
- else if Ebene = 2
- sendinput {blind}X
- else if Ebene = 3
- send @
- else if Ebene = 4
- Unicode("ξ") ;xi
- else if Ebene = 6
- Unicode("Ξ") ; Xi
- PriorDeadKey := ""
-return
-
-
-*w::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("ṿ")
- Else
- sendinput {blind}v
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("Ṿ")
- Else
- sendinput {blind}V
- }
- else if Ebene = 3
- send _
- else if Ebene = 5
- Send {Backspace}
- else if Ebene = 6
- Unicode("Λ") ; Lambda
- PriorDeadKey := ""
-return
-
-
-
-*e::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "t5") ; Schrgstrich
- BSUnicode("ł")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("ĺ")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("ľ")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("ļ")
- Else If (PriorDeadKey = "c5") ; Mittenpunkt
- BSUnicode("ŀ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("ḷ")
- Else
- sendinput {blind}l
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "a1") ; akut
- BSUnicode("Ĺ")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("Ľ")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("Ļ")
- Else If (PriorDeadKey = "t5") ; Schrgstrich
- BSUnicode("Ł")
- Else If (PriorDeadKey = "c5") ; Mittenpunkt
- BSUnicode("Ŀ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("Ḷ")
- Else
- sendinput {blind}L
- }
- else if Ebene = 3
- send [
- else if Ebene = 4
- Unicode("λ") ;lambda
- else if Ebene = 5
- Sendinput {Blind}{Up}
- else if Ebene = 6
- Sendinput {Blind}+{Up}
- PriorDeadKey := ""
-return
-
-
-*r::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("ĉ")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("č")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("ć")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("ç")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ċ")
- Else
- sendinput {blind}c
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("Ĉ")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("Č")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("Ć")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("Ç")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ċ")
- Else
- sendinput {blind}C
- }
- else if Ebene = 3
- send ]
- else if Ebene = 4
- Unicode("χ") ;chi
- else if Ebene = 5
- Send {Tab}
- else if Ebene = 6
- Send +{Tab}
- PriorDeadKey := ""
-return
-
-*t::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("ŵ")
- Else
- sendinput {blind}w
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("ŵ")
- Else
- sendinput {blind}W
- }
- else if Ebene = 3
- send {^}{space} ; untot
- else if Ebene = 5
- Send {Insert}
- else if Ebene = 6
- Send +{Insert}
- PriorDeadKey := ""
-return
-
-*z::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("ķ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("ḳ")
- Else
- sendinput {blind}k
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("Ķ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("Ḳ")
- Else
- sendinput {blind}K
- }
- else if Ebene = 3
- sendraw !
- else if Ebene = 4
- Unicode("κ") ;kappa
- else if Ebene = 5
- Send
- else if Ebene = 6
- Send
- PriorDeadKey := ""
-return
-
-*u::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("ĥ")
- Else If (PriorDeadKey = "c4") ; Querstrich
- BSUnicode("ħ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ḣ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("ḥ")
- Else sendinput {blind}h
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("Ĥ")
- Else If (PriorDeadKey = "c4") ; Querstrich
- BSUnicode("Ħ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ḣ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("Ḥ")
- Else sendinput {blind}H
- }
- else if Ebene = 3
- {
- If (PriorDeadKey = "c4") ; Querstrich
- BSUnicode("≤")
- Else
- send {blind}<
- }
- else if Ebene = 4
- Unicode("ψ") ;psi
- else if Ebene = 5
- Send 7
- else if Ebene = 6
- Unicode("Ψ") ; Phi
- PriorDeadKey := ""
-return
-
-*i::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("ĝ")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("ğ")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("ģ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ġ")
- Else sendinput {blind}g
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("Ĝ")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("Ğ")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("Ģ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ġ")
- Else sendinput {blind}G
- }
- else if Ebene = 3
- {
- If (PriorDeadKey = "c4") ; Querstrich
- BSUnicode("≥")
- Else
- send >
- }
- else if Ebene = 4
- Unicode("γ") ;gamma
- else if Ebene = 5
- Send 8
- else if Ebene = 6
- Unicode("Γ") ; Gamma
- PriorDeadKey := ""
-return
-
-*o::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "t5") ; durchgestrichen
- BSUnicode("ƒ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ḟ")
- Else sendinput {blind}f
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "t5") ; durchgestrichen
- BSUnicode("₣")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ḟ")
- Else sendinput {blind}F
- }
- else if Ebene = 3
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("≙")
- Else If (PriorDeadKey = "t1") ; tilde
- BSUnicode("≅")
- Else If (PriorDeadKey = "t5") ; Schrgstrich
- BSUnicode("≠")
- Else If (PriorDeadKey = "c4") ; Querstrich
- BSUnicode("≡")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("≚")
- Else If (PriorDeadKey = "a6") ; ring drber
- BSUnicode("≗")
-
-
-
-/*
- was bedeutet dieser PriorHotkey?
-*/
-
- Else If A_PriorHotkey = +1 ; Grad
- BSUnicode("≗")
- Else
- send `=
- }
- else if Ebene = 4
- Unicode("φ") ;phi
- else if Ebene = 5
- Send 9
- else if Ebene = 6
- Unicode("Φ") ; Psi
- PriorDeadKey := ""
-return
-
-*p::
- EbeneAktualisieren()
- if Ebene = 1
- sendinput {blind}q
- else if Ebene = 2
- sendinput {blind}Q
- else if Ebene = 3
- send {&}
- else if Ebene = 5
- Send {+}
- else if Ebene = 6
- Unicode("∧") ; logisches Und
- PriorDeadKey := ""
-return
-
-*::
- EbeneAktualisieren()
- if Ebene = 1
- if GetKeyState("CapsLock","T")
- {
- Unicode("ẞ") ; versal-
- }
- else
- {
- send
- }
- else if Ebene = 2
- if GetKeyState("CapsLock","T")
- {
- send
- }
- else
- {
- Unicode("ẞ") ; versal-
- }
- else if Ebene = 3
- Unicode("ij") ; ij
- else if Ebene = 4
- Unicode("IJ") ;IJ
- else if Ebene = 5
- Unicode("ə") ; schwa
- else if Ebene = 6
- Unicode("Ə") ; Schwa
- PriorDeadKey := ""
-return
-
-
-*+::
- EbeneAktualisieren()
- if Ebene = 1
- {
- Unicode("˜") ; tilde, tot
- PriorDeadKey := "t1"
- }
- else if Ebene = 2
- {
- Unicode("ˉ") ; macron, tot
- PriorDeadKey := "t2"
- }
- else if Ebene = 3
- {
- Unicode("¨") ; Diaerese
- PriorDeadKey := "t3"
- }
- else if Ebene = 4
- {
- send " ;doppelakut
- PriorDeadKey := "t4"
- }
- else if Ebene = 5
- {
- Unicode("/") ; Schrgstrich, tot
- PriorDeadKey := "t5"
- }
- else if Ebene = 6
- {
- Unicode("ˏ") ; komma drunter, tot
- PriorDeadKey := "t6"
- }
-return
-
-
-/*
- ------------------------------------------------------
- Reihe 3
- ------------------------------------------------------
-*/
-
-*a::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("û")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("ú")
- Else If (PriorDeadKey = "a2") ; grave
- BSUnicode("ù")
- Else If (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}
- Else If (PriorDeadKey = "t4") ; doppelakut
- BSUnicode("ű")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("ŭ")
- Else If (PriorDeadKey = "t2") ; macron
- BSUnicode("ū")
- Else If (PriorDeadKey = "a4") ; ogonek
- BSUnicode("ų")
- Else If (PriorDeadKey = "a6") ; Ring
- BSUnicode("ů")
- Else If (PriorDeadKey = "t1") ; tilde
- BSUnicode("ũ")
- Else
- sendinput {blind}u
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("Û")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("Ú")
- Else If (PriorDeadKey = "a2") ; grave
- BSUnicode("Ù")
- Else If (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}
- Else If (PriorDeadKey = "a6") ; Ring
- BSUnicode("Ů")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("Ŭ")
- Else If (PriorDeadKey = "t4") ; doppelakut
- BSUnicode("Ű")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("Ů")
- Else If (PriorDeadKey = "t2") ; macron
- BSUnicode("Ū")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("Ŭ")
- Else If (PriorDeadKey = "a4") ; ogonek
- BSUnicode("Ų")
- Else If (PriorDeadKey = "t1") ; tilde
- BSUnicode("Ũ")
- Else
- sendinput {blind}U
- }
- else if Ebene = 3
- send \
- else if Ebene = 5
- Send {blind}{Home}
- else if Ebene = 6
- Send {blind}+{Home}
- PriorDeadKey := ""
-return
-
-*s::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("î")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("í")
- Else If (PriorDeadKey = "a2") ; grave
- BSUnicode("ì")
- Else If (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}
- Else If (PriorDeadKey = "t2") ; macron
- BSUnicode("ī")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("ĭ")
- Else If (PriorDeadKey = "a4") ; ogonek
- BSUnicode("į")
- Else If (PriorDeadKey = "t1") ; tilde
- BSUnicode("ĩ")
- Else If (PriorDeadKey = "a5") ; (ohne) punkt darber
- BSUnicode("ı")
- Else
- sendinput {blind}i
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("Î")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("Í")
- Else If (PriorDeadKey = "a2") ; grave
- BSUnicode("Ì")
- Else If (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}
- Else If (PriorDeadKey = "t2") ; macron
- BSUnicode("Ī")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("Ĭ")
- Else If (PriorDeadKey = "a4") ; ogonek
- BSUnicode("Į")
- Else If (PriorDeadKey = "t1") ; tilde
- BSUnicode("Ĩ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("İ")
- Else
- sendinput {blind}I
- }
- else if Ebene = 3
- send `/
- else if Ebene = 4
- Unicode("ι") ;iota
- else if Ebene = 5
- Sendinput {Blind}{Left}
- else if Ebene = 6
- Sendinput {Blind}+{Left}
- PriorDeadKey := ""
-return
-
-*d::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("â")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("á")
- Else If (PriorDeadKey = "a2") ; grave
- BSUnicode("à")
- Else If (PriorDeadKey = "t3") ; Diaerese
- send {bs}
- Else If (PriorDeadKey = "a6") ; Ring
- Send {bs}
- Else If (PriorDeadKey = "t1") ; tilde
- BSUnicode("ã")
- Else If (PriorDeadKey = "a4") ; ogonek
- BSUnicode("ą")
- Else If (PriorDeadKey = "t2") ; macron
- BSUnicode("ā")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("ă")
- Else
- sendinput {blind}a
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("Â")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("Á")
- Else If (PriorDeadKey = "a2") ; grave
- BSUnicode("À")
- Else If (PriorDeadKey = "t3") ; Diaerese
- send {bs}
- Else If (PriorDeadKey = "t1") ; tilde
- BSUnicode("Ã")
- Else If (PriorDeadKey = "a6") ; Ring
- Send {bs}
- Else If (PriorDeadKey = "t2") ; macron
- BSUnicode("Ā")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("Ă")
- Else If (PriorDeadKey = "a4") ; ogonek
- BSUnicode("Ą")
- Else
- sendinput {blind}A
- }
- else if Ebene = 3
- sendraw {
- else if Ebene = 4
- Unicode("α") ;alpha
- else if Ebene = 5
- Sendinput {Blind}{Down}
- else if Ebene = 6
- Sendinput {Blind}+{Down}
- PriorDeadKey := ""
-return
-
-*f::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("ê")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("é")
- Else If (PriorDeadKey = "a2") ; grave
- BSUnicode("è")
- Else If (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}
- Else If (PriorDeadKey = "a4") ; ogonek
- BSUnicode("ę")
- Else If (PriorDeadKey = "t2") ; macron
- BSUnicode("ē")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("ĕ")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("ě")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ė")
- Else
- sendinput {blind}e
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("Ê")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("É")
- Else If (PriorDeadKey = "a2") ; grave
- BSUnicode("È")
- Else If (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("Ě")
- Else If (PriorDeadKey = "t2") ; macron
- BSUnicode("Ē")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("Ĕ")
- Else If (PriorDeadKey = "a4") ; ogonek
- BSUnicode("Ę")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ė")
- Else
- sendinput {blind}E
- }
- else if Ebene = 3
- sendraw }
- else if Ebene = 4
- Unicode("ε") ;epsilon
- else if Ebene = 5
- Sendinput {Blind}{Right}
- else if Ebene = 6
- Sendinput {Blind}+{Right}
- PriorDeadKey := ""
-return
-
-*g::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("ô")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("ó")
- Else If (PriorDeadKey = "a2") ; grave
- BSUnicode("ò")
- Else If (PriorDeadKey = "t3") ; Diaerese
- Send, {bs}
- Else If (PriorDeadKey = "t1") ; tilde
- BSUnicode("õ")
- Else If (PriorDeadKey = "t4") ; doppelakut
- BSUnicode("ő")
- Else If (PriorDeadKey = "t5") ; Schrgstrich
- BSUnicode("ø")
- Else If (PriorDeadKey = "t2") ; macron
- BSUnicode("ō")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("ŏ")
- Else
- sendinput {blind}o
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("Ô")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("Ó")
- Else If (PriorDeadKey = "a2") ; grave
- BSUnicode("Ò")
- Else If (PriorDeadKey = "t5") ; Schrgstrich
- BSUnicode("Ø")
- Else If (PriorDeadKey = "t1") ; tilde
- BSUnicode("Õ")
- Else If (PriorDeadKey = "t4") ; doppelakut
- BSUnicode("Ő")
- Else If (PriorDeadKey = "t3") ; Diaerese
- send {bs}
- Else If (PriorDeadKey = "t2") ; macron
- BSUnicode("Ō")
- Else If (PriorDeadKey = "c3") ; brevis
- BSUnicode("Ŏ")
- Else
- sendinput {blind}O
- }
- else if Ebene = 3
- send *
- else if Ebene = 4
- Unicode("ω") ;omega
- else if Ebene = 5
- Send {blind}{End}
- else if Ebene = 6
- Send {blind}+{End}
- PriorDeadKey := ""
-return
-
-*h::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("ŝ")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("ś")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("š")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("ş")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ṡ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("ṣ")
- Else
- sendinput {blind}s
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("Ŝ")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("Š")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("Ś")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("Ş")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("Ṣ")
- Else
- sendinput {blind}S
- }
- else if Ebene = 3
- send ?
- else if Ebene = 4
- Unicode("σ") ;sigma
- else if Ebene = 5
- Send
- else if Ebene = 6
- Unicode("Σ") ; Sigma
- PriorDeadKey := ""
-return
-
-*j::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "a1") ; akut
- BSUnicode("ń")
- Else If (PriorDeadKey = "t1") ; tilde
- BSUnicode("ñ")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("ň")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("ņ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ṅ")
- Else
- sendinput {blind}n
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c2") ; caron
- BSUnicode("Ň")
- Else If (PriorDeadKey = "t1") ; tilde
- BSUnicode("Ñ")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("Ń")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("Ņ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ṅ")
- Else
- sendinput {blind}N
- }
- else if Ebene = 3
- send (
- else if Ebene = 4
- Unicode("ν") ;nu
- else if Ebene = 5
- Send 4
- else if Ebene = 6
- Unicode("№") ; No
- PriorDeadKey := ""
-return
-
-*k::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "a1") ; akut
- BSUnicode("ŕ")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("ř")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("ŗ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ṙ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("ṛ")
- Else
- sendinput {blind}r
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c2") ; caron
- BSUnicode("Ř")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("Ŕ")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("Ŗ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ṙ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("Ṛ")
- Else
- sendinput {blind}R
- }
- else if Ebene = 3
- send )
- else if Ebene = 4
- Unicode("ρ") ;rho
- else if Ebene = 5
- Send 5
- else if Ebene = 6
- Unicode("®") ; (R)
- PriorDeadKey := ""
-return
-
-*l::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c2") ; caron
- BSUnicode("ť")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("ţ")
- Else If (PriorDeadKey = "c4") ; Querstrich
- BSUnicode("ŧ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ṫ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("ṭ")
- Else
- sendinput {blind}t
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c2") ; caron
- BSUnicode("Ť")
- Else If (PriorDeadKey = "a3") ; cedilla
- BSUnicode("Ţ")
- Else If (PriorDeadKey = "c4") ; Querstrich
- BSUnicode("Ŧ")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ṫ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("Ṭ")
- Else
- sendinput {blind}T
- }
- else if Ebene = 3
- send {blind}- ; Bind
- else if Ebene = 4
- Unicode("τ") ;tau
- else if Ebene = 5
- Send 6
- else if Ebene = 6
- Unicode("™") ; TM
- PriorDeadKey := ""
-return
-
-*::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c4") ; Querstrich
- BSUnicode("đ")
- Else If (PriorDeadKey = "t5") ; Schrgstrich
- BSUnicode("ð")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("ď")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ḋ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("ḍ")
- Else
- sendinput {blind}d
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c4") ; Querstrich
- BSUnicode("Đ")
- Else If (PriorDeadKey = "t5") ; Schrgstrich
- BSUnicode("Ð")
- Else If (PriorDeadKey = "c2") ; caron
- BSUnicode("Ď")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ḋ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("Ḍ")
- Else sendinput {blind}D
- }
- else if Ebene = 3
- send :
- else if Ebene = 4
- Unicode("δ") ;delta
- else if Ebene = 5
- Send `,
- else if Ebene = 6
- Unicode("Δ") ; Delta
- PriorDeadKey := ""
-return
-
-*::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "t3") ; Diaerese
- Send {bs}
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("ý")
- Else If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("ŷ")
- Else
- sendinput {blind}y
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "a1") ; akut
- BSUnicode("Ý")
- Else If (PriorDeadKey = "t3") ; Diaerese
- Send {bs}
- Else If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("Ŷ")
- Else
- sendinput {blind}Y
- }
- else if Ebene = 3
- Unicode("„") ;
- else if Ebene = 4
- Unicode("υ") ;upsilon
- else if Ebene = 5
- Send ; thorn
- else if Ebene = 6
- Send ; Thorn
- PriorDeadKey := ""
-return
-
-;SC02B (#) wird zu Mod3
-
-
-/*
- ------------------------------------------------------
- Reihe 4
- ------------------------------------------------------
-*/
-
-;SC056 (<) wird zu Mod5
-
-*y::
- EbeneAktualisieren()
- if Ebene = 1
- sendinput {blind}
- else if Ebene = 2
- sendinput {blind}
- else if Ebene = 3
- send {blind}{#}
- else if Ebene = 5
- Send {Esc}
- PriorDeadKey := ""
-return
-
-*x::
- EbeneAktualisieren()
- if Ebene = 1
- sendinput {blind}
- else if Ebene = 2
- sendinput {blind}
- else if Ebene = 3
- send $
- else if Ebene = 5
- Send {Del}
- else if Ebene = 6
- Send +{Del}
- PriorDeadKey := ""
-return
-
-*c::
- EbeneAktualisieren()
- if Ebene = 1
- sendinput {blind}
- else if Ebene = 2
- sendinput {blind}
- else if Ebene = 3
- send |
- else if Ebene = 4
- Unicode("η") ;eta
- else if Ebene = 5
- Send {PgDn} ; Next
- else if Ebene = 6
- Send +{PgDn}
- PriorDeadKey := ""
-return
-
-*v::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ṗ")
- Else
- sendinput {blind}p
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ṗ")
- Else
- sendinput {blind}P
- }
- else if Ebene = 3
- {
- If (PriorDeadKey = "t1") ; tilde
- BSUnicode("≈")
- Else
- sendraw ~
- }
- else if Ebene = 4
- Unicode("π") ;pi
- else if Ebene = 5
- Send {Enter}
- else if Ebene = 6
- Unicode("Π") ; Pi
- PriorDeadKey := ""
-return
-
-*b::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c2") ; caron
- BSUnicode("ž")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("ź")
- Else If (PriorDeadKey = "a5") ; punkt drber
- BSUnicode("ż")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ż")
- Else
- sendinput {blind}z
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c2") ; caron
- BSUnicode("Ž")
- Else If (PriorDeadKey = "a1") ; akut
- BSUnicode("Ź")
- Else If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ż")
- Else
- sendinput {blind}Z
- }
- else if Ebene = 3
- send ``{space} ; untot
- else if Ebene = 4
- Unicode("ζ") ;zeta
- else if Ebene = 6
- Unicode("Ω") ; Omega
- PriorDeadKey := ""
-return
-
-*n::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ḃ")
- Else
- sendinput {blind}b
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ḃ")
- Else
- sendinput {blind}B
- }
- else if Ebene = 3
- send {blind}{+}
- else if Ebene = 4
- Unicode("β") ;beta
- else if Ebene = 6
- Unicode("∞") ;infty
- PriorDeadKey := ""
-return
-
-*m::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("ṁ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("ṃ")
- Else
- sendinput {blind}m
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "a5") ; punkt darber
- BSUnicode("Ṁ")
- Else If (PriorDeadKey = "c6") ; punkt darunter
- BSUnicode("Ṃ")
- Else
- sendinput {blind}M
- }
- else if Ebene = 3
- send `%
- else if Ebene = 4
- Unicode("µ") ;micro, mu wre μ
- else if Ebene = 5
- Send 1
- else if Ebene = 6
- Unicode("∫") ; Int
- PriorDeadKey := ""
-return
-
-*,::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind},
- else if Ebene = 3
- send '
- else if Ebene = 4
- Unicode("ϑ") ;vartheta?
- else if Ebene = 5
- Send 2
- else if Ebene = 6
- Unicode("√") ; sqrt
- PriorDeadKey := ""
-return
-
-*.::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}.
- else if Ebene = 2
- Unicode("…") ; ellipse
- else if Ebene = 3
- send "
- else if Ebene = 4
- Unicode("θ") ;theta
- else if Ebene = 5
- Send 3
- else if Ebene = 6
- Unicode("Θ") ; Theta
- PriorDeadKey := ""
-return
-
-
-*-::
- EbeneAktualisieren()
- if Ebene = 1
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("ĵ")
- Else
- sendinput {blind}j
- }
- else if Ebene = 2
- {
- If (PriorDeadKey = "c1") ; circumflex
- BSUnicode("Ĵ")
- Else
- sendinput {blind}J
- }
- else if Ebene = 3
- send `;
- else if Ebene = 5
- Send .
- else if Ebene = 6
- Unicode("∇") ; Nabla
- PriorDeadKey := ""
-return
-
-/*
- ------------------------------------------------------
- Numpad
- ------------------------------------------------------
-
- folgende Tasten verhalten sich bei ein- und ausgeschaltetem
- NumLock gleich:
-*/
-
-*NumpadDiv::
- EbeneAktualisieren()
- if ( (Ebene = 1) or (Ebene = 2) )
- send {NumpadDiv}
- else if Ebene = 3
- send
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("∕") ; slash
- PriorDeadKey := ""
-return
-
-*NumpadMult::
- EbeneAktualisieren()
- if ( (Ebene = 1) or (Ebene = 2) )
- send {NumpadMult}
- else if Ebene = 3
- send
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("⋅") ; cdot
- PriorDeadKey := ""
-return
-
-*NumpadSub::
- EbeneAktualisieren()
- if ( (Ebene = 1) or (Ebene = 2) )
- send {blind}{NumpadSub}
- else if Ebene = 3
- send -
- PriorDeadKey := ""
-return
-
-*NumpadAdd::
- EbeneAktualisieren()
- if ( (Ebene = 1) or (Ebene = 2) )
- send {blind}{NumpadAdd}
- else if Ebene = 3
- send
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("∓") ; -+
- PriorDeadKey := ""
-return
-
-*NumpadEnter::
- EbeneAktualisieren()
- if ( (Ebene = 1) or (Ebene = 2) )
- send {NumpadEnter}
- else if Ebene = 3
- Unicode("≠") ; neq
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("≈") ; approx
- PriorDeadKey := ""
-return
-
-/*
- folgende Tasten verhalten sich bei ein- und ausgeschaltetem NumLock
- unterschiedlich:
-
- bei NumLock ein
-*/
-
-*Numpad7::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}{Numpad7}
- else if Ebene = 2
- send {NumpadHome}
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("≪") ; ll
- PriorDeadKey := ""
-return
-
-*Numpad8::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}{Numpad8}
- else if Ebene = 2
- send {NumpadUp}
- else if Ebene = 3
- Unicode("↑") ; uparrow
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("∩") ;
- PriorDeadKey := ""
-return
-
-*Numpad9::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}{Numpad9}
- else if Ebene = 2
- send {NumpadPgUp}
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("≫") ; gg
- PriorDeadKey := ""
-return
-
-*Numpad4::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}{Numpad4}
- else if Ebene = 2
- send {NumpadLeft}
- else if Ebene = 3
- Unicode("←") ; leftarrow
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("⊂") ;
- PriorDeadKey := ""
-return
-
-*Numpad5::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}{Numpad5}
- else if Ebene = 2
- send {NumpadClear}
- else if Ebene = 3
- send
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("∊") ;
- PriorDeadKey := ""
-return
-
-*Numpad6::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}{Numpad6}
- else if Ebene = 2
- send {NumpadRight}
- else if Ebene = 3
- Unicode("→") ; rightarrow
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("⊃") ;
- PriorDeadKey := ""
-return
-
-*Numpad1::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}{Numpad1}
- else if Ebene = 2
- send {NumpadEnd}
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("≤") ; leq
- PriorDeadKey := ""
-return
-
-*Numpad2::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}{Numpad2}
- else if Ebene = 2
- send {NumpadDown}
- else if Ebene = 3
- Unicode("↓") ; downarrow
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("∪") ;
- PriorDeadKey := ""
-return
-
-*Numpad3::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}{Numpad3}
- else if Ebene = 2
- send {NumpadPgDn}
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("≥") ; geq
- PriorDeadKey := ""
-return
-
-*Numpad0::
- EbeneAktualisieren()
- if Ebene = 1
- send {blind}{Numpad0}
- else if Ebene = 2
- send {NumpadIns}
- else if Ebene = 3
- send `%
- else if ( (Ebene = 4) or (Ebene = 5) )
- send
- PriorDeadKey := ""
-return
-
-*NumpadDot::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadDot}
- else if Ebene = 2
- send {NumpadDel}
- else if Ebene = 3
- send .
- else if ( (Ebene = 4) or (Ebene = 5) )
- send `,
- PriorDeadKey := ""
-return
-
-/*
- bei NumLock aus
-*/
-
-*NumpadHome::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadHome}
- else if Ebene = 2
- send {Numpad7}
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("≪") ; ll
- PriorDeadKey := ""
-return
-
-*NumpadUp::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadUp}
- else if Ebene = 2
- send {Numpad8}
- else if Ebene = 3
- Unicode("↑") ; uparrow
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("∩") ;
- PriorDeadKey := ""
-return
-
-*NumpadPgUp::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadPgUp}
- else if Ebene = 2
- send {Numpad9}
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("≫") ; gg
- PriorDeadKey := ""
-return
-
-*NumpadLeft::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadLeft}
- else if Ebene = 2
- send {Numpad4}
- else if Ebene = 3
- Unicode("←") ; leftarrow
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("⊂") ;
- PriorDeadKey := ""
-return
-
-*NumpadClear::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadClear}
- else if Ebene = 2
- send {Numpad5}
- else if Ebene = 3
- send
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("∊") ;
- PriorDeadKey := ""
-return
-
-*NumpadRight::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadRight}
- else if Ebene = 2
- send {Numpad6}
- else if Ebene = 3
- Unicode("→") ; rightarrow
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("⊃") ;
- PriorDeadKey := ""
-return
-
-*NumpadEnd::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadEnd}
- else if Ebene = 2
- send {Numpad1}
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("≤") ; leq
- PriorDeadKey := ""
-return
-
-*NumpadDown::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadDown}
- else if Ebene = 2
- send {Numpad2}
- else if Ebene = 3
- Unicode("↓") ; downarrow
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("∪") ;
- PriorDeadKey := ""
-return
-
-*NumpadPgDn::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadPgDn}
- else if Ebene = 2
- send {Numpad3}
- else if ( (Ebene = 4) or (Ebene = 5) )
- Unicode("≥") ; geq
- PriorDeadKey := ""
-return
-
-*NumpadIns::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadIns}
- else if Ebene = 2
- send {Numpad0}
- else if Ebene = 3
- send `%
- else if ( (Ebene = 4) or (Ebene = 5) )
- send
- PriorDeadKey := ""
-return
-
-*NumpadDel::
- EbeneAktualisieren()
- if Ebene = 1
- send {NumpadDel}
- else if Ebene = 2
- send {NumpadDot}
- else if Ebene = 3
- send .
- else if ( (Ebene = 4) or (Ebene = 5) )
- send `,
- PriorDeadKey := ""
-return
-
-
-
-/*
- ------------------------------------------------------
- Sondertasten
- ------------------------------------------------------
-*/
-
-*Space::
- EbeneAktualisieren()
- if Ebene = 4
- SendUnicodeChar(0x00A0) ; geschtztes Leerzeichen
- else if Ebene = 5
- Send 0
- else if Ebene = 6
- SendUnicodeChar(0x202F) ; schmales Leerzeichen
- else
- Send {blind}{Space}
- PriorDeadKey := ""
-return
-
-/*
- Folgende Tasten sind nur aufgefhrt, um PriorDeadKey zu leeren.
- Irgendwie sieht das noch nicht schn aus. Vielleicht lsst sich dieses
- Problem irgendwie eleganter lsen...
-
- Nachtrag:
- Weil es mit Alt+Tab Probleme gab, wird hier jetzt erstmal rumgeflickschustert,
- bis eine allgemeinere Lsung gefunden wurde.
-*/
-
-*Enter::
- sendinput {Blind}{Enter}
- PriorDeadKey := ""
-return
-
-*Backspace::
- sendinput {Blind}{Backspace}
- PriorDeadKey := ""
-return
-
-
-
-/*
-Tab wurde rausgenommen, weil es Probleme mit AltTab und ShiftAltTab gab.
-Allerdings kommt es jetzt zu komischen Ergebnissen, wenn man Tab nach
-einem DeadKey drckt...
-
-*Tab::
- send {Blind}{Tab}
- PriorDeadKey := ""
-return
-
-*/
-
-*Home::
- sendinput {Blind}{Home}
- PriorDeadKey := ""
-return
-
-*End::
- sendinput {Blind}{End}
- PriorDeadKey := ""
-return
-
-*PgUp::
- sendinput {Blind}{PgUp}
- PriorDeadKey := ""
-return
-
-*PgDn::
- sendinput {Blind}{PgDn}
- PriorDeadKey := ""
-return
-
-*Up::
- sendinput {Blind}{Up}
- PriorDeadKey := ""
-return
-
-*Down::
- sendinput {Blind}{Down}
- PriorDeadKey := ""
-return
-
-*Left::
- sendinput {Blind}{Left}
- PriorDeadKey := ""
-return
-
-*Right::
- sendinput {Blind}{Right}
- PriorDeadKey := ""
-return
-
-
-/*
- ------------------------------------------------------
- Funktionen
- ------------------------------------------------------
-*/
-
-EbeneAktualisieren()
-{
- global
- Ebene = 1
-
- ; ist Shift down?
- if ( GetKeyState("Shift","P") )
- {
- Ebene += 1
- }
- ; ist Mod3 down?
- if ( GetKeyState("CapsLock","P") or GetKeyState("#","P") )
- {
- Ebene += 2
- }
- ; ist Mod5 down? Mod3 hat Vorrang!
- else if ( GetKeyState("<","P") or GetKeyState("SC138","P") )
- {
- Ebene += 4
- }
-
- return
-}
-
-Unicode(code)
-{
- saved_clipboard := ClipboardAll
- Transform, Clipboard, Unicode, %code%
- sendplay ^v
- Clipboard := saved_clipboard
-}
-
-BSUnicode(code)
-{
- saved_clipboard := ClipboardAll
- Transform, Clipboard, Unicode, %code%
- sendplay {bs}^v
- Clipboard := saved_clipboard
-}
-
-SendUnicodeChar(charCode)
-{
- 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)
-}
-
-
-/*
- ------------------------------------------------------
- Shift+Pause "pausiert" das Script.
- ------------------------------------------------------
-*/
-
-+pause::suspend
+/*
+ Titel: NEO 2.0 beta Autohotkey-Treiber
+ Version: 0.09 beta
+ Datum: 10.01.2008
+ Autor: Stefan Mayer <stm@neo-layout.org>
+ Basiert auf: neo20-all-in-one.ahk vom 29.06.2007
+
+ TODO: - ausgiebig testen...
+ - Men des Tasksymbols
+ - Bessere Lsung fr das leeren von PriorDeadKey finden, damit die Sondertasten
+ nicht mehr abgefangen werden mssen.
+ - CapsLock auf 1. und 2. Ebene einbauen:
+ Die Buchstaben reagieren richtig auf CapsLock, da hier "sendinput {blind}"
+ verwendet wird. Bei anderen Tasten muss CapsLock in der ersten und zweiten Ebene
+ explizit abgefragt werden.
+ (Lsst sich das elegant in eine Funktion auslagern?)
+ |------------------|
+ | - Compose-Taste |
+ |------------------|
+ Ideen: - DeadKeys tot machen
+ - Symbol ndern (Neo-Logo abwarten)
+ - bei Ebene 5 rechte Hand (Numpad) z.B. Numpad5 statt 5 senden
+ CHANGES: - SUPERSCRIPT von 0 bis 9 sowie (auf Nummernblock) + und -
+ - Zahlenreihe: Entfernt: Brche
+ Hinzugefgt: Geschlechts-Piktogramme, Listings-Zeichen
+*/
+
+; aus Noras script kopiert:
+#usehook on
+#singleinstance force
+#LTrim
+ ; Quelltext kann eingerckt werden,
+ ; msgbox ist trotzdem linksbndig
+
+SendMode Input
+SetTitleMatchMode 2
+
+;name = NEO 2.0
+;enable = Aktiviere %name%
+;disable = Deaktiviere %name%
+
+; berprfung auf deutsches Tastaturlayout
+; ----------------------------------------
+
+regread, inputlocale, HKEY_CURRENT_USER, Keyboard Layout\Preload, 1
+regread, inputlocalealias, HKEY_CURRENT_USER
+ , Keyboard Layout\Substitutes, %inputlocale%
+if inputlocalealias <>
+ inputlocale = %inputlocalealias%
+if inputlocale <> 00000407
+{
+ suspend
+ regread, inputlocale, HKEY_LOCAL_MACHINE
+ , SYSTEM\CurrentControlSet\Control\Keyboard Layouts\%inputlocale%
+ , Layout Text
+ msgbox, 48, Warnung!,
+ (
+ Nicht kompatibles Tastaturlayout:
+ `t%inputlocale%
+ `nDas deutsche QWERTZ muss als Standardlayout eingestellt
+ sein, damit %name% wie erwartet funktioniert.
+ `nndern Sie die Tastatureinstellung unter
+ `tSystemsteuerung
+ `t-> Regions- und Sprachoptionen
+ `t-> Sprachen
+ `t-> Details... `n
+ )
+ exitapp
+}
+
+/*
+ Variablen initialisieren
+*/
+
+Ebene = 1
+PriorDeadKey := ""
+
+
+/*
+ ------------------------------------------------------
+ Modifier
+ ------------------------------------------------------
+*/
+
+; CapsLock durch Mod3+Mod3
+*#::
+*CapsLock::
+ if GetKeyState("#","P") and GetKeyState("CapsLock","P")
+ {
+ if GetKeyState("CapsLock","T")
+ {
+ setcapslockstate, off
+ }
+ else
+ {
+ setcapslockstate, on
+ }
+ }
+return
+
+; KP_Decimal durch Mod5+Mod5
+*<::
+*SC138::
+ if GetKeyState("<","P") and GetKeyState("SC138","P")
+ {
+ send {numpaddot}
+ }
+ return
+
+
+/*
+ Ablauf bei toten Tasten:
+ 1. Ebene Aktualisieren
+ 2. Abhngig von der Variablen "Ebene" Zeichen ausgeben und die Variable "PriorDeadKey" setzen
+
+ Ablauf bei "lebenden" (sagt man das?) Tasten:
+ 1. Ebene Aktualisieren
+ 2. Abhngig von den Variablen "Ebene" und "PriorDeadKey" Zeichen ausgeben
+ 3. "PriorDeadKey" mit leerem String berschreiben
+
+ ------------------------------------------------------
+ Reihe 1
+ ------------------------------------------------------
+*/
+
+*^::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ Unicode("ˆ") ; circumflex, tot
+ PriorDeadKey := "c1"
+ }
+ else if Ebene = 2
+ {
+ Unicode("ˇ") ; caron, tot
+ PriorDeadKey := "c2"
+ }
+ else if Ebene = 3
+ {
+ Unicode("˘") ; brevis
+ PriorDeadKey := "c3"
+ }
+ else if Ebene = 4
+ {
+ send - ; querstrich, tot
+ PriorDeadKey := "c4"
+ }
+ else if Ebene = 5
+ {
+ Unicode("·") ; Mittenpunkt, tot
+ PriorDeadKey := "c5"
+ }
+ else if Ebene = 6
+ {
+ Send . ; punkt darunter
+ PriorDeadKey := "c6"
+ }
+return
+
+*1::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex 1
+ BSUnicode("¹")
+ Else
+ send {blind}1
+ }
+ else if Ebene = 2
+ send
+ else if Ebene = 4
+ Unicode("♀") ; Piktogramm weiblich
+ else if Ebene = 5
+ Unicode("•") ; bullet
+ PriorDeadKey := ""
+return
+
+*2::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("²")
+ Else
+ send {blind}2
+ }
+ else if Ebene = 2
+ Unicode("№") ; numero
+ else if Ebene = 4
+ Unicode("⚥") ; Piktogramm Zwitter
+ else if Ebene = 5
+ Unicode("‣") ; aufzaehlungspfeil
+ PriorDeadKey := ""
+return
+
+*3::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("³")
+ Else
+ send {blind}3
+ }
+ else if Ebene = 2
+ send
+ else if Ebene = 4
+ Unicode("♂") ; Piktogramm mnnlich
+ PriorDeadKey := ""
+return
+
+*4::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("⁴")
+ Else
+ send {blind}4
+ }
+ else if Ebene = 2
+ send
+ else if Ebene = 3
+ send
+ else if Ebene = 5
+ Send {PgUp} ; Prev
+ else if Ebene = 6
+ Send +{Prev}
+ PriorDeadKey := ""
+return
+
+*5::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("⁵")
+ Else
+ send {blind}5
+ }
+ else if Ebene = 2
+ send
+ else if Ebene = 3
+ send
+ else if Ebene = 6
+ Unicode("⇒") ; Implikation
+ PriorDeadKey := ""
+return
+
+*6::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("⁶")
+ Else
+ send {blind}6
+ }
+ else if Ebene = 2
+ send $
+ else if Ebene = 3
+ send
+ else if Ebene = 4
+ send
+ else if Ebene = 6
+ Unicode("⇔") ; quivalenz
+ PriorDeadKey := ""
+return
+
+*7::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("⁷")
+ Else
+ send {blind}7
+ }
+ else if Ebene = 2
+ send
+ else if Ebene = 3
+ send
+ else if Ebene = 4
+ send
+ else if Ebene = 6
+ Send
+ PriorDeadKey := ""
+return
+
+*8::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("⁸")
+ Else
+ send {blind}8
+ }
+ else if Ebene = 2
+ send
+ else if Ebene = 3
+ send
+ else if Ebene = 5
+ Send /
+ else if Ebene = 6
+ Unicode("∃") ; Existenzquantor
+ PriorDeadKey := ""
+return
+
+*9::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("⁹")
+ Else
+ send {blind}9
+ }
+ else if Ebene = 2
+ send
+ else if Ebene = 3
+ send
+ else if Ebene = 5
+ Send *
+ else if Ebene = 6
+ Unicode("∀") ; Allquantor
+ PriorDeadKey := ""
+return
+
+*0::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("⁰")
+ Else
+ send {blind}0
+ }
+ else if Ebene = 2
+ send
+ else if Ebene = 3
+ send
+ else if Ebene = 5
+ Send -
+ else if Ebene = 6
+ Unicode("∨") ; logisch oder
+ PriorDeadKey := ""
+return
+
+*::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}- ; Bind
+ else if Ebene = 2
+ Unicode("–") ; Ged
+ else if Ebene = 3
+ Unicode("—")
+ else if Ebene = 4
+ Unicode("╌")
+ else if Ebene = 5
+ Unicode("‑")
+ else if Ebene = 6
+ Unicode("∧") ; logisch und
+ PriorDeadKey := ""
+return
+
+*::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ send {}{space} ; akut, tot
+ PriorDeadKey := "a1"
+ }
+ else if Ebene = 2
+ {
+ send ``{space}
+ PriorDeadKey := "a2"
+ }
+ else if Ebene = 3
+ {
+ send ; cedilla
+ PriorDeadKey := "a3"
+ }
+ else if Ebene = 4
+ {
+ Unicode("˛") ; ogonek
+ PriorDeadKey := "a4"
+ }
+ else if Ebene = 5
+ {
+ Unicode("˙") ; punkt oben drber
+ PriorDeadKey := "a5"
+ }
+ else if Ebene = 6
+ {
+ Unicode("˚") ; ring obendrauf
+ PriorDeadKey := "a6"
+ }
+return
+
+
+/*
+ ------------------------------------------------------
+ Reihe 2
+ ------------------------------------------------------
+*/
+
+*q::
+ EbeneAktualisieren()
+ if Ebene = 1
+ sendinput {blind}x
+ else if Ebene = 2
+ sendinput {blind}X
+ else if Ebene = 3
+ send @
+ else if Ebene = 4
+ Unicode("ξ") ;xi
+ else if Ebene = 5
+ send @ ; Redundanz
+ else if Ebene = 6
+ Unicode("Ξ") ; Xi
+ PriorDeadKey := ""
+return
+
+
+*w::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("ṿ")
+ Else
+ sendinput {blind}v
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("Ṿ")
+ Else
+ sendinput {blind}V
+ }
+ else if Ebene = 3
+ send _
+ else if Ebene = 5
+ Send {Backspace}
+ else if Ebene = 6
+ Unicode("Λ") ; Lambda
+ PriorDeadKey := ""
+return
+
+
+
+*e::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "t5") ; Schrgstrich
+ BSUnicode("ł")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("ĺ")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("ľ")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("ļ")
+ Else If (PriorDeadKey = "c5") ; Mittenpunkt
+ BSUnicode("ŀ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("ḷ")
+ Else
+ sendinput {blind}l
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "a1") ; akut
+ BSUnicode("Ĺ")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("Ľ")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("Ļ")
+ Else If (PriorDeadKey = "t5") ; Schrgstrich
+ BSUnicode("Ł")
+ Else If (PriorDeadKey = "c5") ; Mittenpunkt
+ BSUnicode("Ŀ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("Ḷ")
+ Else
+ sendinput {blind}L
+ }
+ else if Ebene = 3
+ send [
+ else if Ebene = 4
+ Unicode("λ") ;lambda
+ else if Ebene = 5
+ Sendinput {Blind}{Up}
+ else if Ebene = 6
+ Sendinput {Blind}+{Up}
+ PriorDeadKey := ""
+return
+
+
+*r::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("ĉ")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("č")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("ć")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("ç")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ċ")
+ Else
+ sendinput {blind}c
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("Ĉ")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("Č")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("Ć")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("Ç")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ċ")
+ Else
+ sendinput {blind}C
+ }
+ else if Ebene = 3
+ send ]
+ else if Ebene = 4
+ Unicode("χ") ;chi
+ else if Ebene = 5
+ Send {Tab}
+ else if Ebene = 6
+ Send +{Tab}
+ PriorDeadKey := ""
+return
+
+*t::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("ŵ")
+ Else
+ sendinput {blind}w
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("ŵ")
+ Else
+ sendinput {blind}W
+ }
+ else if Ebene = 3
+ send {^}{space} ; untot
+ else if Ebene = 5
+ Send {Insert}
+ else if Ebene = 6
+ Send +{Insert}
+ PriorDeadKey := ""
+return
+
+*z::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("ķ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("ḳ")
+ Else
+ sendinput {blind}k
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("Ķ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("Ḳ")
+ Else
+ sendinput {blind}K
+ }
+ else if Ebene = 3
+ sendraw !
+ else if Ebene = 4
+ Unicode("κ") ;kappa
+ else if Ebene = 5
+ Send
+ PriorDeadKey := ""
+return
+
+*u::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("ĥ")
+ Else If (PriorDeadKey = "c4") ; Querstrich
+ BSUnicode("ħ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ḣ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("ḥ")
+ Else sendinput {blind}h
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("Ĥ")
+ Else If (PriorDeadKey = "c4") ; Querstrich
+ BSUnicode("Ħ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ḣ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("Ḥ")
+ Else sendinput {blind}H
+ }
+ else if Ebene = 3
+ {
+ If (PriorDeadKey = "c4") ; Querstrich
+ BSUnicode("≤")
+ Else
+ send {blind}<
+ }
+ else if Ebene = 4
+ Unicode("ψ") ;psi
+ else if Ebene = 5
+ Send 7
+ else if Ebene = 6
+ Unicode("Ψ") ; Psi
+ PriorDeadKey := ""
+return
+
+*i::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("ĝ")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("ğ")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("ģ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ġ")
+ Else sendinput {blind}g
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("Ĝ")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("Ğ")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("Ģ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ġ")
+ Else sendinput {blind}G
+ }
+ else if Ebene = 3
+ {
+ If (PriorDeadKey = "c4") ; Querstrich
+ BSUnicode("≥")
+ Else
+ send >
+ }
+ else if Ebene = 4
+ Unicode("γ") ;gamma
+ else if Ebene = 5
+ Send 8
+ else if Ebene = 6
+ Unicode("Γ") ; Gamma
+ PriorDeadKey := ""
+return
+
+*o::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "t5") ; durchgestrichen
+ BSUnicode("ƒ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ḟ")
+ Else sendinput {blind}f
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "t5") ; durchgestrichen
+ BSUnicode("₣")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ḟ")
+ Else sendinput {blind}F
+ }
+ else if Ebene = 3
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("≙")
+ Else If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("≅")
+ Else If (PriorDeadKey = "t5") ; Schrgstrich
+ BSUnicode("≠")
+ Else If (PriorDeadKey = "c4") ; Querstrich
+ BSUnicode("≡")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("≚")
+ Else If (PriorDeadKey = "a6") ; ring drber
+ BSUnicode("≗")
+
+
+
+/*
+ was bedeutet dieser PriorHotkey?
+*/
+
+ Else If A_PriorHotkey = +1 ; Grad
+ BSUnicode("≗")
+ Else
+ send `=
+ }
+ else if Ebene = 4
+ Unicode("φ") ;phi
+ else if Ebene = 5
+ Send 9
+ else if Ebene = 6
+ Unicode("Φ") ; Phi
+ PriorDeadKey := ""
+return
+
+*p::
+ EbeneAktualisieren()
+ if Ebene = 1
+ sendinput {blind}q
+ else if Ebene = 2
+ sendinput {blind}Q
+ else if Ebene = 3
+ send {&}
+ else if Ebene = 4
+ Unicode("ɸ") ; Varphi?
+ else if Ebene = 5
+ Send {+}
+ else if Ebene = 6
+ Unicode("∂") ; "verdrehtes e"
+ PriorDeadKey := ""
+return
+
+*::
+ EbeneAktualisieren()
+ if Ebene = 1
+ if GetKeyState("CapsLock","T")
+ {
+ Unicode("ẞ") ; versal-
+ }
+ else
+ {
+ send
+ }
+ else if Ebene = 2
+ if GetKeyState("CapsLock","T")
+ {
+ send
+ }
+ else
+ {
+ Unicode("ẞ") ; versal-
+ }
+ else if Ebene = 3
+ Unicode("ſ") ; langes s
+ else if Ebene = 4
+ Unicode("ς")
+ else if Ebene = 5
+ Unicode("ə") ; schwa
+ else if Ebene = 6
+ Unicode("Ə") ; Schwa
+ PriorDeadKey := ""
+return
+
+
+*+::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ Unicode("˜") ; tilde, tot
+ PriorDeadKey := "t1"
+ }
+ else if Ebene = 2
+ {
+ Unicode("ˉ") ; macron, tot
+ PriorDeadKey := "t2"
+ }
+ else if Ebene = 3
+ {
+ Unicode("¨") ; Diaerese
+ PriorDeadKey := "t3"
+ }
+ else if Ebene = 4
+ {
+ send " ;doppelakut
+ PriorDeadKey := "t4"
+ }
+ else if Ebene = 5
+ {
+ Unicode("/") ; Schrgstrich, tot
+ PriorDeadKey := "t5"
+ }
+ else if Ebene = 6
+ {
+ Unicode("ˏ") ; komma drunter, tot
+ PriorDeadKey := "t6"
+ }
+return
+
+
+/*
+ ------------------------------------------------------
+ Reihe 3
+ ------------------------------------------------------
+*/
+
+*a::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("û")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("ú")
+ Else If (PriorDeadKey = "a2") ; grave
+ BSUnicode("ù")
+ Else If (PriorDeadKey = "t3") ; Diaerese
+ Send, {bs}
+ Else If (PriorDeadKey = "t4") ; doppelakut
+ BSUnicode("ű")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("ŭ")
+ Else If (PriorDeadKey = "t2") ; macron
+ BSUnicode("ū")
+ Else If (PriorDeadKey = "a4") ; ogonek
+ BSUnicode("ų")
+ Else If (PriorDeadKey = "a6") ; Ring
+ BSUnicode("ů")
+ Else If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("ũ")
+ Else
+ sendinput {blind}u
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("Û")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("Ú")
+ Else If (PriorDeadKey = "a2") ; grave
+ BSUnicode("Ù")
+ Else If (PriorDeadKey = "t3") ; Diaerese
+ Send, {bs}
+ Else If (PriorDeadKey = "a6") ; Ring
+ BSUnicode("Ů")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("Ŭ")
+ Else If (PriorDeadKey = "t4") ; doppelakut
+ BSUnicode("Ű")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("Ů")
+ Else If (PriorDeadKey = "t2") ; macron
+ BSUnicode("Ū")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("Ŭ")
+ Else If (PriorDeadKey = "a4") ; ogonek
+ BSUnicode("Ų")
+ Else If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("Ũ")
+ Else
+ sendinput {blind}U
+ }
+ else if Ebene = 3
+ send \
+ else if Ebene = 5
+ Send {blind}{Home}
+ else if Ebene = 6
+ Send {blind}+{Home}
+ PriorDeadKey := ""
+return
+
+*s::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("î")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("í")
+ Else If (PriorDeadKey = "a2") ; grave
+ BSUnicode("ì")
+ Else If (PriorDeadKey = "t3") ; Diaerese
+ Send, {bs}
+ Else If (PriorDeadKey = "t2") ; macron
+ BSUnicode("ī")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("ĭ")
+ Else If (PriorDeadKey = "a4") ; ogonek
+ BSUnicode("į")
+ Else If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("ĩ")
+ Else If (PriorDeadKey = "a5") ; (ohne) punkt darber
+ BSUnicode("ı")
+ Else
+ sendinput {blind}i
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("Î")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("Í")
+ Else If (PriorDeadKey = "a2") ; grave
+ BSUnicode("Ì")
+ Else If (PriorDeadKey = "t3") ; Diaerese
+ Send, {bs}
+ Else If (PriorDeadKey = "t2") ; macron
+ BSUnicode("Ī")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("Ĭ")
+ Else If (PriorDeadKey = "a4") ; ogonek
+ BSUnicode("Į")
+ Else If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("Ĩ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("İ")
+ Else
+ sendinput {blind}I
+ }
+ else if Ebene = 3
+ send `/
+ else if Ebene = 4
+ Unicode("ι") ;iota
+ else if Ebene = 5
+ Sendinput {Blind}{Left}
+ else if Ebene = 6
+ Sendinput {Blind}+{Left}
+ PriorDeadKey := ""
+return
+
+*d::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("â")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("á")
+ Else If (PriorDeadKey = "a2") ; grave
+ BSUnicode("à")
+ Else If (PriorDeadKey = "t3") ; Diaerese
+ send {bs}
+ Else If (PriorDeadKey = "a6") ; Ring
+ Send {bs}
+ Else If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("ã")
+ Else If (PriorDeadKey = "a4") ; ogonek
+ BSUnicode("ą")
+ Else If (PriorDeadKey = "t2") ; macron
+ BSUnicode("ā")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("ă")
+ Else
+ sendinput {blind}a
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("Â")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("Á")
+ Else If (PriorDeadKey = "a2") ; grave
+ BSUnicode("À")
+ Else If (PriorDeadKey = "t3") ; Diaerese
+ send {bs}
+ Else If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("Ã")
+ Else If (PriorDeadKey = "a6") ; Ring
+ Send {bs}
+ Else If (PriorDeadKey = "t2") ; macron
+ BSUnicode("Ā")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("Ă")
+ Else If (PriorDeadKey = "a4") ; ogonek
+ BSUnicode("Ą")
+ Else
+ sendinput {blind}A
+ }
+ else if Ebene = 3
+ sendraw {
+ else if Ebene = 4
+ Unicode("α") ;alpha
+ else if Ebene = 5
+ Sendinput {Blind}{Down}
+ else if Ebene = 6
+ Sendinput {Blind}+{Down}
+ PriorDeadKey := ""
+return
+
+*f::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("ê")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("é")
+ Else If (PriorDeadKey = "a2") ; grave
+ BSUnicode("è")
+ Else If (PriorDeadKey = "t3") ; Diaerese
+ Send, {bs}
+ Else If (PriorDeadKey = "a4") ; ogonek
+ BSUnicode("ę")
+ Else If (PriorDeadKey = "t2") ; macron
+ BSUnicode("ē")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("ĕ")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("ě")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ė")
+ Else
+ sendinput {blind}e
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("Ê")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("É")
+ Else If (PriorDeadKey = "a2") ; grave
+ BSUnicode("È")
+ Else If (PriorDeadKey = "t3") ; Diaerese
+ Send, {bs}
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("Ě")
+ Else If (PriorDeadKey = "t2") ; macron
+ BSUnicode("Ē")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("Ĕ")
+ Else If (PriorDeadKey = "a4") ; ogonek
+ BSUnicode("Ę")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ė")
+ Else
+ sendinput {blind}E
+ }
+ else if Ebene = 3
+ sendraw }
+ else if Ebene = 4
+ Unicode("ε") ;epsilon
+ else if Ebene = 5
+ Sendinput {Blind}{Right}
+ else if Ebene = 6
+ Sendinput {Blind}+{Right}
+ PriorDeadKey := ""
+return
+
+*g::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("ô")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("ó")
+ Else If (PriorDeadKey = "a2") ; grave
+ BSUnicode("ò")
+ Else If (PriorDeadKey = "t3") ; Diaerese
+ Send, {bs}
+ Else If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("õ")
+ Else If (PriorDeadKey = "t4") ; doppelakut
+ BSUnicode("ő")
+ Else If (PriorDeadKey = "t5") ; Schrgstrich
+ BSUnicode("ø")
+ Else If (PriorDeadKey = "t2") ; macron
+ BSUnicode("ō")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("ŏ")
+ Else
+ sendinput {blind}o
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("Ô")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("Ó")
+ Else If (PriorDeadKey = "a2") ; grave
+ BSUnicode("Ò")
+ Else If (PriorDeadKey = "t5") ; Schrgstrich
+ BSUnicode("Ø")
+ Else If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("Õ")
+ Else If (PriorDeadKey = "t4") ; doppelakut
+ BSUnicode("Ő")
+ Else If (PriorDeadKey = "t3") ; Diaerese
+ send {bs}
+ Else If (PriorDeadKey = "t2") ; macron
+ BSUnicode("Ō")
+ Else If (PriorDeadKey = "c3") ; brevis
+ BSUnicode("Ŏ")
+ Else
+ sendinput {blind}O
+ }
+ else if Ebene = 3
+ send *
+ else if Ebene = 4
+ Unicode("ω") ;omega
+ else if Ebene = 5
+ Send {blind}{End}
+ else if Ebene = 6
+ Send {blind}+{End}
+ PriorDeadKey := ""
+return
+
+*h::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("ŝ")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("ś")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("š")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("ş")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ṡ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("ṣ")
+ Else
+ sendinput {blind}s
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("Ŝ")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("Š")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("Ś")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("Ş")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("Ṣ")
+ Else
+ sendinput {blind}S
+ }
+ else if Ebene = 3
+ send ?
+ else if Ebene = 4
+ Unicode("σ") ;sigma
+ else if Ebene = 5
+ Send
+ else if Ebene = 6
+ Unicode("Σ") ; Sigma
+ PriorDeadKey := ""
+return
+
+*j::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "a1") ; akut
+ BSUnicode("ń")
+ Else If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("ñ")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("ň")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("ņ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ṅ")
+ Else
+ sendinput {blind}n
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c2") ; caron
+ BSUnicode("Ň")
+ Else If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("Ñ")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("Ń")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("Ņ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ṅ")
+ Else
+ sendinput {blind}N
+ }
+ else if Ebene = 3
+ send (
+ else if Ebene = 4
+ Unicode("ν") ;nu
+ else if Ebene = 5
+ Send 4
+ PriorDeadKey := ""
+return
+
+*k::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "a1") ; akut
+ BSUnicode("ŕ")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("ř")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("ŗ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ṙ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("ṛ")
+ Else
+ sendinput {blind}r
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c2") ; caron
+ BSUnicode("Ř")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("Ŕ")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("Ŗ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ṙ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("Ṛ")
+ Else
+ sendinput {blind}R
+ }
+ else if Ebene = 3
+ send )
+ else if Ebene = 4
+ Unicode("ρ") ;rho
+ else if Ebene = 5
+ Send 5
+ PriorDeadKey := ""
+return
+
+*l::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c2") ; caron
+ BSUnicode("ť")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("ţ")
+ Else If (PriorDeadKey = "c4") ; Querstrich
+ BSUnicode("ŧ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ṫ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("ṭ")
+ Else
+ sendinput {blind}t
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c2") ; caron
+ BSUnicode("Ť")
+ Else If (PriorDeadKey = "a3") ; cedilla
+ BSUnicode("Ţ")
+ Else If (PriorDeadKey = "c4") ; Querstrich
+ BSUnicode("Ŧ")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ṫ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("Ṭ")
+ Else
+ sendinput {blind}T
+ }
+ else if Ebene = 3
+ send {blind}- ; Bind
+ else if Ebene = 4
+ Unicode("τ") ;tau
+ else if Ebene = 5
+ Send 6
+ PriorDeadKey := ""
+return
+
+*::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c4") ; Querstrich
+ BSUnicode("đ")
+ Else If (PriorDeadKey = "t5") ; Schrgstrich
+ BSUnicode("ð")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("ď")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ḋ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("ḍ")
+ Else
+ sendinput {blind}d
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c4") ; Querstrich
+ BSUnicode("Đ")
+ Else If (PriorDeadKey = "t5") ; Schrgstrich
+ BSUnicode("Ð")
+ Else If (PriorDeadKey = "c2") ; caron
+ BSUnicode("Ď")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ḋ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("Ḍ")
+ Else sendinput {blind}D
+ }
+ else if Ebene = 3
+ send :
+ else if Ebene = 4
+ Unicode("δ") ;delta
+ else if Ebene = 5
+ Send `,
+ else if Ebene = 6
+ Unicode("Δ") ; Delta
+ PriorDeadKey := ""
+return
+
+*::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "t3") ; Diaerese
+ Send {bs}
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("ý")
+ Else If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("ŷ")
+ Else
+ sendinput {blind}y
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "a1") ; akut
+ BSUnicode("Ý")
+ Else If (PriorDeadKey = "t3") ; Diaerese
+ Send {bs}
+ Else If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("Ŷ")
+ Else
+ sendinput {blind}Y
+ }
+ else if Ebene = 4
+ Unicode("υ") ;upsilon
+ else if Ebene = 5
+ Send ; thorn
+ else if Ebene = 6
+ Send ; Thorn
+ PriorDeadKey := ""
+return
+
+;SC02B (#) wird zu Mod3
+
+
+/*
+ ------------------------------------------------------
+ Reihe 4
+ ------------------------------------------------------
+*/
+
+;SC056 (<) wird zu Mod5
+
+*y::
+ EbeneAktualisieren()
+ if Ebene = 1
+ sendinput {blind}
+ else if Ebene = 2
+ sendinput {blind}
+ else if Ebene = 3
+ send {blind}{#}
+ else if Ebene = 5
+ Send {Esc}
+ PriorDeadKey := ""
+return
+
+*x::
+ EbeneAktualisieren()
+ if Ebene = 1
+ sendinput {blind}
+ else if Ebene = 2
+ sendinput {blind}
+ else if Ebene = 3
+ send $
+ else if Ebene = 5
+ Send {Del}
+ else if Ebene = 6
+ Send +{Del}
+ PriorDeadKey := ""
+return
+
+*c::
+ EbeneAktualisieren()
+ if Ebene = 1
+ sendinput {blind}
+ else if Ebene = 2
+ sendinput {blind}
+ else if Ebene = 3
+ send |
+ else if Ebene = 4
+ Unicode("η") ;eta
+ else if Ebene = 5
+ Send {PgDn} ; Next
+ else if Ebene = 6
+ Send +{PgDn}
+ PriorDeadKey := ""
+return
+
+*v::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ṗ")
+ Else
+ sendinput {blind}p
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ṗ")
+ Else
+ sendinput {blind}P
+ }
+ else if Ebene = 3
+ {
+ If (PriorDeadKey = "t1") ; tilde
+ BSUnicode("≈")
+ Else
+ sendraw ~
+ }
+ else if Ebene = 4
+ Unicode("π") ;pi
+ else if Ebene = 5
+ Send {Enter}
+ else if Ebene = 6
+ Unicode("Π") ; Pi
+ PriorDeadKey := ""
+return
+
+*b::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c2") ; caron
+ BSUnicode("ž")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("ź")
+ Else If (PriorDeadKey = "a5") ; punkt drber
+ BSUnicode("ż")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ż")
+ Else
+ sendinput {blind}z
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c2") ; caron
+ BSUnicode("Ž")
+ Else If (PriorDeadKey = "a1") ; akut
+ BSUnicode("Ź")
+ Else If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ż")
+ Else
+ sendinput {blind}Z
+ }
+ else if Ebene = 3
+ send ``{space} ; untot
+ else if Ebene = 4
+ Unicode("ζ") ;zeta
+ else if Ebene = 6
+ Unicode("Ω") ; Omega
+ PriorDeadKey := ""
+return
+
+*n::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ḃ")
+ Else
+ sendinput {blind}b
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ḃ")
+ Else
+ sendinput {blind}B
+ }
+ else if Ebene = 3
+ send {blind}{+}
+ else if Ebene = 4
+ Unicode("β") ;beta
+ else if Ebene = 6
+ Unicode("∞") ;infty
+ PriorDeadKey := ""
+return
+
+*m::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("ṁ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("ṃ")
+ Else
+ sendinput {blind}m
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "a5") ; punkt darber
+ BSUnicode("Ṁ")
+ Else If (PriorDeadKey = "c6") ; punkt darunter
+ BSUnicode("Ṃ")
+ Else
+ sendinput {blind}M
+ }
+ else if Ebene = 3
+ send `%
+ else if Ebene = 4
+ Unicode("µ") ;micro, mu wre μ
+ else if Ebene = 5
+ Send 1
+ else if Ebene = 6
+ Unicode("∫") ; Int
+ PriorDeadKey := ""
+return
+
+*,::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind},
+ else if Ebene = 3
+ send '
+ else if Ebene = 4
+ Unicode("ϱ") ; varsigma
+ else if Ebene = 5
+ Send 2
+ else if Ebene = 6
+ Unicode("√") ; sqrt
+ PriorDeadKey := ""
+return
+
+*.::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}.
+ else if Ebene = 2
+ Unicode("…") ; ellipse
+ else if Ebene = 3
+ send "
+ else if Ebene = 4
+ Unicode("θ") ;theta
+ else if Ebene = 5
+ Send 3
+ else if Ebene = 6
+ Unicode("Θ") ; Theta
+ PriorDeadKey := ""
+return
+
+
+*-::
+ EbeneAktualisieren()
+ if Ebene = 1
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("ĵ")
+ Else
+ sendinput {blind}j
+ }
+ else if Ebene = 2
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("Ĵ")
+ Else
+ sendinput {blind}J
+ }
+ else if Ebene = 3
+ send `;
+ else if Ebene = 4
+ Unicode("ϑ") ; vartheta
+ else if Ebene = 5
+ Send .
+ else if Ebene = 6
+ Unicode("∇") ; Nabla
+ PriorDeadKey := ""
+return
+
+/*
+ ------------------------------------------------------
+ Numpad
+ ------------------------------------------------------
+
+ folgende Tasten verhalten sich bei ein- und ausgeschaltetem
+ NumLock gleich:
+*/
+
+*NumpadDiv::
+ EbeneAktualisieren()
+ if ( (Ebene = 1) or (Ebene = 2) )
+ send {NumpadDiv}
+ else if Ebene = 3
+ send
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("∕") ; slash
+ PriorDeadKey := ""
+return
+
+*NumpadMult::
+ EbeneAktualisieren()
+ if ( (Ebene = 1) or (Ebene = 2) )
+ send {NumpadMult}
+ else if Ebene = 3
+ send
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("⋅") ; cdot
+ PriorDeadKey := ""
+return
+
+*NumpadSub::
+ EbeneAktualisieren()
+ if ( (Ebene = 1) or (Ebene = 2) )
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("⁻")
+ Else
+ send {blind}{NumpadSub}
+ }
+ else if Ebene = 3
+ Unicode("−") ; echtes minus
+ PriorDeadKey := ""
+return
+
+*NumpadAdd::
+ EbeneAktualisieren()
+ if ( (Ebene = 1) or (Ebene = 2) )
+ {
+ If (PriorDeadKey = "c1") ; circumflex
+ BSUnicode("⁺")
+ Else
+ send {blind}{NumpadAdd}
+ }
+ else if Ebene = 3
+ send
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("∓") ; -+
+ PriorDeadKey := ""
+return
+
+*NumpadEnter::
+ EbeneAktualisieren()
+ if ( (Ebene = 1) or (Ebene = 2) )
+ send {NumpadEnter}
+ else if Ebene = 3
+ Unicode("≠") ; neq
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("≈") ; approx
+ PriorDeadKey := ""
+return
+
+/*
+ folgende Tasten verhalten sich bei ein- und ausgeschaltetem NumLock
+ unterschiedlich:
+
+ bei NumLock ein
+*/
+
+*Numpad7::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}{Numpad7}
+ else if Ebene = 2
+ send {NumpadHome}
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("≪") ; ll
+ PriorDeadKey := ""
+return
+
+*Numpad8::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}{Numpad8}
+ else if Ebene = 2
+ send {NumpadUp}
+ else if Ebene = 3
+ Unicode("↑") ; uparrow
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("∩") ;
+ PriorDeadKey := ""
+return
+
+*Numpad9::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}{Numpad9}
+ else if Ebene = 2
+ send {NumpadPgUp}
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("≫") ; gg
+ PriorDeadKey := ""
+return
+
+*Numpad4::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}{Numpad4}
+ else if Ebene = 2
+ send {NumpadLeft}
+ else if Ebene = 3
+ Unicode("←") ; leftarrow
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("⊂") ;
+ PriorDeadKey := ""
+return
+
+*Numpad5::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}{Numpad5}
+ else if Ebene = 2
+ send {NumpadClear}
+ else if Ebene = 3
+ send
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("∊") ;
+ PriorDeadKey := ""
+return
+
+*Numpad6::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}{Numpad6}
+ else if Ebene = 2
+ send {NumpadRight}
+ else if Ebene = 3
+ Unicode("→") ; rightarrow
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("⊃") ;
+ PriorDeadKey := ""
+return
+
+*Numpad1::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}{Numpad1}
+ else if Ebene = 2
+ send {NumpadEnd}
+ else if Ebene = 3
+ Unicode("⇋")
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("≤") ; leq
+ PriorDeadKey := ""
+return
+
+*Numpad2::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}{Numpad2}
+ else if Ebene = 2
+ send {NumpadDown}
+ else if Ebene = 3
+ Unicode("↓") ; downarrow
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("∪") ;
+ PriorDeadKey := ""
+return
+
+*Numpad3::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}{Numpad3}
+ else if Ebene = 2
+ send {NumpadPgDn}
+ else if Ebene = 3
+ Unicode("⇌")
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("≥") ; geq
+ PriorDeadKey := ""
+return
+
+*Numpad0::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {blind}{Numpad0}
+ else if Ebene = 2
+ send {NumpadIns}
+ else if Ebene = 3
+ send `%
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ send
+ PriorDeadKey := ""
+return
+
+*NumpadDot::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadDot}
+ else if Ebene = 2
+ send {NumpadDel}
+ else if Ebene = 3
+ send .
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ send `,
+ PriorDeadKey := ""
+return
+
+/*
+ bei NumLock aus
+*/
+
+*NumpadHome::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadHome}
+ else if Ebene = 2
+ send {Numpad7}
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("≪") ; ll
+ PriorDeadKey := ""
+return
+
+*NumpadUp::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadUp}
+ else if Ebene = 2
+ send {Numpad8}
+ else if Ebene = 3
+ Unicode("↑") ; uparrow
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("∩") ;
+ PriorDeadKey := ""
+return
+
+*NumpadPgUp::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadPgUp}
+ else if Ebene = 2
+ send {Numpad9}
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("≫") ; gg
+ PriorDeadKey := ""
+return
+
+*NumpadLeft::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadLeft}
+ else if Ebene = 2
+ send {Numpad4}
+ else if Ebene = 3
+ Unicode("←") ; leftarrow
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("⊂") ;
+ PriorDeadKey := ""
+return
+
+*NumpadClear::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadClear}
+ else if Ebene = 2
+ send {Numpad5}
+ else if Ebene = 3
+ send
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("∊") ;
+ PriorDeadKey := ""
+return
+
+*NumpadRight::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadRight}
+ else if Ebene = 2
+ send {Numpad6}
+ else if Ebene = 3
+ Unicode("→") ; rightarrow
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("⊃") ;
+ PriorDeadKey := ""
+return
+
+*NumpadEnd::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadEnd}
+ else if Ebene = 2
+ send {Numpad1}
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("≤") ; leq
+ PriorDeadKey := ""
+return
+
+*NumpadDown::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadDown}
+ else if Ebene = 2
+ send {Numpad2}
+ else if Ebene = 3
+ Unicode("↓") ; downarrow
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("∪") ;
+ PriorDeadKey := ""
+return
+
+*NumpadPgDn::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadPgDn}
+ else if Ebene = 2
+ send {Numpad3}
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ Unicode("≥") ; geq
+ PriorDeadKey := ""
+return
+
+*NumpadIns::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadIns}
+ else if Ebene = 2
+ send {Numpad0}
+ else if Ebene = 3
+ send `%
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ send
+ PriorDeadKey := ""
+return
+
+*NumpadDel::
+ EbeneAktualisieren()
+ if Ebene = 1
+ send {NumpadDel}
+ else if Ebene = 2
+ send {NumpadDot}
+ else if Ebene = 3
+ send .
+ else if ( (Ebene = 4) or (Ebene = 5) )
+ send `,
+ PriorDeadKey := ""
+return
+
+
+
+/*
+ ------------------------------------------------------
+ Sondertasten
+ ------------------------------------------------------
+*/
+
+*Space::
+ EbeneAktualisieren()
+ if Ebene = 4
+ SendUnicodeChar(0x00A0) ; geschtztes Leerzeichen
+ else if Ebene = 5
+ Send 0
+ else if Ebene = 6
+ SendUnicodeChar(0x202F) ; schmales Leerzeichen
+ else
+ Send {blind}{Space}
+ PriorDeadKey := ""
+return
+
+/*
+ Folgende Tasten sind nur aufgefhrt, um PriorDeadKey zu leeren.
+ Irgendwie sieht das noch nicht schn aus. Vielleicht lsst sich dieses
+ Problem irgendwie eleganter lsen...
+
+ Nachtrag:
+ Weil es mit Alt+Tab Probleme gab, wird hier jetzt erstmal rumgeflickschustert,
+ bis eine allgemeinere Lsung gefunden wurde.
+*/
+
+*Enter::
+ sendinput {Blind}{Enter}
+ PriorDeadKey := ""
+return
+
+*Backspace::
+ sendinput {Blind}{Backspace}
+ PriorDeadKey := ""
+return
+
+
+
+/*
+Tab wurde rausgenommen, weil es Probleme mit AltTab und ShiftAltTab gab.
+Allerdings kommt es jetzt zu komischen Ergebnissen, wenn man Tab nach
+einem DeadKey drckt...
+
+*Tab::
+ send {Blind}{Tab}
+ PriorDeadKey := ""
+return
+
+*/
+
+*Home::
+ sendinput {Blind}{Home}
+ PriorDeadKey := ""
+return
+
+*End::
+ sendinput {Blind}{End}
+ PriorDeadKey := ""
+return
+
+*PgUp::
+ sendinput {Blind}{PgUp}
+ PriorDeadKey := ""
+return
+
+*PgDn::
+ sendinput {Blind}{PgDn}
+ PriorDeadKey := ""
+return
+
+*Up::
+ sendinput {Blind}{Up}
+ PriorDeadKey := ""
+return
+
+*Down::
+ sendinput {Blind}{Down}
+ PriorDeadKey := ""
+return
+
+*Left::
+ sendinput {Blind}{Left}
+ PriorDeadKey := ""
+return
+
+*Right::
+ sendinput {Blind}{Right}
+ PriorDeadKey := ""
+return
+
+
+/*
+ ------------------------------------------------------
+ Funktionen
+ ------------------------------------------------------
+*/
+
+EbeneAktualisieren()
+{
+ global
+ Ebene = 1
+
+ ; ist Shift down?
+ if ( GetKeyState("Shift","P") )
+ {
+ Ebene += 1
+ }
+ ; ist Mod3 down?
+ if ( GetKeyState("CapsLock","P") or GetKeyState("#","P") )
+ {
+ Ebene += 2
+ }
+ ; ist Mod5 down? Mod3 hat Vorrang!
+ else if ( GetKeyState("<","P") or GetKeyState("SC138","P") )
+ {
+ Ebene += 4
+ }
+
+ return
+}
+
+Unicode(code)
+{
+ saved_clipboard := ClipboardAll
+ Transform, Clipboard, Unicode, %code%
+ sendplay ^v
+ Clipboard := saved_clipboard
+}
+
+BSUnicode(code)
+{
+ saved_clipboard := ClipboardAll
+ Transform, Clipboard, Unicode, %code%
+ sendplay {bs}^v
+ Clipboard := saved_clipboard
+}
+
+SendUnicodeChar(charCode)
+{
+ 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)
+}
+
+
+/*
+ ------------------------------------------------------
+ Shift+Pause "pausiert" das Script.
+ ------------------------------------------------------
+*/
+
++pause::suspend
diff --git a/windows/XP/autohotkey/neo20-all-in-one.exe b/windows/XP/autohotkey/neo20-all-in-one.exe
new file mode 100644
index 0000000..95f6c66
--- /dev/null
+++ b/windows/XP/autohotkey/neo20-all-in-one.exe
Binary files differ
diff --git a/windows/XP/autohotkey/neo20-all-in-one.zip b/windows/XP/autohotkey/neo20-all-in-one.zip
deleted file mode 100644
index 03e0509..0000000
--- a/windows/XP/autohotkey/neo20-all-in-one.zip
+++ /dev/null
Binary files differ