Is it possible to get an IPA keyboard where the "dead" keys come before instead of after?

Users who have used the MSKLC IPA keyboard are used to keying the dead keys before the main character but the Keyman IPA keyboard at has them after. If there was another IPA keyboard that reverses the order, then users could choose which one was most convenient for them.

Thanks for the reminder Andy. This has been on my list of things to do, but I haven’t gotten around to it. Can you tell me how urgent this is?

It’s just the usual case of the longer it takes, the more users have to either relearn to key or do without. I’ll email you a hacked version of the .kmn file I made based on what’s in

Another factor is that for Windows users who are used to the MSKLC IPA keyboard, when they try to use XLingPaper, LingTree, Asheninka, or PAWS, they have to use Keyman. For reasons I do not understand, the MSKLC IPA keyboard does not work with these Java applications. Other MSKLC keyboards do (e.g., Hebrew and Spanish), but not the IPA/Icelandic one.

If we do work on this, it would be ideal if this was a single keyboard with an option to switch to typing keys after instead of before using

An option to have user control over before or after sounds great to me.

I’ll work on it and send you a test keyboard.

While you’re modifying sil_ipa, @Marc would like to replace the “:cyclone:” key on the touch layout (T_Diacritic) with something more sensible. :slight_smile:

Well the phrase I used was I think “more boring”. :wink: This is not critical but the experience will be a little weird on some devices as the emoji hurricane is not entirely the same, which makes documentation and support a little tricky.

Do you have a more boring preference? I could use 25cc or just the letters “diac” or something else.

I don’t have any great suggestions; what we have done on other keyboards is show a representative sample. (Watch out using 25cc as a base though – YMMV on some platforms; you may end up with two dotted circles instead of one). Or could do something like:


Which is a random selection of diacritics which may or may not be appropriate :wink:

For the historical record: We did end up implementing “options” in the SIL IPA keyboard version 1.7 ( If you click on the documentation link you’ll see how to turn on “options” for the keyboard.

Howdy! Sorry to jump in, but I am attempting to get deadkeys to come before on my Keyman IPA keyboard in Linux (installed on Ubuntu 18.04), and despite following the documentation am unable to see a means of changing options (there seems to be no keyboard options available in Keyman Configuration). Perhaps I am missing something?

A quick follow-up question that is slightly orthogonal:

From a usability perspective: the reason I would like to have the “before” option is I often want to use “=” “+” etc as morpheme markers rather than as deadkeys, and the “before” option has always made that easier (when on other systems). My slightly orthogonal query is: is there any means of escaping the deadkeys? This is one problem area for me when typing with this keyboard, for the reason mentioned above.

Hi Christopher, I’m not on Linux, so I’m not familiar with that side of things. Here’s a screenshot of where to select itː

I can see how you might want to type “=” and “+”. There is a keystroke for the “+” Type += to get it. I don’t think there’s a keystroke for =. I guess you just have to type a space and then equal. I’ll consider whether to add that in the future.

I’ve taken a look and noted 3 issues while investigating this question (#1788, #1789 and #1790). Yes, Keyman for Linux is still new…

So Keyman for Linux does not yet include functionality to expose the keyboard options user interface that @Lorna has shown in her post (the screenshot she includes is from Windows). Issue #1790.

It would be relatively simple to recompile the SIL IPA keyboard to hard-code the ‘before’ option for your situation, if you are comfortable with using the command line on Linux (note that WINE is a prerequisite):

  1. Clone the keyboards repository onto your computer:

    git clone
  2. Edit the source of release/sil/sil_ipa/source/sil_ipa.kmn, around line 345, change:

    store(option_key) ''


    store(option_key) 'before'
  3. In the root of the keyboards repository, run the following command to build a sil_ipa.kmp file in the folder release/sil/sil_ipa/build/ which you can then install using km-config:

    ./ release/sil/sil_ipa

Once you are comfortable with this process, you can of course tweak the sil_ipa keyboard to your heart’s content!

Alternatively, if this all sounds too hard, let us know!

I was looking for this too, and didn’t find the instructions clear on the main page.
Where the instructions say:
Go to Keyman Configuration , select the keyboard, click on Keyboard options and choose Before
it would be helpful to include the screenshot you have here in the reply by Lorna (May 16). Before I saw the screenshot I understood ‘select the keyboard’ to mean ‘tick the box next to the keyboard you want to configure’, so then I chose ‘options’ on the left-hand menu and obviously couldn’t find the before setting. Maybe also clarify the instructions to say:
select keyboard layouts
click on the arrow at top-right to bring up more info
click on keyboard options
choose before

Hi Lizzie, welcome to the community! Thanks for this suggestion. Sometimes when we get used to where things are, it’s easy to forget that others can’t figure it out. I’ve added your suggestion to things to enhance on the IPA keyboard documentation.

So, thinking more ‘globally’, would it be possible to improve the Keyman documentation and/or UX such that the IPA keyboard wouldn’t need step-by-step Keyman-UI-related instructions? When keyboards have documentation on how to configure Keyman, this indicates a gap in Keyman that we should fill:

  1. We should put that effort into improving the Keyman documentation so that all keyboards benefit – and then link to that documentation from the keyboard documentation if appropriate
  2. Keyman Configuration may change between versions, invalidating the documentation for keyboards

The Keyman documentation is all open so “anyone” can submit an improvement. I appreciate that this is not always easy because it requires understanding a bit about both GitHub and HTML, but we are iteratively trying to make this easier (a guide on this is on my long range todo, now listed as an issue)