13

Canonical question: One has a Windows 10 installed with display language A, but uses keyboard layout B. What does one need to do, to stop Windows from automatically adding an unwanted keyboard layout from language A to one's system?

My example: I have a Windows 10 in English and I'm using a Slovenian keyboard layout. And this is working just fine, until I run a certain program that Windows ever so intelligently thinks needs an US keyboard layout. Windows adds this unwanted layout automatically, switches to it and doesn't remove it afterwards. The new layout isn't even listed in installed layouts. The only way to remove it after it appears, is to manually add it as a keyboard layout and remove it.

It seems that's a common problem for many people but after many hours of googling, I just couldn't find a good solution for it... It would be perfectly fine with me if I could just completely remove the US keyboard layout from my system, but if I do that, the keyboard stops working in some programs altogether.

Programs that I or other people have this problem with: ICQ, some versions of Microsoft Office (lol), games based on Source engine, some versions of UltraVNC, Adobe CC Suite, and the list goes on.

Unwanted keyboard layout that Windows keeps adding

  • Vulgarities have no place in a question – Ramhound Feb 26 '17 at 1:18
  • Once you remove the masked vulgarity come into ROot Access to discuss your problem have numerous questions for you – Ramhound Feb 26 '17 at 3:34
  • Allright Ramhound, I did it and I'm desperate. Do you think you could help me and others facing the same problem? Where's this Root Access that you mentioned? – Brane Feb 26 '17 at 14:18
  • @Brane Does your keyboard change when you press ctrl+shift or alt+shift? maybe this is accidently changing your keyboard layout from time to time. – RamonRobben Feb 28 '17 at 22:31
  • 1
5
+25

I'm not sure what you've already tried but here are some possible solution that might help you out.

Override default input method

If you go to: Control Panel > All Control Panel Items > Language > Advanced settings

You will see an option to override default input method. You can set this to your wanted keyboard setting.

If you click on Change language bar hot keys (see image bottom) you can change the ALT+SHIFT or CTRL+SHIFT hotkeys. A button in the Advanced tab will say Change key sequence. You can put them on non assigned.

enter image description here

Set default input method in language options

If you go to: Control Panel > All Control Panel Items > Language

A screen like this will come up

language options

  1. Select your wanted language and move it up to the top.
  2. Then click on Options
  3. A second screen will popup.
  4. Add a different input method in your case English Slovenian keyboard and then delete the other one.

enter image description here

Add a reg key

You can add a DWORD called IgnoreRemoteKeyboardLayout with regedit to the following folder in regedit. Give it a value of 1.

HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Keyboard Layout

Or copy and paste this in a text editor and save it as .reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"IgnoreRemoteKeyboardLayout"=dword:00000001

Then double click it and it will add the reg key for you.

Remove the keyboard layout also in REG

  1. Go to the Region & Language settings
  2. Click on Options at the only Language that is there
  3. Under Keyboards delete the US layout
  4. Save that setting
  5. Then start regedit and go to HKEY_CURRENT_USER > Keyboard Layout > Preload
  6. Right click on Preload and click Permissions

enter image description here

Deny permission for everyone but make sure 1 account is still able to change it. (just make a new account and give that access). Oterwise you lock youself out of that reg map. Now only the other user can change that reg key.

I'm still looking for more possible solutions but this is what I got for now. Let me know how it worked out for you.

  • 2
    Unfortunately I've already tried all that. Doesn't help. But thanks for taking a look and all the effort you put into this. I'm sure it'll be useful to many people who find it via search. A side note: the registry value IgnoreRemoteKeyboardLayout is useful for Remote Desktop servers - it forces the keyboard layout defined on the server to any users connecting to it via RDP. – Brane Mar 8 '17 at 18:36
0

ATTENTION!!! The solution removes the registry keys for US layout!!!

Use only if you know what you are doing!

First backup your registry!

Execute in PowerShell:

Remove-Item -Path "Registry::HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layouts\00000409" -ErrorAction SilentlyContinue;
Remove-ItemProperty -Path "Registry::HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout\DosKeybCodes" -Name "00000409" -ErrorAction SilentlyContinue;
Remove-ItemProperty -Path "Registry::HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Keyboard Layout\DosKeybCodes" -Name "00000409" -ErrorAction SilentlyContinue;

After some Windows updates may need to re-execute commands.

It can be considered only a temporary solution until you find a more correct one.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.