LatinIME is the default Android keyboard (IME: Input Method Editor) for latin languages. It supports severals layouts including regular qwerty, azerty layouts but also improved layouts like dvorak or colemak. Those layouts improve speed, reduce errors compared to qwerty by reordering keys according to theirs usages. Remember that qwery was designed to avoid mechanic jam on typewriters, not to simplify typings.
As dvorak is designed to improve typing, it not also efficient for other languages than english. This is why specific language variations exist and bépo layout is the french one. It is designed for the same purpose than dvorak but based on the french word letter frenquencies. Here is what it looks like:
As I daily use the bépo layout on my computers, I would also like to use it on my Android devices. So I moded the LatinIME android keyboard to change dvorak to bépo layout. I grabbed the apk from my N7 and decompiled it. All layouts are defined in /res/xml using the following files (for dvorak in this case):
- keyboard_layout_set_dvorak.xml: main entry point that defines the different keyboard layouts according usage (alphabet, symbols, phone, number, …),
- kbd_dvorak.xml: layout for alphabat usage that defines keyboard row layout,
- rows_dvorak.xml: defines the row files to include,
- rowkeys_dvorak1.xml, rowkeys_dvorak2, rowkeys_dvorak3: define keys for each row (the first to the third).
Based on this study, I patched the dvorak resources to set a bépo layout. I edited the rowkeys_dvorak files and used the french symbols layout. After recompiling it and upgrading it, my N7 has bépo:
More information about bépo layout and LatinIme keyboard: