49

I have 2 languages installed on my computer, both with a single input method.

I have 2 keyboards: CES-CSQ and ENG-US.

enter image description here

However lately (maybe after the last Win10 update) I started to see 2 additional keyboards in my systray - namely CES-CS and ENG-CSQ.

enter image description here

Is there there a way to remove those 2 input options (CES-CS, ENG-CSQ) which I do not see in the Control panel's Language options?

Solution described at How to delete a keyboard in Windows 10 question does not apply to my problem because I do not see input options that I want remove in Control panel's Language options.

Jan Palas
  • 1,228

11 Answers11

62

(Credits to Jonno whose answer led me to the solution)

Go to systray and open Language preferences. Click Options for each language that has an extra kayboard that you want to remove.

In Keyboards section click Add a keyboard and select a keyboard that appears in your systray and which you want to remove. This adds a new input option for the selected language. After you add the keyboard, click it and click on a Remove button. After that, the keyboard should disappear also from systray.

(Note that I did not see a keyboard which I want remove in Keyboards section thus I had to add it first to be able to remove it afterwards.)

EDIT: bugybunny's answer helped me to prevent keyboard layouts from magically appearing whenever I connected to my PC via remote desktop (which they regularly did).

Jan Palas
  • 1,228
14

I've duplicated your issue, it's quite simple to fix (Ignore my ENG keyboard layout):

enter image description here

Click Language Preferences

enter image description here

Click United States - then Options

This keyboard (Czech - QWERTY) is your ENG - CSQ, remove it.

enter image description here

Go back, go to options for Čeština

enter image description here

Remove Czech - QWERTZ -> This is CES - CS

enter image description here

This should now be back as you wanted. The languages are the parent of the keyboards, you can specify different keyboard layouts per language.

enter image description here

Edit: It seems that if these keyboards don't exist in these pages, adding them and then removing them resolves the issue.

Jonno
  • 21,643
14

Note: I just switched from de_DE to de_CH and had to repeat the steps. So this has to be done every time you add a new layout and switch to it.

Answer is similar to @berm’s one. Just as info: I have Windows 10 (1903 at the moment but had the problem for many many builds since I‘ve switched to Windows 10) with German (Germany) keyboard layout added under the language English (United States) which is also my Windows display language. Regional format is German (Switzerland). Windows kept adding the layouts

  • English (US)
  • German (Switzerland)
  • French (Switzerland)

Now for the fix. Go to Welcome screen and new user account settings.

This might differ from build to build but I could get it under Windows 10, 1903 by

  1. Opening the Control Panel,
  2. Click on Region Region settings
  3. Switch to tab Administrative in the now opened dialog
  4. Click on button Copy settings… Region -> Administrative

Welcome screen and new user account settings dialog will open. Then follow these steps

  1. Check both boxes at the bottom of the dialog Welcome screen and new user account settings dialog

  2. Restart (log off and log in again might be enough, would restart to be safe). IIRC Windows will tell you about restarting if this setting differs from the current one, which was the case for me.

  3. After the restart, Windows added the unwanted layouts again. Follow @Jan Palas‘ answer on how to remove them again by adding them and deleting them.

  4. Restart again or log off/log in again

  5. Profit and hopefully have a not so crappy Windows anymore. Haven‘t had the problem for almost a week now which is a miracle.

bugybunny
  • 1,503
6

I'm struggling with the same issue. I tried following step-by-step all the solutions provided in the other answers but after a reboot the unwanted keyboard layouts are added back. In my opinion, this is 99,99% a Windows bug that Microsoft needs to fix.

There are 2 new workarounds that I just found about and I would like to share:

  1. Delete the HKEY_USERS\.DEFAULT\Keyboard Layout\Preload registry key and reboot or sign out.

    This registry key seems to be some sort of a 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 persists through restarts, there's a few things that seem to bring back the deleted entry:

    1. Connecting through Remote Desktop to a computer with US layout
    2. Applying the Windows 10 Anniversary update
    3. Logging-in with the same Microsoft account on another PC that still has this issue

    Therefore, whenever the problem comes back, the above-mentioned registry key needs to be deleted again.

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

    Windows Registry Editor Version 5.00
    
    [-HKEY_USERS\.DEFAULT\Keyboard Layout\Preload]
    

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

  2. Delete any unneeded language files from C:\Windows\System32, such as KBDUS.DLL or others.

Coxxs
  • 133
5

Try this. At least it's work for me.

https://it42.cc/2018/11/04/windows-10-unwanted-keyboard-layout-fixed/

In order to fix this problem you have to do following steps:

Go to setting > Time & Language > Region & Language > Administrative language setting Under Welcome screen and new user accounts make sure that there are no extra keyboard layout appear in the list Click OK and Restart PC. This should fix your problem.

berm
  • 91
1

Most of the people likes to delete the default keyboard of the operating system and they cannot find it in the control panel. The secrete is to change the "Current language for non-Unicode programs". Check the Administrative tab of the Region in the control panel.

1

Late answer but maybe is still usefull.

I went trought the same problem in already 2 PC's, in both I solved it deleting the registry for the keyboard layout causing the problem. No serious consequence in any of them untill now.

  1. Backup. Make sure to have a backup of your PC, at leats of your Registry, you could damage your system doing this.
  2. Registry. Open your registry (Win + R, regedit.msc) and search HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\.
  3. Key. You have find and delete the value of the Keyboard Layout that dont want to use. Example: 00000409 = en_US.
  4. Delete. Before you delete it, you can click File then Export to save the key values.
  5. Reboot. After reboot check if the deleted key dont show up at the Add a Keyboard list in the Language options is your Settings menu. If is still there, you deleted the incorrect, restore the registry backup and repeat.

This is the only way I found to stop the keboard layout from show up permanently, and again I have no problem so far, be carefull anyway.

0

You have to disable language preferences as well, then adding/removing keyboard layout will work.

Vylix
  • 1,935
0

For my case, I tried all the above methods and it keeps coming back. I get it working by installing CCleaner Free version, then click -> Registry on the left, then-> scan for issues -> fix issues-> restart your PC. It should solve the problem.

sc30
  • 1
0

How to automate the adding & removal of unwanted keyboard layouts.

This is a PowerShell script that does the same as manually adding unwanted keyboards layouts and then removing them. It is still necessary to add them back before installing a list with only the layout you want, or they still will not be removed.

You will need to figure out the language/layout code to add with InputMethodTips.Add(), if you have multiple layouts under one language. You can find these by adding them manually the first time under 'Language Settings' and finding the codes with Get-WinUserLanguageList.

# Create a new language list
$l = New-WinUserLanguageList("en-US")

Add the en-DK layout (which is active but not in the list)

$l[0].InputMethodTips.Add("0409:00000406")

Add the da language & keyboard (which is active but not in the list)

$l.Add("da-DK")

Set this list so that they are active and in the list

Set-WinUserLanguageList $l -Force

Create a new list without the en-DK/da-DK layouts

$l = New-WinUserLanguageList("en-US")

Set the new list. This will actually remove them!

Set-WinUserLanguageList $l -Force

If you add the unwanted layouts & languages the first time, and then examine the list with Get-WinUserLanguageList, you can see which input methods (layouts) and langauge you need to add in the script. When you have done this the first time it happens, you can use the script the next time to automatically remove the unwanted layouts.

larsch
  • 132
0

I have found that the methods mentioned before solve the problem only temporarily. A few reboots later the keyboard layouts will be added back again.

There's a solution I have seen somewhere which suggests adding a key to the registry called IgnoreRemoteKeyboardLayout. I have tried this but didn't help either. The problem has gotten so bad that Windows kept adding 4-5 new layouts after every reboot. I have no idea why this happened and removing them was a pain.

I have however found a solution that seems to work: Head to "Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts" in regedit as an administrator and delete the keyboard layouts that canstantly get added. You will see an empty entry in the "Add layout" section where the layout should be. You can even add the empty entry but it won't show up in the layout switcher. Warning: make sure that you don't want to use these layouts ever again, as I have no idea how to reverse this. Most likely you will have to add them back manually and exactly. However for me this saved a lot of hassle after each reboot. If anyone figures out how to reverse this feel free to answer.