Keyboard language keeps changing in Windows 10

In Windows 10, by default, pressing CTRL+SHIFT (or for some ALT+SHIFT - thanks madmenyo ) will cycle through any keyboard layouts that you might have mapped and it's surprisingly easy to do this by mistake.

If you keep pressing CTRL+SHIFT (or whatever you might have changed it to) then soon you should get back to the correct setting. (alternatively reboot which is what I did first time ;-) )

(Updated Aug 2019) You can change/disable this by

> Settings > search for 'typing' > Advanced keyboard settings > Language
> Bar options > Advanced Key Settings (tab) > Change Key Sequence

Be warned, the above doesn't always work - Restarts and Sleep mode can both change keyboard default (usually to US) - I've found no cast-iron solution though creating a new profile can help, though not a particularly satisfactory answer IMHO.

In an emergency

WIN+R  
osk

to bring up the On Screen Keyboard might help temporarily.

Also note that it's possible to disable this so that no key combination will change the language - change the keys to "Not Assigned" - see answer below from Mort for more info


2018/2019 answer:

I had the same issue, trying to use Polish keyboard with English UI language of Windows.

Every time I locked the computer, it came back to US keyboard.

The problem was that I was having Polish keyboard under Polish language, where in fact, what I really wanted was a Polish keyboard under English language.

I removed Polish language pack, added Polish keyboard under English language, and removed American keyboard from English language - see the screenshot below:

Windows 10 (2018) language preferences

So in short, the trick is to add your desired keyboard as the only keyboard under the default language.

(This works for me because I generally type in English, only sometimes I want to input in Polish, but I can do it without changing the keyboard, since Polish keyboard is fully compatible with US QWERTY).


Additional notes:

As @GuneyOzsan mentioned, some language/keyboard configurations might show only in language bar, but not in the language settings keyboards list (so you cannot remove it) -- particularly, this happens after a major update of Windows. To remove one of those items (e.g.: lang=US, keyboard=Canada), you have to add the same exact combination of the item you want to delete via the language settings list, and then remove it:

  • click on the + (add a preferred language)
  • add an item with the lang=US and keyboard=Canada
  • then remove it
  • then delete the preferred language you just created (this removes the invisible keyboard)

If you click on the "Change language bar hot keys" link, visible in your last screenshot, you should be able to see which keys are bound to change the keyboard language.

The default settings are very easy to hit, when using the keyboard, thus suddenly changing the keyboard language. Changing the keys to "Not Assigned" will prevent the keyboard language from switching accidentally.