Character Frequency Generated Keyboard Layouts


I was considering that with the introduction of lexical models Keyman Developer is in a position where it may not require much effort to implement a feature to generate a keyboard layout that is optimized around character frequencies. Character frequencies could be determined from a lexical model pretty reliably (or if not reliable, PrimerPrep might be updated to determine this from a corpus).

I’ve come into research in the past that covers the finger effort or strain for striking each physical key (independent of what letters appear on keys). This information would be encoded in keyman developer, and of course varies with the physical keyboard type.

Keyman developer would then automatically assign the most frequent letters to the easiest hit keys. This would be helpful for the creation of an entirely new keyboard for a script or language that does not have a strong precedence for a keyboard system, or no mobile system. This feature would also be useful to help assign the lesser used letters to additional layers.

Going a step further, I think a frequency based assignment feature would be useful for auto-creating single handed keyboard layouts for the physically impaired.

A final thought on this, when the frequency distribution is known for a language, we then have a basis of measure to determine how efficient a given keyboard layout is. A keyboard designer who is debating key placement choices, could see which placement choice is the more efficient. Keyboards could also be listed at the Keyman website with an efficiency ranking, helping a user make a selection.

So… this is a feature request for the Roadmap and/or a fun research project for someone looking for one :slight_smile:

Interesting idea! I think I’m going to leave this one in the fun research project category for now though – I reckon there’d be a fair can of worms once you started digging in!