# Words on the keys

> A predicted word floats over the key that would reach it; flick up to write the whole word.

URL: https://wmkeyboard.pages.dev/typing/words-on-the-keys/
Section: Typing

WM Keyboard can write a small word above the key that would carry on what you are typing. With `hel` typed, `hello` sits over the L and `help` over the P. Flick up on that key and the whole word is written.

The idea is the BlackBerry Z10's, which called it in-letter prediction; the Octopus keyboard later brought it to other phones. Nothing else on WM Keyboard's board tells you *where to go next*. The suggestion strip lists words, but you have to look away from the keys to read it.

  typing/octopus-keys — Words floating over the keys that reach them: the typed part is faded, the part still to come is in the accent colour.

## Turning it on

Typing / Suggestions / Words on the keys

It is off by default. The suggestion strip keeps working exactly as before, so this adds to it rather than replacing it.

## What appears, and where

A word always sits above the key you would press next to reach it. That one rule covers three cases:

- **Completions** carry on the word you are typing.
- **Corrections** fix it, and sit over the key where the word stops matching what you typed. They are drawn entirely in the accent colour, so a fix never looks like a continuation. Only the strongest few corrections appear: further down the list the keyboard is guessing at what you meant rather than reading what you wrote.
- **Next words** appear after a space, above their first letters, before you have typed anything at all.

Any of the three can be switched off on their own.

The typed part of a word is faded and the part still to come is in the accent colour, so you can see at a glance how much of it you have already written.

## How many

The **How many words** slider runs from 3 to 26, and starts at 6.

The words come from the same ranked list the suggestion strip draws from, in the same order, so what the strip offers is what the keys offer: one flick away instead of one look away. The keys see further down the list, because they have room for more words than the strip does.

Two words that carry on with the same letter cannot both appear, since a key normally says one word. `the`, `they` and `there` all continue with an `e`, and the list's order decides which one gets it. **Words per key**, below, is the way around that.

The number is a cap, not a quota. If only three words are worth showing, three appear and the rest of the board stays bare. Nothing is invented to fill a free key, because the words that would fill it are the ones the ranking already turned down.

A word too wide for its key is left out rather than shortened, so a busy board never becomes a row of `…`.

## Words per key

The **Words per key** stepper runs from 1 to 3, and starts at 1.

One word per key is what both of the keyboards this copies drew, and it is all a phone-sized key has room for. On a tablet the keys are tall enough for more, so a key may carry a stack: the likeliest word sits nearest the key, the next one band further away, and the third beyond that. Floating and lane placements stack upward; inside the key, the stack grows downward so it never covers the key's own letter. `the`, `they` and `there` can then all hang off the `e`.

A flick up takes the word nearest the key, the one a single-word board would have shown. A tap takes the word you touch, wherever it sits in the stack. **How many words** still caps the whole board, so a stack of three on one key is three of that total. Where a stack would reach into a word on the row above, the better-ranked word keeps its place and the other is dropped, the same rule as for two words leaning into each other on one row.

## Taking a word

Two gestures, each of which can be switched off:

- **Flick up** from the key. What counts is the direction, not the speed: up, and fairly straight.
- **Tap** the small word itself.

One press of ⌫ takes the whole thing back, word and trailing space together.

### With glide typing on

A glide also begins by dragging off a key, so the keyboard has to tell the two apart. It does that on direction alone: a stroke that goes up and goes there fairly straight takes the word, and one that leans or curves becomes a glide. A flick that misses types the letter.

The consequence: with words on the keys turned on, a glide that begins straight upward off a key that is carrying one is harder to start. That is deliberate. A board with words on its keys is a board whose owner asked for them.

**Flick sensitivity** moves the line. Each setting is a cone around straight up plus how straight the stroke has to be. Choose **Strict** if you glide a lot and find your swipes being taken as picks, and **Relaxed** if the words matter more to you than the swipes.

### During a glide

A stroke and a still finger want different things from the keys, so **While gliding** answers for the stroke and **What may appear** is left to answer for a word you type by hand. Three choices:

- **Nothing** (the default) keeps the board bare until you lift. Mid-swipe a completion cannot be taken and a correction cannot be judged, so the words are movement under a moving finger and little else. This is what most glide typists want, and it is why the setting exists: silencing the stroke used to mean switching **Completions** off, which emptied the keys while tap typing too.
- **Other readings** floats the alternatives the decoder is still holding, each above the key that would reach it. Mid-swipe you can see that carrying on to the P gives `help` where lifting now gives `hello`, and steer. Nothing else on the keyboard can show you the *way* to an alternative; the strip and the picker can only list them.
- **The next word** offers what would follow the word you are drawing, above the key it starts with. The offer is already there when the swipe ends, so you can flick it without the look and the reach that taking a next word off the strip costs, which is what makes next-word prediction usable at glide speed. The prediction follows the stroke's leading reading, so it changes as that reading changes, and at the lift it stops being a guess.

**What may appear** still applies on top: other readings carry on the word being drawn, so they are completions, and a board that forbids completions stays bare under the finger. The same goes for next words.

Whichever you choose, the board at the *lift* is unchanged. A finished glide puts the next-word offer on the keys, the same as a word finished by hand.

## Where the words sit

Three choices under **Where the words sit**:

- **Above the key** (the default) puts each word in the gap over its key, half on and half above it. The keyboard stays the same height. Words on the top row sit a little lower than the rest, wholly on the keyboard, so a tap on one never lands on the suggestion strip instead.
- **Own lane** gives every row a strip of its own, so nothing ever overlaps anything. The keyboard grows a little taller.
- **Inside the key** writes the word over the letter. Nothing can collide, but the word and the letter share a very small box.

## Word size

**Word size** scales how large the floating words are drawn, from 0.6× to 1.6× the corner hint's own size, default 1.0×. A larger word is easier to read but crowds its neighbours sooner.

## The corner hints

On most boards the word sits clear of the corner hint and the two do not collide, so **Hide the corner hint** is off by default. Turn it on if your key size or word size brings them close enough to read as one thing; a key showing a word then hides its hint for as long as the word is there, and keys with nothing to say keep theirs.

On a phonetic layout such as Avro, the corner hint is the reading of what you have typed rather than a long-press alternate, and it is never hidden.

## What it does not do yet

- **Most conversion layouts.** On Pinyin a Han word floats over the key that continues its reading, so 你好 sits over `a` once `nih` is typed. On Jianpin that is the next initial, on Double Pinyin the next key of your scheme, and on the T9 keypad the digit. After a word goes in, what the strip predicts floats over the key that starts its reading, so 世界 sits over `s` after 你好; a pick goes in with no space. With Fuzzy Pinyin on, a word found through a loose spelling floats too: 是 and its longer words count `si` as `shi`. Japanese and the other conversion layouts don't float yet. With English under **Also suggest from**, the strip's English words float on all of those that read the letter keys, behind any Han word on the same key.
- **Phonetic layouts.** On Avro and the other transliterating layouts the keyboard's suggestions are readings of what you have already typed rather than words longer than it, so there is no next key to hang anything on. This needs a roman-side word list before it can work, and it is not built yet.
- **Long-press characters.** By default a word only appears when a plain press of the key would write its next character. **Long-press characters too** lifts that, at the cost of some keys offering a word a press alone will not finish. On an English QWERTY board this changes nothing you'll see: the characters behind a hold there are digits and accented vowels, and no English word needs one. It's for a word like *café* or *für* on a board that keeps its accents behind a hold.

## With a screen reader

Hovering a key speaks its letter and then what it is offering: "L, suggests hello". An **Insert hello** action on the same key writes the word. Activating the key itself still types the letter, as it always does.

## Power saving

Power saving turns this off. It predicts and redraws across the whole board on every keystroke, which is the kind of work a low battery wants back, and the suggestion strip is still saying the same thing while it is gone. Unlike power saving's other switches, this one has no toggle of its own: whenever power saving is in force, the floating words stay off. See [Power saving](https://wmkeyboard.pages.dev/typing/power-saving/#what-gets-dropped).
