AutoHotKey: переназначение Alt+Shift+Tab для (L)Win+Shift+Tab
Я пытаюсь использовать AutoHotKey, чтобы заставить Alt+Tab и Shift+Alt+Tab в Windows иметь такое же поведение, как Cmd+Tab и Shift+Cmd+Tab в macOS.
Примечание: Cmd на клавиатуре Mac отправляет клавишу Win.
То, что я получил на работу:
LWin & Tab:: AltTab
Чего я не смог сделать, так это заставить LWin+Shift+Tab отправить Shift+Alt+Tab. Я пробовал:
#Shift & Tab:: ShiftAltTab
(ошибка: в этом случае необходимо указать L или R для #)LWin & Shift & Tab :: ShiftAltTab
(Не могу использовать 3 пользовательских комбинации)Lwin & Tab:: if GetKeyState("Shift") { Send {ShiftAltTab} } else { Send {AltTab} }
Я также пытался с обратной строкой после каждого Send
линия. Ничего не происходило при нажатии либо
- LCmd+Tab (== LWin+Tab) или
- LCmd+Shift+Tab (== LWin+Shift+Tab).
Есть ли быстрый и простой способ сделать это? Я хочу использовать AHK, поскольку он изменяет комбинации, чтобы имитировать многие другие варианты поведения клавиатуры Mac.
2 ответа
LWin & Tab::
AltTabMenu := true
If GetKeyState("Shift","P")
Send {Alt Down}{Shift Down}{Tab}
else
Send {Alt Down}{Tab}
return
#If (AltTabMenu)
~*LWin Up::
Send {Shift Up}{Alt Up}
AltTabMenu := false
return
#If
Проверено на Windows 10.
Продолжая ответ, данный @user3419297, поскольку он работал только для левых модификаторов:
LWin & Tab::
RWin & Tab::
AltTabMenu := true
If GetKeyState("Shift","P")
Send {Alt Down}{Shift Down}{Tab}
else
Send {Alt Down}{Tab}
return
#If (AltTabMenu)
~*LWin Up::
~*RWin Up::
Send {Shift Up}{Alt Up}
AltTabMenu := false
return
RShift::LShift
#If
Это позволяет использовать модификаторы Win и Shift взаимозаменяемо.