How to install an kmn source kmfl file onto Ubuntu 24.04

I’ve just got a new computer and had to install Ubuntu 24.04 on it (no earlier versions worked). Now I’m trying to get my Tibetan keyboard to work. I’ve installed KMFL and opened Keyman configuration program and searched from my Wylie_(EWTS)________Unicode_test_tsheg_unbreakable.kmn file but it only searches for KMP files. So I couldn’t install it. In my previous Wasta 22.04 my kmn file was only needed but it seems I have to have now kmp file for it to work and to switch between keyboards for Ubuntu 24.04. Please tell me what must I do to get my keyboard working?

Welcome to the community @Steve,

The kmp file can be generated through Keyman Developer 17.0. Keyman Developer 17.0 is only compatible with Windows 10 and 11, or use Wine on Ubuntu to setup Windows OS.

After installing Keyman Developer, please follow these steps:

  • Launch Keyman Developer, then Open Project and choose the .kpj file
  • It should look something like this
  • Once the project is open, navigate to Packaging tab then click on the .kps file (in red):
  • Go to Build, and Compile Package (Make sure to try and fix all the error messages if they appear)
  • The kmp file will be stored in the build folder of the keyboard project
  • Move the.kmp file to your Ubuntu system.
  • Now, try searching the keyboard, and install it on your system.

Let us know how it goes!

@EberhardBeilharz is working on the solution related to getting the kmp from KMFL. See here.

With a little more work this can be entirely done on Linux with Keyman 17+:

Prerequisites

  • You’ll need node.js, version 18.0 or later. On Ubuntu 24.04 this can be installed with:

    sudo apt install npm
    

    For older Ubuntu versions consult the nodejs.org website.

  • Then install the Keyman keyboard compiler:

    sudo npm install -g @keymanapp/kmc
    

Convert the .kmn source file into a .kmp keyboard package

(replace mykeyboard with the name of your .kmn file)

  • Create a file mykeyboard.kpj:

    <KeymanDeveloperProject>
      <Options>
        <Version>2.0</Version>
      </Options>
    </KeymanDeveloperProject>
    
  • Create a file source/mykeyboard.kps:

    <Package>
      <Info>
        <Name>MyKeyboard</Name>
      </Info>
      <Files>
        <File>
          <Name>../build/mykeyboard.kmx</Name>
        </File>
      </Files>
      <Keyboards>
        <Keyboard>
          <Name>MyKeyboard</Name>
          <ID>mykeyboard</ID>
        </Keyboard>
      </Keyboards>
    </Package>
    
  • Move your .kmn file to source/mykeyboard.kmn.

  • Build with:

    kmc build mykeyboard.kpj
    

In the current version (17.0.326) this will fail with "TypeError: Cannot read properties of undefined (reading 'description')" (issue #11856), but it will already have created the .kmp file in the build
subdirectory. You can install the .kmp file with:

km-package-install -f build/mykeyboard.kmp

or with the Keyman Configuration tool.

(To properly do this without an error, you’ll have to add some additional fields to the .kps file. It’s easiest to let the kmconvert tool generate a template which will contain all necessary fields:

kmconvert template -id mykeyboard

Unfortunately this tools isn’t available for Linux yet. You should be able to use it in wine though.)

1 Like