Tuesday, July 16, 2019

Problem with rebinding Ctrl to Capslock using Autohotkey


I am using AutoHotkey to rebind Ctrl to Capslock like this:


Capslock::Ctrl

I have also bound my home keys for movement while Capslock is held:


^h::Send {LEFT}
^j::Send {DOWN}
^k::Send {UP}
^l::Send {RIGHT}

Trouble is, I can hold Capslock and issue one movement combo, but subsequent taps of h,j,k or l while still holding Capslock results in one of those letters appearing in my editor. In other words, it's as if Capslock is being released, even though I am still holding it down. If I hold the actual Ctrl key and use the movement bindings, it works fine. Anyone know how to rectify this?


Answer



The solution was kindly posted on the AutoHotKey forum by "VxE":


Capslock::
Gui, 93:+Owner ; prevent display of taskbar button
Gui, 93:Show, y-99999 NA, Enable nav-hotkeys: hjkl
Send {LCtrl Down}
KeyWait, Capslock ; wait until the Capslock button is released
Gui, 93:Cancel
Send, {LCtrl Up}
Return
#IfWinExist, Enable nav-hotkeys: hjkl
*h::Send {Blind}{LCtrl Up}{Left}{LCtrl Down}
*j::Send {Blind}{LCtrl Up}{Down}{LCtrl Down}
*k::Send {Blind}{LCtrl Up}{Up}{LCtrl Down}
*l::Send {Blind}{LCtrl Up}{Right}{LCtrl Down}
#IfWinExist, ; end context-sensitive block

No comments:

Post a Comment

hard drive - Leaving bad sectors in unformatted partition?

Laptop was acting really weird, and copy and seek times were really slow, so I decided to scan the hard drive surface. I have a couple hundr...