Eu resolvi esse problema usando o AutoHotKey.
Configure 3 idiomas, uma tecla de atalho para alternar entre eles e outra tecla de atalho para alternar para o idioma que você deseja ignorar. Eu tinha Inglês, Russo e Japonês e queria pular japonês, então eu atribuí Ctrl + Shift + 0 para mudar para JP.
Eu já tinha um script AutoHotKey que me permitia alternar entre os três idiomas usando o Caps. Ficou assim:
CapsLock::Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}
A ideia é mudar o idioma automaticamente quando você mudar para o idioma que deseja pular. É 0x0411 para japonês. Cole o seu na cláusula if no script abaixo, salve-o e execute-o.
Aqui é a lista de idiomas ids, encontre o seu na primeira coluna.
O script só funciona para alternar entre idiomas usando o CapsLock, mas você pode adaptá-lo à opção Alt + Shift. Provavelmente apenas substituindo "CapsLock" por "{Alt Down} {Shift Abaixo} {Shift Up} {Alt Up}".
CapsLock::
Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}
if !LangID := GetKeyboardLanguage(WinActive("A"))
{
MsgBox, % "GetKeyboardLayout function failed " ErrorLevel
return
}
if (LangID = 0x0411)
Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}
return
GetKeyboardLanguage(_hWnd=0)
{
if !_hWnd
ThreadId=0
else
if !ThreadId := DllCall("user32.dll\GetWindowThreadProcessId", "Ptr", _hWnd, "UInt", 0, "UInt")
return false
if !KBLayout := DllCall("user32.dll\GetKeyboardLayout", "UInt", ThreadId, "UInt")
return false
return KBLayout & 0xFFFF
}