One can assign in Windows 10 a keyboard shortcut to a language :
Go to Control Panel -> Clock, Language, and Region -> Language -> Advanced settings.
Under Switching input methods, click Change language bar hot keys,
then click on your language, and finally on Change Key Sequence.
This will display a dialog where you can assign a shortcut key to that language:
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