Hello, using keyman 17.0.335 on a new Windows 11 machine and getting the following annoying behavior from windows. Has anyone else encountered it / has a workaround.
I need to switch between a number of languages and for many use keyman keyboards instead of the keyboards provided in the windows language packs. Take Tamil for example, I set the keyman keyboard in the language pack and remove the default keyboard proposed by Microsoft. This works fine until I reboot the machine when the Microsofr keyboard “pops back in” and takes precedence over the keyman one. The microsoft keyboard is visibl in keyman but NOT in the windows “language and region” settings.
[Happy to upload screenshots but upload option keeps returning an error]
Welcome back to the community site @Den_Hol,
Could you try to reboot your computer again? This might help remove the unwanted Microsoft keyboard.
Also, if you’re using a lot of keyboards, you can set a hotkey for each keyboard in the Keyman Configuration to quickly get the keyboard you want to use.
Thanks!
Hello there,
And thanks for the quick response !
Just to confirm – Rebooting does not change the situation.
In fact reinstalling and then removing the Microsoft keyboard temporarily solves the issue – until the next reboot where all the Microsoft keyboards are reinstated (but not visible in language®ion settings).
I am using a lot of keyboards and change them programmatically within an application using the ActivateKeyboardLayout API – unfortunately this only switches to the language’s default keyboard – which happens to be the microsoft ones when they are reinstated.
I’ve tried using hotkeys for the keyboards, and while they do work manually, triggering them programmatically (using Sendkeys for example)
is not reliable.
Thanks.
I don’t have quite the same issue with Microsoft keyboards appearing on reboot.
In order to have my Quechua keyboard work as the default I tried setting Quechua as my primary language. But then much of the Microsoft interface was in (Cuzco?) Quechua. Quite difficult.
Then when I put English as the primary language, a second English keyboard appeared (again, as I had seen it appeared and had removed it previously). (QWERTY US and QWERTY US International, I think.)
I’d love to have English as the primary interface language and Quechua as my primary keyboard.
But all of what I’m experiencing is more of a Microsoft problem thank a Keyman problem.
Hello Alex,
If I understand currently you want to use a bespoke (Quechua) keyboard while using English as your primary language ?
[I am a user not a representative of SIL / Tavultesoft !!!]
One way I do this (under windows 11) is as follows :
- Set up English as your primary language
- Under settings, time& language, Language & region , click on the “…” at the right of the “English” entry and select “language options”
- At the bottom of that screen you will have a “keyboards” entry, select “add a keyboard” and select your Quechua keyboard (which I assume has been installed via keyman).
- [Note the keyboard should be affected to “English” in keyman]
- Once installed click on the “….” To the right of the default English keyboard and remove it.
- You should then have a windows environment using English as a primary language and your Quechua keyboard.
Hope this helps
Oh, setting my Quechua keyboard’s language as “English” is actually a clever custom solution!
I would need to make a copy of my Quechua keyboard and make the modification, just for me.
I’ll think about that .
Thanks for the idea.
Hello @Den_Hol,
Sorry for the late response. Most of our team members are away for holidays.
This seems more like a Microsoft issue but I’ll ask our developer to take a look at it next week.
Thanks for the wait!
Hi Nyny,
and no worries…
I do believe it’s a Microsoft side issue and I have raised it with them as well….
But if anyone from your end has experienced it and/or knows a workaround I would be very grateful
Many Thanks
@Den_Hol I am working on getting a Win 11 VM setup the same as yours.
However, I had a look on Windows 10 and have a work around that may work but I am not sure.
After you have removed the keyboard set by Microsoft, go into the Keyman Configuration and click the Disable
button wait a few seconds and then click the Enable
button. (same button but it should now read Enable
. Hopefully this will set the registry setting again and survive a Windows Restart.
I understand you are wanting to switch Keyboards programmatically and therefore my next suggestion doesn’t help but I just want to make you aware of the Keyman language switcher which can be easier than remembering multiple hotkeys.
The Keyman switcher which is brought up by default by with Alt+Shift
While continuing to hold Alt you can tap Shift to move through the list. Or you can use your arrow keys.
In terms of programmatic switching of keyboards, see:
- Is it possible to switch keyboard layouts programmatically? - #5 by Marc
- The Keyman COM API Keyman Engine for Windows 14.0 API and IKeymanControl::ActiveLanguage Property
I just looked at our knowledge base and realized that all the articles on this are out of date, so we should probably update those!
EDIT: docs: programmatic switching of keyboards for Windows · Issue #2012 · keymanapp/help.keyman.com · GitHub tracks this (unfortunately I have no time to actually write this today)