A Windows utility to remove ghost keyboard layouts that mysteriously appear in Windows 11.
This is a personal project I created to solve a persistent and frustrating issue with Windows 11 keyboard layouts.
I normally use EN-IN (English - India) and TA-IN (Tamil Anjal) keyboard layouts in Windows. However, Windows keeps adding EN-UK and EN-US keyboard layouts without my permission or request. This has been happening for several years across multiple Windows installations.
I have exhausted nearly every troubleshooting option:
- ✅ Ensured EN-IN is set as the locale in my Windows local account
- ✅ Verified settings in all associated Microsoft Accounts
- ✅ Checked Microsoft 365 Account settings
- ✅ Migrated from free Microsoft Account (Hotmail) to Microsoft 365 Work Account
- ✅ Formatted and reinstalled Windows multiple times
- ✅ Tried PowerShell scripts and registry hacks
Nothing worked. The ghost layouts persist.
These unwanted keyboard layouts appear in the Language Switcher near the System Tray, but they don't appear in Windows Settings → Languages. This creates several problems:
- When switching between English and Tamil, I have to press Windows+Space multiple times to cycle through the unwanted layouts - it's a real pain and takes a lot of time
- This significantly slows down my workflow and productivity
- The only manual fix is to add these ghost layouts in Settings and then remove them - but they reappear after every reboot
Visual Evidence:
The unwanted EN-UK and EN-US layouts appearing in the Language Switcher
These ghost layouts don't appear in Windows Settings → Languages page
Sample output from WinTamilKbdApp showing detected and removed keyboard layouts
Many users have reported this same issue on Reddit, Microsoft Community forums, and other platforms. I've submitted feedback to Microsoft, but there's no fix in sight.
My Reports:
This Visual Basic .NET program is my attempt to scratch this itch. Built with the help of GitHub Copilot and GPT-4, it uses Win32 API to:
- List all installed keyboard layouts
- Remove the unwanted ghost layouts (EN-UK and EN-US in my case)
Status: This is a first attempt and seems to work for me so far. I'm sharing it here for the benefit of others facing similar issues and to gather feedback for further improvements.
- Platform: Windows 11 (tested on Windows 11)
- .NET Version: .NET 8.0
- Development Environment: Visual Studio Code with .NET SDK installed
- Install .NET 8.0 SDK
- Install Visual Studio Code
- Install the C# Dev Kit extension in VS Code (optional but recommended)
- Clone or download this repository
- Open the project folder in Visual Studio Code
- Open a terminal in VS Code (Terminal → New Terminal)
- Run the following command:
dotnet buildFor a release build:
dotnet build -c Release- Open the project in VS Code
- Press F5 to run in debug mode, or
- Use the terminal:
dotnet runYou can download and run the standalone executable directly:
Or, after building, navigate to the output directory and run:
.\bin\Debug\net8.0\WinTamilKbdApp.exeOr for the release build:
.\bin\Release\net8.0\WinTamilKbdApp.exe- Administrator Privileges: You may need to run the program with administrator privileges to modify system keyboard layouts
- Backup: Before running, consider creating a system restore point
- Customization: You may need to modify the code to specify which keyboard layouts you want to keep/remove
Program.vb- Main program with Win32 API calls to manage keyboard layoutsWinTamilKbdApp.vbproj- Project file for .NET 8.0sample-run.txt- Sample output from running the program
This is a personal project, but I welcome feedback, suggestions, and contributions from others facing similar issues. Feel free to:
- Open an issue to report bugs or suggest improvements
- Submit a pull request with enhancements
- Share your experience with this tool
This program modifies system keyboard settings. Use at your own risk. Always create a system backup before running system-level modifications.
This project is shared as-is for personal and educational use.
Note: This is a work in progress. Testing and refinement are ongoing. Your feedback is appreciated!