neo-vars endlich eingecheckt

git-svn-id: https://svn.neo-layout.org@949 b9310e46-f624-0410-8ea1-cfbb3a30dc96
This commit is contained in:
martin_r 2008-10-07 13:10:19 +00:00
parent d23de36563
commit 7fa91ddc8b
4 changed files with 7018 additions and 0 deletions

5024
windows/neo-vars/en_us.ahk Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,454 @@
/*
CM* == 1: Await more compose chars after this sequence?
CD* : Replace compose sequence by this character
CPx* : Key press for * in Ebene x
CPNx* : Key press for numpad * in Ebene x
CS* : shortcut to output instead of *
PP* : repeat code for key *
PR* : release code for key *
*/
; ein wenig COMPOSE
#Include %a_scriptdir%\en_us.ahk
#Include %a_scriptdir%\neocomp.ahk
CMSCompU002D := 1
CDSCompU002DSLeft := "U2190"
CDSCompU002DS__Up := "U2191"
CDSCompU002DSRght := "U2192"
CDSCompU002DSDown := "U2193"
CDSCompU002DSHome := "U2196"
CDSCompU002DSPgUp := "U2197"
CDSCompU002DSPgDn := "U2198"
CDSCompU002DS_End := "U2199"
CMSCompU003D := 1
CDSCompU003DSLeft := "U21D0"
CDSCompU003DS__Up := "U21D1"
CDSCompU003DSRght := "U21D2"
CDSCompU003DSDown := "U21D3"
CDSCompU003DSHome := "U21D6"
CDSCompU003DSPgUp := "U21D7"
CDSCompU003DSPgDn := "U21D8"
CDSCompU003DS_End := "U21D9"
CDSCompSComp := "U266B"
CDSCompSEntr := "U240D"
CDSCompSNEnt := "U2318"
ED(pos,e1,e2,e3,e4,e5,e6,e7="",e8="") {
global
if (e1 != "")
CP1%pos% := e1
if (e2 != "")
CP2%pos% := e2
if (e3 != "")
CP3%pos% := e3
if (e4 != "")
CP4%pos% := e4
if (e5 != "")
CP5%pos% := e5
if (e6 != "")
CP6%pos% := e6
if (e7 != "")
CP7%pos% := e7
if (e8 != "")
CP8%pos% := e8
}
EDN(pos1,pos2,e1,e3,e4,e5,e6) {
global
CPN%pos1% := 1
CPN%pos2% := 1
ED(pos1 . "N1",e1,e1,e3,e4,e5,e6)
ED(pos2 . "N1",e1,e1,e3,e4,e5,e6)
ED(pos1 . "N0",e4,e4,e3,e1,e5,e6)
ED(pos2 . "N0",e4,e4,e3,e1,e5,e6)
}
ED1(pos,e1) {
ED(pos,e1,e1,e1,e1,e1,e1)
}
/*
******************************************************
*** HIER KOMMT NEO!
******************************************************
*/
; Reihe 1
ED("VKDCSC029","TC__1","TC__2","TC__3","TC__4","TC__5","TC__6","U0302","U0306") ; circumflex
ED("VK31SC002","U0031","U00B0","U00B9","U2022","U2640","U00AC") ; 1
ED("VK32SC003","U0032","U2116","U00B2","U2023","U26A5","U2228") ; 2
ED("VK33SC004","U0033","U00A7","U00B3","" ,"U2642","U2227") ; 3
ED("VK34SC005","U0034","U00BB","U203A","SPgUp","U2113","U22A5") ; 4
ED("VK35SC006","U0035","U00AB","U2039","" ,"U2020","U2221") ; 5
ED("VK36SC007","U0036","U20AC","U00A2","U00A3","" ,"U2225") ; 6
ED("VK37SC008","U0037","U0024","U00A5","U00A4","U03BA","U2209") ; 7
ED("VK38SC009","U0038","U201E","U201A","SNDiv","U27E8","U2204") ; 8
ED("VK39SC00A","U0039","U201C","U2018","SNMul","U27E9","U2226") ; 9
ED("VK30SC00B","U0030","U201D","U2019","SNSub","" ,"U2205") ; 0
ED("VKDBSC00C","U002D","U2013","U2014","" ,"U2011","U00AD") ; -
ED("VKDDSC00D","TA__1","TA__2","TA__3","TA__4","TA__5","TA__6") ; akut
; Reihe 2
ED("VK51SC010","U0078","U0058","U2026","U22EE","U03BE","U039E") ; x
ED("VK57SC011","U0076","U0056","U005F","SBack","" ,"U2259") ; v
ED("VK45SC012","U006C","U004C","U005B","S__Up","U03BB","U039B") ; l
ED("VK52SC013","U0063","U0043","U005D","S_Del","U03C7","U2102") ; c
ED("VK54SC014","U0077","U0057","U005E","S_Ins","U03C9","U03A9") ; w
ED("VK5ASC015","U006B","U004B","U0021","U00A1","U03F0","U221A") ; k
ED("VK55SC016","U0068","U0048","U003C","SN__7","U03C8","U03A8") ; h
ED("VK49SC017","U0067","U0047","U003E","SN__8","U03B3","U0393") ; g
ED("VK4FSC018","U0066","U0046","U003D","SN__9","U03C6","U03A6") ; f
ED("VK50SC019","U0071","U0051","U0026","SNAdd","U03D5","U211A") ; q
ED("VKBASC01A","U00DF","U1E9E","U017F","" ,"U03C2","U2218") ; ß
ED("VKBBSC01B","TT__1","TT__2","TT__3","TT__4","TT__5","TT__6","U0308") ; tilde
; Reihe 3
ED("VK41SC01E","U0075","U0055","U005C","SHome","" ,"U222E") ; u
ED("VK53SC01F","U0069","U0049","U002F","SLeft","U03B9","U222B") ; i
ED("VK44SC020","U0061","U0041","U007B","SDown","U03B1","U2200") ; a
ED("VK46SC021","U0065","U0045","U007D","SRght","U03B5","U2203") ; e
ED("VK47SC022","U006F","U004F","U002A","S_End","U03BF","U2208") ; o
ED("VK48SC023","U0073","U0053","U003F","U00BF","U03C3","U03A3","U017F") ; s
ED("VK4ASC024","U006E","U004E","U0028","SN__4","U03BD","U2115") ; n
ED("VK4BSC025","U0072","U0052","U0029","SN__5","U03F1","U211D") ; r
ED("VK4CSC026","U0074","U0054","U002D","SN__6","U03C4","U2202") ; t
ED("VKC0SC027","U0064","U0044","U003A","SNDot","U03B4","U0394") ; d
ED("VKDESC028","U0079","U0059","U0040","U002E","U03C5","U2207") ; y
; Reihe 4
ED("VK59SC02C","U00FC","U00DC","U0023","S_Esc","" ,"U221D") ; ü
ED("VK58SC02D","U00F6","U00D6","U0024","S_Tab","" ,"U2111") ; ö
ED("VK43SC02E","U00E4","U00C4","U007C","SPgDn","U03B7","U211C") ; ä
ED("VK56SC02F","U0070","U0050","U007E","SEntr","U03C0","U03A0") ; p
ED("VK42SC030","U007A","U005A","U0060","U003B","U03B6","U2124") ; z
ED("VK4ESC031","U0062","U0042","U002B","U003A","U03B2","U21D2") ; b
ED("VK4DSC032","U006D","U004D","U0025","SN__1","U03BC","U21D4") ; m
ED("VKBCSC033","U002C","U22EE","U0022","SN__2","U03C1","U21D0") ; ,
ED("VKBESC034","U002E","U2026","U0027","SN__3","U03D1","U0398") ; .
ED("VKBDSC035","U006A","U004A","U003B","SNEnt","U03B8","U2261") ; j
; Numpad
ED("VK90SC145","U003D","" ,"U2248","U2260","" ,"" ) ; NumLock
ED("VK6FSC135","SNDiv","SNDiv","U00F7","SNDiv","U2215","" ) ; NumpadDiv
ED("VK6ASC037","SNMul","SNMul","U00D7","SNMul","U22C5","" ) ; NumpadMult
ED("VK6DSC04A","SNSub","SNSub","U2212","SNSub","" ,"" ) ; NumpadSub
ED("VK6BSC04E","SNAdd","SNAdd","U00B1","SNAdd","U2213","" ) ; NumpadAdd
EDN("VK67SC047","VK24SC047","SN__7","U2195","SNHom","U2020","" ) ; Numpad7, NumpadHome
EDN("VK68SC048","VK26SC048","SN__8","U2191","SN_Up","U2229","" ) ; Numpad8, NumpadUp
EDN("VK69SC049","VK21SC049","SN__9","U220D","SNPUp","U2297","" ) ; Numpad9, NumpadPgUp
EDN("VK64SC04B","VK25SC04B","SN__4","U2190","SN_Le","U2282","" ) ; Numpad4, NumpadLeft
EDN("VK65SC04C","VK0CSC04C","SN__5","U221E","SNClr","U20AC","" ) ; Numpad5, NumpadClear
EDN("VK66SC04D","VK27SC04D","SN__6","U2192","SN_Ri","U2283","" ) ; Numpad6, NumpadRight
EDN("VK61SC04F","VK23SC04F","SN__1","U2194","SNEnd","U2714","" ) ; Numpad1, NumpadEnd
EDN("VK62SC050","VK28SC050","SN__2","U2193","SN_Dn","U222A","" ) ; Numpad2, NumpadDown
EDN("VK63SC051","VK22SC051","SN__3","U2192","SNPDn","U2283","" ) ; Numpad3, NumpadPgDn
EDN("VK60SC052","VK2DSC052","SN__0","U0025","SNIns","U2030","" ) ; Numpad0, NumpadIns
EDN("VK6ESC053","VK2ESC053","SNDot","U002E","SNDel","" ,"" ) ; NumpadDot, NumpadDel
; other chars
ED("space","U0020","U0020","U0020","SN__0","U00A0","U202F")
ED("esc" ,"U001B","U001B","U001B","PRlod","U001B","U001B")
ED("tab" ,"U0009","U0009","SComp","U0009","U0009","U0009")
ED("F10" ,"S_F10","S_F10","S_F10","P_VMt","S_F10","S_F10")
ED("F11" ,"S_F11","S_F11","S_F11","PLnSt","S_F11","S_F11")
ED1("enter" ,"SEntr")
ED1("backspace","SBack")
ED1("del" ,"S_Del")
ED1("ins" ,"S_Ins")
ED1("home" ,"SHome")
ED1("end" ,"S_End")
ED1("pgup" ,"SPgUp")
ED1("pgdn" ,"SPgDn")
ED1("up" ,"S__Up")
ED1("down" ,"SDown")
ED1("left" ,"SLeft")
ED1("right" ,"SRght")
ED1("numpadenter","SNEnt")
SetFormat, integer, hex
char := 0x20
loop {
s1 := SubStr(char,3)
if ((char < 0x80) or (char > 0x9F))
CSU00%s1% := chr(char)
char += 1
if (char = 255)
break
}
SetFormat, integer, d
CSU0009 := "tab"
CSU001B := "esc"
CSU0020 := "space"
DNCSU005E := "{^}{space}"
DNCSU0060 := "{``}{space}"
DNCSU007D := "{}}" ; "{} down}" geht nicht, warum auch immer
DNCSU00B4 := "{´}{space}"
CSU20AC := ""
CSU201A := chr(130)
CSU0192 := chr(131)
CSU201E := chr(132)
CSU2026 := chr(133)
; CSU2020 := chr(134)
CSU2021 := chr(135)
CSU02C6 := chr(136)
CSU2030 := chr(137)
CSU0160 := chr(138)
CSU2039 := chr(139)
CSU0152 := chr(140)
CSU017D := chr(142)
CSU2018 := chr(145)
CSU2019 := chr(146)
CSU201C := chr(147)
CSU201D := chr(148)
CSU2022 := chr(149)
CSU2013 := chr(150)
CSU2014 := chr(151)
CSU02DC := chr(152)
CSU2122 := chr(153)
CSU0161 := chr(154)
CSU203A := chr(155)
CSU0153 := chr(156)
CSU017E := chr(158)
CSU0178 := chr(159)
CSSEntr := "Enter"
CSS_Esc := "Esc"
CSSSpce := "Space"
CSS_Tab := "Tab"
CSSBack := "Backspace"
CSS_Del := "Delete"
CSS_Ins := "Insert"
CSS__Up := "Up"
CSSDown := "Down"
CSSRght := "Right"
CSSLeft := "Left"
CSSPgUp := "PgUp"
CSSPgDn := "PgDn"
CSSHome := "Home"
CSS_End := "End"
CSS_F10 := "F10"
CSS_F11 := "F11"
CSSN__0 := "Numpad0"
CSSN__1 := "Numpad1"
CSSN__2 := "Numpad2"
CSSN__3 := "Numpad3"
CSSN__4 := "Numpad4"
CSSN__5 := "Numpad5"
CSSN__6 := "Numpad6"
CSSN__7 := "Numpad7"
CSSN__8 := "Numpad8"
CSSN__9 := "Numpad9"
CSSNDiv := "NumpadDiv"
CSSNMul := "NumpadMult"
CSSNSub := "NumpadSub"
CSSNAdd := "NumpadAdd"
CSSNDot := "NumpadDot"
CSSNEnt := "NumpadEnter"
CSSNDel := "NumpadDel"
CSSNIns := "NumpadIns"
CSSN_Up := "NumpadUp"
CSSN_Dn := "NumpadDown"
CSSN_Ri := "NumpadRight"
CSSN_Le := "NumpadLeft"
CSSNPUp := "NumpadPgUp"
CSSNPDn := "NumpadPgDn"
CSSNHom := "NumpadHome"
CSSNEnd := "NumpadEnd"
CSSNClr := "NumpadClear"
Comp := ""
#Include %a_scriptdir%\recycle.ahk
AllStar(This_HotKey) {
global
PhysKey := This_HotKey
EbeneAktualisieren()
if (SubStr(PhysKey,1,1) == "*")
PhysKey := SubStr(PhysKey,2)
if (SubStr(PhysKey,-2) == " up") {
PhysKey := SubStr(PhysKey,1,StrLen(PhysKey)-3)
IsDown := 0
} else
IsDown := 1
ActKey := Transform(PhysKey)
if (CPN%ActKey% = 1)
ActKey := ActKey . "N" . NumLock
if (Ebene7 and (CP7%ActKey% != ""))
Char := CP7%ActKey%
else if (Ebene8 and (CP8%ActKey% != ""))
Char := CP8%ActKey%
else
Char := CP%Ebene%%ActKey%
if (SubStr(Char,1,1) == "P") {
if (IsDown == 1)
CharProc(SubStr(Char,2))
} else if (IsDown == 1)
CharStarDown(PhysKey, ActKey, Char)
else
CharStarUp(PhysKey)
}
CharStarDown(PhysKey, ActKey, char) {
global
CompEntry := Comp
if (PP%PhysKey% != "")
Comp := PP%PhysKey% ; resulting from key repeat
else
Comp := Comp . char ; normal compositum
tosend := ""
PP%PhysKey% := ""
PR%PhysKey% := ""
if (CD%Comp% != "") {
tosend := CD%Comp%
PP%PhysKey% := Comp
Comp := ""
} else if (CM%Comp% != 1) {
Comp := ""
if (CompEntry == "") {
tosend := char
PP%PhysKey% := char
}
}
if (strlen(tosend) > 5) { ; multiple chars
PR%PhysKey% := ""
loop {
if (tosend == "")
break ; erledigt
CharOut(SubStr(tosend,1,5))
tosend := SubStr(tosend,6)
}
} else if (tosend != "") {
PR%PhysKey% := tosend
CharOutDown(tosend)
}
}
CharStarUp(PhysKey) {
global
if (PR%PhysKey% != "")
CharOutUp(PR%PhysKey%) ; resulting from key repeat
PR%PhysKey% := ""
PP%PhysKey% := ""
}
CharOut(char) {
global
if (DNCS%char% != "") {
seq := DNCS%char% . UPCS%char%
if GetKeyState("Shift","P") and isMod2Locked
seq := "{Shift Up}" . seq . "{Shift Down}"
send % "{blind}" . seq
} else if (CS%char% != "") {
seq := "{" . CS%char% . "}"
if (GetKeyState("Shift","P") and (isMod2Locked or (char == "U20AC")))
seq := "{Shift Up}" . seq . "{Shift Down}"
send % "{blind}" . seq
} else
SendUnicodeChar("0x" . SubStr(char,2))
}
CharOutDown(char) {
global
if (DNCS%char% != "") {
seq := DNCS%char%
if GetKeyState("Shift","P") and isMod2Locked
seq := "{Shift Up}" . seq . "{Shift Down}"
send % "{blind}" . seq
} else if (CS%char% != "") {
seq := CS%char%
seq := "{". seq . " down}"
if (GetKeyState("Shift","P") and (isMod2Locked or (char == "U20AC")))
seq := "{Shift Up}" . seq . "{Shift Down}"
send % "{blind}" . seq
} else
SendUnicodeCharDown("0x" . SubStr(char,2))
}
CharOutUp(char) {
global
if (DNCS%char% != "") {
seq := UPCS%char%
if GetKeyState("Shift","P") and isMod2Locked
seq := "{Shift Up}" . seq . "{Shift Down}"
send % "{blind}" . seq
} else if (CS%char% != "") {
seq := CS%char%
seq := "{". seq . " up}"
if (GetKeyState("Shift","P") and (isMod2Locked or (char == "U20AC")))
seq := "{Shift Up}" . seq . "{Shift Down}"
send % "{blind}" . seq
} else
SendUnicodeCharUp("0x" . SubStr(char,2))
}
CharProc(subroutine) {
global
if (subroutine == "Rlod")
reload
else if (subroutine == "LnSt") {
;Lang-s-Tastatur:
LangSTastatur := !(LangSTastatur)
if (LangSTastatur)
CharProc("LnS1")
else
CharProc("LnS0")
} else if (subroutine == "LnS1") {
ED("VKBASC01A","U0073","U1E9E","U00DF","" ,"U03C2","U2218") ; ß
ED("VK48SC023","U017F","U0053","U003F","U00BF","U03C3","U03A3","U0073") ; s
KeyboardLED(2,"on")
} else if (subroutine == "LnS0") {
ED("VKBASC01A","U00DF","U1E9E","U017F","" ,"U03C2","U2218") ; ß
ED("VK48SC023","U0073","U0053","U003F","U00BF","U03C3","U03A3","U017F") ; s
KeyboardLED(2,"off")
} else if (subroutine == "_VMt") {
; Belegungsvariante VM
isVM := !(isVM)
if (isVM)
CharProc("_VM1")
else
CharProc("_VM0")
} else if (subroutine == "_VM1") {
ED("VK51SC010","U0079","U0059","U2026","U22EE","U03C5","U2207") ; y
ED("VK57SC011","U006F","U004F","U005F","SBack","U03BF","U2208") ; o
ED("VK45SC012","U0061","U0041","U005B","S__Up","U03B1","U2200") ; a
ED("VK52SC013","U0070","U0050","U005D","S_Del","U03C0","U03A0") ; p
ED("VK41SC01E","U0069","U0049","U005C","SHome","U03B9","U222B") ; i
ED("VK53SC01F","U0075","U0055","U002F","SLeft","" ,"U222E") ; u
ED("VK44SC020","U0065","U0045","U007B","SDown","U03B5","U2203") ; e
ED("VK46SC021","U0063","U0043","U007D","SRght","U03C7","U2102") ; c
ED("VK47SC022","U006C","U004C","U002A","S_End","U03BB","U039B") ; l
ED("VKDESC028","U0078","U0058","U0040","U002E","U03BE","U039E") ; x
ED("VK56SC02F","U0076","U0056","U007E","SEntr","" ,"U2259") ; v
} else if (subroutine == "_VM0") {
ED("VK51SC010","U0078","U0058","U2026","U22EE","U03BE","U039E") ; x
ED("VK57SC011","U0076","U0056","U005F","SBack","" ,"U2259") ; v
ED("VK45SC012","U006C","U004C","U005B","S__Up","U03BB","U039B") ; l
ED("VK52SC013","U0063","U0043","U005D","S_Del","U03C7","U2102") ; c
ED("VK41SC01E","U0075","U0055","U005C","SHome","" ,"U222E") ; u
ED("VK53SC01F","U0069","U0049","U002F","SLeft","U03B9","U222B") ; i
ED("VK44SC020","U0061","U0041","U007B","SDown","U03B1","U2200") ; a
ED("VK46SC021","U0065","U0045","U007D","SRght","U03B5","U2203") ; e
ED("VK47SC022","U006F","U004F","U002A","S_End","U03BF","U2208") ; o
ED("VKDESC028","U0079","U0059","U0040","U002E","U03C5","U2207") ; y
ED("VK56SC02F","U0070","U0050","U007E","SEntr","U03C0","U03A0") ; p
}
}
Transform(key) {
global
return key
}

View file

@ -0,0 +1,557 @@
CMSComp:=1
CMSCompU0047:=1
CDSCompU0047U0041:="U0391"
CDSCompU0047U0042:="U0392"
CDSCompU0047U0045:="U0395"
CDSCompU0047U005A:="U0396"
CDSCompU0047U0048:="U0397"
CDSCompU0047U0049:="U0399"
CDSCompU0047U004B:="U039A"
CDSCompU0047U004D:="U039C"
CDSCompU0047U004E:="U039D"
CDSCompU0047U004F:="U039F"
CDSCompU0047U0050:="U03A1"
CDSCompU0047U0054:="U03A4"
CDSCompU0047U0059:="U03A5"
CDSCompU0047U0058:="U03A7"
CMSCompU0066:=1
CDSCompU0066U0066:="UFB00"
CDSCompU0066U0069:="UFB01"
CDSCompU0066U006C:="UFB02"
CMSCompU0046:=1
CDSCompU0046U0069:="UFB03"
CDSCompU0046U006C:="UFB04"
CMSCompU0073:=1
CDSCompU0073U0074:="UFB06"
CDSCompU0066U0062:="UE030"
CDSCompU0046U0062:="UE031"
CDSCompU0046U0068:="UE032"
CDSCompU0046U006A:="UE033"
CDSCompU0046U006B:="UE034"
CDSCompU0046U0074:="UE035"
CDSCompU0066U0068:="UE036"
CDSCompU0066U006A:="UE037"
CDSCompU0066U006B:="UE038"
CDSCompU0066U0074:="UE039"
CMSCompU0074:=1
CDSCompU0074U0074:="UE03C"
CMSCompU0053:=1
CDSCompU0053U0069:="UE044"
CDSCompU0074U007A:="UE04A"
CMSCompU0051:=1
CDSCompU0051U0075:="UE048"
CMSCompU0054:=1
CDSCompU0054U0068:="UE049"
CMSCompU0049:=1
CDSCompU0049U004A:="U0132"
CMSCompU0069:=1
CDSCompU0069U006A:="U0133"
CMSCompU0044:=1
CDSCompU0044U005A:="U01C4"
CDSCompU0044U007A:="U01C5"
CMSCompU0064:=1
CDSCompU0064U007A:="U01C6"
CMSCompU004C:=1
CDSCompU004CU004A:="U01C7"
CDSCompU004CU006A:="U01C8"
CMSCompU006C:=1
CDSCompU006CU006A:="U01C9"
CMSCompU004E:=1
CDSCompU004EU004A:="U01CA"
CDSCompU004EU006A:="U01CB"
CMSCompU006E:=1
CDSCompU006EU006A:="U01CC"
CMTT__5:=1
CDTT__5U0068:="U0127"
CDTT__5U0048:="U0126"
CDTT__5U0064:="U0111"
CDTT__5U0044:="U0110"
CDTT__5U006C:="U0142"
CDTT__5U004C:="U0141"
CDTT__5U006F:="U00F8"
CDTT__5U004F:="U00D8"
CMSCompU002D:=1
CDSCompU002DU0048:="U0126"
CDSCompU002DU0068:="U0127"
CMSCompU0045:=1
CDSCompU0045U0045:="U018F"
CMSCompU0032:=1
CDSCompU0032U0021:="U203C"
CMSCompU0021:=1
CDSCompU0021U0032:="U203C"
CMSCompSN__2:=1
CDSCompSN__2U0021:="U203C"
CDSCompU0021SN__2:="U203C"
CDSCompU0032U003F:="U2047"
CMSCompU003F:=1
CDSCompU003FU0032:="U2047"
CDSCompSN__2U003F:="U2047"
CDSCompU003FSN__2:="U2047"
CDSCompU003FU0021:="U2048"
CDSCompU0021U003F:="U2049"
CMSCompU0031:=1
CMSCompU0031U003F:=1
CDSCompU0031U003FU0021:="U203D"
CMSCompU0031U0021:=1
CDSCompU0031U0021U003F:="U203D"
CMSCompSN__1:=1
CMSCompSN__1U003F:=1
CDSCompSN__1U003FU0021:="U203D"
CMSCompSN__1U0021:=1
CDSCompSN__1U0021U003F:="U203D"
CMSCompU0031U00BF:=1
CDSCompU0031U00BFU00A1:="U2E18"
CMSCompU0031U00A1:=1
CDSCompU0031U00A1U00BF:="U2E18"
CMSCompSN__1U00BF:=1
CDSCompSN__1U00BFU00A1:="U2E18"
CMSCompSN__1U00A1:=1
CDSCompSN__1U00A1U00BF:="U2E18"
CMSCompU2020:=1
CDSCompU2020U2020:="U2021"
CMSCompU003A:=1
CDSCompU003AU003A:="U2025"
CMSCompU00A0:=1
CDSCompU00A0U00A0:="U002D"
CMSCompU0052:=1
CMSCompU0052U0031:=1
CDSCompU0052U0031U0020:="U2160"
CDSCompU0052U0032:="U2161"
CDSCompU0052U0033:="U2162"
CDSCompU0052U0034:="U2163"
CDSCompU0052U0035:="U2164"
CDSCompU0052U0036:="U2165"
CDSCompU0052U0037:="U2166"
CDSCompU0052U0038:="U2167"
CDSCompU0052U0039:="U2168"
CDSCompU0052U0031U0030:="U2169"
CDSCompU0052U0031U0031:="U216A"
CDSCompU0052U0031U0032:="U216B"
CMSCompU0052SN__1:=1
CDSCompU0052SN__1U0020:="U2160"
CDSCompU0052SN__2:="U2161"
CDSCompU0052SN__3:="U2162"
CDSCompU0052SN__4:="U2163"
CDSCompU0052SN__5:="U2164"
CDSCompU0052SN__6:="U2165"
CDSCompU0052SN__7:="U2166"
CDSCompU0052SN__8:="U2167"
CDSCompU0052SN__9:="U2168"
CDSCompU0052SN__1SN__0:="U2169"
CDSCompU0052SN__1SN__1:="U216A"
CDSCompU0052SN__1SN__2:="U216B"
CMSCompU0072:=1
CMSCompU0072U0031:=1
CDSCompU0072U0031U0020:="U2170"
CDSCompU0072U0032:="U2171"
CDSCompU0072U0033:="U2172"
CDSCompU0072U0034:="U2173"
CDSCompU0072U0035:="U2174"
CDSCompU0072U0036:="U2175"
CDSCompU0072U0037:="U2176"
CDSCompU0072U0038:="U2177"
CDSCompU0072U0039:="U2178"
CDSCompU0072U0031U0030:="U2179"
CDSCompU0072U0031U0031:="U217A"
CDSCompU0072U0031U0032:="U217B"
CMSCompU0072SN__1:=1
CDSCompU0072SN__1U0020:="U2170"
CDSCompU0072SN__2:="U2171"
CDSCompU0072SN__3:="U2172"
CDSCompU0072SN__4:="U2173"
CDSCompU0072SN__5:="U2174"
CDSCompU0072SN__6:="U2175"
CDSCompU0072SN__7:="U2176"
CDSCompU0072SN__8:="U2177"
CDSCompU0072SN__9:="U2178"
CDSCompU0072SN__1SN__0:="U2179"
CDSCompU0072SN__1SN__1:="U217A"
CDSCompU0072SN__1SN__2:="U217B"
CMSCompU0061:=1
CDSCompU0061U0030:="U0660"
CDSCompU0061U0031:="U0661"
CDSCompU0061U0032:="U0662"
CDSCompU0061U0033:="U0663"
CDSCompU0061U0034:="U0664"
CDSCompU0061U0035:="U0665"
CDSCompU0061U0036:="U0666"
CDSCompU0061U0037:="U0667"
CDSCompU0061U0038:="U0668"
CDSCompU0061U0039:="U0669"
CDSCompU0061SN__0:="U0660"
CDSCompU0061SN__1:="U0661"
CDSCompU0061SN__2:="U0662"
CDSCompU0061SN__3:="U0663"
CDSCompU0061SN__4:="U0664"
CDSCompU0061SN__5:="U0665"
CDSCompU0061SN__6:="U0666"
CDSCompU0061SN__7:="U0667"
CDSCompU0061SN__8:="U0668"
CDSCompU0061SN__9:="U0669"
CDSCompU0031U0033:="U2153"
CDSCompU0032U0033:="U2154"
CDSCompU0031U0035:="U2155"
CDSCompU0032U0035:="U2156"
CMSCompU0033:=1
CDSCompU0033U0035:="U2157"
CMSCompU0034:=1
CDSCompU0034U0035:="U2158"
CDSCompU0031U0036:="U2159"
CMSCompU0035:=1
CDSCompU0035U0036:="U215A"
CDSCompU0031U0038:="U215B"
CDSCompU0033U0038:="U215C"
CDSCompU0035U0038:="U215D"
CMSCompU0037:=1
CDSCompU0037U0038:="U215E"
CDSCompU0031U002F:="U215F"
CDSCompU0031SNDiv:="U215F"
CDSCompSN__1SN__3:="U2153"
CDSCompSN__2SN__3:="U2154"
CDSCompSN__1SN__5:="U2155"
CDSCompSN__2SN__5:="U2156"
CMSCompSN__3:=1
CDSCompSN__3SN__5:="U2157"
CMSCompSN__4:=1
CDSCompSN__4SN__5:="U2158"
CDSCompSN__1SN__6:="U2159"
CMSCompSN__5:=1
CDSCompSN__5SN__6:="U215A"
CDSCompSN__1SN__8:="U215B"
CDSCompSN__3SN__8:="U215C"
CDSCompSN__5SN__8:="U215D"
CMSCompSN__7:=1
CDSCompSN__7SN__8:="U215E"
CDSCompSN__1U002F:="U215F"
CDSCompSN__1SNDiv:="U215F"
CDSCompSN__1SN__4:="U00BC"
CDSCompSN__1SN__2:="U00BD"
CDSCompSN__3SN__4:="U00BE"
CDSCompU0033U221A:="U221B"
CMSCompU221A:=1
CDSCompU221AU0033:="U221B"
CDSCompSN__3U221A:="U221B"
CDSCompU221ASN__3:="U221B"
CDSCompU0034U221A:="U221C"
CDSCompU221AU0034:="U221C"
CDSCompSN__4U221A:="U221C"
CDSCompU221ASN__4:="U221C"
CMSCompU222B:=1
CDSCompU222BU0032:="U222C"
CDSCompU0032U222B:="U222C"
CDSCompU222BU222B:="U222C"
CDSCompU222BSN__2:="U222C"
CDSCompSN__2U222B:="U222C"
CDSCompU222BU0033:="U222D"
CDSCompU0033U222B:="U222D"
CDSCompU222BSN__3:="U222D"
CDSCompSN__3U222B:="U222D"
CDSCompU222BU0034:="U2A0C"
CDSCompU0034U222B:="U2A0C"
CDSCompU222BSN__4:="U2A0C"
CDSCompSN__4U222B:="U2A0C"
CMSCompU222E:=1
CDSCompU222EU0032:="U222F"
CDSCompU0032U222E:="U222F"
CDSCompU222EU222E:="U222F"
CDSCompU222ESN__2:="U222F"
CDSCompSN__2U222E:="U222F"
CDSCompU222EU0033:="U2230"
CDSCompU0033U222E:="U2230"
CDSCompU222ESN__3:="U2230"
CDSCompSN__3U222E:="U2230"
CDSCompU006CU006E:="U33D1"
CMSCompU006CU006F:=1
CDSCompU006CU006FU0067:="U33D2"
CMSCompU005E:=1
CDSCompU005EU005B:="U2308"
CMSCompU005F:=1
CDSCompU005FU005B:="U230A"
CDSCompU005EU005D:="U2309"
CDSCompU005FU005D:="U230B"
CMSCompU003E:=1
CDSCompU003EU002E:="U2234"
CMSCompU003C:=1
CDSCompU003CU002E:="U2235"
CMSCompU007E:=1
CDSCompU007EU003D:="U2245"
CMSCompU003D:=1
CDSCompU003DU007E:="U2245"
CMTT__1:=1
CDTT__1U003D:="U2245"
CDSCompU007EU007E:="U2248"
CDTT__1U007E:="U2248"
CDSCompU003EU003D:="U2265"
CDSCompU003DU003E:="U2265"
CDSCompU003CU003D:="U2264"
CDSCompU003DU003C:="U2264"
CDSCompU003DU00B0:="U2257"
CMSCompU00B0:=1
CDSCompU00B0U003D:="U2257"
CMTA__6:=1
CDTA__6U003D:="U2257"
CMTC__2:=1
CDTC__2U003D:="U225A"
CMSCompSNAdd:=1
CDSCompSNAddSNSub:="U00B1"
CMSCompSNSub:=1
CDSCompSNSubSNAdd:="U2213"
CDSCompU002DU002B:="U2213"
CDSCompU003DU002F:="U2260"
CDTT__5U003D:="U2260"
CMSCompU003DTT__5:=1
CDSCompU003DTT__5TT__5:="U2260"
CDSCompU003CU003E:="U2260"
CMSCompU2203:=1
CDSCompU2203U002F:="U2204"
CDTT__5U2203:="U2204"
CMSCompU2203TT__5:=1
CDSCompU2203TT__5TT__5:="U2204"
CMSCompU2208:=1
CDSCompU2208U002F:="U2209"
CDTT__5U2208:="U2209"
CMSCompU2208TT__5:=1
CDSCompU2208TT__5TT__5:="U2209"
CMSCompU220B:=1
CDSCompU220BU002F:="U220C"
CDTT__5U220B:="U220C"
CMSCompU220BTT__5:=1
CDSCompU220BTT__5TT__5:="U220C"
CMSCompU007C:=1
CDSCompU007CU002F:="U2224"
CDTT__5U007C:="U2224"
CMSCompU007CTT__5:=1
CDSCompU007CTT__5TT__5:="U2224"
CMSCompU2225:=1
CDSCompU2225U002F:="U2226"
CDTT__5U2225:="U2226"
CMSCompU2225TT__5:=1
CDSCompU2225TT__5TT__5:="U2226"
CDSCompU007EU002F:="U2241"
CDTT__5U007E:="U2241"
CMSCompU007ETT__5:=1
CDSCompU007ETT__5TT__5:="U2241"
CDSCompU003CU002F:="U226E"
CDTT__5U003C:="U226E"
CMSCompU003CTT__5:=1
CDSCompU003CTT__5TT__5:="U226E"
CDSCompU003EU002F:="U226F"
CDTT__5U003E:="U226F"
CMSCompU003ETT__5:=1
CDSCompU003ETT__5TT__5:="U226F"
CMSCompU2264:=1
CDSCompU2264U002F:="U2270"
CDTT__5U2264:="U2270"
CMSCompU2264TT__5:=1
CDSCompU2264TT__5TT__5:="U2270"
CMSCompU2265:=1
CDSCompU2265U002F:="U2271"
CDTT__5U2265:="U2271"
CMSCompU2265TT__5:=1
CDSCompU2265TT__5TT__5:="U2271"
CMSCompU2282:=1
CDSCompU2282U002F:="U2284"
CDTT__5U2282:="U2284"
CMSCompU2282TT__5:=1
CDSCompU2282TT__5TT__5:="U2284"
CMSCompU2283:=1
CDSCompU2283U002F:="U2285"
CDTT__5U2283:="U2285"
CMSCompU2283TT__5:=1
CDSCompU2283TT__5TT__5:="U2285"
CMTC__1:=1
CDTC__1U2192:="U20D7"
CMSCompU2192:=1
CDSCompU2192U2192:="U20D7"
CDTC__1U003E:="U20D7"
CDSCompU005EU003E:="U20D7"
CDSCompU005EU2192:="U20D7"
CDTC__1U002D:="U207B"
CDSCompU005EU002D:="U207B"
CDTC__1SNSub:="U207B"
CDSCompU005ESNSub:="U207B"
CDSCompU005FU002D:="U208B"
CDSCompU005FU002D:="U208B"
CDSCompU005FSNSub:="U208B"
CDSCompU005FSNSub:="U208B"
CDTC__1U03B2:="U1D5D"
CDSCompU005EU03B2:="U1D5D"
CDTC__1U03B3:="U1D5E"
CDSCompU005EU03B3:="U1D5E"
CDTC__1U03B4:="U1D5F"
CDSCompU005EU03B4:="U1D5F"
CDTC__1U03C6:="U1D60"
CDSCompU005EU03C6:="U1D60"
CDTC__1U03C7:="U1D61"
CDSCompU005EU03C7:="U1D61"
CDTC__1U03B8:="U1DBF"
CDSCompU005EU03B8:="U1DBF"
CDSCompU005FU03B2:="U1D66"
CDSCompU005FU03B2:="U1D66"
CDSCompU005FU03B3:="U1D67"
CDSCompU005FU03B3:="U1D67"
CDSCompU005FU03C1:="U1D68"
CDSCompU005FU03C1:="U1D68"
CDSCompU005FU03C6:="U1D69"
CDSCompU005FU03C6:="U1D69"
CDSCompU005FU03C7:="U1D6A"
CDSCompU005FU03C7:="U1D6A"
CMSCompU0073U0063:=1
CDSCompU0073U0063U0067:="U210A"
CDSCompU0073U0063U0048:="U210B"
CDSCompU0073U0063U0049:="U2110"
CDSCompU0073U0063U004C:="U2112"
CDSCompU0073U0063U006C:="U2113"
CMSCompU0065:=1
CMSCompU0065U006C:=1
CDSCompU0065U006CU006C:="U2113"
CDSCompU0073U0063U0050:="U2118"
CDSCompU0073U0063U0052:="U211B"
CDSCompU0073U0063U0042:="U212C"
CDSCompU0073U0063U0065:="U212F"
CDSCompU0073U0063U0045:="U2130"
CDSCompU0073U0063U0046:="U2131"
CDSCompU0073U0063U004D:="U2133"
CDSCompU0073U0063U006F:="U2134"
CMSCompU0070:=1
CMSCompU0070U0068:=1
CDSCompU0070U0068U0020:="U210E"
CMSCompU002DU0070:=1
CDSCompU002DU0070U0068:="U210F"
CDSCompU0070U0068U002D:="U210F"
CMSCompSNSubU0070:=1
CDSCompSNSubU0070U0068:="U210F"
CDSCompU0070U0068SNSub:="U210F"
CMTT__2:=1
CMTT__2U0070:=1
CDTT__2U0070U0068:="U210F"
CMTT__5U0070:=1
CDTT__5U0070U0068:="U210F"
CDSCompU00B0U0043:="U2103"
CDSCompU00B0U0046:="U2109"
CMSCompU0077:=1
CDSCompU0077U00B0:="U00B0"
CDSCompU0077U0027:="U2032"
CDSCompU0077U0022:="U2033"
CMSCompU03BC:=1
CDSCompU03BCU006C:="U3395"
CDSCompU03BCU2113:="U3395"
CMSCompU006D:=1
CDSCompU006DU006C:="U3396"
CDSCompU006DU2113:="U3396"
CDSCompU0064U006C:="U3397"
CDSCompU0064U2113:="U3397"
CMSCompU006B:=1
CDSCompU006BU006C:="U3398"
CDSCompU006BU2113:="U3398"
CDSCompU0066U006D:="U3399"
CDSCompU006EU006D:="U339A"
CDSCompU03BCU006D:="U339B"
CDSCompU006DU006D:="U339C"
CMSCompU0063:=1
CDSCompU0063U006D:="U339D"
CDSCompU006BU006D:="U339E"
CDSCompU03BCU0067:="U338D"
CDSCompU006DU0067:="U338E"
CDSCompU006BU0067:="U338F"
CMSCompU0048:=1
CDSCompU0048U007A:="U3390"
CMSCompU006BU0048:=1
CDSCompU006BU0048U007A:="U3391"
CMSCompU004D:=1
CMSCompU004DU0048:=1
CDSCompU004DU0048U007A:="U3392"
CMSCompU0032U006D:=1
CDSCompU0032U006DU006D:="U339F"
CMSCompU0032U0063:=1
CDSCompU0032U0063U006D:="U33A0"
CDSCompU0032U006DU0020:="U33A1"
CMSCompU0032U006B:=1
CDSCompU0032U006BU006D:="U33A2"
CMSCompSN__2U006D:=1
CDSCompSN__2U006DU006D:="U339F"
CMSCompSN__2U0063:=1
CDSCompSN__2U0063U006D:="U33A0"
CDSCompSN__2U006DU0020:="U33A1"
CMSCompSN__2U006B:=1
CDSCompSN__2U006BU006D:="U33A2"
CMSCompU0033U006D:=1
CDSCompU0033U006DU006D:="U33A3"
CMSCompU0033U0063:=1
CDSCompU0033U0063U006D:="U33A4"
CDSCompU0033U006DU0020:="U33A5"
CMSCompU0033U006B:=1
CDSCompU0033U006BU006D:="U33A6"
CMSCompSN__3U006D:=1
CDSCompSN__3U006DU006D:="U33A3"
CMSCompSN__3U0063:=1
CDSCompSN__3U0063U006D:="U33A4"
CDSCompSN__3U006DU0020:="U33A5"
CMSCompSN__3U006B:=1
CDSCompSN__3U006BU006D:="U33A6"
CDSCompU006DU0073:="U33A7"
CMSCompU006DU0032:=1
CDSCompU006DU0032U0073:="U33A8"
CMSCompU006DSN__2:=1
CDSCompU006DSN__2U0073:="U33A8"
CMSCompU006DU006F:=1
CDSCompU006DU006FU006C:="U33D6"
CDSCompU003AU0029:="U263A"
CDSCompU003AU0028:="U2639"
CDSCompU0074U006D:="U2122"
CMSCompU0063SNDiv:=1
CDSCompU0063SNDivU006F:="U2105"
CMSCompU2640:=1
CDSCompU2640U2640:="U26A2"
CMSCompU2642:=1
CDSCompU2642U2642:="U26A3"
CDSCompU2640U2642:="U26A4"
CDSCompU2642U2640:="U26A5"
CDTC__1U00A0:="U02C6"
CDTC__2U00A0:="U02C7"
CMTC__3:=1
CDTC__3U00A0:="U02D8"
CMTA__1:=1
CDTA__1U00A0:="U00B4"
CMTA__2:=1
CDTA__2U00A0:="U0060"
CMTA__3:=1
CDTA__3U00A0:="U00B8"
CMTA__5:=1
CDTA__5U00A0:="U02DB"
CMTA__4:=1
CDTA__4U00A0:="U02D9"
CDTA__6U00A0:="U02DA"
CDTT__1U00A0:="U02DC"
CDTT__2U00A0:="U00AF"
CMTT__3:=1
CDTT__3U00A0:="U00A8"
CDTT__5U00A0:="U002F"
CMTT__4:=1
CDTT__4U00A0:="U02DD"
CMU02CC:=1
CDU02CCU00A0:="U02CF"
CDTC__1TC__1:="U0302"
CDTC__2TC__2:="U030C"
CDTC__3TC__3:="U0306"
CDTA__1TA__1:="U0301"
CDTA__2TA__2:="U0300"
CDTA__3TA__3:="U0327"
CDTA__5TA__5:="U0328"
CDTA__4TA__4:="U0307"
CDTA__6TA__6:="U030A"
CDTT__1TT__1:="U0303"
CDTT__2TT__2:="U0304"
CDTT__3TT__3:="U0308"
CDTT__5TT__5:="U0337"
CDTT__4TT__4:="U030B"
CDU02CCU02CC:="U0326"
CDSCompU005FU005F:="U0332"
CDTT__5U0020:="U002F"
CDTT__4U0020:="U02DD"
CDU02CCU0020:="U002C"
CMSCompU017F := 1
CDSCompU017FU0069 := "UE03E"
CDSCompU017FU017F := "UE03F"
CDSCompU017FU006C := "UE043"
CDSCompU017FU0073 := "UE045"

View file

@ -0,0 +1,983 @@
/******************
* Initialisierung *
*******************
*/
EbeneAktualisieren()
SetBatchLines -1
SetCapsLockState Off
SetNumLockState Off
SetScrollLockState Off
name=Neo 2.0 (%A_ScriptName%)
enable=Aktiviere %name%
disable=Deaktiviere %name%
#usehook on
#singleinstance force
#LTrim ; Quelltext kann eingerückt werden,
Process,Priority,,High
Sendmode Input
#MaxHotkeysPerInterval 2000
/****************
* Verzeichnisse *
*****************
*/
; Setzt den Pfad zu einem temporären Verzeichnis
EnvGet, WindowsEnvTempFolder, TEMP
ResourceFolder = %WindowsEnvTempFolder%\NEO2
FileCreateDir, %ResourceFolder%
; Setzt den Pfad zu den NEO-Anwendungsdateien
EnvGet, WindowsEnvAppDataFolder, APPDATA
ApplicationFolder = %WindowsEnvAppDataFolder%\NEO2
FileCreateDir, %ApplicationFolder%
ini = %ApplicationFolder%\NEO2.ini
/*******************
* Globale Schalter *
********************
*/
; Im folgenden gilt (soweit nicht anders angegeben) Ja = 1, Nein = 0:
; Sollen die Bilder für die Bildschirmtastatur in die compilierte EXE-Datei miteingebunden werden? (Nachteil: grössere Dateigrösse, Vorteil: Referenz für Anfänger stets einfach verfügbar)
bildschirmTastaturEinbinden := 1
; Syntaxhinweis: IniRead, Variable, InputFilename, Section, Key [, DefaultValue]
; Sollen Ebenen 1-4 ignoriert werden (kann z.B. vom dll Treiber übernommen werden)?
IniRead,ahkTreiberKombi,%ini%,Global,ahkTreiberKombi,0
; Soll der Treiber im Einhandmodus betrieben werden?
IniRead,einHandNeo,%ini%,Global,einHandNeo,0
; Soll der Lernmodus aktiviert werden?
IniRead,lernModus,%ini%,Global,lernModus,0
; Soll mit einer MsgBox explizit auf das Ein- und Ausschalten des Mod4-Locks hingewiesen werden?
IniRead,zeigeLockBox,%ini%,Global,zeigeLockBox,1
; Soll aktivierter Mod4-Lock über die Rollen-LED des Keybord angezeigt werden (analog zu CapsLock)?
IniRead,UseMod4Light,%ini%,Global,UseMod4Light,1
; Soll Lang-s auf s, s auf ß und ß auf Lang-s gelegt (bzw. vertauscht) werden?
IniRead,LangSTastatur,%ini%,Global,LangSTastatur,0
If LangSTastatur
CharProc("LnS1")
else
KeyboardLED(2,"off") ; deaktivieren, falls sie doch brennt
IniRead,isVM,%ini%,Global,isVM,0
if (isVM)
CharProc("_VM1")
; Sollen tote Tasten blind angezeigt werden?
IniRead,DeadCompose,%ini%,Global,DeadCompose,0
;Sollen Compose-Tasten blind angezeigt werden?
IniRead,DeadSilence,%ini%,Global,DeadSilence,0
/***********************
* Recourcen-Verwaltung *
************************
*/
if(FileExist("ResourceFolder")<>false){
; Versuche, alle möglicherweise in die EXE eingebundenen Dateien zu extrahieren
FileInstall,neo.ico,%ResourceFolder%\neo.ico,1
FileInstall,neo_disabled.ico,%ResourceFolder%\neo_disabled.ico,1
iconBenutzen=1
if (bildschirmTastaturEinbinden=1){
FileInstall,ebene1.png,%ResourceFolder%\ebene1.png,1
FileInstall,ebene2.png,%ResourceFolder%\ebene2.png,1
FileInstall,ebene3.png,%ResourceFolder%\ebene3.png,1
FileInstall,ebene4.png,%ResourceFolder%\ebene4.png,1
FileInstall,ebene5.png,%ResourceFolder%\ebene5.png,1
FileInstall,ebene6.png,%ResourceFolder%\ebene6.png,1
zeigeBildschirmTastatur=1
}
}else{
MsgBox,"Das Verzeichnis %ResourceFolder% konnte nicht angelegt werden!" ; Diese Zeile dient nur der eventuellen Fehlersuche und sollte eigentlich niemals auftauchen.
}
; Benutze die Dateien auch dann, wenn sie eventuell im aktuellen Verzeichnis vorhanden sind
if(FileExist("ebene1.png")&&FileExist("ebene2.png")&&FileExist("ebene3.png")&&FileExist("ebene4.png")&&FileExist("ebene5.png")&&FileExist("ebene6.png"))
zeigeBildschirmTastatur=1
if(FileExist("neo.ico")&&FileExist("neo_disabled.ico"))
iconBenutzen=1
/*******************************************
* Überprüfung 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% and 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.
`nÄndern Sie die Tastatureinstellung unter
`tSystemsteuerung
`t-> Regions- und Sprachoptionen
`t-> Sprachen
`t-> Details... `n
)
exitapp
}
/*************************
* Menü des Systray-Icons *
**************************
*/
if (iconBenutzen)
menu,tray,icon,%ResourceFolder%\neo.ico,,1
menu,tray,nostandard
menu,tray,add,Öffnen,open
menu,helpmenu,add,About,about
menu,helpmenu,add,Autohotkey-Hilfe,help
menu,helpmenu,add
menu,helpmenu,add,http://autohotkey.com/,autohotkey
menu,helpmenu,add,http://www.neo-layout.org/,neo
menu,tray,add,Hilfe,:helpmenu
menu,tray,add
menu,tray,add,%disable%,togglesuspend
menu,tray,add
menu,tray,add,Bearbeiten,edit
menu,tray,add,Neu Laden,reload
menu,tray,add
menu,tray,add,Nicht im Systray anzeigen,hide
menu,tray,add,%name% beenden, exitprogram
menu,tray,default,%disable%
menu,tray,tip,%name%
/*
Sonstige Variablen
*/
guiErstellt := 0
alwaysOnTop := 1
IsMod4Locked := 0
isMod2Locked := 0
; die Nachfolgenden sind nützlich um sich die Qwertz-Tasten abzugewöhnen, da alle auf der 4. Ebene vorhanden.
lernModus_std_Return := 0
lernModus_std_Backspace := 0
lernModus_std_PgUp := 0
lernModus_std_PgDn := 0
lernModus_std_Einf := 0
lernModus_std_Entf := 0
lernModus_std_Pos0 := 0
lernModus_std_Ende := 0
lernModus_std_Hoch := 0
lernModus_std_Runter := 0
lernModus_std_Links := 0
lernModus_std_Rechts := 0
lernModus_std_ZahlenReihe := 0
; im folgenden kann man auch noch ein paar Tasten der 4. Ebene deaktivieren
; nützlich um sich zu zwingen, richtig zu schreiben
lernModus_neo_Backspace := 0
lernModus_neo_Entf := 1
/**********************
* Tastenkombinationen *
***********************
*/
+pause::
Suspend, Permit
goto togglesuspend
/*****************
* Menüfunktionen *
******************
*/
togglesuspend:
if A_IsSuspended {
menu, tray, rename, %enable%, %disable%
menu, tray, tip, %name%
if (iconBenutzen)
menu, tray, icon, %ResourceFolder%\neo.ico,,1
suspend , off ; Schaltet Suspend aus -> NEO
} else {
menu, tray, rename, %disable%, %enable%
menu, tray, tip, %name% : Deaktiviert
if (iconBenutzen)
menu, tray, icon, %ResourceFolder%\neo_disabled.ico,,1
suspend , on ; Schaltet Suspend ein -> QWERTZ
} return
help:
Run, %A_WinDir%\hh mk:@MSITStore:autohotkey.chm
return
about:
msgbox, 64, %name% Ergonomische Tastaturbelegung,
(
%name%
`nDas Neo-Layout ersetzt das übliche deutsche
Tastaturlayout mit der Alternative Neo,
beschrieben auf http://neo-layout.org/.
`nDazu sind keine Administratorrechte nötig.
`nWenn Autohotkey aktiviert ist, werden alle Tastendrucke
abgefangen und statt dessen eine Übersetzung weitergeschickt.
`nDies geschieht transparent für den Anwender,
es muss nichts installiert werden.
`nDie Zeichenübersetzung kann leicht über das Icon im
Systemtray deaktiviert werden. `n
)
return
neo:
run http://neo-layout.org/
return
autohotkey:
run http://autohotkey.com/
return
open:
ListLines ; shows the Autohotkey window
return
edit:
edit
return
reload:
Reload
return
hide:
menu, tray, noicon
return
exitprogram:
exitapp
return
/**************************
* lernModus Konfiguration *
* nur relevant wenn *
* lernModus = 1 *
* Strg+Komma schaltet um *
***************************
*/
^,::lernModus := not(lernModus)
; 0 = aus, 1 = an
; LShift+RShift == CapsLock (simuliert)
; Es werden nur die beiden Tastenkombinationen abgefragt,
; daher kommen LShift und RShift ungehindert bis in die
; Applikation. Dies ist aber merkwürdig, da beide Shift-
; Tasten nun /modifier keys/ werden und, wie in der AHK-
; Hilfe beschrieben, eigentlich nicht mehr bis zur App
; durchkommen sollten.
; KeyboardLED(4,"switch") hatte ich zuerst genommen, aber
; das schaltet, oh Wunder, die LED nicht wieder aus.
VKA1SC136 & VKA0SC02A:: ; RShift, dann LShift
VKA0SC02A & VKA1SC136:: ; LShift, dann RShift
if (GetKeyState("VKA1SC136", "P") and GetKeyState("VKA0SC02A", "P"))
{
if isMod2Locked
{
isMod2Locked = 0
KeyboardLED(4,"off")
}
else
{
isMod2Locked = 1
KeyBoardLED(4,"on")
}
}
return
;Mod3-Tasten (Wichtig, sie werden sonst nicht verarbeitet!)
*VKBFSC02B:: ; #
*VK14SC03A:: ; CapsLock
return
;Mod4+Mod4 == Mod4-Lock
; Im Gegensatz zu LShift+RShift werden die beiden Tasten
; _nicht_ zur Applikation weitergeleitet, und nur bei
; gleichzeitigem Drücken wird der Mod4-Lock aktiviert und
; angezeigt.
*VKA5SC138::
*VKE2SC056::
if (GetKeyState("VKA5SC138", "P") and GetKeyState("VKE2SC056", "P"))
{
if IsMod4Locked
{
if zeigeLockBox
MsgBox Mod4-Feststellung aufgebehoben!
IsMod4Locked = 0
if UseMod4Light
KeyboardLED(1,"off")
}
else
{
if zeigeLockBox
MsgBox Mod4 festgestellt: Um Mod4 wieder zu lösen, drücke beide Mod4-Tasten gleichzeitig!
IsMod4Locked = 1
if UseMod4Light
KeyboardLED(1,"on")
}
}
return
EbeneAktualisieren()
{
global
PriorDeadKey := DeadKey
PriorCompKey := CompKey
DeadKey := ""
CompKey := ""
Modstate := IsMod4Pressed() . IsMod3Pressed() . IsShiftPressed()
Ebene7 := 0
Ebene8 := 0
if ahkTreiberKombi
if ( Modstate = "001")
Ebene = 6
else
Ebene = -1
else
if (Modstate = "000") ; Ebene 1: Ohne Mod
Ebene = 1
else if (Modstate = "001") ; Ebene 2: Shift
Ebene = 2
else if (Modstate = "010") ; Ebene 3: Mod3
Ebene = 3
else if (Modstate = "100") ; Ebene 4: Mod4
Ebene = 4
else if (Modstate = "011") ; Ebene 5: Shift+Mod3
Ebene = 5
else if (Modstate = "110") ; Ebene 6: Mod3+Mod4
Ebene = 6
else if (Modstate = "101") ; Ebene 7: Shift+Mod4 impliziert Ebene 4
{
Ebene = 4
Ebene7 = 1
}
else if (Modstate = "111") ; Ebene 8: Shift+Mod3+Mod4 impliziert Ebene 6
{
Ebene = 6
Ebene8 = 1
}
Ebene12 := ((Ebene = 1) or (Ebene = 2))
Ebene14 := ((Ebene = 1) or (Ebene = 4))
NumLock := GetKeyState("NumLock","T")
}
IsShiftPressed()
{
global
if GetKeyState("Shift","P")
if isMod2Locked and !noCaps
return 0
else
return 1
else
if isMod2Locked and !noCaps
return 1
else
return 0
noCaps = 0
}
IsMod3Pressed()
{
global
return ((GetKeyState("CapsLock","P")) or (GetKeyState("#","P")))
}
IsMod4Pressed()
{
global
if( not(einHandNeo) or not(spacepressed))
if IsMod4Locked
return (not ( GetKeyState("<","P") or GetKeyState("SC138","P")))
else
return ( GetKeyState("<","P") or GetKeyState("SC138","P"))
else
if IsMod4Lock
return (not ( GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P")))
else
return ( GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P"))
}
/*
------------------------------------------------------
Methode KeyboardLED zur Steuerung der Keyboard-LEDs
(NumLock/CapsLock/ScrollLock-Lichter)
Benutzungshinweise: Man benutze
KeyboardLED(LEDvalue,"Cmd"), wobei
Cmd = on/off/switch,
LEDvalue: ScrollLock=1, NumLock=2, CapsLock=4,
bzw. eine beliebige Summe dieser Werte:
AlleAus=0, CapsLock+NumLock=6, etc.
Der folgende Code wurde übernommen von:
http://www.autohotkey.com/forum/viewtopic.php?t=10532
Um eventuelle Wechselwirkungen mit dem bestehenden
Code (insb. der Unicode-Konvertierung) auszuschließen,
sind auch alle (Hilfsmethoden) mit dem Postfix LED
versehen worden.
------------------------------------------------------
*/
KeyboardLED(LEDvalue, Cmd){ ; LEDvalue: ScrollLock=1, NumLock=2, CapsLock=4 ; Cmd = on/off/switch
Static h_device
If ! h_device ; initialise
{
device=\Device\KeyBoardClass0
SetUnicodeStrLED(fn,device)
h_device:=NtCreateFileLED(fn,0+0x00000100+0x00000080+0x00100000,1,1,0x00000040+0x00000020,0)
}
VarSetCapacity(output_actual,4,0)
input_size=4
VarSetCapacity(input,input_size,0)
If Cmd=switch ;switches every LED according to LEDvalue
KeyLED:=LEDvalue
If Cmd=on ;forces all choosen LED's to ON (LEDvalue= 0 ->LED's according to keystate)
KeyLED:=LEDvalue | (GetKeyState("ScrollLock", "T") + 2*GetKeyState("NumLock", "T") + 4*GetKeyState("CapsLock", "T"))
If Cmd=off ;forces all choosen LED's to OFF (LEDvalue= 0 ->LED's according to keystate)
{
LEDvalue:=LEDvalue ^ 7
KeyLED:=LEDvalue & (GetKeyState("ScrollLock","T") + 2*GetKeyState("NumLock","T") + 4*GetKeyState("CapsLock","T"))
}
; EncodeIntegerLED(KeyLED,1,&input,2) ;input bit pattern (KeyLED): bit 0 = scrolllock ;bit 1 = numlock ;bit 2 = capslock
input:=Chr(1) Chr(1) Chr(KeyLED)
input:=Chr(1)
input=
success:=DllCall("DeviceIoControl"
, "uint", h_device
, "uint", CTL_CODE_LED( 0x0000000b ; FILE_DEVICE_KEYBOARD
, 2
, 0 ; METHOD_BUFFERED
, 0 ) ; FILE_ANY_ACCESS
, "uint", &input
, "uint", input_size
, "uint", 0
, "uint", 0
, "uint", &output_actual
, "uint", 0 )
}
CTL_CODE_LED(p_device_type,p_function,p_method,p_access ){
Return, ( p_device_type << 16 ) | ( p_access << 14 ) | ( p_function << 2 ) | p_method
}
NtCreateFileLED(ByRef wfilename,desiredaccess,sharemode,createdist,flags,fattribs){
VarSetCapacity(fh,4,0)
VarSetCapacity(objattrib,24,0)
VarSetCapacity(io,8,0)
VarSetCapacity(pus,8)
uslen:=DllCall("lstrlenW","str",wfilename)*2
InsertIntegerLED(uslen,pus,0,2)
InsertIntegerLED(uslen,pus,2,2)
InsertIntegerLED(&wfilename,pus,4)
InsertIntegerLED(24,objattrib,0)
InsertIntegerLED(&pus,objattrib,8)
status:=DllCall("ntdll\ZwCreateFile","str",fh,"UInt",desiredaccess,"str",objattrib,"str",io,"UInt",0,"UInt",fattribs
,"UInt",sharemode,"UInt",createdist,"UInt",flags,"UInt",0,"UInt",0, "UInt")
return ExtractIntegerLED(fh)
}
SetUnicodeStrLED(ByRef out, str_){
VarSetCapacity(st1, 8, 0)
InsertIntegerLED(0x530025, st1)
VarSetCapacity(out, (StrLen(str_)+1)*2, 0)
DllCall("wsprintfW", "str", out, "str", st1, "str", str_, "Cdecl UInt")
}
ExtractIntegerLED(ByRef pSource, pOffset = 0, pIsSigned = false, pSize = 4){
; pSource is a string (buffer) whose memory area contains a raw/binary integer at pOffset.
; The caller should pass true for pSigned to interpret the result as signed vs. unsigned.
; pSize is the size of PSource's integer in bytes (e.g. 4 bytes for a DWORD or Int).
; pSource must be ByRef to avoid corruption during the formal-to-actual copying process
; (since pSource might contain valid data beyond its first binary zero).
Loop %pSize% ; Build the integer by adding up its bytes.
result += *(&pSource + pOffset + A_Index-1) << 8*(A_Index-1)
if (!pIsSigned OR pSize > 4 OR result < 0x80000000)
return result ; Signed vs. unsigned doesn't matter in these cases.
; Otherwise, convert the value (now known to be 32-bit) to its signed counterpart:
return -(0xFFFFFFFF - result + 1)
}
InsertIntegerLED(pInteger, ByRef pDest, pOffset = 0, pSize = 4){
; The caller must ensure that pDest has sufficient capacity. To preserve any existing contents in pDest,
; only pSize number of bytes starting at pOffset are altered in it.
Loop %pSize% ; Copy each byte in the integer into the structure as raw binary data.
DllCall("RtlFillMemory", "UInt", &pDest + pOffset + A_Index-1, "UInt", 1, "UChar", pInteger >> 8*(A_Index-1) & 0xFF)
}
/*
------------------------------------------------------
Methoden zum Senden von Unicode-Zeichen
------------------------------------------------------
Über den GTK-Workaround:
Dieser basiert auf http://www.autohotkey.com/forum/topic32947.html
Der Aufruf von »SubStr(charCode,3)« geht davon aus, dass alle charCodes in Hex mit führendem 0x angegeben sind. Die abenteuerliche ^+u-Konstruktion benötigt im Übrigen den Hex-Wert in Kleinschrift, was derzeit nicht bei den Zeichendefinitionen umgesetzt ist, daher zentral und weniger fehlerträchtig an dieser Stelle. Außerdem ein abschließend gesendetes Space, sonst bleibt der eingetippte Unicode-Wert noch kurz sichtbar stehen, bevor er sich GTK-sei-dank in das gewünschte Zeichen verwandelt.
*/
SendUnicodeChar(charCode){
IfWinActive,ahk_class gdkWindowToplevel
{
StringLower,charCode,charCode
send % "^+u" . SubStr(charCode,3) . " "
}else{
VarSetCapacity(ki,28*2,0)
EncodeInteger(&ki+0,1)
EncodeInteger(&ki+6,charCode)
EncodeInteger(&ki+8,4)
EncodeInteger(&ki+28,1)
EncodeInteger(&ki+34,charCode)
EncodeInteger(&ki+36,4|2)
DllCall("SendInput","UInt",2,"UInt",&ki,"Int",28)
}
}
SendUnicodeCharDown(charCode){
IfWinActive,ahk_class gdkWindowToplevel
{
StringLower,charCode,charCode
send % "^+u" . SubStr(charCode,3) . " "
}else{
VarSetCapacity(ki,28,0)
EncodeInteger(&ki+0,1)
EncodeInteger(&ki+6,charCode)
EncodeInteger(&ki+8,4)
DllCall("SendInput","UInt",1,"UInt",&ki,"Int",28)
}
}
SendUnicodeCharUp(charCode){
IfWinActive,ahk_class gdkWindowToplevel
{
; nothing
}else{
VarSetCapacity(ki,28,0)
EncodeInteger(&ki+0,1)
EncodeInteger(&ki+6,charCode)
EncodeInteger(&ki+8,4|2)
DllCall("SendInput","UInt",1,"UInt",&ki,"Int",28)
}
}
EncodeInteger(ref,val){
DllCall("ntdll\RtlFillMemoryUlong","Uint",ref,"Uint",4,"Uint",val)
}
/*
------------------------------------------------------
BildschirmTastatur
------------------------------------------------------
*/
F1::
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch1
else send {blind}{F1}
return
F2::
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch2
else send {blind}{F2}
return
F3::
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch3
else send {blind}{F3}
return
F4::
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch4
else send {blind}{F4}
return
F5::
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch5
else send {blind}{F5}
return
F6::
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch6
else send {blind}{F6}
return
F7::
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Show
else send {blind}{F7}
return
F8::
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto ToggleAlwaysOnTop
else send {blind}{F8}
return
Switch1:
tImage := ResourceFolder . "\ebene1.png"
goto Switch
Return
Switch2:
tImage := ResourceFolder . "\ebene2.png"
goto Switch
Return
Switch3:
tImage := ResourceFolder . "\ebene3.png"
goto Switch
Return
Switch4:
tImage := ResourceFolder . "\ebene4.png"
goto Switch
Return
Switch5:
tImage := ResourceFolder . "\ebene5.png"
goto Switch
Return
Switch6:
tImage := ResourceFolder . "\ebene6.png"
goto Switch
Return
Switch:
if (guiErstellt)
{
if (Image = tImage)
goto Close
else
{
Image := tImage
SetTimer, Refresh
}
}
else
{
Image := tImage
goto Show
}
Return
Show:
if (guiErstellt)
{
goto Close
}
else
{
if (Image = "")
{
Image := ResourceFolder . "\ebene1.png"
}
yPosition := A_ScreenHeight -270
Gui, Color, FFFFFF
Gui, Add, Button, xm+5 gSwitch1, F1
Gui, Add, Text, x+5, kleine Buchstaben
Gui, Add, Button, xm+5 gSwitch2, F2
Gui, Add, Text, x+5, große Buchstaben
Gui, Add, Button, xm+5 gSwitch3, F3
Gui, Add, Text, x+5, Satz-/Sonderzeichen
Gui, Add, Button, xm+5 gSwitch4, F4
Gui, Add, Text, x+5, Zahlen / Steuerung
Gui, Add, Button, xm+5 gSwitch5, F5
Gui, Add, Text, x+5, Sprachen
Gui, Add, Button, xm+5 gSwitch6, F6
Gui, Add, Text, x+5, Mathesymbole
Gui, Add, Button, xm+5 gShow, F7
Gui, Add, Text, x+5, An /
Gui, Add, Text, y+3, Aus
Gui, Add, Button, x+10 y+-30 gShow, F8
Gui, Add, Text, x+5, OnTop
Gui, Add, Picture,AltSubmit ys w564 h200 vPicture, %Image%
Gui, +AlwaysOnTop
Gui, Show, y%yposition% Autosize
; SetTimer, Refresh
guiErstellt = 1
}
Return
Close:
guiErstellt = 0
Gui, Destroy
Return
Refresh:
If (Image != OldImage)
{
GuiControl, , Picture, %Image%
OldImage := Image
}
Return
ToggleAlwaysOnTop:
if (alwaysOnTop)
{
Gui, -AlwaysOnTop
alwaysOnTop = 0
}
else
{
Gui, +AlwaysOnTop
alwaysOnTop = 1
}
Return
;;;;;; DOWN EVENTS
; Reihe 1
*VKDCSC029:: ; Zirkumflex
*VK31SC002:: ; 1
*VK32SC003:: ; 2
*VK33SC004:: ; 3
*VK34SC005:: ; 4
*VK35SC006:: ; 5
*VK36SC007:: ; 6
*VK37SC008:: ; 7
*VK38SC009:: ; 8
*VK39SC00A:: ; 9
*VK30SC00B:: ; 0
*VKDBSC00C:: ; ß
*VKDDSC00D:: ; Akut
; Reihe 2
*VK51SC010:: ; q (x)
*VK57SC011:: ; w (v)x
*VK45SC012:: ; e (l)
*VK52SC013:: ; r (c)
*VK54SC014:: ; t (w)
*VK5ASC015:: ; z (k)
*VK55SC016:: ; u (h)
*VK49SC017:: ; i (g)
*VK4FSC018:: ; o (f)
*VK50SC019:: ; p (q)
*VKBASC01A:: ; ü (ß)
*VKBBSC01B:: ; + (tot3)
; Reihe 3
*VK41SC01E:: ; a (u)
*VK53SC01F:: ; s (i)
*VK44SC020:: ; d (a)
*VK46SC021:: ; f (e)
*VK47SC022:: ; g (o)
*VK48SC023:: ; h (s)
*VK4ASC024:: ; j (n)
*VK4BSC025:: ; k (r)
*VK4CSC026:: ; l (t)
*VKC0SC027:: ; ö (d)
*VKDESC028:: ; ä (y)
; Reihe 4
*VK59SC02C:: ; y (ü)
*VK58SC02D:: ; x (ö)
*VK43SC02E:: ; c (ä)
*VK56SC02F:: ; v (p)
*VK42SC030:: ; b (z)
*VK4ESC031:: ; n (b)
*VK4DSC032:: ; m (m)
*VKBCSC033:: ; , (,)
*VKBESC034:: ; . (.)
*VKBDSC035:: ; - (j)
; Numpad
VK90SC145:: ; NumLock
*VK6FSC135:: ; NumpadDiv
*VK6ASC037:: ; NumpadMult
*VK6DSC04A:: ; NumpadSub
*VK6BSC04E:: ; NumpadAdd
; *VK0DSC11C:: ; NumpadEnter
*VK67SC047:: ; NumPad7
*VK24SC047:: ; NumPadHome
*VK68SC048:: ; NumPad8
*VK26SC048:: ; NumPadUp
*VK69SC049:: ; NumPad9
*VK21SC049:: ; NumPadPgUp
*VK64SC04B:: ; NumPad4
*VK25SC04B:: ; NumPadLeft
*VK65SC04C:: ; NumPad5
*VK0CSC04C:: ; NumPadClear
*VK66SC04D:: ; NumPad6
*VK27SC04D:: ; NumPadRight
*VK61SC04F:: ; NumPad1
*VK23SC04F:: ; NumPadEnd
*VK62SC050:: ; NumPad2
*VK28SC050:: ; NumPadDown
*VK63SC051:: ; NumPad3
*VK22SC051:: ; NumPadPgDn
*VK60SC052:: ; NumPad0
*VK2DSC052:: ; NumPadIns
*VK6ESC053:: ; NumPadDot
*VK2ESC053:: ; NumPadDel
tab::
esc::
*enter::
*backspace::
*del::
*ins::
*home::
*end::
*pgup::
*pgdn::
*up::
*down::
*left::
*right::
F10::
F11::
numpadenter::
;;;;;; UP EVENTS
; Reihe 1
*VKDCSC029 up:: ; Zirkumflex
*VK31SC002 up:: ; 1
*VK32SC003 up:: ; 2
*VK33SC004 up:: ; 3
*VK34SC005 up:: ; 4
*VK35SC006 up:: ; 5
*VK36SC007 up:: ; 6
*VK37SC008 up:: ; 7
*VK38SC009 up:: ; 8
*VK39SC00A up:: ; 9
*VK30SC00B up:: ; 0
*VKDBSC00C up:: ; ß
*VKDDSC00D up:: ; Akut
; Reihe 2
*VK51SC010 up:: ; q (x)
*VK57SC011 up:: ; w (v)x
*VK45SC012 up:: ; e (l)
*VK52SC013 up:: ; r (c)
*VK54SC014 up:: ; t (w)
*VK5ASC015 up:: ; z (k)
*VK55SC016 up:: ; u (h)
*VK49SC017 up:: ; i (g)
*VK4FSC018 up:: ; o (f)
*VK50SC019 up:: ; p (q)
*VKBASC01A up:: ; ü (ß)
*VKBBSC01B up:: ; + (tot3)
; Reihe 3
*VK41SC01E up:: ; a (u)
*VK53SC01F up:: ; s (i)
*VK44SC020 up:: ; d (a)
*VK46SC021 up:: ; f (e)
*VK47SC022 up:: ; g (o)
*VK48SC023 up:: ; h (s)
*VK4ASC024 up:: ; j (n)
*VK4BSC025 up:: ; k (r)
*VK4CSC026 up:: ; l (t)
*VKC0SC027 up:: ; ö (d)
*VKDESC028 up:: ; ä (y)
; Reihe 4
*VK59SC02C up:: ; y (ü)
*VK58SC02D up:: ; x (ö)
*VK43SC02E up:: ; c (ä)
*VK56SC02F up:: ; v (p)
*VK42SC030 up:: ; b (z)
*VK4ESC031 up:: ; n (b)
*VK4DSC032 up:: ; m (m)
*VKBCSC033 up:: ; , (,)
*VKBESC034 up:: ; . (.)
*VKBDSC035 up:: ; - (j)
; Numpad
VK90SC145 up:: ; NumLock
*VK6FSC135 up:: ; NumpadDiv
*VK6ASC037 up:: ; NumpadMult
*VK6DSC04A up:: ; NumpadSub
*VK6BSC04E up:: ; NumpadAdd
; *VK0DSC11C up:: ; NumpadEnter
*VK67SC047 up:: ; NumPad7
*VK24SC047 up:: ; NumPadHome
*VK68SC048 up:: ; NumPad8
*VK26SC048 up:: ; NumPadUp
*VK69SC049 up:: ; NumPad9
*VK21SC049 up:: ; NumPadPgUp
*VK64SC04B up:: ; NumPad4
*VK25SC04B up:: ; NumPadLeft
*VK65SC04C up:: ; NumPad5
*VK0CSC04C up:: ; NumPadClear
*VK66SC04D up:: ; NumPad6
*VK27SC04D up:: ; NumPadRight
*VK61SC04F up:: ; NumPad1
*VK23SC04F up:: ; NumPadEnd
*VK62SC050 up:: ; NumPad2
*VK28SC050 up:: ; NumPadDown
*VK63SC051 up:: ; NumPad3
*VK22SC051 up:: ; NumPadPgDn
*VK60SC052 up:: ; NumPad0
*VK2DSC052 up:: ; NumPadIns
*VK6ESC053 up:: ; NumPadDot
*VK2ESC053 up:: ; NumPadDel
tab up::
esc up::
*enter up::
*backspace up::
*del up::
*ins up::
*home up::
*end up::
*pgup up::
*pgdn up::
*up up::
*down up::
*left up::
*right up::
F10 up::
F11 up::
numpadenter up::
AllStar(A_ThisHotkey)
return
*space::
if ((einHandNeo))
spacepressed := 1
else
AllStar(A_ThisHotkey)
return
*space up::
if ((einHandNeo)) {
if ((keypressed)) {
keypressed := 0
spacepressed := 0
} else {
AllStar("space")
AllStar("space up")
}
} else
AllStar(A_ThisHotkey)
return