Windows 10 – How to Switch Between Languages on Windows 10 Like OS X

input-languageskeyboard shortcutswindows 10

OS X has this really nice feature when you have 3+ keyboard input sources (languages) and press Cmd + Space you switch between only two of them.

If you want to switch to another (third) language you just hold Cmd and press Space to choose from the list of input sources available.

How can I have similar functionality on Windows 10? I have 3 input sources and looping through them to get to the one I need is really annoying.

Best Answer

One can assign in Windows 10 a keyboard shortcut to a language :

  1. Go to Control Panel -> Clock, Language, and Region -> Language -> Advanced settings.

  2. Under Switching input methods, click Change language bar hot keys, then click on your language, and finally on Change Key Sequence.

  3. This will display a dialog where you can assign a shortcut key to that language:

image

Since the above shortcut keys are quite limited, it is possible by using for example AutoHotkey to change this to any other keyboard combination. Once you learn AutoHotkey, it will be easy to reproduce the exact behavior of OSX (one can also ask for help on their forum).

Many AutoHotkey scripts can be found on the Internet and one can tailor them to fit any need.

The following example script aims at improving the functioning of Alt+Shift as a toggle between the English and Russian keyboards for the current window :

; This should be replaced by whatever your native language is. See 
; http://msdn.microsoft.com/en-us/library/dd318693%28v=vs.85%29.aspx
; for the language identifiers list.
ru := DllCall("LoadKeyboardLayout", "Str", "00000419", "Int", 1)
en := DllCall("LoadKeyboardLayout", "Str", "00000409", "Int", 1)

!Shift::
w := DllCall("GetForegroundWindow")
pid := DllCall("GetWindowThreadProcessId", "UInt", w, "Ptr", 0)
l := DllCall("GetKeyboardLayout", "UInt", pid)
if (l = en)
{
    PostMessage 0x50, 0, %ru%,, A
}
else
{
    PostMessage 0x50, 0, %en%,, A
}

Here are some threads offering scripts for changing the keyboard layout with various functionality :

Here are some free products that do that as well :

  • keyla - Can define keyboard shortcuts or use a taskbar icon
  • Recaps - Uses CapsLock to switch the keyboard language
Related Question