How to prevent Windows 10 from automatically adding keyboard layouts (i.e. US keyboard)

121

43

Update: this is a lengthy post, you can jump straight to the answer below


Note: The quick language list refers to the list in the screenshot below, accessible throught the shortcut Win + Space bar

I have two languages for windows spell check in my system, English (United States) and French (Switzerland), but despite both languages being properly configured with "Swiss French" input keyboard, US Keyboard input keeps appearing on this list:

enter image description here

Here's the settings for English (United States) language, you can see the only input is "Swiss French":

enter image description here

Same for Français (Suisse), the only input is "Swiss French":

enter image description here

In the Control Panel, both are also set as Swiss French:

enter image description here

All my settings are set to use "language list":

enter image description here enter image description here

Here's a few things that I already tried:

  • I already managed to remove it by some language configuration gymnastics, by adding and removing languages, it always eventually comes back
  • I have already done this: https://superuser.com/a/484595/168632
  • There's no mention of US Keyboard in my registry settings either:

enter image description here

Please help, I'm desperate, this is my third computer with Windows 10 and they all do the same thing.

Luis Ferrao

Posted 2016-06-22T13:36:38.453

Reputation: 2 526

what if you need some script which would run at Autostart+DELETE THOSE UNWANTED ENTRIES? – Sergey Larin – 2017-09-06T22:46:03.110

Win + Shift + Space bar – SmartManoj – 2018-06-09T07:06:02.377

Only this worked for me https://answers.microsoft.com/en-us/windows/forum/windows_10-start-winpc/cant-remove-a-keyboard-layout-in-windows-10/058acf33-16d9-47f4-a24b-245b8823d90e And this also blocks from adding new layouts unless you allow it

– rofrol – 2018-09-12T09:11:14.160

Answers

107

To fix this issue, delete the Preload registry folder and sign out or restart the computer:

HKEY_USERS\.DEFAULT\Keyboard Layout\Preload

This folder seems to be some legacy remnant that contains non-user-specified keyboard layouts to be added to the list of languages when the user signs in. While the fix itself works through restarts, at time of writing there's things that bring back that pesky folder, here's a few that I bumped into personally:

  • Remote desktop to a computer with US layout
  • Using the same Microsoft account on another PC that still has this issue

Whenever the problem comes back, that registry folder needs to be deleted again.

Edit 2: Thanks to @Lu55's suggestion, here's a handy one-liner to use on a command prompt with admin privileges:

reg delete "HKEY_USERS\.DEFAULT\Keyboard Layout\Preload" /f

Edit: I have created a RemovePreload.reg text file with the following content, this way this fix can easily be re-applied every time without navigating the registry:

Windows Registry Editor Version 5.00

[-HKEY_USERS\.DEFAULT\Keyboard Layout\Preload]

To use this, save it in a text file and change the extension from .txt to .reg. Then whenever it comes back, you can just double click it and restart or sign out.

Luis Ferrao

Posted 2016-06-22T13:36:38.453

Reputation: 2 526

1Thanks! This was the only thing that finally fixed it for me. The US keyboard layout always got added when I logged in. I could remove it by first adding it, and then removing it, like Snaiper's answer, but it would always reappear when restarting. This seems to have removed it permanently. – The Oddler – 2017-04-22T18:24:04.377

4It appears after a while anyway. – troorl – 2017-04-23T17:37:10.057

Yea, it reappeared for me now too :( Was able to restart only once without it reappearing it seems. – The Oddler – 2017-04-23T20:14:40.070

1The solution of adding and removing the keyboard is way safer and as hacky as this one :) – user2158153 – 2018-03-28T21:39:52.150

Have you tried, instead of removing the Preload key, to remove its entries and restrict permissions to the key? I went to permissions of Preload, Advanced, disabled inheritance, converted all inherited permissions, removed all of them, added read-only permission for Everyone, and saved. That should prevent Windows from re-adding the entries that re-add keyboard profiles. – bers – 2019-06-28T07:26:53.667

61

Actually, the solution is quite simple and requires no registry editing!

  • Go to to Region and Language (previously named Language preferences), click on English (United States) and go to Options.

  • If you see "US Keyboard" there, remove it, and you're done.

  • HOWEVER, if you do not see it there, then click on Add a keyboard, add "US keyboard", then remove that keyboard and you're done.

I figured this out after some trial and error trying out various things, I had the same issue.

Snaiper

Posted 2016-06-22T13:36:38.453

Reputation: 665

19It appears after reboot again. – troorl – 2017-04-23T17:40:51.907

6The third point is literally: "Have you tried turning it on and off again?"... and that was on point :) Thanks for that! – ccjmne – 2017-08-26T16:58:01.853

3Doesn't work after reboot, I tested this before coming up with the solution above – Luis Ferrao – 2018-02-15T09:14:12.450

1Yes, doesn't work after restarting or after hybernating the pc. – Ozan Kurt – 2018-03-31T07:50:40.913

3After the June 2018 Windows 10 update, the "Remove" setting for English US is disabled. (Grr.) – ms609 – 2018-06-15T09:45:27.237

This worked for me, and the accepted answer didn't – greuze – 2018-12-11T07:19:24.540

F*ing finally! Why the F would Windows add this stupid extra language when it isn't even in the list of keyboards in the first place! Thanks for the "However" step, that's what did it for me. – Shadow – 2019-09-04T10:17:46.893

This is actually unbelievable. Why does MS consistently force US english on me. Thank you for this quite frankly ridiculous (but correct) fix. – Novocaine – 2019-10-03T10:27:01.810

This works for any primary language and isn't limited to English (Unites States) In my case Windows is set to German, but I have a custom Unites States International (no dead keys) Layout in my list of input methods for the German language. With the surplus US English one that makes a total of 3 Keyboard Layouts, but only two ever appear in the list. – Mastacheata – 2019-11-09T22:49:57.277

I had to add US English, and Remove it again... – WORMSS – 2019-11-22T15:12:12.777

7

I found the answer after an hour as of now for build:

OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.18362 N/A Build 18362
  1. This will work even after restarting.
  2. It's easy to do. And set for good.
  3. It will stop any other languages from being created for new users.
  4. It will no longer show these languages in the login screen too.
  5. No registry hacks which didn't work for me after restarting.

You can also go via (but ensure to check your language settings first - see screenshots below).

Control PanelRegionAdministrative tab → Copy settings...


Here's the step in images with notation in the images also for reference.

how to

Then your registry should look like so, with only one preload.

Copy this Computer\HKEY_USERS\.DEFAULT\Keyboard Layout\Preload to the address bar of the registry editor to jump straight to it to check for yourself.

one preload

Ste

Posted 2016-06-22T13:36:38.453

Reputation: 361

6

This is not the permanent fix, but a handy batch file which adds en-US keyboard layout and then remove it. (You have to first add it to be able to remove it.)

Remove_en-US.xml:

<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">

    <!--User List-->
    <gs:UserList>
        <gs:User UserID="Current"/>
    </gs:UserList>

    <!--input preferences--> 
    <gs:InputPreferences>
        <!--add en-US keyboard input-->
        <gs:InputLanguageID Action="add" ID="0409:00000409"/>
        <!--remove en-US keyboard input-->
        <gs:InputLanguageID Action="remove" ID="0409:00000409"/>
    </gs:InputPreferences>

</gs:GlobalizationServices>

Remove_en-US.bat:

control intl.cpl,, /f:"%CD%\Remove_en-US.xml"

Then you can just run Remove_en-US.bat to remove the layout. I have a shortcut to this batch file in my startup programs as well.

Here, 0409 is the locale ID and 00000409 is the keyboard layout values. For the list of the locale ID:keyboard layout value see https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/hh825682(v=win.10).

joon

Posted 2016-06-22T13:36:38.453

Reputation: 447

5

Theres is two places for keyboard configuration in windows 10, control panel -> Language

The other is in setting just like your screenshot

Makes the changes there too, it should fix the problem.

enter image description here

Mark

Posted 2016-06-22T13:36:38.453

Reputation: 524

Unfortunately this is not it, I have added a screenshot of that screen on my computer, it's correctly configured with "Swiss French" exactly the same way as in the new UI – Luis Ferrao – 2016-06-23T12:00:11.483

4

I didn't have 409 entry in the registry (see accepted anwer). The steps I took to remove English (US) from the quick selection menu:

  1. Open "Language Preferences" from the quick selection menu.
  2. Add English (US) language.
  3. Remove English (US) language.

Tip: In Control Panel\All Control Panel Items\Language\Advanced settings -> Change language bar hot keys you can set hot key action for "Between input languages" to "(None)" to avoid accidental keyboard layout switch.

PatrykM

Posted 2016-06-22T13:36:38.453

Reputation: 49

2I think your answer misses the point of this question. The problem is not removing US English language, which I type in and definitely want in my list of languages, the point is to remove a non-existent "US Keyboard" layout that doesn't match my own keyboard layout and that creeps up every once in a while as an additional "language" in the list of languages. There are many threads regarding the removal of US English language itself but this one is not one of them. I also don't mean to remove the language list, I use it to fast switch between languages all the time (for windows' spell checker). – Luis Ferrao – 2016-09-21T07:17:36.363

2

  1. Control Panel
  2. Clock, Language, and Region
  3. Language
  4. Change input methods
  5. Advanced settings
  6. Override for default input method
  7. Choose your preferred layout (instead of "Use language list")
  8. Save

Screenshot of Input settings -> Advanced settings

Matt.

Posted 2016-06-22T13:36:38.453

Reputation: 21

1'Language' is now missing in the latest win10 updates. – platinums – 2019-02-11T17:36:29.720

2

Mikel's answer above fixes this.... but just in case this reappears for you (as it did for me): Do you perhaps have a custom AutoHotkey shortcut to change keyboard layouts?

The problem was that my AutoHotkey script contained the following lines of code:

; 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.
el := DllCall("LoadKeyboardLayout", "Str", "00000408", "Int", 1)
en := DllCall("LoadKeyboardLayout", "Str", "00000409", "Int", 1

So while in my desktop this would work beautifully and switch from English (UK keyboard layout) to Greek (GR keyboard layout) and vice versa, on my laptop that has a US keyboard, this script would be responsible for the extra layouts appearing out of the blue on my language switcher.

I hope this helps!

Angelos

Posted 2016-06-22T13:36:38.453

Reputation: 61

1

Actually it seems the issue is also with the same key under your actual user profile (HKEY_USERS\S-1-5-21-...\Keyboard Layout\Preload), not just HKEY_USERS\.DEFAULT\Keyboard Layout\Preload.

I can replicate this pretty consistently - when I add a key 00000429 (Persian) for example there and reboot, I get the Persian keyboard automatically added, and when I delete it and reboot, the Persian is no longer there.

In sum, you may want to make sure that you don't have undesired languages in neither HKEY_USERS\.DEFAULT\Keyboard Layout\Preload nor HKEY_USERS\S-1-5-21-...\Keyboard Layout\Preload.

joon

Posted 2016-06-22T13:36:38.453

Reputation: 447

1

Windows 10 anniversary edition contains a new "feature" where it assumes that both regional and language settings come with a mandatory keyboard layout. Those layouts cannot be removed via the settings GUI.

But I was able to overcome it via PowerShell with a script like this:

$1=New-WinUserLanguageList en-US
$1.Add("nl-NL")
$1.Add("de-DE")
Set-WinUserLanguageList $1

Copy-paste it into a PowerShell window.

The demo above configures the US layout as a default with the additional NL and BE layouts. Adjust as needed.

rustyx

Posted 2016-06-22T13:36:38.453

Reputation: 461

nothing has been changed for me after this command execution – Lu55 – 2019-07-25T01:18:56.440