diff options
| -rw-r--r-- | windows/XP/autohotkey/neo20-all-in-one.ahk | 699 | 
1 files changed, 355 insertions, 344 deletions
| diff --git a/windows/XP/autohotkey/neo20-all-in-one.ahk b/windows/XP/autohotkey/neo20-all-in-one.ahk index 5bf4883..a92785a 100644 --- a/windows/XP/autohotkey/neo20-all-in-one.ahk +++ b/windows/XP/autohotkey/neo20-all-in-one.ahk @@ -1,18 +1,20 @@  /*
      Titel:        NEO Autohotkey-Treiber
 -    Version:      0.04 beta
 -    Datum:        29.05.2007
 +    Version:      0.05 beta
 +    Datum:        12.06.2007
      Basiert auf:  neo20.ahk und neo20-remap.ahk vom 25.05.2007
      TODO:         - ausgiebig testen...
 -                  - DeadKeys tot machen (?)
                    - Menü des Tasksymbols
 -                  - Symbol ändern (?)
 -                  - wenn möglich, "sendinput {blind}" verwenden (?)
 +                  - Bessere Lösung für das leeren von PriorDeadKey finden, damit die Sondertasten
 +                    nicht mehr abgefangen werden müssen.
 +    
 +    Ideen:
 +                  - DeadKeys tot machen
 +                  - Symbol ändern
 +                  - wenn möglich, "sendinput {blind}" verwenden
                      (gibt es irgendwelche Probleme bei "sendinput {blind}" ?)
                    - bei Ebene 5 rechte Hand (Numpad) z.B. Numpad5 statt 5 senden
 -                  - Bessere Lösung für das leeren von myPriorHotkey finden, damit die Sondertasten
 -                    nicht mehr abgefangen werden müssen.
  */
  ; aus Nora's script kopiert:
 @@ -63,7 +65,7 @@ if inputlocale <> 00000407  */
  Ebene = 1
 -myPriorHotkey = ""
 +PriorDeadKey := ""
  /*
 @@ -101,12 +103,12 @@ return  /*
     Ablauf bei toten Tasten:
     1. Ebene Aktualisieren
 -   2. Abhängig von der Variablen "Ebene" Zeichen ausgeben und die Variable "myPriorHotkey" setzen
 +   2. Abhängig von der Variablen "Ebene" Zeichen ausgeben und die Variable "PriorDeadKey" setzen
     Ablauf bei "lebenden" (sagt man das?) Tasten:
     1. Ebene Aktualisieren
 -   2. Abhängig von den Variablen "Ebene" und "myPriorHotkey" Zeichen ausgeben
 -   3. "myPriorHotkey" mit leerem String überschreiben
 +   2. Abhängig von den Variablen "Ebene" und "PriorDeadKey" Zeichen ausgeben
 +   3. "PriorDeadKey" mit leerem String überschreiben
     ------------------------------------------------------
     Reihe 1
 @@ -118,32 +120,32 @@ return     if Ebene = 1
     {
        Unicode("ˆ") ; circumflex, tot
 -      myPriorHotkey = "c1"
 +      PriorDeadKey := "c1"
     }
     else if Ebene = 2
     {
        Unicode("ˇ")  ; caron, tot
 -      myPriorHotkey = "c2"
 +      PriorDeadKey := "c2"
     }
     else if Ebene = 3
     {
        Unicode("˘")   ; brevis
 -      myPriorHotkey = "c3"
 +      PriorDeadKey := "c3"
     }
     else if Ebene = 4
     {
        send - ; querstrich, tot
 -      myPriorHotkey = "c4"
 +      PriorDeadKey := "c4"
     }
     else if Ebene = 5
     {
        Unicode("·")  ; Mittenpunkt, tot
 -      myPriorHotkey = "c5"
 +      PriorDeadKey := "c5"
     }
     else if Ebene = 6
     {
        Send .         ; punkt darunter
 -      myPriorHotkey = "c6"
 +      PriorDeadKey := "c6"
     }
  return
 @@ -151,7 +153,7 @@ return     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"          ; circumflex 1
 +      If (PriorDeadKey = "c1")          ; circumflex 1
           BSUnicode("¹")
        Else
           send 1
 @@ -162,14 +164,14 @@ return        send ¼
     else if Ebene = 5
        Unicode("â…›") ; 1/8
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *2::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"          ; circumflex 
 +      If (PriorDeadKey = "c1")          ; circumflex 
           BSUnicode("²")
        Else
           send 2      
 @@ -178,14 +180,14 @@ return        send ¶
     else if Ebene = 4
        send ½
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *3::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"          ; circumflex
 +      If (PriorDeadKey = "c1")          ; circumflex
           BSUnicode("³")
        Else
           send 3      
 @@ -196,7 +198,7 @@ return        send ¾
     else if Ebene = 5
        Unicode("⅜") ; 3/8
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *4::
 @@ -213,7 +215,7 @@ return        Send {PgUp}    ; Prev
     else if Ebene = 6
        Send +{Prev}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *5::
 @@ -230,7 +232,7 @@ return        Unicode("â…") ; 5/8
     else if Ebene = 6
        Unicode("⇒") ; Implikation
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *6::
 @@ -245,7 +247,7 @@ return        send Æ
     else if Ebene = 6
        Unicode("⇔") ; Äquivalenz
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *7::
 @@ -260,7 +262,7 @@ return        send Œ
     else if Ebene = 5
        Unicode("â…ž") ; 7/8
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *8::
 @@ -277,7 +279,7 @@ return        Send /
     else if Ebene = 6
        Unicode("∃") ; Existenzquantor
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *9::
 @@ -294,7 +296,7 @@ return        Send *
     else if Ebene = 6
        Unicode("∀") ; Allquantor
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *0::
 @@ -311,7 +313,7 @@ return        Send -
     else if Ebene = 6
        Send ¬
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *ß::
 @@ -326,7 +328,7 @@ return        send ‹
     else if Ebene = 6
        Unicode("∨") ; logisch oder
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *´::
 @@ -334,32 +336,32 @@ return     if Ebene = 1
     {
        send {´}{space} ; akut, tot
 -      myPriorHotkey = "a1"
 +      PriorDeadKey := "a1"
     }
     else if Ebene = 2
     {
        send ``{space}
 -      myPriorHotkey = "a2"
 +      PriorDeadKey := "a2"
     }
     else if Ebene = 3
     {
        send ¸ ; cedilla
 -      myPriorHotkey = "a3"
 +      PriorDeadKey := "a3"
     }
     else if Ebene = 4
     {
        Unicode("Ë›") ; ogonek
 -      myPriorHotkey = "a4"
 +      PriorDeadKey := "a4"
     }
     else if Ebene = 5
     {
        Unicode("Ë™") ; punkt oben drüber
 -      myPriorHotkey = "a5"
 +      PriorDeadKey := "a5"
     }
     else if Ebene = 6
     {
        Unicode("Ëš")  ; ring obendrauf
 -      myPriorHotkey = "a6"
 +      PriorDeadKey := "a6"
     }
  return
 @@ -382,7 +384,7 @@ return        Unicode("ξ") ;xi
     else if Ebene = 6
        Unicode("Ξ")  ; Xi
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
 @@ -390,14 +392,14 @@ return     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c6"      ; punkt darunter 
 +      If (PriorDeadKey = "c6")      ; punkt darunter 
           BSUnicode("ṿ")
        Else
           sendinput {blind}v
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c6"      ; punkt darunter
 +      If (PriorDeadKey = "c6")      ; punkt darunter
           BSUnicode("á¹¾")
        Else 
           sendinput {blind}V
 @@ -408,7 +410,7 @@ return        Send {Backspace}
     else if Ebene = 6
        Unicode("Λ")  ; Lambda
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
 @@ -417,34 +419,34 @@ return     EbeneAktualisieren()
     if Ebene = 1
     { 
 -      If myPriorHotkey = "t5"       ; Schrägstrich
 +      If (PriorDeadKey = "t5")       ; Schrägstrich
           BSUnicode("Å‚")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("ĺ")
 -      Else If myPriorHotkey = "c2"     ; caron 
 +      Else If (PriorDeadKey = "c2")     ; caron 
           BSUnicode("ľ")
 -      Else If myPriorHotkey = "a3"    ; cedilla
 +      Else If (PriorDeadKey = "a3")    ; cedilla
           BSUnicode("ļ")
 -      Else If myPriorHotkey = "c5"  ; Mittenpunkt
 +      Else If (PriorDeadKey = "c5")  ; Mittenpunkt
           BSUnicode("Å€")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("ḷ")
        Else 
           sendinput {blind}l
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "a1"           ; akut 
 +      If (PriorDeadKey = "a1")           ; akut 
           BSUnicode("Ĺ")
 -      Else If myPriorHotkey = "c2"     ; caron 
 +      Else If (PriorDeadKey = "c2")     ; caron 
           BSUnicode("Ľ")
 -      Else If myPriorHotkey = "a3"    ; cedilla
 +      Else If (PriorDeadKey = "a3")    ; cedilla
           BSUnicode("Ä»")
 -      Else If myPriorHotkey = "t5"  ; Schrägstrich 
 +      Else If (PriorDeadKey = "t5")  ; Schrägstrich 
           BSUnicode("Å")
 -      Else If myPriorHotkey = "c5"  ; Mittenpunkt 
 +      Else If (PriorDeadKey = "c5")  ; Mittenpunkt 
           BSUnicode("Ä¿")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("Ḷ")
        Else 
           sendinput {blind}L
 @@ -457,7 +459,7 @@ return        Sendinput {Blind}{Up}
     else if Ebene = 6
        Sendinput {Blind}+{Up}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
 @@ -465,30 +467,30 @@ return     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("ĉ")
 -      Else If myPriorHotkey = "c2"     ; caron
 +      Else If (PriorDeadKey = "c2")     ; caron
           BSUnicode("Ä")
 -      Else If myPriorHotkey = "a1"      ; akut
 +      Else If (PriorDeadKey = "a1")      ; akut
           BSUnicode("ć")
 -      Else If myPriorHotkey = "a3"    ; cedilla
 +      Else If (PriorDeadKey = "a3")    ; cedilla
           BSUnicode("ç")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("Ä‹")
        Else 
           sendinput {blind}c
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c1"          ; circumflex 
 +      If (PriorDeadKey = "c1")          ; circumflex 
           BSUnicode("Ĉ")
 -      Else If myPriorHotkey = "c2"    ; caron 
 +      Else If (PriorDeadKey = "c2")    ; caron 
           BSUnicode("Č")
 -      Else If myPriorHotkey = "a1"     ; akut 
 +      Else If (PriorDeadKey = "a1")     ; akut 
           BSUnicode("Ć")
 -      Else If myPriorHotkey = "a3"   ; cedilla 
 +      Else If (PriorDeadKey = "a3")   ; cedilla 
           BSUnicode("Ç")
 -      Else If myPriorHotkey = "a5" ; punkt darüber 
 +      Else If (PriorDeadKey = "a5") ; punkt darüber 
           BSUnicode("ÄŠ")
        Else 
           sendinput {blind}C
 @@ -501,21 +503,21 @@ return        Send {Tab}
     else if Ebene = 6
        Send +{Tab}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *t::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("ŵ")
        Else
           sendinput {blind}w
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("ŵ")
        Else
           sendinput {blind}W
 @@ -526,25 +528,25 @@ return        Send {Insert}
     else if Ebene = 6
        Send +{Insert}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *z::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "a3"         ; cedilla
 +      If (PriorDeadKey = "a3")         ; cedilla
           BSUnicode("Ä·")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("ḳ")
        Else
           sendinput {blind}k
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "a3"         ; cedilla 
 +      If (PriorDeadKey = "a3")         ; cedilla 
           BSUnicode("Ķ")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("Ḳ")
        Else
           sendinput {blind}K
 @@ -557,38 +559,38 @@ return        Send ¡
     else if Ebene = 6
        Send ©
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *u::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("Ä¥")
 -      Else If myPriorHotkey = "c4"   ; Querstrich 
 +      Else If (PriorDeadKey = "c4")   ; Querstrich 
           BSUnicode("ħ")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("ḣ")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("ḥ")
        Else sendinput {blind}h
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("Ĥ")
 -      Else If myPriorHotkey = "c4"   ; Querstrich
 +      Else If (PriorDeadKey = "c4")   ; Querstrich
           BSUnicode("Ħ")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("Ḣ")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("Ḥ")
        Else sendinput {blind}H
     }
     else if Ebene = 3
     {
 -      If myPriorHotkey = "c4"    ; Querstrich
 +      If (PriorDeadKey = "c4")    ; Querstrich
           BSUnicode("≤")
        Else
           send <
 @@ -599,38 +601,38 @@ return        Send 7
     else if Ebene = 6
        Unicode("Ψ")  ; Phi
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *i::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"          ; circumflex
 +      If (PriorDeadKey = "c1")          ; circumflex
           BSUnicode("Ä")
 -      Else If myPriorHotkey = "c3"   ; brevis
 +      Else If (PriorDeadKey = "c3")   ; brevis
           BSUnicode("ÄŸ")
 -      Else If myPriorHotkey = "a3"   ; cedilla
 +      Else If (PriorDeadKey = "a3")   ; cedilla
           BSUnicode("Ä£")
 -      Else If myPriorHotkey = "a5" ; punkt darüber 
 +      Else If (PriorDeadKey = "a5") ; punkt darüber 
           BSUnicode("Ä¡")
        Else sendinput {blind}g
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("Ĝ") 
 -      Else If myPriorHotkey = "c3"    ; brevis 
 +      Else If (PriorDeadKey = "c3")    ; brevis 
           BSUnicode("Äž")
 -      Else If myPriorHotkey = "a3"    ; cedilla 
 +      Else If (PriorDeadKey = "a3")    ; cedilla 
           BSUnicode("Ä¢")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("Ä ")
        Else sendinput {blind}G
     }
     else if Ebene = 3
     {
 -      If myPriorHotkey = "c4"    ; Querstrich
 +      If (PriorDeadKey = "c4")    ; Querstrich
           BSUnicode("≥")
        Else
           send >
 @@ -641,40 +643,40 @@ return        Send 8
     else if Ebene = 6
        Unicode("Γ")  ; Gamma
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *o::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "t5"      ; durchgestrichen
 +      If (PriorDeadKey = "t5")      ; durchgestrichen
           BSUnicode("Æ’")
 -      Else If myPriorHotkey = "a5" ; punkt darüber 
 +      Else If (PriorDeadKey = "a5") ; punkt darüber 
           BSUnicode("ḟ")
        Else sendinput {blind}f
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "t5"       ; durchgestrichen
 +      If (PriorDeadKey = "t5")       ; durchgestrichen
           BSUnicode("â‚£")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("Ḟ")
        Else sendinput {blind}F
     } 
     else if Ebene = 3
     {
 -      If myPriorHotkey = "c1"            ; circumflex 
 +      If (PriorDeadKey = "c1")            ; circumflex 
           BSUnicode("≙")
 -      Else If myPriorHotkey = "t1"       ; tilde 
 +      Else If (PriorDeadKey = "t1")       ; tilde 
           BSUnicode("≅")
 -      Else If myPriorHotkey = "t5"   ; Schrägstrich 
 +      Else If (PriorDeadKey = "t5")   ; Schrägstrich 
           BSUnicode("≠")
 -      Else If myPriorHotkey = "c4"    ; Querstrich
 +      Else If (PriorDeadKey = "c4")    ; Querstrich
           BSUnicode("≡")
 -      Else If myPriorHotkey = "c2"      ; caron 
 +      Else If (PriorDeadKey = "c2")      ; caron 
           BSUnicode("≚")
 -      Else If myPriorHotkey = "a6"  ; ring drüber 
 +      Else If (PriorDeadKey = "a6")  ; ring drüber 
           BSUnicode("≗")
 @@ -694,7 +696,7 @@ return        Send 9
     else if Ebene = 6
        Unicode("Φ")  ; Psi
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *p::
 @@ -709,7 +711,7 @@ return        Send {+}
     else if Ebene = 6
        Unicode("∧") ; logisches Und
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *ü::
 @@ -726,7 +728,7 @@ return        Unicode("É™") ; schwa
     else if Ebene = 6
        Unicode("Æ")  ; Schwa
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
 @@ -735,32 +737,32 @@ return     if Ebene = 1
     {
        Unicode("˜")    ; tilde, tot 
 -      myPriorHotkey = "t1"
 +      PriorDeadKey := "t1"
     }
     else if Ebene = 2
     {
        Unicode("ˉ")  ; macron, tot
 -      myPriorHotkey = "t2"
 +      PriorDeadKey := "t2"
     }
     else if Ebene = 3
     {
        Unicode("¨")   ; Diaerese
 -      myPriorHotkey = "t3"
 +      PriorDeadKey := "t3"
     }
     else if Ebene = 4
     {
        send "        ;doppelakut
 -      myPriorHotkey = "t4"
 +      PriorDeadKey := "t4"
     }
     else if Ebene = 5
     {
        Unicode("/")  ; Schrägstrich, tot
 -      myPriorHotkey = "t5"
 +      PriorDeadKey := "t5"
     }
     else if Ebene = 6
     {
        Unicode("Ë")  ; komma drunter, tot
 -      myPriorHotkey = "t6"
 +      PriorDeadKey := "t6"
     }
  return
 @@ -775,54 +777,54 @@ return     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("û")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("ú")
 -      Else If myPriorHotkey = "a2"     ; grave
 +      Else If (PriorDeadKey = "a2")     ; grave
           BSUnicode("ù")
 -      Else If myPriorHotkey = "t3"    ; Diaerese
 +      Else If (PriorDeadKey = "t3")    ; Diaerese
           Send, {bs}ü
 -      Else If myPriorHotkey = "t4"   ; doppelakut 
 +      Else If (PriorDeadKey = "t4")   ; doppelakut 
           BSUnicode("ű")
 -      Else If myPriorHotkey = "c3"    ; brevis
 +      Else If (PriorDeadKey = "c3")    ; brevis
           BSUnicode("Å")
 -      Else If myPriorHotkey = "t2"     ; macron
 +      Else If (PriorDeadKey = "t2")     ; macron
           BSUnicode("Å«")
 -      Else If myPriorHotkey = "a4"   ; ogonek
 +      Else If (PriorDeadKey = "a4")   ; ogonek
           BSUnicode("ų")
 -      Else If myPriorHotkey = "a6" ; Ring
 +      Else If (PriorDeadKey = "a6") ; Ring
           BSUnicode("ů")
 -      Else If myPriorHotkey = "t1"      ; tilde
 +      Else If (PriorDeadKey = "t1")      ; tilde
           BSUnicode("Å©")
        Else
           sendinput {blind}u
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("Û")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("Ú")
 -      Else If myPriorHotkey = "a2"     ; grave
 +      Else If (PriorDeadKey = "a2")     ; grave
           BSUnicode("Ù")
 -      Else If myPriorHotkey = "t3"    ; Diaerese
 +      Else If (PriorDeadKey = "t3")    ; Diaerese
           Send, {bs}Ü
 -      Else If myPriorHotkey = "a6" ; Ring
 +      Else If (PriorDeadKey = "a6") ; Ring
           BSUnicode("Å®")
 -      Else If myPriorHotkey = "c3"    ; brevis
 +      Else If (PriorDeadKey = "c3")    ; brevis
           BSUnicode("Ŭ")
 -      Else If myPriorHotkey = "t4"   ; doppelakut
 +      Else If (PriorDeadKey = "t4")   ; doppelakut
           BSUnicode("Ű")
 -      Else If myPriorHotkey = "c2"     ; caron 
 +      Else If (PriorDeadKey = "c2")     ; caron 
           BSUnicode("Å®")
 -      Else If myPriorHotkey = "t2"     ; macron
 +      Else If (PriorDeadKey = "t2")     ; macron
           BSUnicode("Ū")
 -      Else If myPriorHotkey = "c3"    ; brevis 
 +      Else If (PriorDeadKey = "c3")    ; brevis 
           BSUnicode("Ŭ")
 -      Else If myPriorHotkey = "a4"   ; ogonek
 +      Else If (PriorDeadKey = "a4")   ; ogonek
           BSUnicode("Ų")
 -      Else If myPriorHotkey = "t1"      ; tilde
 +      Else If (PriorDeadKey = "t1")      ; tilde
           BSUnicode("Ũ")
        Else
           sendinput {blind}U
 @@ -833,53 +835,53 @@ return        Send {Home}
     else if Ebene = 6
        Send +{Home}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *s::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"          ; circumflex
 +      If (PriorDeadKey = "c1")          ; circumflex
           BSUnicode("î")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("Ã")
 -      Else If myPriorHotkey = "a2"     ; grave
 +      Else If (PriorDeadKey = "a2")     ; grave
           BSUnicode("ì")
 -      Else If myPriorHotkey = "t3"   ; Diaerese
 +      Else If (PriorDeadKey = "t3")   ; Diaerese
           Send, {bs}ï
 -      Else If myPriorHotkey = "t2"    ; macron
 +      Else If (PriorDeadKey = "t2")    ; macron
           BSUnicode("Ä«")
 -      Else If myPriorHotkey = "c3"   ; brevis
 +      Else If (PriorDeadKey = "c3")   ; brevis
           BSUnicode("Ä")
 -      Else If myPriorHotkey = "a4"  ; ogonek
 +      Else If (PriorDeadKey = "a4")  ; ogonek
           BSUnicode("į")
 -      Else If myPriorHotkey = "t1"     ; tilde
 +      Else If (PriorDeadKey = "t1")     ; tilde
           BSUnicode("Ä©")
 -      Else If myPriorHotkey = "a5" ; (ohne) punkt darüber 
 +      Else If (PriorDeadKey = "a5") ; (ohne) punkt darüber 
           BSUnicode("ı")
        Else 
           sendinput {blind}i
     }
     else if Ebene = 2
     {   
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("ÃŽ")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("Ã")
 -      Else If myPriorHotkey = "a2"     ; grave
 +      Else If (PriorDeadKey = "a2")     ; grave
           BSUnicode("Ì")
 -      Else If myPriorHotkey = "t3"    ; Diaerese
 +      Else If (PriorDeadKey = "t3")    ; Diaerese
           Send, {bs}Ï
 -      Else If myPriorHotkey = "t2"     ; macron
 +      Else If (PriorDeadKey = "t2")     ; macron
           BSUnicode("Ī")
 -      Else If myPriorHotkey = "c3"    ; brevis 
 +      Else If (PriorDeadKey = "c3")    ; brevis 
           BSUnicode("Ĭ")
 -      Else If myPriorHotkey = "a4"   ; ogonek
 +      Else If (PriorDeadKey = "a4")   ; ogonek
           BSUnicode("Ä®")
 -      Else If myPriorHotkey = "t1"      ; tilde
 +      Else If (PriorDeadKey = "t1")      ; tilde
           BSUnicode("Ĩ")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("İ")
        Else 
           sendinput {blind}I
 @@ -892,53 +894,53 @@ return        Sendinput {Blind}{Left}
     else if Ebene = 6
        Sendinput {Blind}+{Left}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *d::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("â")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("á")
 -      Else If myPriorHotkey = "a2"     ; grave
 +      Else If (PriorDeadKey = "a2")     ; grave
           BSUnicode("à")
 -      Else If myPriorHotkey = "t3"    ; Diaerese
 +      Else If (PriorDeadKey = "t3")    ; Diaerese
           send {bs}ä
 -      Else If myPriorHotkey = "a6" ; Ring 
 +      Else If (PriorDeadKey = "a6") ; Ring 
           Send {bs}å
 -      Else If myPriorHotkey = "t1"      ; tilde
 +      Else If (PriorDeadKey = "t1")      ; tilde
           BSUnicode("ã")
 -      Else If myPriorHotkey = "a4"   ; ogonek
 +      Else If (PriorDeadKey = "a4")   ; ogonek
           BSUnicode("Ä…")
 -      Else If myPriorHotkey = "t2"     ; macron
 +      Else If (PriorDeadKey = "t2")     ; macron
           BSUnicode("Ä")
 -      Else If myPriorHotkey = "c3"    ; brevis
 +      Else If (PriorDeadKey = "c3")    ; brevis
           BSUnicode("ă")
        Else 
           sendinput {blind}a
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c1"            ; circumflex
 +      If (PriorDeadKey = "c1")            ; circumflex
           BSUnicode("Â")
 -      Else If myPriorHotkey = "a1"       ; akut 
 +      Else If (PriorDeadKey = "a1")       ; akut 
           BSUnicode("Ã")
 -      Else If myPriorHotkey = "a2"      ; grave
 +      Else If (PriorDeadKey = "a2")      ; grave
           BSUnicode("À")
 -      Else If myPriorHotkey = "t3"     ; Diaerese
 +      Else If (PriorDeadKey = "t3")     ; Diaerese
           send {bs}Ä
 -      Else If myPriorHotkey = "t1"       ; tilde
 +      Else If (PriorDeadKey = "t1")       ; tilde
           BSUnicode("Ã")
 -      Else If myPriorHotkey = "a6"  ; Ring 
 +      Else If (PriorDeadKey = "a6")  ; Ring 
           Send {bs}Å
 -      Else If myPriorHotkey = "t2"      ; macron
 +      Else If (PriorDeadKey = "t2")      ; macron
           BSUnicode("Ä€")
 -      Else If myPriorHotkey = "c3"     ; brevis 
 +      Else If (PriorDeadKey = "c3")     ; brevis 
           BSUnicode("Ä‚")
 -      Else If myPriorHotkey = "a4"    ; ogonek
 +      Else If (PriorDeadKey = "a4")    ; ogonek
           BSUnicode("Ä„")
        Else 
           sendinput {blind}A
 @@ -951,53 +953,53 @@ return        Sendinput {Blind}{Down}
     else if Ebene = 6
        Sendinput {Blind}+{Down}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *f::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"          ; circumflex
 +      If (PriorDeadKey = "c1")          ; circumflex
           BSUnicode("ê")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("é")
 -      Else If myPriorHotkey = "a2"     ; grave
 +      Else If (PriorDeadKey = "a2")     ; grave
           BSUnicode("è")
 -      Else If myPriorHotkey = "t3"   ; Diaerese
 +      Else If (PriorDeadKey = "t3")   ; Diaerese
           Send, {bs}ë
 -      Else If myPriorHotkey = "a4"  ; ogonek
 +      Else If (PriorDeadKey = "a4")  ; ogonek
           BSUnicode("Ä™")
 -      Else If myPriorHotkey = "t2"    ; macron
 +      Else If (PriorDeadKey = "t2")    ; macron
           BSUnicode("Ä“")
 -      Else If myPriorHotkey = "c3"   ; brevis
 +      Else If (PriorDeadKey = "c3")   ; brevis
           BSUnicode("Ä•")
 -      Else If myPriorHotkey = "c2"    ; caron
 +      Else If (PriorDeadKey = "c2")    ; caron
           BSUnicode("Ä›")
 -      Else If myPriorHotkey = "a5" ; punkt darüber 
 +      Else If (PriorDeadKey = "a5") ; punkt darüber 
           BSUnicode("Ä—")
        Else 
           sendinput {blind}e
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("Ê")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("É")
 -      Else If myPriorHotkey = "a2"     ; grave
 +      Else If (PriorDeadKey = "a2")     ; grave
           BSUnicode("È")
 -      Else If myPriorHotkey = "t3"    ; Diaerese
 +      Else If (PriorDeadKey = "t3")    ; Diaerese
           Send, {bs}Ë
 -      Else If myPriorHotkey = "c2"     ; caron
 +      Else If (PriorDeadKey = "c2")     ; caron
           BSUnicode("Äš")
 -      Else If myPriorHotkey = "t2"     ; macron
 +      Else If (PriorDeadKey = "t2")     ; macron
           BSUnicode("Ä’")
 -      Else If myPriorHotkey = "c3"    ; brevis 
 +      Else If (PriorDeadKey = "c3")    ; brevis 
           BSUnicode("Ä”")
 -      Else If myPriorHotkey = "a4"   ; ogonek 
 +      Else If (PriorDeadKey = "a4")   ; ogonek 
           BSUnicode("Ę")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("Ä–")
        Else 
           sendinput {blind}E
 @@ -1010,53 +1012,53 @@ return        Sendinput {Blind}{Right}
     else if Ebene = 6
        Sendinput {Blind}+{Right}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *g::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("ô")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("ó")
 -      Else If myPriorHotkey = "a2"     ; grave
 +      Else If (PriorDeadKey = "a2")     ; grave
           BSUnicode("ò")
 -      Else If myPriorHotkey = "t3"    ; Diaerese
 +      Else If (PriorDeadKey = "t3")    ; Diaerese
           Send, {bs}ö
 -      Else If myPriorHotkey = "t1"      ; tilde
 +      Else If (PriorDeadKey = "t1")      ; tilde
           BSUnicode("õ")
 -      Else If myPriorHotkey = "t4"   ; doppelakut
 +      Else If (PriorDeadKey = "t4")   ; doppelakut
           BSUnicode("Å‘")
 -      Else If myPriorHotkey = "t5"  ; Schrägstrich
 +      Else If (PriorDeadKey = "t5")  ; Schrägstrich
           BSUnicode("ø")
 -      Else If myPriorHotkey = "t2"     ; macron
 +      Else If (PriorDeadKey = "t2")     ; macron
           BSUnicode("Å")
 -      Else If myPriorHotkey = "c3"    ; brevis 
 +      Else If (PriorDeadKey = "c3")    ; brevis 
           BSUnicode("Å")
        Else 
           sendinput {blind}o
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("Ô")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("Ó")
 -      Else If myPriorHotkey = "a2"     ; grave
 +      Else If (PriorDeadKey = "a2")     ; grave
           BSUnicode("Ã’")
 -      Else If myPriorHotkey = "t5"  ; Schrägstrich
 +      Else If (PriorDeadKey = "t5")  ; Schrägstrich
           BSUnicode("Ø")
 -      Else If myPriorHotkey = "t1"      ; tilde
 +      Else If (PriorDeadKey = "t1")      ; tilde
           BSUnicode("Õ")
 -      Else If myPriorHotkey = "t4"   ; doppelakut
 +      Else If (PriorDeadKey = "t4")   ; doppelakut
           BSUnicode("Å")
 -      Else If myPriorHotkey = "t3"    ; Diaerese
 +      Else If (PriorDeadKey = "t3")    ; Diaerese
           send {bs}Ö
 -      Else If myPriorHotkey = "t2"     ; macron 
 +      Else If (PriorDeadKey = "t2")     ; macron 
           BSUnicode("Ō")
 -      Else If myPriorHotkey = "c3"    ; brevis 
 +      Else If (PriorDeadKey = "c3")    ; brevis 
           BSUnicode("ÅŽ")
        Else
           sendinput {blind}O
 @@ -1069,41 +1071,41 @@ return        Send {End}
     else if Ebene = 6
        Send +{End}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *h::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("Å")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("Å›")
 -      Else If myPriorHotkey = "c2"     ; caron
 +      Else If (PriorDeadKey = "c2")     ; caron
           BSUnicode("Å¡")
 -      Else If myPriorHotkey = "a3"    ; cedilla
 +      Else If (PriorDeadKey = "a3")    ; cedilla
           BSUnicode("ÅŸ")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("ṡ")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("á¹£")
        Else   
           sendinput {blind}s
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("Ŝ")
 -      Else If myPriorHotkey = "c2"     ; caron
 +      Else If (PriorDeadKey = "c2")     ; caron
           BSUnicode("Å ")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("Åš")
 -      Else If myPriorHotkey = "a3"    ; cedilla 
 +      Else If (PriorDeadKey = "a3")    ; cedilla 
           BSUnicode("Åž")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("á¹")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("á¹¢")
        Else
           sendinput {blind}S
 @@ -1116,37 +1118,37 @@ return        Send ¿
     else if Ebene = 6
        Unicode("Σ")  ; Sigma
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *j::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "a1"          ; akut
 +      If (PriorDeadKey = "a1")          ; akut
           BSUnicode("Å„")
 -      Else If myPriorHotkey = "t1"     ; tilde
 +      Else If (PriorDeadKey = "t1")     ; tilde
           BSUnicode("ñ")
 -      Else If myPriorHotkey = "c2"    ; caron
 +      Else If (PriorDeadKey = "c2")    ; caron
           BSUnicode("ň")
 -      Else If myPriorHotkey = "a3"   ; cedilla
 +      Else If (PriorDeadKey = "a3")   ; cedilla
           BSUnicode("ņ")
 -      Else If myPriorHotkey = "a5" ; punkt darüber 
 +      Else If (PriorDeadKey = "a5") ; punkt darüber 
           BSUnicode("á¹…")
        Else
           sendinput {blind}n
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c2"         ; caron
 +      If (PriorDeadKey = "c2")         ; caron
           BSUnicode("Ň")
 -      Else If myPriorHotkey = "t1"     ; tilde
 +      Else If (PriorDeadKey = "t1")     ; tilde
           BSUnicode("Ñ")
 -      Else If myPriorHotkey = "a1"     ; akut 
 +      Else If (PriorDeadKey = "a1")     ; akut 
           BSUnicode("Ń")
 -      Else If myPriorHotkey = "a3"   ; cedilla 
 +      Else If (PriorDeadKey = "a3")   ; cedilla 
           BSUnicode("Å…")
 -      Else If myPriorHotkey = "a5" ; punkt darüber 
 +      Else If (PriorDeadKey = "a5") ; punkt darüber 
           BSUnicode("Ṅ")
        Else
           sendinput {blind}N
 @@ -1159,37 +1161,37 @@ return        Send 4
     else if Ebene = 6
        Unicode("â„–") ; No
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *k::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "a1"           ; akut 
 +      If (PriorDeadKey = "a1")           ; akut 
           BSUnicode("Å•")
 -      Else If myPriorHotkey = "c2"     ; caron
 +      Else If (PriorDeadKey = "c2")     ; caron
           BSUnicode("Å™")
 -      Else If myPriorHotkey = "a3"    ; cedilla
 +      Else If (PriorDeadKey = "a3")    ; cedilla
           BSUnicode("Å—")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("á¹™")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("á¹›")
        Else 
           sendinput {blind}r
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c2"          ; caron
 +      If (PriorDeadKey = "c2")          ; caron
           BSUnicode("Ř")
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("Å”")
 -      Else If myPriorHotkey = "a3"    ; cedilla 
 +      Else If (PriorDeadKey = "a3")    ; cedilla 
           BSUnicode("Å–")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("Ṙ")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("Ṛ")
        Else 
           sendinput {blind}R
 @@ -1202,37 +1204,37 @@ return        Send 5
     else if Ebene = 6
        Unicode("®")  ; (R)
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *l::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c2"          ; caron 
 +      If (PriorDeadKey = "c2")          ; caron 
           BSUnicode("Å¥")
 -      Else If myPriorHotkey = "a3"    ; cedilla
 +      Else If (PriorDeadKey = "a3")    ; cedilla
           BSUnicode("Å£")
 -      Else If myPriorHotkey = "c4"   ; Querstrich
 +      Else If (PriorDeadKey = "c4")   ; Querstrich
           BSUnicode("ŧ")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("ṫ")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("á¹")
        Else 
           sendinput {blind}t
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c2"          ; caron
 +      If (PriorDeadKey = "c2")          ; caron
           BSUnicode("Ť")
 -      Else If myPriorHotkey = "a3"    ; cedilla 
 +      Else If (PriorDeadKey = "a3")    ; cedilla 
           BSUnicode("Å¢")
 -      Else If myPriorHotkey = "c4"   ; Querstrich
 +      Else If (PriorDeadKey = "c4")   ; Querstrich
           BSUnicode("Ŧ")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("Ṫ")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("Ṭ")
        Else 
           sendinput {blind}T
 @@ -1245,37 +1247,37 @@ return        Send 6
     else if Ebene = 6
        Unicode("â„¢") ; TM
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *ö::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c4"        ; Querstrich
 +      If (PriorDeadKey = "c4")        ; Querstrich
           BSUnicode("Ä‘")
 -      Else If myPriorHotkey = "t5"  ; Schrägstrich
 +      Else If (PriorDeadKey = "t5")  ; Schrägstrich
           BSUnicode("ð")
 -      Else If myPriorHotkey = "c2"     ; caron
 +      Else If (PriorDeadKey = "c2")     ; caron
           BSUnicode("Ä")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("ḋ")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("á¸")
        Else 
           sendinput {blind}d
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c4"        ; Querstrich
 +      If (PriorDeadKey = "c4")        ; Querstrich
           BSUnicode("Ä")
 -      Else If myPriorHotkey = "t5"  ; Schrägstrich
 +      Else If (PriorDeadKey = "t5")  ; Schrägstrich
           BSUnicode("Ã")
 -      Else If myPriorHotkey = "c2"     ; caron 
 +      Else If (PriorDeadKey = "c2")     ; caron 
           BSUnicode("ÄŽ")
 -      Else If myPriorHotkey = "a5"  ; punkt darüber 
 +      Else If (PriorDeadKey = "a5")  ; punkt darüber 
           BSUnicode("Ḋ")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("Ḍ")
        Else sendinput {blind}D
     }
 @@ -1287,29 +1289,29 @@ return        Send `,
     else if Ebene = 6
        Unicode("Δ")  ; Delta
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *ä::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "t3"       ; Diaerese
 +      If (PriorDeadKey = "t3")       ; Diaerese
           Send {bs}ÿ
 -      Else If myPriorHotkey = "a1"      ; akut 
 +      Else If (PriorDeadKey = "a1")      ; akut 
           BSUnicode("ý")
 -      Else If myPriorHotkey = "c1"    ; circumflex
 +      Else If (PriorDeadKey = "c1")    ; circumflex
           BSUnicode("Å·")
        Else
           sendinput {blind}y
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "a1"           ; akut 
 +      If (PriorDeadKey = "a1")           ; akut 
           BSUnicode("Ã")
 -      Else If myPriorHotkey = "t3"    ; Diaerese
 +      Else If (PriorDeadKey = "t3")    ; Diaerese
           Send {bs}Ÿ
 -      Else If myPriorHotkey = "c1"      ; circumflex
 +      Else If (PriorDeadKey = "c1")      ; circumflex
           BSUnicode("Ŷ")
        Else
           sendinput {blind}Y
 @@ -1320,7 +1322,7 @@ return        Send þ         ; thorn
     else if Ebene = 6
        Send Þ         ; Thorn
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  ;SC02B (#) wird zu Mod3
 @@ -1344,7 +1346,7 @@ return        send {#}
     else if Ebene = 5
        Send {Esc}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *x::
 @@ -1359,7 +1361,7 @@ return        Send {Del}
     else if Ebene = 6
        Unicode("∫") ; Int
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *c::
 @@ -1376,28 +1378,28 @@ return        Send {PgDn}    ; Next
     else if Ebene = 6
        Send +{PgDn}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *v::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "a5"      ; punkt darüber 
 +      If (PriorDeadKey = "a5")      ; punkt darüber 
           BSUnicode("á¹—")
        Else
           sendinput {blind}p
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "a5"      ; punkt darüber 
 +      If (PriorDeadKey = "a5")      ; punkt darüber 
           BSUnicode("á¹–")
        Else 
           sendinput {blind}P
     }
     else if Ebene = 3
     {
 -      If myPriorHotkey = "t1"    ; tilde
 +      If (PriorDeadKey = "t1")    ; tilde
           BSUnicode("≈")
        Else
           sendraw ~
 @@ -1408,31 +1410,31 @@ return        Send {Enter}
     else if Ebene = 6
        Unicode("Π")  ; Pi
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *b::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c2"         ; caron
 +      If (PriorDeadKey = "c2")         ; caron
           BSUnicode("ž")
 -      Else If myPriorHotkey = "a1"     ; akut
 +      Else If (PriorDeadKey = "a1")     ; akut
           BSUnicode("ź")
 -      Else If myPriorHotkey = "a5" ; punkt drüber
 +      Else If (PriorDeadKey = "a5") ; punkt drüber
           BSUnicode("ż")
 -      Else If myPriorHotkey = "a5" ; punkt darüber 
 +      Else If (PriorDeadKey = "a5") ; punkt darüber 
           BSUnicode("ż")
        Else 
           sendinput {blind}z
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c2"         ; caron  
 +      If (PriorDeadKey = "c2")         ; caron  
           BSUnicode("Ž")
 -      Else If myPriorHotkey = "a1"     ; akut 
 +      Else If (PriorDeadKey = "a1")     ; akut 
           BSUnicode("Ź")
 -      Else If myPriorHotkey = "a5" ; punkt darüber 
 +      Else If (PriorDeadKey = "a5") ; punkt darüber 
           BSUnicode("Å»")
        Else
           sendinput {blind}Z
 @@ -1443,21 +1445,21 @@ return        Unicode("ζ") ;zeta
     else if Ebene = 6
        Unicode("Ω")  ; Omega
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *n::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "a5"      ; punkt darüber 
 +      If (PriorDeadKey = "a5")      ; punkt darüber 
           BSUnicode("ḃ")
        Else 
           sendinput {blind}b
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "a5"       ; punkt darüber 
 +      If (PriorDeadKey = "a5")       ; punkt darüber 
           BSUnicode("Ḃ")
        Else 
           sendinput {blind}B
 @@ -1470,25 +1472,25 @@ return        Unicode("∞") ;infty
     else if Ebene = 6
        Unicode("•") ; bullet
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *m::
     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "a5"       ; punkt darüber 
 +      If (PriorDeadKey = "a5")       ; punkt darüber 
           BSUnicode("á¹")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("ṃ")
        Else 
           sendinput {blind}m
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "a5"       ; punkt darüber 
 +      If (PriorDeadKey = "a5")       ; punkt darüber 
           BSUnicode("á¹€")
 -      Else If myPriorHotkey = "c6" ; punkt darunter 
 +      Else If (PriorDeadKey = "c6") ; punkt darunter 
           BSUnicode("Ṃ")
        Else 
           sendinput {blind}M
 @@ -1499,7 +1501,7 @@ return        Unicode("µ") ;micro, mu wäre μ
     else if Ebene = 5
        Send 1
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *,::
 @@ -1514,7 +1516,7 @@ return        Send 2
     else if Ebene = 6
        Unicode("√") ; sqrt
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *.::
 @@ -1531,7 +1533,7 @@ return        Send 3
     else if Ebene = 6
        Unicode("Θ")  ; Theta
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
 @@ -1539,14 +1541,14 @@ return     EbeneAktualisieren()
     if Ebene = 1
     {
 -      If myPriorHotkey = "c1"           ; circumflex
 +      If (PriorDeadKey = "c1")           ; circumflex
           BSUnicode("ĵ")
        Else
           sendinput {blind}j
     }
     else if Ebene = 2
     {
 -      If myPriorHotkey = "c1"            ; circumflex
 +      If (PriorDeadKey = "c1")            ; circumflex
           BSUnicode("Ä´")
        Else
           sendinput {blind}J
 @@ -1557,7 +1559,7 @@ return        Send .
     else if Ebene = 6
        Unicode("∇") ; Nabla
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  /*
 @@ -1577,7 +1579,7 @@ return        send ÷
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("∕")   ; slash
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadMult::
 @@ -1588,7 +1590,7 @@ return        send ×
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("â‹…")  ; cdot
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadSub::
 @@ -1597,7 +1599,7 @@ return        send {NumpadSub}
     else if Ebene = 3
        send -
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadAdd::
 @@ -1608,7 +1610,7 @@ return        send ±
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("∓")   ; -+
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadEnter::
 @@ -1619,7 +1621,7 @@ return        Unicode("≠") ; neq
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("≈") ; approx
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  /*
 @@ -1637,7 +1639,7 @@ return        send {NumpadHome}
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("≪")  ; ll
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *Numpad8::
 @@ -1650,7 +1652,7 @@ return        Unicode("↑")     ; uparrow
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("∩")    ;
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *Numpad9::
 @@ -1661,7 +1663,7 @@ return        send {NumpadPgUp}
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("≫")  ; gg
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *Numpad4::
 @@ -1674,7 +1676,7 @@ return        Unicode("â†")     ; leftarrow
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("⊂")  ;
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *Numpad5::
 @@ -1687,7 +1689,7 @@ return        send †
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("∊") ;
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *Numpad6::
 @@ -1700,7 +1702,7 @@ return        Unicode("→")     ; rightarrow
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("⊃") ;
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *Numpad1::
 @@ -1711,7 +1713,7 @@ return        send {NumpadEnd}
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("≤")   ; leq
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *Numpad2::
 @@ -1724,7 +1726,7 @@ return        Unicode("↓")     ; downarrow
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("∪")  ;
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *Numpad3::
 @@ -1735,7 +1737,7 @@ return        send {NumpadPgDn}
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("≥")  ; geq
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *Numpad0::
 @@ -1748,7 +1750,7 @@ return        send `%
     else if ( (Ebene = 4) or (Ebene = 5) )
        send ‰ 
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadDot::
 @@ -1761,7 +1763,7 @@ return        send .
     else if ( (Ebene = 4) or (Ebene = 5) )
        send `,
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  /*
 @@ -1776,7 +1778,7 @@ return        send {Numpad7}
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("≪")  ; ll
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadUp::
 @@ -1789,7 +1791,7 @@ return        Unicode("↑")     ; uparrow
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("∩")    ;
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadPgUp::
 @@ -1800,7 +1802,7 @@ return        send {Numpad9}
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("≫")  ; gg
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadLeft::
 @@ -1813,7 +1815,7 @@ return        Unicode("â†")     ; leftarrow
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("⊂")  ;
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadClear::
 @@ -1826,7 +1828,7 @@ return        send †
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("∊") ;
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadRight::
 @@ -1839,7 +1841,7 @@ return        Unicode("→")     ; rightarrow
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("⊃") ;
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadEnd::
 @@ -1850,7 +1852,7 @@ return        send {Numpad1}
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("≤")   ; leq
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadDown::
 @@ -1863,7 +1865,7 @@ return        Unicode("↓")     ; downarrow
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("∪")  ;
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadPgDn::
 @@ -1874,7 +1876,7 @@ return        send {Numpad3}
     else if ( (Ebene = 4) or (Ebene = 5) )
        Unicode("≥")  ; geq
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadIns::
 @@ -1887,7 +1889,7 @@ return        send `%
     else if ( (Ebene = 4) or (Ebene = 5) )
        send ‰ 
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *NumpadDel::
 @@ -1900,7 +1902,7 @@ return        send .
     else if ( (Ebene = 4) or (Ebene = 5) )
        send `,
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
 @@ -1921,11 +1923,11 @@ return        SendUnicodeChar(0x2009) ; schmales Leerzeichen
     else
        Send {blind}{Space}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  /*
 -   Folgende Tasten sind nur aufgeführt, um myPriorHotkey zu leeren.
 +   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...
 @@ -1936,12 +1938,12 @@ return  *Enter::
     sendinput {Blind}{Enter}
 -   myPriorhotkey = ""
 +   PriorDeadKey := ""
  return
  *Backspace::
     sendinput {Blind}{Backspace}
 -   myPriorhotkey = ""
 +   PriorDeadKey := ""
  return
 @@ -1953,49 +1955,49 @@ einem DeadKey drückt...  *Tab::
     send {Blind}{Tab}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  */
  *Home::
     sendinput {Blind}{Home}
 -   myPriorHotkey = ""      
 +   PriorDeadKey := ""      
  return
  *End::
     sendinput {Blind}{End}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *PgUp::
     sendinput {Blind}{PgUp}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *PgDn::
     sendinput {Blind}{PgDn}
 -   myPriorHotkey = ""
 +   PriorDeadKey := ""
  return
  *Up::
     sendinput {Blind}{Up}
 -   myPriorhotkey = ""
 +   PriorDeadKey := ""
  return
  *Down::
     sendinput {Blind}{Down}
 -   myPriorhotkey = ""
 +   PriorDeadKey := ""
  return
  *Left::
     sendinput {Blind}{Left}
 -   myPriorhotkey = ""
 +   PriorDeadKey := ""
  return
  *Right::
     sendinput {Blind}{Right}
 -   myPriorhotkey = ""
 +   PriorDeadKey := ""
  return
 @@ -2062,4 +2064,13 @@ SendUnicodeChar(charCode)  EncodeInteger(ref, val)
  {
     DllCall("ntdll\RtlFillMemoryUlong", "Uint", ref, "Uint", 4, "Uint", val)
 -}
\ No newline at end of file +}
 +
 +
 +/*
 +   ------------------------------------------------------
 +   Shift+Pause "pausiert" das Script.
 +   ------------------------------------------------------
 +*/
 +
 ++pause::suspend
\ No newline at end of file | 
