From 6d0b9db7e1dfa23ee0204b0a57847c4126e2500a Mon Sep 17 00:00:00 2001 From: dennis Date: Sat, 10 Jan 2009 16:33:14 +0000 Subject: Der »alte« AHK-Treiber ist als »deprecated« einzustufen. Der Namenswechsel des Verzeichnis soll dies wiederspielen und eventuelle »Gewohnheitsfehler« vermeiden. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.neo-layout.org@1423 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/ahk-auslaufend/Source/Methods-Layers.ahk | 131 +++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 windows/ahk-auslaufend/Source/Methods-Layers.ahk (limited to 'windows/ahk-auslaufend/Source/Methods-Layers.ahk') diff --git a/windows/ahk-auslaufend/Source/Methods-Layers.ahk b/windows/ahk-auslaufend/Source/Methods-Layers.ahk new file mode 100644 index 0000000..c59ccb7 --- /dev/null +++ b/windows/ahk-auslaufend/Source/Methods-Layers.ahk @@ -0,0 +1,131 @@ +; 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. + +isMod2Locked = 0 +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!) +;Auf Mod3+Mod3 liegt zusätzlich zu Mod3+Tab Compose +*VKBFSC02B:: ; # +*VK14SC03A:: ; CapsLock + if GetKeyState("VKBFSC02B", "P") and GetKeyState("VK14SC03A", "P") { + DeadKey := "comp" + CompKey := "" + } +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. + +IsMod4Locked := 0 +*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 (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)) + NumLock := GetKeyState("NumLock", "T") + noCaps := 0 +} + +IsShiftPressed() +{ + global + if !(NoCaps and GetKeyState("Shift", "P") and (GetKeyState("Alt", "P") or GetKeyState("Strg", "P"))) { + if striktesMod2Lock + noCaps = 0 + if GetKeyState("Shift","P") + if isMod2Locked and !noCaps + return 0 + else return 1 + else if isMod2Locked and !noCaps + return 1 + else return 0 + } +} + +IsMod3Pressed() +{ + global + return (GetKeyState("VKBFSC02B","P") or GetKeyState("VK14SC03A","P")) +} + +IsMod4Pressed() +{ + global + if !(einHandNeo) or !(spacepressed) + if IsMod4Locked + return !(GetKeyState("<","P") or GetKeyState("SC138","P")) + else + return (GetKeyState("<","P") or GetKeyState("SC138","P")) + else + if IsMod4Locked + return !(GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P")) + else + return (GetKeyState("<","P") or GetKeyState("SC138","P") or GetKeyState("ä","P")) +} + + + -- cgit v1.2.3