Back to Dechifro's Home Page

One-finger keyboards for Esperanto, English, and Russian

Decades into the smartphone era, seven billion people communicate with one finger on a virtual QWERTY keyboard. Why not arrange the keys for one-finger typing, with the spacebar and most common letters in the center? Jean Ichbiah did that in 1995 with his FITALY keyboard, and no one noticed.

Here are my arrangements:

On the left is Ichbiah's FITALY, to which I've added digits, symbols, and Esperanto diacritics. If you don't use Esperanto, you can fill those seven slots with whatever you like. A long press on a letter gives the symbol below it; feel free to add symbols under the digits and bottom-row letters.

On the right, I've tried to create something similar for Russian. I calculated, for billions of permutations, how far a finger would need to travel to type the complete text of Anna Karenina. In fact there are 263 decillion (2.63×1035) permutations of 32 letters, so mine might not be ideal, but it looks pretty good.

With digits, I put 1, 2, and 3 nearest to the spacebar because 30% of numerals in documents start with 1 and another 30% with 2 or 3, according to the Newcomb–Benford law.

You can use these layouts for free on your Android device. Go to Google Play and install Multiling O. Hold a finger on the spacebar, drag it to Layouts, choose [ + DIY ], and paste the following text:

{
"title":"62FITALY",
"onScreen":{
"main":[
"84zvchwk[DEL]",
"62fitaly[ENTER]",
"01[SPACE][]ne[SPACE][][SHIFT]",
"73gdorsb[SYM:,]",
"95qjumpx[ALTGR:.]",
"[TOOL] ĵŝĉĝŭĥ[FDEL]"
],"sym":[
"  #$_-+= ",
"  %&<>/* ",
"  ³²()÷× ",
"  '\"[]\\@ ",
"  `^{}|~ ",
"" ] } }
or
{
"title":"62RUSSIAN",
"onScreen":{
"main":[
"84цздмуж[DEL]",
"62ылаикч[ENTER]",
"01[SPACE][]не[SPACE][][SHIFT]",
"73бвотся[SYM:,]",
"95хгрпьй[ALTGR:.]",
"[TOOL]ъёщшюэф[FDEL]"
],"sym":[
"  #$_-+= ",
"  %&<>/* ",
"  ³²()÷× ",
"  '\"[]\\@ ",
"  `^{}|~ ",
"" ] } }
To change these layouts, paste them into an editor (I use QuickEdit), then copy and paste the result into Multiling O.

Sadly, Multiling O has been abandoned, and no longer works with newer versions of Android. Fortunately I learned of another program called Unexpected Keyboard that provides similar functionality. The maps for it are

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<keyboard name="62FITALY" script="latin">
  <row>
    <key key0="8"/>
    <key key0="4"/>
    <key key0="z" key1="\#"/>
    <key key0="v" key1="$"/>
    <key key0="c" key1="_"/>
    <key key0="h" key1="-"/>
    <key key0="w" key1="+"/>
    <key key0="k" key1="="/>
    <key key0="backspace"/>
  </row>
  <row>
    <key key0="6"/>
    <key key0="2"/>
    <key key0="f" key1="%"/>
    <key key0="i" key1="&amp;"/>
    <key key0="t" key1="&lt;"/>
    <key key0="a" key1="&gt;"/>
    <key key0="l" key1="/"/>
    <key key0="y" key1="*"/>
    <key key0="enter"/>
  </row>
  <row>
    <key key0="0"/>
    <key key0="1"/>
    <key key0="space" width="2.0"/>
    <key key0="n" key1="("/>
    <key key0="e" key1=")"/>
    <key key0="space" width="2.0"/>
    <key key0="shift" key1="capslock"/>
  </row>
  <row>
    <key key0="7"/>
    <key key0="3"/>
    <key key0="g" key1="'"/>
    <key key0="d" key1="&quot;"/>
    <key key0="o" key1="["/>
    <key key0="r" key1="]"/>
    <key key0="s" key1="\\"/>
    <key key0="b" key1="\@"/>
    <key key0="," key1=";"/>
  </row>
  <row>
    <key key0="9"/>
    <key key0="5"/>
    <key key0="q" key1="`"/>
    <key key0="j" key1="^"/>
    <key key0="u" key1="{"/>
    <key key0="m" key1="}"/>
    <key key0="p" key1="|"/>
    <key key0="x" key1="~"/>
    <key key0="." key1=":"/>
  </row>
  <row>
    <key key0="?" key1="!"/>
    <key key0="ĵ" key1="£" shift="1.0"/>
    <key key0="ŝ" key1="€"/>
    <key key0="ĉ" key1="₽"/>
    <key key0="ĝ" key1="°"/>
    <key key0="ŭ" key1="²"/>
    <key key0="ĥ" key1="³"/>
    <key key0="delete"/>
  </row>
</keyboard>
and
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<keyboard name="62RUSSIAN" script="cyrillic">
  <row>
    <key key0="8"/>
    <key key0="4"/>
    <key key0="ц" key1="\#"/>
    <key key0="з" key1="$"/>
    <key key0="д" key1="_"/>
    <key key0="м" key1="-"/>
    <key key0="у" key1="+"/>
    <key key0="ж" key1="="/>
    <key key0="backspace"/>
  </row>
  <row>
    <key key0="6"/>
    <key key0="2"/>
    <key key0="ы" key1="%"/>
    <key key0="л" key1="&amp;"/>
    <key key0="а" key1="&lt;"/>
    <key key0="и" key1="&gt;"/>
    <key key0="к" key1="/"/>
    <key key0="ч" key1="*"/>
    <key key0="enter"/>
  </row>
  <row>
    <key key0="0"/>
    <key key0="1"/>
    <key key0="space" width="2.0"/>
    <key key0="н" key1="("/>
    <key key0="е" key1=")"/>
    <key key0="space" width="2.0"/>
    <key key0="shift" key1="capslock"/>
  </row>
  <row>
    <key key0="7"/>
    <key key0="3"/>
    <key key0="б" key1="'"/>
    <key key0="в" key1="&quot;"/>
    <key key0="о" key1="["/>
    <key key0="т" key1="]"/>
    <key key0="с" key1="\\"/>
    <key key0="я" key1="\@"/>
    <key key0="," key1=";"/>
  </row>
  <row>
    <key key0="9"/>
    <key key0="5"/>
    <key key0="х" key1="`"/>
    <key key0="г" key1="^"/>
    <key key0="р" key1="{"/>
    <key key0="п" key1="}"/>
    <key key0="ь" key1="|"/>
    <key key0="й" key1="~"/>
    <key key0="." key1=":"/>
  </row>
  <row>
    <key key0="?" key1="!"/>
    <key key0="ъ"/>
    <key key0="ё" key1="£"/>
    <key key0="щ" key1="€"/>
    <key key0="ш" key1="₽"/>
    <key key0="ю" key1="°"/>
    <key key0="э" key1="²"/>
    <key key0="ф" key1="³"/>
    <key key0="delete"/>
  </row>
</keyboard>