Support
Languages you never added showed up in Win+Space
This one is our fault, and it is fixed. NeuroSwitcher before 0.7.1 could pull a keyboard layout into Windows for a language you never had — usually Hebrew or German — while trying to correct text. The layout appears in the Win+Space switcher but never reaches the Windows language list, which is why Settings offers nothing to delete. Here is how to get rid of it.
The quick way — start here
This is enough in most cases, and it needs no commands at all.
From version 0.7.2 the app no longer uses such leftovers. A language counts only when Windows keeps it permanently, so a layout an older version loaded into the running session is now ignored. Even while it is still visible in Win+Space, it no longer reaches your text: it is not offered in suggestions and it no longer interferes with fixing the layout. The steps below remove it from the system for good, but corrections work correctly before that.
- Update to 0.7.2 or newer. The current build is on the home page. Installing over the top keeps your settings; the version is shown at the bottom of the Console sidebar.
- Open the Console → Languages. A language you never added has a Remove layout button. Press it and the layout leaves Win+Space immediately, without a reboot.
- Untick that language in the same panel and save. The tick means "correct text into this language" and is a separate setting from the layout.
If you would rather not update right now: quit NeuroSwitcher from the tray icon and restart the computer. A layout pulled in by an old version often persists nowhere and disappears by itself on reboot — provided the old app no longer starts.
Why it happened
To fix text typed in the wrong layout, the app has to switch the layout of the active window. Before 0.7.1 it did that through the Windows function LoadKeyboardLayoutW. The name is misleading: it does not pick a layout from the installed ones, it installs one if it is missing.
As long as every language involved is already in the system, the difference is invisible. But when the app guessed wrong and decided you were typing Hebrew, it asked for the Hebrew layout — and Windows created it. Someone who had never touched Hebrew suddenly had Hebrew in their switcher.
Such a layout lives outside the Preferred languages list: Win+Space shows it, Settings → Time & language → Language & region does not. That is the dead end everyone hits when trying to remove it the usual way.
0.7.1 removed the cause: the app installs nothing and switches only to layouts you already have. No layout means nothing to correct into, which is honest — you could not have typed in that language either. 0.7.2 adds the other half: a Remove layout button that also clears what older versions left.
If the layout is still there: what exactly you have
A layout can hold on in three different ways, and each is removed differently. First find out which case you are in. Open PowerShell (Start → type powershell → Enter) and paste both commands. They only read and change nothing:
Get-ItemProperty 'HKCU:\Keyboard Layout\Preload'
Get-WinUserLanguageList | Select-Object LanguageTag, InputMethodTips
Layout codes worth knowing while you read the output:
Case A. The language is in the Windows language list
The second command shows he or de (de-DE) among the LanguageTag values.
Then it really did reach the Windows list, and both the Console's Remove layout button and Settings → Language & region → "…" next to the language → Remove will take it out. The same thing in one command:
$list = Get-WinUserLanguageList
$list = $list | Where-Object { ($_.LanguageTag -split '-')[0] -notin @('he','de') }
Set-WinUserLanguageList $list -Force
Then sign out and back in.
Case B. An extra keyboard attached to one of your languages
The language list holds only your own languages (en-US, ru, …), but one of them carries 0000040D or 00000407 in InputMethodTips.
That is an additional keyboard inside a language, and the main Settings page does not show it. Remove it by hand under Settings → Language & region → "…" next to the language → Language options → Keyboards. Or by command:
$list = Get-WinUserLanguageList
foreach ($l in $list) {
@($l.InputMethodTips | Where-Object { $_ -match '(0000040D|00000407)$' }) |
ForEach-Object { [void]$l.InputMethodTips.Remove($_) }
}
Set-WinUserLanguageList $list -Force
Then sign out and back in.
Case C. The layout exists only in the registry
Nothing extra in the language list, but the first command lists 0000040d or 00000407 among the values 1, 2, 3… This is the case that makes Settings useless.
Try the registry-free route first. Settings → Language & region → Add a language → add Hebrew (you can untick the language pack, speech and handwriting boxes) → then immediately remove it through "…" → Remove. Windows takes the layout away with the language. Same for German.
If that did not work, edit the registry. Make a backup first:
reg export "HKCU\Keyboard Layout" "$env:USERPROFILE\Desktop\keyboard-layout-backup.reg"
Then clean up. The numbers under Preload must run consecutively from one, so the remaining layouts are renumbered:
$key = 'HKCU:\Keyboard Layout\Preload'
$props = (Get-ItemProperty $key).PSObject.Properties |
Where-Object { $_.Name -match '^\d+$' } | Sort-Object { [int]$_.Name }
$keep = @($props | ForEach-Object { $_.Value } | Where-Object { $_ -notin @('0000040d','00000407') })
$props | ForEach-Object { Remove-ItemProperty $key -Name $_.Name }
$i = 1; foreach ($v in $keep) { New-ItemProperty $key -Name "$i" -Value $v -PropertyType String | Out-Null; $i++ }
Get-ItemProperty $key
The last command should list only your own layouts. Sign out and back in.
If the layout comes back
Then something is adding it again. Check, in this order:
- An old NeuroSwitcher in startup. Task Manager → Startup apps: there should be exactly one entry. Two installed builds means the old one keeps doing what it always did.
- Another program. We were not the only ones doing this: some layout switchers and gaming utilities behave the same way. If NeuroSwitcher is uninstalled and the language still returns, it is not us — which is worth knowing too.
- Windows settings sync. Signed in with a Microsoft account, language settings can arrive from another PC. Settings → Accounts → Windows backup → turn off syncing language preferences, then clean up again.
Still stuck? Write to us
Send the output of the two commands from "What is actually left" and the version from the Console. That is enough for a specific answer rather than a generic one.
support@neuroswitcher.app — or through the feedback form.
And thank you to the people who wrote in instead of quietly uninstalling. Both fixes — in 0.7.1 and in 0.7.2 — came out of those messages.
Download the current build