This is can be done simply:
Code: Select all
CapsLock & q::Send <some logic>
CapsLock & w::Send <some logic>
CapsLock & e::Send <some logic>
CapsLock & r::Send <some logic>
CapsLock::Send {CapsLock} ; so normal click would also work
Good example of THM work: [youtube]https://youtu.be/gZxebHjsXyw?t=1628[/youtube]
Implementing THM look like this, but i dont know where to pput "hold" logic. How to check for "Caps+W" is "W" also held?
Code: Select all
thm := new TapHoldManager()
thm.Add("CapsLock", Func("CapsLock_Handle"))
CapsLock_Handle(isHold, taps, isPressed){
if isPressed = false
return
if isHold{
ToolTip, CapsLock_%taps%_clicks_AND_HELD
if taps = 1
{
if is_W_Pressed() ; how to check "W" exacly?
CapsLock_W_Handle();
}
else if taps = 2
{
if is_W_Pressed()
double_CapsLock_W_Handle();
}
}
else
ToolTip, CapsLock_%taps%_clicks
if taps = 1
handleNormalClick()
else if taps = 2
handleDoubleClick()
; ... and so on
return
}
is_W_Pressed(){
; help. How to check is W was pressed while CapsLock helded?
}
1. bind simple combination like hold CapsLock + W
2. bind THM specific combo like Caps Lock 1st click, Caps Lock 2nd click, Caps Lock Hold.
3. bind complex combinations like Caps Lock click, short pause, hold CapsLock + W
4. bind complex combinations with standart modificators like Alt or Shift: Alt + Shift + CapsLock + W
In short my questions is:
A. How to connect layers and THM in code?
B. I have not found a single framework for creating "layers" in AHK. Are there any such code libraries at all? Has anyone tried to do this?