Keyboard Support

Contact and Search Homepage

Header bottom


On this page

< Previous article   Next article >

HOWTO: Installing KMComp Command Line Compiler on MacOS Catalina

KMComp is the command line compiler included in Keyman Developer through version 16.0. It is a windows application that can run with wine on MacOS and Linux.

In Keyman Developer 17.0+, the command line compiler is kmc and it runs under Node.js, so these instructions are not relevant.

Installing wine

If you do not have wine already installed, install wine using Homebrew:

$ brew install --cask xquartz
$ brew install --cask wine-stable


macOS additional requirements

macOS also requires jq.

$ brew install jq

Installing KMComp

Refer to the KMComp Command Line Compiler documentation for information on how to use KMComp.

MacOS Catalina only supports 64-bit applications, so it is neceesary to use the 64-bit version of kmcomp. If you install wine via homebrew, both a 32-bit and 64-bit version of wine is available, but the 32-bit version is only compatible with pre-Catalina versions of MacOS.

Download KMComp and move kmcomp.x64.exe and kmcmpdll.x64.dll into ~/bin/keyman/.

Since kmcomp.x64.exe is not native MacOS applications and were not installed from the Appstore, it will be necessary to grant kmcomp.x64.exe execution permissions.

Open the General tab in Security & Privacy in System Preferences.

You will need to click on the lock symbol in the panel to make changes to settings.

Run the command:

$ wine64 ~/bin/keyman/kmcomp.x64.exe

This will generate an alert dialog indicating the application cannot be opened because the developer cannot be verified. Click Cancel, and go to the Security & Privacy panel. A message will now be visible on the General tab: "kmcomp.x64.exe" was blocked from use because it is not from an identified developer. Click on the Allow Anyway button next to the warning message in the panel.

You may also need to authorise kmcmpdll.x64.dll.

In ~/.zshrc define an alias:

alias kmcomp="wine64 ~/bin/keyman/kmcomp.x64.exe -w"

Reload .zshrc in current terminal session:

$ source ~/.zshrc