Several times in Windows 10 I noticed a strange bug when extra languages appear in the list of keyboard layouts of the language bar. For example, I had 2 languages installed on my laptop: German and English. But after installing Windows 10 update, two additional languages appeared in the list of languages – English (United Kingdom) and English (Canada), although I’m sure that I didn’t add them. And Windows doesn’t allow you to delete extra input languages (the Remove button is grayed out). Now I have to switch between 4 keyboard layouts instead of 2, which is very inconvenient!
Let’s take a look at how to remove unwanted keyboard layouts in Windows 10 and Windows 11.
In Windows 10, you can usually remove any keyboard layout language that is not used as the default language. However, you may encounter a bug where some languages cannot be removed.
For example, if English (United States) is the current Windows interface language, then after adding English (United Kingdom) you can’t remove both languages from the list of preferred languages. And, of course, it is very inconvenient that an unnecessary keyboard language has appeared in the language pane in the system tray.
You cannot remove the additional languages in Windows using the lpksetup command, because these language packs are not installed:
lpksetup /u en-gb
lpksetup /u en-ca
Removing an Additional Language in Windows 10 Using PowerShell
You can remove the unnecessary extra input language in Windows 10 and 11 using PowerShell:
- Run Windows PowerShell as an administrator;
- Display the list of languages installed in Windows 10 with the command:
Get-WinUserLanguageList
- Remember the value of LanguageTag for your preferred language. For example, your preferred language is English (United States):
LanguageTag = en-US
. - Save the value of the preferred language to a variable:
$1=New-WinUserLanguageList en-US
- Now you can set this input language as the preferred language and remove all other additional languages:
Set-WinUserLanguageList $1
- Press the
Y
key to confirm the deletion of extra languages;
- Make sure that all additional keyboard languages are gone.
If you need to leave several keyboard layouts in Windows, you can remove only the extra languages you don’t need. For example, you want to remove languages with the following LanguageTag values: en-Gb
and zh-Hans-CN
.
$LanguageList = Get-WinUserLanguageList
$DeleteLang = $LanguageList | where LanguageTag -eq "en-Gb"
$LanguageList.Remove($DeleteLang)
Set-WinUserLanguageList $LanguageList –Force
To delete the Chinese keyboard language, replace the second line with:
$DeleteLang = $LanguageList | where LanguageTag -eq "zh-Hans-CN"
Or you can specify the list of languages to keep in Windows:
$1=New-WinUserLanguageList en-US
$1.Add("en-US")
$1.Add("de-DE")
Set-WinUserLanguageList $1
Close the PowerShell console and make sure that all extra input languages are removed correctly.
How to Remove Extra Language Keyboard Layout in Windows Registry?
If additional languages have been removed from the input languages list, but still appear in the keyboard layouts, you need to manually remove them from the registry.
- Run the
regedit.exe
as an administrator; - Go to the registry key:
HKEY_USERS\.DEFAULT\Keyboard Layout\Preload
. Here you can see a list of languages available on the login screen; - The active keyboard layouts of the current user are set under the
HKEY_CURRENT_USER\Keyboard Layout\Preload
registry key. For example, 0000409 – English layout, 00000407 – German layout, 00000410 – Italian, etc.; (check the list of Default Input Profiles/Input Locales in Windows: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs?view=windows-11 ); - Remove all unused language layouts from the registry if necessary, and change the numbering of the registry parameters (the parameter names should be consecutive and start from 1).
After that, the extra keyboard layout will disappear from the list of input languages.
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v IgnoreRemoteKeyboardLayout /t REG_DWORD /d 1
If you are sure you don’t need a certain keyboard layout, you can disable it completely. The complete list of keyboard layouts is stored in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts registry key.
For example, you want to disable the following keyboard layout: 00000404 (Chinese (Traditional) - US Keyboard)
.
- First, remove extra languages using PowerShell (described above);
- Find subkey 00000404 in the specified registry key and rename it to 00000404-no;
- Reboot Windows;
- Check that the specified keyboard layout is no longer displayed in the language bar.