I work in IT for a school, and teachers wish to install Keyman on their computers. We need to have the Cree/Ojibwe language fonts installed. We have an MSI for Keyman, which works great!
However, what’s the best way to install a Keyfile? We can’t bundle it in with the MSI, and if we let a teacher download the .kmp file, they need to have admin privileges to install the language pack in Keyman.
Has anyone found a great way to make Keyman Language Packs deliverable in SCCM?
The easiest way to install Keyman package files (.kmp extension) is to use kmshell.exe. If you run the following command elevated, that will install the package and make it available for each user.
kmshell -s -i filename.kmp
With Keyman 14 and above, there will be an additional step that you need to take for each user: you will need to setup a language registration for the keyboard within the package for each user (non-elevated now), as the setup can be different per user.
kmshell -s -ikl KeyboardID BCP47Tag
KeyboardID will be the same as the package
.kmp) but you can check it by installing the package locally and viewing the details in Keyman Configuration. Similarly, the BCP 47 tag (e.g.
en-US) can be found in Keyman Configuration by expanding the installed keyboard’s details.
I’m not sure which Cree/Ojibwe keyboard you are using, so showing an example here with BJ-OjiCree (Kingfisher):
In this example:
So to install this keyboard, you would do the following:
With an elevated session, run:
kmshell -s -i bj_oji_cree.kmp
Then, with a non-elevated session for each user (e.g. at login), run:
kmshell -s -ikl bj_oji_cree ojs-Cans-CA
kmshell.exe is normally found in
%ProgramFiles(x86)%\Keyman\Keyman Desktop\kmshell.exe (this path can alternatively always be found via the registry setting
HKLM\Software\WOW6432Node\Keyman\Keyman Desktop\root path).
Although we renamed the app from “Keyman Desktop” to “Keyman for Windows” in version 14.0, these paths and registry settings will remain with the name “Keyman Desktop” for compatibility.
You should be able to script that with SCCM reasonably easily, I hope?
Thank you so much! You sent me off in the right direction.