Я использую Vim, поэтому я переназначил capslockна esc. Но мне все еще capslockиногда хочется. Поэтому я задаюсь вопросом, как переназначить shiftна shift+ capslock:
- При shiftобычном использовании: долгое нажатие и отпускание клавиши, она все равно должна работать как shiftклавиша переключения ввода на верхний регистр.
- При shiftнажатии (короткое нажатие и отпускание) должно произойти переключение capslock.
Возможно ли что-то подобное? Кто-нибудь знает скрипты 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
условии.