diff options
Diffstat (limited to 'windows')
| -rw-r--r-- | windows/autohotkey/neo20-all-in-one.ahk | 123 | 
1 files changed, 70 insertions, 53 deletions
diff --git a/windows/autohotkey/neo20-all-in-one.ahk b/windows/autohotkey/neo20-all-in-one.ahk index 11e7014..7c19396 100644 --- a/windows/autohotkey/neo20-all-in-one.ahk +++ b/windows/autohotkey/neo20-all-in-one.ahk @@ -16,8 +16,12 @@                    - bei Ebene 4 rechte Hand (Numpad) z.B. Numpad5 statt 5 senden
      CHANGEHISTORY:
                    Aktuelle Revision (von Matthias Berg):
 +                  - bei EinHandNeo ist jetzt Space+y auch Mod4
 +                  - AltGr-Bug  hoffentlich wieder behoben. Diesmal mit extra altGrPressed Variable
 +                  - nurEbenenFuenfUndSechs umbenannt in ahkTreiberKombi und auf Ebene 4 statt 5 und 6 geändert
 +                  Revision 540 (von Matthias Berg):
                    - stark überarbeitet um Wartbarkeit zu erhöhen und Redundanz zu veringern
 -                  - nurEbenenFuenfUndSechs sollte nun Qwerty berücksichtigen
 +                  - nurEbenenFuenfUndSechs sollte nun auch auf Neo Treiber statt Qwertz laufen
                      * aber es muss noch jemand testen
                      * Problem: was kann man abfangen, wenn eine tote Taste gedrückt wird
                   - einHandNeo:
 @@ -78,7 +82,7 @@  *****************
  */
  ; Sollen Ebenen 1-4 ignoriert werden? (kann z.B. vom dll Treiber übernommen werden) Ja = 1, Nein = 0
 -nurEbenenFuenfUndSechs := 0
 +ahkTreiberKombi := 0
  einHandNeo := 0
  Process, Priority,, High
 @@ -262,8 +266,12 @@ IsMod4Locked := 0           IsMod4Locked = 1
        }
  return
 -*SC138::return  ; Damit AltGr nicht extra etwas schickt und als stiller Modifier geht.
 -
 +*SC138::
 + altGrPressed := 1
 +return  ; Damit AltGr nicht extra etwas schickt und als stiller Modifier geht.
 +*SC138 up::
 + altGrPressed := 0
 +return 
  /* ; das folgende wird seltsamerweise nicht gebraucht :)
  SC138 & *<::
 @@ -384,7 +392,7 @@ return        }
  return
  *ß::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
         if( not(einHandNeo) or not(spacepressed) )
         goto neo_strich
 @@ -402,7 +410,7 @@ return  ; Reihe 2
  *Tab::goto neo_tab
  *q::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_x
    }
 @@ -411,7 +419,7 @@ return       goto neo_q   
    }
  *w::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
  	 goto neo_v
    }
 @@ -420,7 +428,7 @@ return       goto neo_w   
    }
  *e::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
  	 goto neo_l
    }
 @@ -429,7 +437,7 @@ return       goto neo_e   
    }
  *r::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_c
    }
 @@ -438,7 +446,7 @@ return       goto neo_r   
    }
  *t::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_w
    }
 @@ -447,7 +455,7 @@ return       goto neo_t   
    }
  *z::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_k
 @@ -462,7 +470,7 @@ return       goto neo_z   
    }
  *u::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_h
 @@ -477,7 +485,7 @@ return       goto neo_u   
    }
  *i::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_g
 @@ -492,7 +500,7 @@ return       goto neo_i   
    }
  *o::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_f
 @@ -507,7 +515,7 @@ return       goto neo_o   
    }
  *p::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_q
 @@ -522,7 +530,7 @@ return       goto neo_p   
    }
  *ü::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_sz
 @@ -537,7 +545,7 @@ return       goto neo_ü   
    }
  *+::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_tot3
 @@ -551,7 +559,7 @@ return    { } ; this should never happen
  ; Reihe 3
  *a::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_u
    }
 @@ -560,7 +568,7 @@ return       goto neo_a   
    }
  *s::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_i
    }
 @@ -569,7 +577,7 @@ return       goto neo_s   
    }
  *d::goto neo_a
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_a
    }
 @@ -578,7 +586,7 @@ return       goto neo_d   
    }
  *f::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_e
    }
 @@ -587,7 +595,7 @@ return       goto neo_f   
    }
  *g::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_o
    }
 @@ -596,7 +604,7 @@ return       goto neo_g   
    }
  *h::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_s
 @@ -611,7 +619,7 @@ return       goto neo_h   
    }
  *j::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_n
 @@ -626,7 +634,7 @@ return       goto neo_j   
    }
  *k::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_r
 @@ -641,7 +649,7 @@ return       goto neo_k   
    }
  *l::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_t
 @@ -656,7 +664,7 @@ return       goto neo_l   
    }
  *ö::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_d
 @@ -671,7 +679,7 @@ return       goto neo_ö   
    }
  *ä::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_y
    }
 @@ -681,7 +689,7 @@ return    }
  ; Reihe 4
  *y::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_ü
    }
 @@ -690,7 +698,7 @@ return       goto neo_y   
    }
  *x::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_ö
    }
 @@ -699,7 +707,7 @@ return       goto neo_x   
    }
  *c::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_ä
    }
 @@ -708,7 +716,7 @@ return       goto neo_c
    }
  *v::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_p
    }
 @@ -717,7 +725,7 @@ return       goto neo_v
    }
  *b::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       goto neo_z
    }
 @@ -726,7 +734,7 @@ return       goto neo_b
    }
  *n::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_b
 @@ -768,7 +776,7 @@ return        }
  return
  *-::
 -  if ( not(nurEbenenFuenfUndSechs) )
 +  if ( not(ahkTreiberKombi) )
    {
       if( not(einHandNeo) or not(spacepressed) )
         goto neo_j
 @@ -1705,7 +1713,9 @@ neo_c:        else if ( (CompKey = "o_small") or (CompKey = "o_capital") )
           Send {bs}©
        else
 -         sendinput {blind}c
 +      {         
 +         sendinput {blind}c      
 +      }
        if (PriorDeadKey = "comp")
           CompKey := "c_small"
        else
 @@ -4047,12 +4057,12 @@ neo_tab:     }
  return
 -*SC038::                            ; LAlt, damit AltTab funktioniert
 +*SC038::                    ; LAlt, damit AltTab funktioniert
     send {blind}{LAlt}
     PriorDeadKey := ""   CompKey := ""
  return
 -*Home::
 +*Home::+
     sendinput {Blind}{Home}
     PriorDeadKey := ""   CompKey := ""
  return
 @@ -4134,19 +4144,12 @@ EbeneAktualisieren()  EbeneAktualisieren()
  {
     global
 -   if (nurEbenenFuenfUndSechs)
 +   if (ahkTreiberKombi)
     {
 -      if ( IsMod3Pressed() )
 +      if ( IsMod4Pressed() and not(IsShiftPressed()) and not(IsMod3Pressed()))
        {
 -        if ( IsShiftPressed() )
 -        {
 -           Ebene = 5
 -        }
 -        else if ( IsMod4Pressed() )
 -        {
 -           Ebene = 6      
 -        }
 -      } 
 +         Ebene = 6      
 +      }
        else
        {
          Ebene = -1
 @@ -4229,13 +4232,27 @@ IsMod3Pressed()  IsMod4Pressed()
  {
     global
 -   if (IsMod4Locked) 
 +   if( not(einHandNeo) or not(spacepressed) )
     {
 -       return (not ( GetKeyState("<","P") or GetKeyState("SC138","P") ))
 +     if (IsMod4Locked) 
 +     {
 +         return (not ( GetKeyState("<","P") or GetKeyState("SC138","P") or altGrPressed ))
 +     }
 +     else {
 +         return ( GetKeyState("<","P") or GetKeyState("SC138","P") or altGrPressed )
 +     }
     }
 -   else {
 -       return ( GetKeyState("<","P") or GetKeyState("SC138","P") )
 +   else
 +   {
 +     if (IsMod4Locked) 
 +     {
 +         return (not ( GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P")  or altGrPressed ))
 +     }
 +     else {
 +         return ( GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P") or altGrPressed )
 +     }
     }
 +   
  }
  | 
