Forum DescriptionTopicsPostsLast Post
Keyboard Requests
Requests for development of specific keyboards
2017-03-01 18:29:26.117
Discussions specifically about particular keyboards
403 Subcategories
Discussions about Keyman
4 Subcategories
Keyman Developer
Discussions about Keyman Devloper
3 Subcategories
Discussions about KeymanWeb
3 Subcategories

Recent Posts

Double diacritics › RE: Double diacritics   2017-03-17 19:57:21.390
Marc Durdin
Tavultesoft Staff
This code worked for me, apart from the + '´', as I don't have ´ on my base keyboard. I changed that to + "'" and had no problem with PUA:

'˘' + "'" > U+E801
U+E801 + 'a' > U+1EAF

*BOINK* might be more fun :)
Uploading a keyboard › RE: Uploading a keyboard   2017-03-17 19:09:25.313
Marc Durdin
Tavultesoft Staff
The situation with uploading keyboards is in flux because of the transition to SIL. So the documentation, website, and software is a bit out of sync. We are working on resolving this.

The only way now that we support uploading a keyboard for distribution through Keyman/Tavultesoft websites is through the Keyman Cloud Keyboard Repository described at

This is the way we will continue to support in the future. You are of course welcome to distribute keyboards through other means yourself, as well.
Double diacritics › Double diacritics   2017-03-16 07:44:29.873
Jukka K. Korpela
What is the best way to define how to produce letters with two diacritic marks, like ắ (letter a with breve and acute), using prefix notation?

I thought I was clever:

'˘' + '´' > U+E801
U+E801 + 'a' > U+1EAF

So I would use a Private Use character, mapping the combination of two consecutive diacritics to it, then using it as the context. But it does not work.

Using instead

'˘' + '´' > '*BOINK*'
'*BOINK*' + 'a' > U+1EAF

works, but I feel a little silly if I use that.
Uploading a keyboard › Uploading a keyboard   2017-03-16 04:35:00.917
Jukka K. Korpela
I’m puzzled with the procedure for uploading a keyboard on the Tafultesoft site. I created a package and uploaded it using Keyman Developer, and I can see it as uploaded in the “Upload keyboards” list under “My account”, but nothing seems to happen after that.

The page
describes the distribution model presented there as “deprecated” and suggests “distributing source for keyboards through the Keyman Cloud Keyboard Repository”. Does this mean that the old model (and the functionality in Keyman Developer) does not work at all?
'ˇ' dk(1) + any(...) > ... not working when 'ˇ' typed using AltGr › RE: 'ˇ' dk(1) + any(...) > ... not working when 'ˇ' typed using AltGr   2017-03-08 11:38:04.920
Marc Durdin
Tavultesoft Staff
I think you reversed the stores:

'˛' + any(ogonekO) > index(ogonekK, 2)

should be:

'˛' + any(ogonekK) > index(ogonekO, 2)
Odd bug: Cannot use AltGr Shift M › RE: Odd bug: Cannot use AltGr Shift M   2017-03-08 11:36:13.397
Marc Durdin
Tavultesoft Staff
I tested the program here and had no trouble with AltGr+Shift+M.

Can you make sure there is not a Alt+Shift+M hotkey assigned in Keyman Configuration, Hotkeys tab?

There may also be another utility program using that key combination as well; some display driver utilities have hotkeys assigned for all kinds of things.
Odd bug: Cannot use AltGr Shift M › Odd bug: Cannot use AltGr Shift M   2017-03-07 22:49:54.010
Jukka K. Korpela
For some reason, it seems impossible to specify a rule for AltGr Shift M. The following is a complete .kmn file that demonstrates this:

store(&VERSION) '9.0'
store(&NAME) 'Demo of AltGr Shift M bug'
store(&LANGUAGE) 'x0409'
store(&WINDOWSLANGUAGES) 'x0409'
begin Unicode > use(main)
group(main) using keys
+ [SHIFT RALT K_M] > '*M*'
+ [SHIFT RALT K_N] > '*N*'
+ [SHIFT RALT K_B] > '*B*'

When installed and tested with Keyman Desktop, AltGr Shift N and AltGr Shift B work as defined, bur AltGr Shift M does nothing. Tested with Notepad, among other things, to make sure that the cause is not some program that allocates AltGr Shift M to its own use.
'ˇ' dk(1) + any(...) > ... not working when 'ˇ' typed using AltGr › RE: 'ˇ' dk(1) + any(...) > ... not working when 'ˇ' typed using AltGr   2017-03-07 17:22:00.680
Jukka K. Korpela
Sorry, I did not mention that I had
+ any(controls) > index(controls, 1) dk(1)
and I had also tried instead setting directly
+ 'ˇ' > 'ˇ' dk(1)
but that didn’t help.

But omitting dk(1)’s helped. I had actually tried that, too, without realizing that in
%' dk(1) + any(caronK) > index(caronO, 3)
I need to change 3 to 2 when omitting dk(1).

(I had somehow thought that dk(1)’s are needed here, because EuroLatin uses them.)

There’s still one oddity: the approach does not work for the ogonek produced with Shift AltGR ´:

+ [SHIFT RALT '´'] > '˛'
store(ogonekO) 'ąĄęĘįĮǫǪųŲ˛'
store(ogonekK) 'aAeEiIoOuU '
'˛' + any(ogonekO) > index(ogonekK, 2)

But I’ll just use the store()-less method here.
'ˇ' dk(1) + any(...) > ... not working when 'ˇ' typed using AltGr › RE: 'ˇ' dk(1) + any(...) > ... not working when 'ˇ' typed using AltGr   2017-03-07 13:49:29.887
Marc Durdin
Tavultesoft Staff
As far as I can tell (because I can't see quite enough of the keyboard source to be sure), the problem is this rule:

+ [RALT "'"] > 'ˇ'

should be:

+ [RALT "'"] > 'ˇ' dk(1)

This will then allow

'ˇ' dk(1) + any(caronK) > index(caronO, 3)

to match correctly.

Either that, or drop use of the dk(1) in both rules?
EuroLatin vs. EuroLatin2 › RE: EuroLatin vs. EuroLatin2   2017-03-07 13:47:47.207
Marc Durdin
Tavultesoft Staff
EuroLatin2 was originally developed as a touch layout specifically for mobile devices; we then merged the desktop and touch layouts. So yes, EuroLatin2 is a newer version of EuroLatin, and we will be pushing EuroLatin2 over EuroLatin in the future and probably phasing out the original keyboard.
Making a key non-functional › RE: Making a key non-functional   2017-03-07 13:46:32.170
Marc Durdin
Tavultesoft Staff
At this time, as you saw, we don't have this functionality in the visual editor. I don't think I would put a high priority on developing this as it is an unusual edge case, and does complicate the design of the visual editor. Sorry!
Missing dead key functionality › RE: Missing dead key functionality   2017-03-07 13:45:12.007
Marc Durdin
Tavultesoft Staff
I suspect the reason the keys are showing blank is that they show the combining marks, which would have shifted left off the key as they have no base character.

You can change the key cap on the On Screen Keyboard tab to a non-combining version of the character, which should resolve that.

At present we don't have a conversion tool from .klc to .kmn, although it shouldn't be that hard to write one. As it stands, we are happy to keep a copy of the .klc file in our internal repository for future conversion, if you are happy with it being distributed under the MIT license.
'ˇ' dk(1) + any(...) > ... not working when 'ˇ' typed using AltGr › 'ˇ' dk(1) + any(...) > ... not working when 'ˇ' typed using AltGr   2017-03-06 00:47:33.197
Jukka K. Korpela
I’ve tried to implement functionality where the caron “ˇ” is made a to combine with the next letter (e.g.) in certain cases to produce a letter with caron (e.g. š), much like the EuroLatin keyboard has

store(controls) "'`^:~@$\-,*%." '"'
store(caronO) 'čČďĎěĚľĽňŇřŘšŠťŤžŽ'
store(caronK) 'cCdDeElLnNrRsStTzZ'
'%' dk(1) + any(caronK) > index(caronO, 3)

The problem is that instead of a normal character like “%”, I need to use “˘” created using AltGr (right Alt), specifically

+ [RALT "'"] > 'ˇ'

And for some reason, this doesn’t work: typing ˇs produces just those two characters, not š.

I have included “ˇ” in controls, and I have also tried setting directly

+ 'ˇ' > 'ˇ' dk(1)

I wonder if this is a limitation, a bug, or my failure to use the language properly.

I can circumvent the problem by not using dk(...) at all in this context, setting simply

'ˇ' + 's' > 'š'

but this requires a large number of rules.

It would be desirable to be able to use the more compact (and less error-prone) notations that can handle a large set of combinations with letters in a few statements.

I’m using Keyman Developer 9.0.
EuroLatin vs. EuroLatin2 › EuroLatin vs. EuroLatin2   2017-03-03 20:57:36.370
Jukka K. Korpela
What is the difference between EuroLatin and EuroLatin2? I could not find a documentation about this, but on the surface, it seems the differences are rather small. Is EuroLatin2 essientially newer, maybe somewhat extended version of EuroLatin?
Making a key non-functional › Making a key non-functional   2017-03-03 05:56:35.433
Jukka K. Korpela
Am I correct in assuming that the only way to make a key non-functional (pressing the key has no effect) is to map it to nul? E.g.

+ [K_COLON] > nul]

A related question, or a feature request: When I use that method, it works, but when trying to switch to the Design tab in “Layout”, I get the error message “The Design tab is disabled because the keyboard file is too complex to represent and modify visually. You must make any further changes to the keyboard directly in the Code tab.” Can this be avoided?

It would probably need extra effort to make keys (or states of keys) e.g. greyed out when non-functional, but it would be OK have them just blank (as if the space character were assigned).

(As to reasons for wanting such keys, you might want to completely disable some keys to prevent errors in programming or data entry or other context where the character repertoire is more limited than that of the physical keyboard.)
Missing dead key functionality › RE: Missing dead key functionality   2017-03-03 02:05:05.373
Jukka K. Korpela
Sorry for my confusion: it’s just the images of keys in Keyman Desktop that are the problem here. They are blank for the two dead keys that have ´` (acute accent, grave accent) and ¨~^ (dieresis, tilde, circumflex) as the engravings in physical keyboards. I jumped into conclusion that they don’t work.

Regarding SFS 5966, there’s the complication that it has a large number of dead key + normal key combinations, and as far as I can see, you cannot define them in the graphic UI in Keyman Developer. But it seems simple enough to do that in the “Code” view.

Actually I have the layout as a .klc file. I wonder if there is a conversion utility. And I wonder whether you would like to use the .klc file to set up a layout that you distribute.
Installing a keyboard in Developer fails with “Keyman Desktop is not installed” › RE: Installing a keyboard in Developer fails with “Keyman Desktop is not installed”   2017-03-02 23:40:42.380
Jukka K. Korpela
[quote="Marc Durdin"]You should try to use the same version for both products -- Keyman Developer 9 is a free version (in beta, but still stable)[/quote]

Thanks! This helped. I hope you can modify the error message to help avoid problems like mine. (I wonder if it could be e.g. “Keyman Desktop is not installed or is a non-compatible version”.)
Installing a keyboard in Developer fails with “Keyman Desktop is not installed” › RE: Installing a keyboard in Developer fails with “Keyman Desktop is not installed”   2017-03-01 21:11:10.130
Marc Durdin
Tavultesoft Staff
Yes, Keyman Desktop 9 and Keyman Developer 8 don't really work well together. You should try to use the same version for both products -- Keyman Developer 9 is a free version (in beta, but still stable) -- get it from
how to script › RE: how to script   2017-03-01 21:10:26.253
Marc Durdin
Tavultesoft Staff
See for the issue reported for further resolution in the future.
how to script › RE: how to script   2017-03-01 21:08:47.517
Marc Durdin
Tavultesoft Staff
I see the problem. I don't have an immediate answer to resolve this. The best I can suggest right now is to type a'eemro and then go back and delete the apostrophe (') mark. I know this isn't ideal so I will note this as an issue for investigation with the keyboard.

Search the Forums