Upload failed. Maybe wrong permissions?

User Tools

Site Tools

Create Your Own Best Keyboard

To make your keyboard in Best’s Board, you don’t need more than a simple text editor, either on your PC or on your Android device itself. To reach characters currently not on your keyboard, you can use any Unicode table app or web site.

Things To Be On The Keyboard

Collect the characters and functions what you want to see on your keyboard. No doubt you’ll need a least
  – the characters of your language(s);
  – basic punctuation;
  – digits;
  – a space key, Backspace, Enter, Shift.
  Beyond that, you can add anything. You can add any character or even strings of characters. Frequently used email or web addresses, greetings, anything. No limits.
  In this article, I’ll use a Livonian keyboard as an example. This language has many letters with diacritics:
  Since Livonian is an extinct language once spoken in Latvia, I add letters č ģ ķ for Latvian. This is 24 letters, in addition to the 26 of the English alphabet, so, 50.
  Let’s add some basic punctuation: , . ; : ? ! - ’ ( ) @ *. This is 12 characters. But of course I could choose 20 or 50 or 200. No limits.
  Keep in mind you can change anything later. Did you miss a character? Add it. A character isn’t at a comfortable place? Move it to somewhere else. Don’t like the colors? Change them.

How To Reach Characters

For diacritical letters the question arises how to reach them. Best offers several methods that can even be combined; for example, my own keyboard I’m typing this article on has 16 dedicated keys for 16 diacritical letters, one letter each, and two additional keys for several hundreds of characters.
  Here are the possible methods. Which one(s) to use is up to you.

An Own Key For Each Letter

For frequently used letters, I recommend this always. It’s no longer the PC keyboard with 48 little plastic caps you have to be satisfied with (all the others being reserved for special functions). You can draw as many hexagons as you wish. On my layout, there are currently 114. But you can have as few or as many as you wish. No limit – by the abilities of Best. But you need to calculate with the size of your Android device. You can have a large number of keys even on a small phone, but it’ll be uncomfortable to use them.


A modifiers takes the character in the text before the cursor, and replaces it by the next character from a list (called a roll), specified by yourself. You can have as many modifiers as you wish. Each modifier can have as many rolls as you wish. Each roll can be as long as you wish. No limits.
  When a modifier is pressed, Best takes the character before the sursor and set of rolls you specified for that modifier, and looks for the character in them. If it’s found, the next character on that roll will be replaced; if the character is the last one on the roll, the first one is replaced to it. If the character isn’t present on any of the roll of that modifier, nothing happens.
  Some examples:

"aāäǟ" "cč" "dḑ" "eē" "gģ" "iī" "kķ" "lļ" "nņ" "oōȯȱöȫõȭ" "rŗ" "sš" "tț" "uū" "yȳ" "zž"
  This is a modifier with 16 rolls, each enclosed in double quotation marks. This may be an approach to reach both Livonian and Latvian on one single key, added to the 26 English letters. You press g, then this modifier, and get ģ. Easy. But to reach ȭ, you’ll need to press the letter o and then the modifier 7 times, what may be tiresome for a longer text, so, it’s possible to create separate keys for, say, letters ö and õ. Or of course, you can have separate keys for any number of diacritical letters and still include a modifier.

  This lets you have 12 punctuation keys at the cost of at least on punctuation key (to type either one of them) and the modifier. Of course, this may be the same modifier as in the previous example.

  This isn’t for our Livonian project. It’s an example for a modifier that works similar to old VHS and DVD recorders when you wanted to name channels or records: from an initial character which was the space, each pressing of an arrow key stepped to the next character in a set alphabet, and the opposite alphabet stepped backwards. With a modifier like this, you can practically have a keyboard with only four keys: the space key (to have an initial space to be modified), the modifier, an Enter and a Backspace key. Of course this wouldn’t be very comfortable but may be useful when screen real estate is an issue.

"2ABC" "3DEF" "4GHI" "5JKL" "6MNO" "7PQRS" "8TUV" "9WXYZ"
  Another approach for a method to reach letters of the alphabet with a very small number of keys. Provided a numeric keyboard, this lets the user to reach letters like on phone keyboards.

"aα" "bβ" "cχ" "dδ" "eε" "fφ" "gγ" "hη" "iι" "jς" "kκ" "lλ" "mμ" "nν" "oο" "pπ" "qθ" "rρ" "sσ" "tτ" "uυ" "wω" "xξ" "yψ" "zζ"
  This is a way to reach Greek letters with a modifier from Latin ones. For continuous typing in Greek language, no way I’d recommend it, but if the Greek letters are needed only occasionally, like for some scientific purposes, it may be practical.

Modifiers can form chains. Since a modifier doesn’t know and needs not to know if the character it is replacing was the result of another modifier, you can have chains like these:
  1. press a
  2. press the macron modifier and get ā
  3. press the umlaut modifier and get ǟ
  1. press a
  2. press the umlaut modifier and get ä
  3. press the macron modifier and get ǟ
  It’s best to define both, so you don’t need to worry about the order.


A sticky key can have up to 12 functions. One by just tapping on the key, and 12 by putting your finger or stylus on it and stroking to either one of 12 directions, like on a clock face. This means you can, for example, the 24 Livonian and Latvian letters on two keys, and you still have two functions available. For example, two punctuation characters may be surrounded with them. Or, like with the examples for modifiers, you can build two keys with the complete English alphabet, that’s 26 letters, so one would be on each key and 12 surrounding it.
  Stickies can be also modifiers. As I mentioned above, I have on my keyboard two keys that can reach hundreds of characters. This is because those keys are having 12 modifiers on each, for different diacritic symbols, and all of them have several rolls, including chained meanings.

More Layouts

A layout is the grid of hexagonal buttons. It can contain a number of buttons (limited by the screen size only), but that may insufficient in many cases. Then we can have additional layouts. My keyboard, for example, has 31 at the moment: I have an independent layout for Hungarian and Latvian, one for Cyrillic, one for Greek, one for Armenian, one for Arabic, and all five are combined with six pages of memory buttons, thus yielding 30. The last one is for Visibone color codes.
  The different layouts may be of different sizes and colors, and you can navigate between them with switch buttons.
  In this article, we’ll skip the layout switching technique, being satisfied with one.

Arranging Characters

For the sake of this demonstration, I decided the following, only because I want to be able to demonstrate different methods:
  – Livonian letters ä ȯ ö õ will receive a button on their own;
  – there will be a modifier to add the macron;
  – and another one to add both the caron and cedilla.
  We’ll have an own key for each punctuation mark and digit. This means that we’ll have 26 + 4 letters + 12 punctuation + 10 digits + 4 function keys + 2 modifiers, totalling 58. This can be achieved by five rows of 12 buttons in each, and we’ll have two spare buttons.
  First, we have to decide which button to put where. I’m used to set a text editor to a monospaced font, and design the hexagonal grid. I’m writing the complete character set in the first row:
  Since I’ll use single characters for representing a button, the function keys will be symbolized by additional characters:
  _ the space
  B the Backspace
  E the Enter
  ^ the Shift
  M the macron modifier
  C the caron and cedilla modifier
  And in the next rows (five, since we decided to use five rows) I design the grid. For real purposes, it’s best to use some statistics about letter frequencies, letter pair and letter triplet sequences of the language, but none is available for Livonian, and this is just a demonstration. Let’s pretend there is some reason in the arrangement I make.
  (On the following charts, a © symbol will represent the @ for technical reasons.)

 k õ
a _ e
 i u

The top row serves as an aid to let me know which characters are left. When adding one to the grid, I’m removing them from this row. I’ve started with a ring of six hexagons around the space button. Let’s add another ring of frequent letters around them.

  n r ȯ
 o k õ t
s a _ e m
 p i u l
  ä h j

Now we’ve got the height of five rows as wanted, let’s add keys to both sides.

  * ’ © M c n r ȯ v
 : ; - C f o k õ t y
( ) ? w g s a _ e m d
 ! . , x q p i u l b
        ^ z ä h j ö

…wait. Where to place the digits? They should be grouped together somehow, shan’t they? Let’s reorder it a bit.

 ! * ’ © M c n r ȯ v B :
? ( ) - C f o k õ t y E
 7 8 9 w g s a _ e m d
4 5 6 0 x q p i u l b ;
 1 2 3 ^ z ä h j ö , .

We’re ready, now we know where to put what. we can start coding. let’s open an empty text document and type:

coat (1000)

The Layout Definition

We have to define a layout. This is done by a line like this:

addlayout (id mylayout start
	rows 5 columns 12 align evens turnoff (caps)
	asboard color 0nk linecolor 0nodt linesize 1

Now we have an empty layout in the size wanted. Its background color is black (0nk), the grid will be drawn in obscure dull teal (0nodt), and a half button will be on the top left corner (align evens).

The Block

Our keys will be arranged in a block. Actually, we can have a number of blocks that may be freely rearranged, but for this demonstration, one is enough. To start the block:

block (row 1 column 1

and now we can add buttons.

  button (text "" color 0nk addtitle (color 0ndhs size 1700))

This is the empty skeleton of the block we can fill with characters; we need one for each button except special ones that are defined different ways. I’m copying and pasting this line once for each key, adding crl for carriage return left and crr for carriage return right at the line ends.

block (row 1 column 1
  button (text "!" color 0nk addtitle (color 0ndhs size 1700))
  button (text "*" color 0nk addtitle (color 0ndhs size 1700))
  button (text "’" color 0nk addtitle (color 0ndhs size 1700))
  button (text "" color 0nk addtitle (color 0ndhs size 1700))
  button (text "macron" color 0nk addtitle (color 0ndhs size 1700))
  button (text "c" color 0nk addtitle (color 0ndhs size 1700))
  button (text "n" color 0nk addtitle (color 0ndhs size 1700))
  button (text "r" color 0nk addtitle (color 0ndhs size 1700))
  button (text "ȯ" color 0nk addtitle (color 0ndhs size 1700))
  button (text "v" color 0nk addtitle (color 0ndhs size 1700))
  button (text "bksp" color 0nk addtitle (color 0ndhs size 1700))
  button (text ":" color 0nk addtitle (color 0ndhs size 1700))
  button (text "?" color 0nk addtitle (color 0ndhs size 1700))
  button (text "(" color 0nk addtitle (color 0ndhs size 1700))
  button (text ")" color 0nk addtitle (color 0ndhs size 1700))
  button (text "-" color 0nk addtitle (color 0ndhs size 1700))
  button (text "caron" color 0nk addtitle (color 0ndhs size 1700))
  button (text "f" color 0nk addtitle (color 0ndhs size 1700))
  button (text "o" color 0nk addtitle (color 0ndhs size 1700))
  button (text "k" color 0nk addtitle (color 0ndhs size 1700))
  button (text "õ" color 0nk addtitle (color 0ndhs size 1700))
  button (text "t" color 0nk addtitle (color 0ndhs size 1700))
  button (text "y" color 0nk addtitle (color 0ndhs size 1700))
  button (text "enter" color 0nk addtitle (color 0ndhs size 1700))
  button (text "7" color 0nk addtitle (color 0ndhs size 1700))
  button (text "8" color 0nk addtitle (color 0ndhs size 1700))
  button (text "9" color 0nk addtitle (color 0ndhs size 1700))
  button (text "w" color 0nk addtitle (color 0ndhs size 1700))
  button (text "g" color 0nk addtitle (color 0ndhs size 1700))
  button (text "s" color 0nk addtitle (color 0ndhs size 1700))
  button (text "a" color 0nk addtitle (color 0ndhs size 1700))
  button (text "space" color 0nk addtitle (color 0ndhs size 1700))
  button (text "e" color 0nk addtitle (color 0ndhs size 1700))
  button (text "m" color 0nk addtitle (color 0ndhs size 1700))
  button (text "d" color 0nk addtitle (color 0ndhs size 1700))
  button (text "4" color 0nk addtitle (color 0ndhs size 1700))
  button (text "5" color 0nk addtitle (color 0ndhs size 1700))
  button (text "6" color 0nk addtitle (color 0ndhs size 1700))
  button (text "0" color 0nk addtitle (color 0ndhs size 1700))
  button (text "x" color 0nk addtitle (color 0ndhs size 1700))
  button (text "q" color 0nk addtitle (color 0ndhs size 1700))
  button (text "p" color 0nk addtitle (color 0ndhs size 1700))
  button (text "i" color 0nk addtitle (color 0ndhs size 1700))
  button (text "u" color 0nk addtitle (color 0ndhs size 1700))
  button (text "l" color 0nk addtitle (color 0ndhs size 1700))
  button (text "b" color 0nk addtitle (color 0ndhs size 1700))
  button (text ";" color 0nk addtitle (color 0ndhs size 1700))
  button (text "1" color 0nk addtitle (color 0ndhs size 1700))
  button (text "2" color 0nk addtitle (color 0ndhs size 1700))
  button (text "3" color 0nk addtitle (color 0ndhs size 1700))
  button (text "shift" color 0nk addtitle (color 0ndhs size 1700))
  button (text "z" color 0nk addtitle (color 0ndhs size 1700))
  button (text "ä" color 0nk addtitle (color 0ndhs size 1700))
  button (text "h" color 0nk addtitle (color 0ndhs size 1700))
  button (text "j" color 0nk addtitle (color 0ndhs size 1700))
  button (text "ö" color 0nk addtitle (color 0ndhs size 1700))
  button (text "," color 0nk addtitle (color 0ndhs size 1700))
  button (text "." color 0nk addtitle (color 0ndhs size 1700))

Saving this and loading into Best’s Board will give an almost perfect result.
  Of course the special buttons won’t work yet, I’ve simply entered their names there; instead of doing what they should do, these buttons simply type the words on them. Let’s fix it.


  button (backspace color 0nk addtitle (color 0ndhs size 1700))

This is the code for the Backspace key. The default title on it is BS but you can add another title with text "anything" inside the bracket after addtitle.


enter (color 0nk addtitle (color 0ndhs size 1700))

Here we define the Enter key. Note that the keyword button is not used here. The default title on it is CR.


  meta (caps color 0nk addtitle (text "↥" color 0ndhs size 1700))

Actually, the Shift key on PC keyboards is doing more things than making letters uppercase, so we call ours the Caps key because it doesn’t do more than giving uppercase letters. I gave it an arrow as a title.

Space Travel

As the tutorial described, the space key may be a Space Travel key, what’s very practical because it makes all the keys around it neighbors. We turn our key into one by

  spacetravel (color 0nk addtitle (color 0ndhs size 1700))


Now we need two modifier keys. First, we define them. This part is needed before the block since the definitions must be created before the keys refer to them.

addmodify (id macron rolls ("aā" "ä" "eē" "iī" "oō" "ȯȱ" "öȫ" "õȭ" "uū" "yȳ"))
addmodify (id caron rolls ("cč" "dḑ" "gģ" "kķ" "lļ" "nņ" "rŗ" "sš" "tț" "zž"))

This way we have a modifier for both the macron and the caron and cedilla (combined). Of course, one would be enough, or we might separate the caron and the cedilla as two modifiers. As we like it.
  To make them work, let’s replace the lines for both keys with modifier buttons:

  modify (roll macron color 0nk addtitle (text "ˉ" color 0ndhs size 1700))


  modify (roll caron color 0nk 
addtitle (text "ˇ" color 0ndhs size 1700)
addtitle (text "̧" color 0ndhs size 1700)

I did a small trick with the second one. Since it serves for both the caron and the cedilla, I added them both as titles. A button may have as many titles as you wish. I mean it. Once I created one with 7920 titles. Well, loading the file was extremely slow, but it worked.


Now we don’t need anything more – than a bit of color.
  Here comes the complete code. Feel free to copy it from here and modify it any way.

Click here




nem úszunk borban
állunk a sorban
állunk és nézünk
miben lesz részünk
mint régi traktor
dörmög a Viktor
mint egy vén medve
vagy fa leszedve
nincs már értelme
ha volt is elve
nincsen gondolat
csak úgy mondogat

mi minden korban
állunk a sorban
várunk oltásra
máskor lakásra
vagy épp Merkurra
minket átkúrva
szónokolt Kádár
a jövő ránk vár
csak a csatlósok
volt abból jó sok
ők kaptak bármit
drága szalámit

mi meg a porban
állunk a sorban
vagy bármi másért
ők meg csak híznak
vezérben bíznak
Horthy vagy Gyurcsány
nem hangzik furcsán
csak legyen vezér
életük ezér
mi meg csak élünk
már nem is félünk

nem úszunk sörben
ebben a körben
nem vagyunk bátrak
nem állnak sátrak
nincs szekértábor
csak Kuncze Gábor
nincs politika
csak a patika
ha van még gyógyszer
nem kell a módszer
már a patikus
is apatikus



My Android Keyboard: Kinesa Version 72

It’s created in Best’s Board. Reading this introduction, you’ll see why and how is it so greatly personal and suitable for my own personal needs only. So, you don’t want it. You want to create your own one in Best’s Board, don’t you?

My Coat language code now takes 185 kilobytes in 39 files. Now it has 33 layouts. The picture below shows the main layout in one of its states.

The Main Layout


The main layout has got 8 rows with 13 buttons on each, what adds up to 103 buttons – one is missing from the bottom right corner because there is my floating back button app (four little buttons to activate the notification bar, the recent apps, the home screen and the back function, respectively), which covers that half button entirely, so there’s no function there.

Character Buttons

48 buttons are normal letter keys. Surrounding the space button (empty hexagon with a thickened edge; it’s a Space Travel button of course), there is my Kinesa layout designed in 2006 for Palm PDA’s, optimized for Hungarian by statistical calculations. I’m very well trained to it and I can use it quickly enough, written several novels on it, using Palms first, then Androids. Today I’m using Lisette, the tablet, more than my PC.

Kinesa consists of the hexagonal parts KINESA, CZMTYGDUPORL, VFBJH ÁÉÍÓÚ, ÖÜŐŰ and QWX.
  Near it, comes the Latvian alphabet since I’m learning it for četras years now: ČŽŠ, ĻŅĶĢ and ĀĒĪŪ. And two additional letters ŌȲ for the Sauninas language, featured in Ninda, just because I didn’t find anything better to place there. Update. Two days later, I replaced these two with memory buttons that look like the same and hold the same letters.

Above the letters, there are punctuation marks in about a half of two rows: ’-–,.;?! and ()„”:. They behave differently.
  Apostrophe ’ and hyphen - doesn’t do anything special.
  The comma , semicolon ; colon : closing parenthesis ) and closing quotation mark ” removes any space before them, and appear with a following space. The dot . the question mark ? and the exclamation point ! does the same, and also turns the Autocaps mode on. The opening parenthesis ( and the opening quotation mark „ adds a space before them and no space after. And finally, the en dash – adds a space both before and after it.
  But all of these happen only when the second button in the bottom row is displaying a frog. When touched, it switches to a turtle, and in that case, all punctuation buttons type only the symbol on them, with no Autocaps or Autospace.

Finally, the digits on the upper three rows are also character buttons. The half button with three vertical dots is a thin space character which serves as a thousand separator in Hungarian.
  Additionally, at the right edge, there are two double-character buttons with the symbols // and ** which are two important formatting commands in this blog engine, Vicky (actually, Dokuwiki).

Sticky Buttons

Five of the punctuation buttons are Sticky Buttons as well. So they can serve for 13 purposes each: one when just touched (the punctuation character) and 12 others when the stylus is stroked from them to any of 12 directions, like on the clock face. This means that they are, practically speaking, 65 buttons.
  The two rightmost ones give the basic ASCII punctuation and special characters like and _ and … (the three-dot ellipsis character which I’m using frequently). Yes, you can count 13 around the semicolon: to the 8 o’clock direction, there’s another two-character Vicky command.
  The middle one gives Unicode emojis. Clockwise from 12 o’clock: 🙂 👍 🙁 😂 😥 😍 😗 😛 😮 😎 😀 ❤
  The two leftmost ones are modifiers that can modify letters with diacritics and other things. The ( key, clockwise from 12 hours, yields the acute, grave, caron, circumflex, tilde, overdot, macron, ring, diaeresis and breve diacritics; the blue x symbolizes the stroke modifier to create letters like đłø, and the 11 o’clock one is both the cedilla and the ogonek. The ) key brings less common modifiers: the 12 o’clock one is the Vietnamese diacritics ỏ and ơ, then follows eight diacritics that can be placed below the letters (some of them barely appear on any Unicode character, they are from my own font). At 9 o’clock, there is the upside down modifier for IPA characters, then comes the special modifier for additional IPA characters, and finally, the macron or tilde below.
  Using these two keys, a huge number of characters can be accessed (many outside from Unicode). You can use more than one modifier on a letter, or the same one several times. For example, the ʒ modifier turns a letter n to ŋ then to ɲ etc. Or a letter a followed by the ring modifier makes it å which can be turned by the acute modifier to ǻ. Since the rules are defined by myself, in the same Coat files as the other parts of the keyboard, everything is possible.


There are three clipboard keys, Paste, Copy and Cut, on the left edge. They use the normal Android system clipboard, but when (for most of the time) I’m using Jota, it features an advanced clipboard which automatically remembers several strings recently copied.

The Caps Key

The Caps key is the upwards-pointing white arrow decorated with blue and red stripes, right from the semicolon button. It has four states, shown by its background color:
  black – no caps, lowercase letters
  dark yellow – autocaps, next character is uppercase
  green – caps, next character is uppercase
  red – caps lock, following characters are all uppercase
  Tapping on the key cycles black, green and red. Dark yellow is activated only by sentence-final punctuation marks (dot . question mark ? and exclamation point !) and Enter.

The Joystick

Right from the Caps key, there is a green four-pointed star with decorating yellow dots. This is the joystick. Tapping on the key doesn’t do anything, but if I put the stylus on it and begin moving the stylus around, the cursor will move around in the editor. The yellow arrows denote that diagonal directions up-left and up-right make the cursor jump a word left or right, respectively. The blue arrow is for the Caps Toggle function: stroking down-left from the joystick makes a word cycling three cases Cases CASES.
  (The down-right direction is yet unused.)

The Delete Keys

There are two red arrows with x crosses. They are the Backspace (left arrow) and the Delete (right arrow) keys. Both are repeating when kept pressed.

The Enter Key

Best’s Board has the functionality to change the appearance of the Enter key according to the situation: it can be a Go key, a Search key and others. I’m not using this, the key is always displaying a bent arrow. Rainbow-colored, to be visually attractive.

The Paragraph Keys

Above and below the Enter key, there are two yellow double-headed arrows with letters P. These are the Paragraph Up and Down keys. The Up key jumps to the beginning of the current paragraph, then to the previous one and so on. The Down key works the same way, but at the end of the paragraphs. They repeat when kept pressed.

The Memory Keys

Now we have 14 memory keys on this layout alone. 9 in the top row, two above and below the sun, and three in the bottom right corner (these ones are wearing the characters ů, ⇓ and ḩ on the screenshot). A memory key is a character or string key programmable without touching the source code. Pressing a memory key which bears MEM will change it to SEL on a red background. Pressing it again will place the selected text (or if nothing is selected, the word at the cursor) on the button. Only the first five characters will be displayed, but the complete text is typed when pressing the button. To redefine it later, I just need to draw a circle on the key to switch it to SEL mode again.
  But the 14 memory keys are actually 59 (6 · 9 + 5). The two buttons left and right to the sun which are only partly visible are switches: they’re paging through six sets of the nine memory keys on the top row. The small dot left to the sun is changing color according to the set: red, orange, yellow, green, cyan and blue. This is the newest development at the writing of this article.

The Decorations

The sun and the ZX Spectrum rainbow stripes are merely for decoration. The sun is an emoji, I’m changing it at random times; the idea was taken before Christmas and the first one was a Santa Claus. The rainbow stripes are actually large slash / characters.

The Layout Switch

The bottom left corner has a keyboard icon: this brings up the layout menu.

The Layout Menu


The menu is a bit messy, but I don’t spend much time in it. Choosing a red layout button leads to that layout.
  The Set button goes to the Settings menu of Best’s Board. The Reload button reloads the Coat files after a modification.
  The red layout buttons in order:
  Ļ – the main layout (described above)
  📒 – the memory layout
  € – the symbols layout
  ⁘ – the U+2000 layout*
  colored hexagons – the colors layout
  colored stripes – the flags layout
  Θ – the Greek layout
  Я – the Cyrillic layout
  ॐ – the Devanagari layout*
  Ա – the Armenian layout
  א – the Hebrew layout*
  ބ – the Thaana layout*
  ɮ – the phonetics layout*
  😀🎂🐸🔥🗑🚑🤐🦄♿ – emoji layouts*
  இ – the Tamil layout*
  ණ – the Sinhala layout*
  € – the U+2070 layout* (yes, an euro symbol again)
  And three experimental layouts as attempts to create other language keyboards:
  E – Esperanto
  V – Vietnamese
  Liv – Livonian–Baltic

Layouts marked with an asterisk * aren’t more than results of a little program I wrote: it takes a part of the Unicode table and makes it into a layout, only adding a key with an arrow ↖ in the last row to provide a way to return to the main layout. No additional editing was made, so, even undefined characters were removed only at some places where there were many of them.
  I make very limited use of the Greek and the Cyrillic layouts, speaking no language that would need them; they’re mostly used for phonetic and linguistic purposes. As for the other language layouts, I’m not using them at all, they were added just for fun, “why not?” and they were also chosen on this basis as well.

NB. There is no CJK on this keyboard. There is a Cāngjié conversion table implemented, and I had a button for it for a long while (it was very simple, I typed one to five letters, pressed the Cāngjié button, and the letters were turned into a character) but I removed it because the conversion table was huge and made each reloading an age. For Japanese, adding a Kana layout is very simple, but we have no Kana to Kanji conversion table yet. And for Korean, a Jamo to Hangul table would be required. But I speak neither language so don’t need them.

The Memory Layout


This layout is nothing more than a collection of 60 memory buttons. I’m using it for Ninda, where there is a lot of Syndorian names, using an unrememberable orthography even for myself, so the most frequent words are kept on these buttons.

The Symbols Layout


This collects some ASCII and other symbols and arrows. It’s just a selection. Complete arrow and math layouts are planned.
  The layout contains four diacritic modifiers I didn’t find a place for on the main layout.

The Colors Layout


What makes this one visually attractive is not my invention, this is a Visibone color table turned into buttons. Each button gives a 1 to 3 letters code that can be used in both Vicky and Coat. For example, the key marked pale dull red types pdr which, when used in the appropriate command, results in a pale dull red color.

The Flags Layout


This layout looks like a simple QWERTY keyboard, but these letters are actually from the Unicode Regional Symbols. Typing two of them displays a flag: GB → 🇬🇧.

The Greek Layout


Yes, once upon a time there was a Caps button on it, too, just it disappeared upon a recent modification. Other things are also missing, like punctuation, but the way I need it this is enough: to type phonetic IPA transcriptions that include Greek letters, and sometimes a Greek word or two. So, the alphabet and two sets of diacritics: two buttons for New Greek and six for Ancient Greek.

The Cyrillic Layout


As it’s very obvious, this layout was created by replacing the letters on a previous version of the main layout. It has the letters for Russian, Ukrainian, Serbian and Macedonian, and six modifier keys to reach additional letters.

The Armenian Layout


This is very simple as well, also lacking the Caps button.

Additional Script Layouts

As mentioned above, these ones are simply the results of a program that copies Unicode tables on layouts.













The Emoji and Other Layouts












The Experimental Layouts





This was based on a totally wrong idea. I planned to write each Vietnamese syllable by downwards strokes, from the initial consonant, through the vowel, to the final consonant. But there were so many things not thought well that I left it unfinished, even didn’t add any tonal mark.



I wanted a dedicated Livonian keyboard, so added its letters to this layout. And added Latvian, since Livonian is an extinct language of Latvia, and Livonian speakers are native Latvians. Adding Lithuanian, Estonian and Polish turned it into a Baltic layout. Of course, the same could be achieved by a few modifier keys (all of these letters can be obtained on the main layout, too), but here I wanted a different approach.

Version 73, 15th April, 2021


I’ve increased the number of buttons per row, being satisfied with smaller buttons. Now I have 15 in every odd row, 14 in every even row, and there’s four of both, so 4×15+4×14=116 places, of which two are covered by the decoration – actually, the one right to button è would be simply usable if I didn’t want the decoration, and the half button right to button would be also usable if the toolbar of the Back Button app wasn’t be there. But 114 buttons on the main layout is a good number. And now we have six sticky buttons with 12 additional characters on it, plus the joystick button has 7 functions, so, we can count with, actually, 114+6×12+7=193 functions.
  The following changes were made:

  • The layout is now 28 half columns wide, and thus I have 27 memory buttons:
    • 10 fixed ones, on the screenshot, titled ÀLAN, Ḱïyṙe, ō, ȳ, ẅ, õ, è, ò, ḩ, à
    • 17 paging ones: 11 on the top row, rainbow colored, and on the upper right part, three titled MEM and those titled ≅, ń, ṙ
  • the hair space button (titled ) is moved down to the fourth row and became a sticky button with characters €©^~·×÷●°²³
  • the Caps button was redesigned to wear red, yellow and green traffic lights inside the arrow, since it can be painted red, yellow or green itself

Being there six sets of the 17 paging buttons, this counts as 102 buttons alone. To add it to the number previously calculated, we add 193+5×17 since one set of them was already accounted for, so, it’s 278 functions on the main layout alone.


And this brings up the thought: what if I make the main central part also changeable, with another set of paging buttons? This can give way to other scripts, 46 buttons are enough for Cyrillic (my layout has now got 50 letters and 6 modifiers, so if one button becomes a sticky one it’s more than enough) or even Arabic (28 letters and some punctuation).
  The only problem with that is if I want to keep the paging memory buttons, it means I need a separate layout for each combination of a language layout and a memory bank. So, six memory banks with, say, four language layouts means 24 layouts, and each one must be furnitured separately. But well, I’m great in text processing.




  Szóval igazán jó volt az az ötlet, hogy a sómirokat jelző színkockákon egy vagy két színnel jelöljük a világokat, csak egy baj van vele. Még csak negyvennégy világ szolgált helyszínünkül, de már vannak gondok azzal, hogy hogyan találok meg egyet a sokaságban. Mellékelek egy részletet a sómirtérképből:
  Tessék megkeresni rajta Dzsort: világoskék–homoksárga. Megsúgom, nem lesz meg, mert ez a teljes térképnek csak a harmadrésze, és pont nem ezen a részen van. Folyton így jártam, sehogy se találtam egyes kevésbé fontos világokat, csakhogy itt minden fontos, az is, ami nem annyira fontos. Ezért átalakítottam a színeket; a képeken már az új színek láthatók. Csoportokra osztottam a világokat, aszerint, hogy mely kontextusban fordulnak elő először. A mutatott részlet például Tuolrével kezdődik, aztán jön Áhanin és Antaur, ezeknek mind piros-narancs-bordó a bal felső sarka. Egy másik csoport a sárga sarkúak, a fehérek, a világoskékek stb. Ezek összetartoznak a cselekmény szempontjából, így könnyebb őket megtalálni. Ha mondjuk Hirenget keresem, a jelmagyarázat azt mondja, hogy lila–homokszínű, tehát a lila csoportba tartozik. Ezek az nf–nh fejezetekben vannak, ott látom a sok lila színt, csak ebben a szakaszban kell körülnéznem.



Facebook Spambot Declination

A few weeks ago I took the responsibility again to be one of the admins at Omniglot’s Facebook group, being it swarmed by spambots posting offtopic videos. Now, here are some of my experiences.
  Before I joined the team of admins, there were three questions introduced for newcomers. I replaced the first one with another one. Well, this measure was totally useless. It doesn’t count what do you ask. Only two things count. 1. The questions should be something that can’t be answered by a yes or OK or I agree. 2. Be serious. If someone didn’t answer your questions, decline them.
  Bots are completely dumb. They cannot interpret any question. Hoping they’ll never be taught to. They have a set of answers ready-made, they paste one of them to each question, that’s all. Their answers follow very simple patterns:
  a) admins set rules that they must accept;
  b) they ask the admin to accept them;
  c) they love the group and/or a member.
  Some of their answers, with the original spelling (note the weird use of uppercase and sometimes a space before the exclamation point):

Please let me join the group thank you
ple confirm
Love you all Group!
I like that groupMember in group very fun
yes i agree
I agree. Thanks
Pls confirm me. Thank
Okay sir
Ok admin
I want join Group
I will seriously abide !
Yes i do
thank you
ok man
yes !
I understand. Thanks
Yes I Know
Please let me join the group, thank you
Yes Bro
I really like this place
I live in australia

The list is far from exhaustive, and criminals can any replace these strings with different ones, but one thing won’t change for a while yet: spambots cannot answer.
  Of course they have another choice: giving no answer at all. In this case, I decline them as well. Sometimes it happens that a rejected user returns in a short while and fills in real answers: these are real humans who wanted who join but didn’t take the questions seriously for the first attempt. Seeing how dumb spambots are, I’m approving anyone with at least one real answer (some fill only one answer and let the other two empty, telling everything they consider necessary in the first row).



↞korábbi cikkek

A blog mérete: 1879 cikk, 8 943 782 betű, 1 800 959 szó