Either natively or by combining with another program is fine by me.
What I'm trying to do (to emulate how I have it working in Windows using AutoHotkey):
capslock only turns on if the key is tapped twice in a row (within ~ 0.5 seconds of each other)
a single tap of the key will turn it off, but if caps is already off it does nothing
if the capslock key is held it works like shift (capitalizing what is typed while held, and not capitalizing after released)
From reading the ./keymap/tutorial.kbd it looks like I can do every part with kmonad (although I'm having trouble grasping the exact syntax, my best guess is (defalias cap (multi-tap 500 caps 500 caps 500 sft)) but that's not valid) except the bolded part (which I'm hoping can be done natively, or at least by assigning the press to some command that can)
EDIT: Here is the AHK script for reference. If such functionality isn't currently possible I'm hoping it might be as part of the refactor?
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
CapsLock::
if A_PriorHotkey = CapsLock
{
if A_TimeSincePriorHotkey < 500
{
SetCapsLockState, on
return
}
}
SetCapsLockState, on
keywait, CapsLock
SetCapsLockState, OFF
return
Interesting idea. Going to label this as someday, since we are not ready yet to really delve into redoing the internals, but this is definitely something I'll keep in the back of my head.
Either natively or by combining with another program is fine by me.
What I'm trying to do (to emulate how I have it working in Windows using AutoHotkey):
From reading the
./keymap/tutorial.kbd
it looks like I can do every part with kmonad (although I'm having trouble grasping the exact syntax, my best guess is(defalias cap (multi-tap 500 caps 500 caps 500 sft))
but that's not valid) except the bolded part (which I'm hoping can be done natively, or at least by assigning the press to some command that can)EDIT: Here is the AHK script for reference. If such functionality isn't currently possible I'm hoping it might be as part of the refactor?