Symbols not found in Keyman character map

I’m brand new to using Keyman Developer. I’m trying to create a keyboard for mobile devices for my tribe’s language. There are two symbols that I can’t find on the character map ʰ and ̓ both of which are combined with consonants like this: pʰ or p̓. I am able to type these since a linguist has created a keyboard for pc.
I tried just entering these characters into the keyman developer and it won’t compile the keyboard. It comes up with this error:
o_tissi_keyboard.kmn: Warning: 2092 Key “T_new_255” on layer “default”, platform “phone”, is a custom key but has no corresponding rule in the source.

How can I get these symbols onto my keyboard?

You posted on a related community, but you will get the best help on the Keyman community. I swapped you to the best community.

Ian

1 Like
  1. Character map: when you get blank characters in the character map, right click on the character, go to fonts and pick the right font for that character.

  2. “Custom key with no corresponding rule in the source”: When you create a new key in a mobile keyboard layout, Keyman developer gives it a name like “T_new_255”, and expects you to put in a rule that says what will happen when that key is tapped.

If you want that key to always produce a certain character, you can replace the name of the key with something like “U_01B4”, meaning insert Unicode character 01B4.

For the details on this see this guide:
https://help.keyman.com/developer/13.0/guides/develop/touch-keyboard-tutorial/making-touch-keyboard

especially the section on “adding the output”.

Thanks for your help. After lots of searching I found the characters.
The problem I seem to be having is that I want to replace for example r with tʰ on the first layer, not with a long press popup. The unicode for ʰ is U+02B0. If I just put that in there in place of T_new_104 (the code it came up with) then would it produce tʰ or just ʰ?

You need a rule in the keyboard for every keystroke including the ones in the touch layout. So, if you want “tʰ” you need a rule for T_new_104 in your .kmn file, something like:

+ [T_new_104] > U+0074 U+02B0

or
+ [T_new_104] > "tʰ"

Or, if it were me, I’d rename T_new_104 to T_0074_02B0 so that it makes better sense to me.

1 Like

I tried what you suggested, but it came up with this error:

o_tissi_keyboard.kmn: Error: 405A Key “+ [T_new_104] > U_0074 U_02B0” on “phone”, layer “default” has an invalid identifier.

Am I not typing it in the correct place?

Sorry! In that Window and on that keycap under “Code” just type: T_0074_02B0

THEN, go back to the Layout tab (once there, you may have to click on the “Code” tab instead of “Design” and at the bottom of the .kmn file you should add that rule:
+ [T_0074_02B0] > U+0074 U+02B0

Then, hopefully you can save and compile.

Thank you! It worked.
One question, I can’t find it on the Keyman website, but how do you get the shift function to go back to the default layer automatically after pressing a letter key like how most mobile keyboards work?

For every key on the shift layer, you must select “Next Layer” = “default”. It’s a lot of work.

Great thank you. It wasn’t too bad, just a lot of clicking

It’d be nice to be able to multi-select and apply an action, wouldn’t it… (wish lists for the distant future!)

1 Like

@Marc I have thought of this also. “Multi-select and add action/command.” That will be a nice feature. Please plan for it.

One more question, how do I make it so the very first letter is automatically capitalized?

One more question, how do I make it so the very first letter is automatically capitalized?

I assume you mean at the beginning of a sentence you want it to automatically capitalize.I don’t think you can do that. In general, my experience is that that is an application level thing, not a keyboard thing.

I figured out how to make it be automatically capitalized after a period or question mark, etc. You just have to set the next layer to shift for the period and question mark. I’m talking about the very first letter typed for that message. When you type on a smart phone and you have an empty message the first letter is already capitalized without having to press anything. Here’s an example from the notes app on Iphone:

FWIW, we are working on a robust solution to capitalization in Keyman 14 – working on detecting start-of-sentence and start-of-text detection, layer switching, caps lock, and integration with predictive text suggestions. We have a meeting scheduled today to work through some of the nuances.

The intent is to make the change as simple as possible for keyboard developers (will no longer need to manually set each key’s nextLayer property), but we are being very careful not to introduce Latin-specific behaviours that negatively impact other scripts.

Can you open an issue on the Keyman repository for this feature request? It helps us prioritise if the feature requests come from Keyman users rather than from inside the Keyman team!

@Marc Just did. The first issue I’ve created.

1 Like