Как сопоставить клавишу "shift" с "shift" + "capslock" с помощью AutoHotkey?
Я использую Vim, поэтому я переназначил capslock, чтобы убежать. Но я все еще хочу иногда использовать кепку. Поэтому мне интересно переназначить shift на shift + capslock:
- Когда сдвиг используется обычным способом: длительное нажатие и отпускание, он все равно должен работать как клавиша Shift, изменяя ввод на верхний регистр.
- Когда нажата клавиша shift (короткое нажатие и отпускание), она должна переключить режим блокировки.
Возможно ли что-то подобное? Кто-нибудь знает какие-либо скрипты AutoHotkey или советы о том, как сделать это, которыми они могли бы поделиться?
1 ответ
Решение
Используйте этот скрипт AutoHotkey, слегка модифицированный по ответу Эллиота ДеНольфа:
~Shift::
duration := 0
If (GetKeyState("Shift","p"))
{
start := A_TickCount
While (GetKeyState("Shift"))
Sleep, 1
duration := A_TickCount - start
}
if (duration < 100) ;Change this value as needed
if GetKeyState("CapsLock", "T") = 1
{
SetCapsLockState, off
}
else if GetKeyState("CapsLock", "T") = 0
{
SetCapsLockState, on
}
Return
Если клавиша Shift нажата менее 100 миллисекунд и отпущена, она переключит клавишу CapsLk. Больше 100 мсек, и он будет действовать как обычный ключ-модификатор.
Если 100 мс слишком длинно, выберите соответствующее значение в if
состояние.