How do I set only keyboard layout/language in Windows 10?
I wanna be able to change only the keyboard language. But it does also end up changing the Apps & Website.
I tried this.
Set-WinUserLanguageList da-DK,en-US -Force
Set-Culture da-DK # Region?
Set-WinSystemLocale -SystemLocale da-DK
Set-WinUILanguageOverride -Language en-US # Changed language in windows
Set-WinHomeLocation -GeoId 61
# https://learn.microsoft.com/en-us/windows/win32/intl/table-of-geographical-locations
But the Apps and Websites is changed to da-DK too.
It seems to follow the priority of the WinUserLanguageList. But that is also the only direct way of setting the keyboard language I have found.
So is there a command to only set the keyboard language? Or a command to only set the Apps and Websites language?
Solution originally at my PowerShell keyboard layout gist
NOTE: This approach was tested with WIN10
and WIN11
PS > Get-WinUserLanguageList
#Add international keyboard layout to first language
$actualKB = Get-WinUserLanguageList
$actualKB[0].InputMethodTips.Add('0409:00020409') #change [0] to your desired lang position
Set-WinUserLanguageList $actualKB -Force
#Set international keyboard as default to current user
Set-WinDefaultInputMethodOverride -InputTip "0409:00000409" #set default keyboard en-US(International)
Above i've shared how to deal with it generally. Bellow i'll put how to deal with it in your example script ensuring we've en-US international keyboard defined
Set-WinUserLanguageList da-DK -Force
#How we've set the lang list with only one lang, the lang id is [0]
$actualKB = Get-WinUserLanguageList #get lang list object
$actualKB[0].InputMethodTips.Clear() #OPTIONAL: clear all da-DK keyboard layouts to avoid annoying keyboard layout changes by accidentally shortcut triggers
$actualKB[0].InputMethodTips.Add('0409:00020409') #add en-US (international) KB layout
Set-WinUserLanguageList $actualKB -Force #update lang list with KB Settings
NOTE: If You sure en-US international keyboard layout is present, jump last steps and just run following code to set it as default to current user:
Set-WinDefaultInputMethodOverride -InputTip "0409:00000409" #set default keyboard en-US(International)