Help with my Sinhala Keyboard

I designed a Sinhala phonetic keyboard for Windows computers using the Keyman Developer. In the process I encountered a problem which I will describe below. I hope somebody who met a similar problem in his/her own design would kindly advise me.

I have to first explain a little about how Sinhala is written. Sinhala alphabet has a set of consonants. To these consonants various small appendages (diacritics) are added to get different vowel sounds of that consonant. For example, take the consonant for the sound “k”. The Sinhala letter is really for the sound “ka”. To make the letter to take other vowel sounds diacritics are added to that letter, thus making the sounds “ki”, “ku”, “ke”, “ko” etc respectively. I think this feature is found in many Asian languages.

My problem is that there are three diacritics which have not been included in the Unicode for Sinhala. Therefore I cannot include them in my Keyman keyboard. The Sinhala fonts I am using include these diacritics, but as I find no feature in the Keyman Developer that allows me to add any diacritic or character not in the Unicode.

I am using the version 11 of the Keyman Developer and the font systems “Iskola Potha” or “Abhaya Libre”.

I would be grateful to someone for advising me, as without those diacritic signs, my keyboard is not complete.

1 Like

Can you give a link to one of the fonts and a screenshot of the missing diacritics? I would be very surprised if Sinhala is missing characters in Unicode unless this is for a smaller language group.

Thank you Lorna, for the email. My reply is as follows:

  1. Link to Abhaya Libre font. I am sorry that I cannot include a link. I attempted several times to give the link, but each time it is blocked by the SIL server. They do not permit new users to post links in posts. I have to trouble you to find the Abhaya Libre font in Github. Sorry for the extra inconvenience.

  2. Two of the missing diacritics are given in the attached screenshot. Third one is not that important and can be ignored for the present. The first diacritic is more or less a semicircle placed below the consonant. For all the consonants it retains this relative position. The second diacritic is a complex shape placed after the consonant.

I hope the information provided meets the data you requested. Please let me know if any more information is required.

As to your observation, the missing diacritics belong to the main Sinhala alphabet, not a regional or a minority one. It is surprising that the committee that coordinated the inclusion of Sinhala to Unicode opted to omit these two. As a result now we are compelled to use workarounds that look crude and uneducated.

Thank you for offering to help me.

Best regards

P.C. Senaratne


1 Like

Ok, I’m not real familiar with the Sinhala script, but I did look at another keyboard and at Unicode. To get what you are looking for your keyboard would need to output the following for those two examples:

U+0D9A U+0DCa U+200D U+0DBB
U+0D9A U+0DCa U+200D U+0DBA


In Unicode they chose not to encode all the potential glyphs. They encode the main characters. U+0DCA is your virama and U+200D is a ZERO WIDTH JOINER, so with both of those you could get the output you are looking for.

1 Like

Thank you for your response. I will try it and let you know if it doesn’t work.

Best regards

1 Like

Since my last message, I have acted upon your advice and the keyboard works fine, with all the glyphs in place. Thanks for your help.

I tried to compile the keyboard so that I can check it on another computer, other than the PC on which it was developed. This, I wanted to check for any bugs in a different computer. I went through all the steps given in the help tutorial for compilation. The keyboard compiled to a small “.kps” file and a bigger “.kpm” file. Tried to install in another computer, but it does not recognise it as an installable file, Did I miss something? Or is there some other method of installation? Can you please help me on this?

A screen shot of the files list is shown below.


With best regards.

I’m sorry we’ve been so slow in responding. The .kmp file is what should be distributed. It is only installable though if people first install Keyman Desktop from here:

After installing Keyman Desktop (and possibly rebooting), THEN they can double-click on the .kmp file and it should install the keyboard. The .kps file is not a compiler, it is part of the source that you used in creating the .kmp.

1 Like

Thank you for your kind advice.

With kind regards.

1 Like