Neo ist eine ergonomische Tastaturbelegung, welche für die deutsche Sprache optimiert ist. https://neo-layout.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
neo-layout/windows/ahk-auslaufend/Source/Methods-Other.ahk

186 lines
3.6 KiB

deadAsc(val1, val2, a) {
global
if !DeadSilence
OutputChar(val1, val2)
else CheckComp(val2)
DeadKey := a
}
deadUni(val1, val2, a) {
global
if !DeadSilence
SendUnicodeChar(val1, val2)
else CheckComp(val2)
DeadKey := a
}
undeadAsc(val) {
global
if DeadSilence
send % val
else
send % "{bs}" . val
}
undeadUni(val){
global
if !DeadSilence
send {bs}
SendUnicodeChar(val, "")
}
CheckDeadAsc(d,val) {
global
if (PriorDeadKey == d) {
undeadAsc(val)
return 1
}
}
CheckDeadUni(d,val) {
global
if (PriorDeadKey == d) {
undeadUni(val)
return 1
}
}
CheckDeadAsc12(d,val1,val2) {
global
if (PriorDeadKey == d){
if (Ebene = 1) and (val1 != "") {
undeadAsc(val1)
return 1
} else if (Ebene = 2) and (val2 != "") {
undeadAsc(val2)
return 1
}
}
}
CheckDeadUni12(d,val1,val2) {
global
if(PriorDeadKey == d) {
if (Ebene = 1) and (val1 != "") {
undeadUni(val1)
return 1
} else if (Ebene = 2) and (val2 != "") {
undeadUni(val2)
return 1
}
}
}
CheckCompUni(d,val) {
global
if (CompKey == d) {
PriorCompKey =
CompKey =
if !DeadCompose
send {bs}
isFurtherCompkey = 0
SendUnicodeChar(val, "")
return 1
}
}
OutputChar(val1,val2) {
global
if (!CheckComp(val2))
send % "{blind}" . val1
}
OutputChar12(val1,val2,val3,val4) {
global
if (Ebene = 1)
c := val1
else c := val2
if (Ebene = 1)
d := val3
else d := val4
if (!CheckComp(d))
if GetKeyState("Shift","P") and isMod2Locked
send % "{blind}{Shift Up}" . c . "{Shift Down}"
else send % "{blind}" . c
}
;Folgende Funktion prüft, ob das eben geschriebene Zeichen eine gültige Coko
;fortsetzen KÖNNTE – falls ja, wird 1 zurückgegeben (die Eingabe soll blind erfolgen),
;andernfalls wird 0 zurückgegeben (das Zeichen soll ausgegeben werden).
CheckComp(d) {
global
if (PriorDeadKey = "comp") {
CompKey := "<" . d . ">"
PriorDeadKey := DeadKey =
CheckCompose()
TryThirdCompKey = 0
return 1
} else if TryFourthCompKey {
TryFourthCompKey = 0
CompKey := ThreeCompKeys . " " . "<" . d . ">"
ThreeCompKeys =
CheckCompose()
if !(CompKey) {
send {left}{bs}{right}
return 1
} else CompKey =
} else if TryThirdCompKey {
TryThirdCompKey = 0
CompKey := PriorCompKey . " " . "<" . d . ">"
CheckCompose()
if CompKey {
TryFourthCompKey = 1
ThreeCompKeys := CompKey
CompKey =
} else return 1
} else if PriorCompKey {
CompKey := PriorCompKey . " " . "<" . d . ">"
CheckCompose()
if CompKey
TryThirdCompKey = 1
return 1
}
}
CumulateDeadKey(a) {
if DeadKey = a5
{ if a = g1
DeadKey = a5g1
else if a = a1
DeadKey = a5a1
else if a = a2
DeadKey = a5a2
else if a = g1a2
DeadKey = a5g1a2
else if a = a1a2
DeadKey = a5a1a2
else if a = c1a2
DeadKey = a5c1a2
} else if DeadKey = g5
{ if a = g1
DeadKey = g5g1
else if a = a1
DeadKey = g5a1
else if a = a2
DeadKey = g5a2
else if a = g1a2
DeadKey = g5g1a2
else if a = a1a2
DeadKey = g5a1a2
else if a = c1a2
DeadKey = g5c1a2
} else if DeadKey = g1
{ if a = a5
DeadKey = a5g1
else if a = g5
DeadKey = g5g1
else if a = a2
DeadKey = g1a2
else if a = a5a2
DeadKey = a5g1a2
else if a = g5a2
DeadKey = g5g1a2
}
}