Некоторые картинки не загружаются из РФ и РК, используйте VPN.

воскресенье, 28 января 2024 г.

AHK Переключение раскладки между двумя последними

Когда пишешь код для 1С на кириллице, приходится постоянно переключаться между раскладками, так как в коде используются некоторые символы, доступные только в латинской раскладке. Да можно настроить клавиатуру под себя, но мне это не очень удобно. Поэтому я вынужден постоянно переключаться между раскладками. В какой то момент обратил внимание на то, что раскладка не успевает переключиться за то время, как я нажимаю клавиши. Выяснилось, что у windows есть таймаут нажатия и правится он в реестре:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response]
"DelayBeforeAcceptance"="50"

А когда у меня добавилась раскладка, выяснилось, что нельзя настроить переключение не иначе, как каруселью (стандартными средствами). Сегодня случайно узнал, что есть комбинация Win-Ctrl-Space, которая позволяет переключаться между двумя последними, как в gboard. А потом нашелся скрипт для autoHotKey, который позволяет сменить стандартное поведение alt+shift на эту волшебную комбинацию. Выбор другой раскладки можно оставить за win+Space или настроить при помощи стандартных средств.

Скрипт для ahk v1 и не мой, я лишь добавил {LAlt up}{LShift up}, так как у меня иногда "залипают" эти клавиши. Идея оказалась так себе, так как стало еще хуже

; This scripts changes the functi onality of Shift + Alt from "switch keyboard layout"
; to "change to previous layout".
; this is usefull when you have more than 2 keyboard layouts and want to switch between 
; only 2 of them.

LAlt & LShift::send, #^{space down}{space up}
; Замена Alt-Shift на Win-Ctrl-Space

Теперь надо отучиться дважды переключать раскладку X-D

Неожиданно выяснилось, что эта штука ведет себя некорректно в сеансах RDP O_O. Пришлось сгруппировать процессы exe в группу и сказать скрипту работать, только если активное окно не входит в эту группу

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.	
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

GroupAdd, RDP_EXE, ahk_exe RDCMan.exe
GroupAdd, RDP_EXE, ahk_exe mRemoteNG.exe
GroupAdd, RDP_EXE, ahk_exe mstsc.exe

#IfWinNotActive ahk_group RDP_EXE
	LAlt & LShift::send, #^{space down}{space up} ; Замена Alt-Shift на Win-Ctrl-Space
#If

Комментариев нет:

Отправить комментарий