При написании кода (да и вообще при работе за компьютером) часто хочется, чтобы при открытии конкретного приложения для него по умолчанию активировалась определённая раскладка. На Windows есть пара вариантов, как решить эту проблему.
Системными средствами
Windows 10 и выше может запоминать начальную раскладку для приложений. На Windows 11 для этого нужно перейти в настройки системы, далее открыть раздел Время и язык, далее Язык и регион > Ввод > Дополнительные параметры клавиатуры.
В открывшихся настройках нужно поставить галочку напротив пункта Позволить выбирать метод ввода для каждого окна приложения.

Теперь для каждого приложения будет использоваться своя раскладка. Если в Telegram вы печатали на русском, а в IDE на английском, то именно эти раскладки и будут сохраняться при переключении между приложениями.
С помощью AutoHotkey
Многие из вас уже пользуются утилитой для автоматизации AutoHotkey. С её помощью можно тоже управлять процессом переключения раскладки, но придётся приложить чуть больше усилий.
Создайте файл скрипта AutoHotkey с таким кодом:
SetTimer(CheckActiveWindow, 500) ; Проверяем активное окно каждые 500 мс
CheckActiveWindow() {
hWnd := WinExist("A") ; Проверяем, есть ли активное окно
if (!hWnd)
return ; Если нет активного окна, выходим
activeProcess := WinGetProcessName(hWnd) ; Получаем имя процесса активного окна
if (activeProcess = "notepad.exe") {
SetLayout(0x0409) ; Английская раскладка
} else if (activeProcess = "wordpad.exe") {
SetLayout(0x0419) ; Русская раскладка
}
}
SetLayout(localeID) {
hWnd := WinExist("A") ; Проверяем активное окно перед сменой раскладки
if (!hWnd)
return
PostMessage(0x50, 0, localeID,, hWnd) ; Меняем раскладку
}
while true {
Sleep(1000)
}
В нём для приложения Notepad по умолчанию задана английская раскладка, а для WordPad — русская. По аналогии вы можете добавить нужные вам приложения и раскладки.