Skip to content
WM KeyboardWM Keyboard
Accessibility

Rows & bars

The symbol row, row ordering, and editable symbol sets.

The Rows & bars screen controls the strip of rows that can stack above the key grid: turning the symbol row on, reordering the rows, and editing which characters each symbol set offers. This page is the field reference; for the reasoning behind each option, read Modes & the symbol row instead.

Screenshot pending
The Rows & bars screen: Symbol row, Row order, and Symbol sets groups.
WM KeyboardRows & bars

The screen has three groups, top to bottom: Symbol row, Row order, and Symbol sets.

WM KeyboardRows & barsSymbol row
SettingControlDefault
Symbol rowToggleOff

A single toggle. Its info button explains what it does: the row shows one symbol set at a time, and a chip at the row’s left edge switches between whichever sets you’ve enabled; a keyboard mode can also pick a set automatically per app. See The symbol row for how the row behaves once it’s on.

Two things about the row have no setting behind them, so they’re worth saying here rather than leaving you to look for a control that isn’t there:

  • Its height is a fixed 40 dp. The number row has its own Number row height slider (32–100 dp, default 42 dp) on Layout & size; the symbol row doesn’t, on this screen or any other.
  • It takes itself off screen while the Symbols panel is open, and while any panel running full-bleed has claimed the strip above the keys. A row of symbols on top of a panel of symbols is just noise. The height it gives up goes to the panel rather than shrinking the window, so nothing jumps as the panel opens or closes, and the row comes straight back when you close it.
WM KeyboardRows & barsRow order
RowReorderableLive status shown here
Emoji rowYesOff (enable it in Emoji settings) / Behind a toolbar button / Own row, depending on Emoji settings’ Emoji row
Suggestions & toolbarNo (always shown)Always shown
Symbol rowYesOn / Off, depending on the Symbol row toggle above

Default order: Emoji row, Suggestions & toolbar, Symbol row. Each row’s status line is read-only here: the emoji row’s is driven by the Emoji row setting on the Emoji screen, and the symbol row’s by the toggle above; this list only controls the stacking order, not whether a row shows. The toolbar has no up/down buttons of its own since it’s always on, but a tap on the emoji or symbol row’s arrow swaps it with whichever row is in the neighboring slot (including the toolbar), so it still moves when a swap lands next to it. A hidden row keeps its slot empty rather than collapsing the stack; turning it back on doesn’t change where it lands.

WM KeyboardRows & barsSymbol sets

One row per set, built-in sets first in their shipped order, then any custom sets you’ve created. Each row has a checkbox (enabled in the row’s picker or not), the set’s name and a preview of its first characters, and an edit icon.

SetCharacters / snippetsEnabled by default
Email@ @gmail.com @outlook.com @yahoo.com @icloud.com @hotmail.com @proton.me .com _ - .Yes
Webhttps:// www. .com .org .net .io / : ? & = # - _ ~Yes
Coding{ } ( ) [ ] < > ; : = ! & | * / \ " ' ` -> => == != # $ % ^ _ + - and a tabYes
Math± × ÷ π ° ² ³ ½ ¼ ¾ % Δ μYes
Punctuation · « » ¡ ¿ § © ® Yes

All five ship enabled, and Punctuation is the set the row’s picker opens on the first time you use it. Unchecking a set’s box removes it from the row’s picker; the app won’t let the last checked box go to zero, so at least one set always stays available. There are no custom sets by default. New symbol set at the bottom of the group adds one from scratch.

Screenshot pending
The Symbol sets group, with the edit icon open on Coding.

Tapping a set’s edit icon opens Edit symbol set, with two fields:

FieldControl
NameSingle-line text
Characters & snippetsMulti-line text, space-separated

Save splits the characters field on whitespace, so a multi-character snippet like https:// counts as one entry the same as a single character; Save stays disabled until that field has something in it. Editing a built-in set doesn’t overwrite the shipped version: it stores your edit as a custom entry under the same ID, so anything already pointing at that set (a keyboard mode’s pinned sets, the row’s own picker) keeps working, and the button in the bottom-left corner reads Reset set instead of Delete set, restoring the shipped characters. A set you created from scratch shows Delete set in the same spot instead, which removes it outright, drops it from the row’s enabled sets, and clears it from any keyboard mode that had it pinned. A built-in set you’ve never edited shows no button there at all; there’s nothing yet to reset.

  • Row order only orders: it doesn’t enable. The emoji row’s line in Row order is a live read-out of the Emoji screen’s own setting, not something you can flip from here; the symbol row’s line mirrors the toggle at the top of this screen the same way.
  • Reordering is adjacent-swap, not drag. Unlike the reorderable lists elsewhere in settings, the up/down arrows here trade the tapped row with whichever row currently sits next to it. There’s no drag handle on this screen.
  • A hidden row keeps its slot. Turning the emoji or symbol row back on after hiding it drops it back into the same position in the stack, not the top or bottom.
  • You can’t uncheck the last enabled symbol set. The checkbox for the only remaining checked set silently does nothing when tapped: there’s no error message, it just won’t go to zero.
  • Editing a built-in set is non-destructive. The edit is stored as an override under the built-in’s own ID; nothing else needs to be told about it, and Reset set removes the override cleanly.
  • Leaving Name blank on save doesn’t leave the set unnamed. It falls back to the built-in’s own name when you’re editing a shipped set, or “My set” for a brand-new one.
  • Saving a set also enables it. If the set you just saved or created wasn’t already checked in the picker, saving checks it for you so it shows up in the row right away.
  • symbolRowActiveSetId isn’t a row on this screen. It’s the ID of whichever set the row’s picker chip currently shows, and it’s runtime state: it defaults to Punctuation and isn’t editable from Rows & bars directly. Picking a set from the row on the keyboard updates it, unless the active keyboard mode pins its own symbol sets, in which case the pick is session-only and doesn’t overwrite this global value.
  • No edition differences. The symbol row, row order, and symbol sets all work identically on the full and lite builds.
  • Modes & the symbol row — the why behind these settings: how the symbol row’s picker chip works, what “hidden rows keep their slot” means in practice, and how a keyboard mode can override the symbol row per app.
  • Emoji settings — the Emoji row setting that Row order displays but doesn’t control.
  • Keyboard modes — where a mode pins its own symbol row state and symbol sets, on top of the global settings documented here.