Windows 11 has an option to enable per-app keyboard layout. If you have more than one language installed on Windows, you can switch between layouts by pressing ⇧ Shift + Alt or ⊞ Win + Space . But by default, the layout changes globally. That is, if you switch from Dutch to English in Notepad, then the same keyboard layout will apply to Microsoft Teams, Paint, and any other programs.
But only few users know that Windows has an option that allows you to enable or disable the layout change only for the active application. You will find such options in Settings.
Enable per-app keyboard layout
- Open the Settings app.
- Go to Time & Language -> Typing -> Advanced Keyboard Options.
- Check the box “Let me use a different input method for each app window“.
The change applies instantly. You can now open Notepad and Paint, and switch the typing language in Paint. In Notepad it will remain unchanged, i.e. it will use the default input layout until you change it manually.
Finally, you can enable this option using a PowerShell cmdlet. Launch Windows Terminal from the context menu of the Start button. If needed, switch to PowerShell using the menu.
To enable the per-window keyboard layout, run the command
Set-WinLanguageBarOption -UseLegacySwitchMode and press ↵ Enter .
Now, if you change the keyboard layout in the active window, then the new layout will only be activated for the current application. But if you switch to any other programs, such as File Explorer, Windows will automatically switch to the default keyboard layout.
To disable the selective layout change feature, uncheck the checkbox in the Settings app, or run the command in PowerShell:
Set-WinLanguageBarOption, that is, the same command, but without the last argument.
Finally, it is worth noting that the behavior reviewed in this tutorial is not exclusive to Windows 11. Windows 10, Windows 8.1 and Windows 8 have the same global keyboard language settings by default. But the Set-WinLanguageBarOption command works under those older OS versions too.