Selection actions
Select text and the keyboard offers what to do with it: edit it, reformat it, convert it, look it up, or hand it to another app. Off by default, under Advanced.
Selecting a phone number in a chat and then dialling it usually means copying it, leaving the app, opening the dialler and pasting. The keyboard already knows what you selected, so it can offer the things that shape of text is for, and a good deal more: the everyday edits, a find and replace, line tools, case and chat formatting, conversions, and a way to hand the text to your contacts, maps or calendar.
Select 01712345678 and the bar reads Select all, Call, Message, WhatsApp, Contact, Copy, Cut, Paste, Delete, Share, Format, Find, Replace. Select a sentence and it reads Select all, Copy, Cut, Paste, Delete, Share, Format, Find, Replace, Grammar, AI, Bangla, Fancy and so on, with the actions that only make sense for what you selected (Sort on several lines, Colour on #336699, Zones on 5pm) appearing when they do.
This is off by default. It adds a bar that appears out of a gesture you already make for other reasons, so you have to ask for it.
Turning it on
Section titled “Turning it on”Turn on Selection actions. Select some text in any app. The bar appears while the selection is live and goes away when you clear it.
To switch it on and off without opening settings, add the Selection actions tool to your toolbar. One tap flips the same switch, and a message says which way it went. Text that is already selected gets its bar straight away.
What the keyboard reads
Section titled “What the keyboard reads”The keyboard reads your selection as a whole. That is the rule behind every result on this page, and it is deliberate:
01712345678is a phone number.call me on 01712345678 tomorrowis plain text. You selected the sentence, not the number in it.example.com/pageis a link.report.txtis not, becausetxtis not one of the endings a bare domain is allowed to have.- Two lines are never one thing, whatever the pieces look like on their own.
Pulling a fragment out of a longer span is a different job, and the clipboard already does it. That surface has the room to show you what it found and where it found it. This one does not, so it does not guess.
Phone numbers use the same formats as the clipboard, under Phone formats. With a format saved, a number has to match it, which is what keeps an invoice total or a row of figures from offering to dial itself. With no format saved, the plain shape rules apply.
On top of that reading, a few actions look at what the text holds: whether it has several lines, Bengali or Latin letters, digits in another script, a colour code, a date or time, a place. Those checks are cheap, and the dearer ones (dates, places) only run while an action that needs them is switched on.
The bar
Section titled “The bar”The bar is one row of chips that scrolls sideways, in an order you control under Actions (see Options). Every action is drawn only where it applies, so the row you see is shorter than the list: Call never appears on a sentence, Sort never appears on a single line.
Two things sit outside the order. Undo is always first while there is something to undo. And the actions whose answer is a pick rather than a single result (Format on text, Fancy, Colour, Zones) open a short row of choices in place of the bar, with an arrow on the left to come back.
| Action | Appears on | Shipped |
|---|---|---|
| Undo | Anything, after the bar changed it | On |
| Select all | Anything not already the whole field | On |
| Copy, Cut, Delete, Share | Anything | On |
| Paste | Anything, while the clipboard holds text | On |
| Format | A number, link or address the rewrite would change; any text | On |
| Find | Anything, when the field could hold another copy | On |
| Replace | Anything | On |
| Sort, Unique, Number, Bullets | Two or more lines | On |
| Grammar | Text, with the Grammar tool on | On |
| AI, and the AI buttons | Text, with the AI tool on and set up | On |
| Bangla | Latin text, with Bengali among your languages | On |
| Banglish | Bengali text | On |
| Digits | Digits in another script | On |
| Colour | A colour code | On |
| Call, Message, WhatsApp | A phone number | On |
| An address | On | |
| Open | A link or an address | On |
| QR | A link, with the QR generator on | On |
| Contact | A phone number or an address | On |
| Fancy | Text | On |
| Search, Translate | Text, with those tools on | Off |
| Bold, Italic, Strike, Mono | Text, in a chat app whose syntax the keyboard knows | Off |
| JSON | A JSON object or array | Off |
| Base64, Decode | Base64 text; a percent-encoded link | Off |
| Speak | Anything | Off |
| Zones | A time | Off |
| Calendar | A date or time | Off |
| Map | Coordinates or an address | Off |
| camelCase, snake_case, kebab-case, CONSTANT_CASE | Inside Format’s case options | Off |
Every rewrite the bar makes (a case, a style, a chat marker, a grammar fix, a conversion, a replace) is remembered while the selection stays live. Undo is the first chip whenever there is one, and each tap walks one step back: lower case, then Title Case, then bold, then three taps of Undo returns the original.
The memory ends with the selection. Move it onto other text, clear it, or leave the field, and there is nothing left to put back. Before putting anything back the keyboard checks the field still reads as the last rewrite, so an edit you made in between is never overwritten. Cut and Delete take the selection away and are not undone here; your editor’s own undo covers those.
Editing
Section titled “Editing”Select all selects the whole field. A long press usually selects only one word, so this is the fast way to act on everything you wrote. Copy, Cut and Paste are the editor’s own; Paste replaces the selection and only appears while the clipboard holds text. Delete removes the selection. Share opens the system chooser with the selected text.
Find and replace
Section titled “Find and replace”Find jumps to the next place the selected text appears, wrapping round to the top, and keeps it selected so the bar stays and a second tap walks on.
Replace opens a panel above the keys with two fields: what to find, already holding the selection, and what to replace it with. Tap a field and type into it; the keys go to the panel, not to the app. The current match is selected in the field itself, where you can see it, and the panel says which one of how many. Enter in the find field goes to the next match; Enter in the replace field replaces the current one.
Three toggles: Aa matches case, [ab] matches whole words only (in any script, so a Bengali word is a whole word too), and .* reads the find field as a regular expression, with $1 in the replacement standing for the first group. A pattern that is not valid says so under the toggles, and one that takes too long on the text is stopped rather than left to hang.
Replace swaps the current match and moves to the next. All replaces every match in one go, which Undo takes back in one go too. A field that does not report where its text is (a few web views) still lets you find, but not replace in place.
With two or more lines selected, four chips appear. Sort puts them in order, digits compared as numbers so item2 comes before item10; sort a list that is already in order and it turns the other way round. Unique drops repeated lines. Number puts 1., 2., 3. in front of each line, and Bullets a bullet. Both are toggles: a list that already has the prefix on every line loses it, and either one converts into the other, so a bulleted list becomes a numbered one in a tap.
Format
Section titled “Format”Format rewrites the selection in place. What it does follows what the selection is:
- A phone number is written back in your own saved format. If you keep
+880 1XXX-XXXXXX, then01712345678becomes+880 1712-345678. The separators come from the format you wrote, not from a shape the keyboard invented. With no format saved, a number that names a country code becomes E.164 (+8801712345678) and any other number becomes its bare digits. - A link loses its tracking parameters.
utm_*,fbclid,gclid,igshidand about twenty others go; everything else in the query, the path and the fragment stay exactly as they were. A link with no scheme gainshttps://. - An address is lower-cased.
- Anything else opens the case options instead.
The Format chip is left off when the rewrite would change nothing. A number already in your format, or a link with nothing to strip, does not get a button that does nothing.
Case options
Section titled “Case options”On ordinary text, Format opens a row of chips in place of the bar: lower case, Title Case, UPPER CASE and Sentence case, plus, when you switch them on under Actions, the programmer’s cases camelCase, snake_case, kebab-case and CONSTANT_CASE. Those four read their input in any convention, so Hello World, hello_world and helloWorld all mean the same two words. The arrow on the left goes back to the actions.
Each one rewrites the selection and leaves the result selected, so you can try Title, then Sentence, then UPPER without reselecting between taps.
Title case and Sentence case leave a word that is already all capitals alone, so an acronym in the middle of a sentence survives. the NASA launch becomes The NASA Launch, not The Nasa Launch. That rule is suspended when the whole selection is capitals, because somebody selecting HELLO THERE and reaching for Title case is fixing shouting, not protecting acronyms.
Fancy opens the Fancy Text styles, each chip written in itself, and restyles the selection in the one you pick.
Chat formatting
Section titled “Chat formatting”Bold, Italic, Strike and Mono wrap the selection in the markers the app you are typing in understands, and a second tap takes them off again. They only appear in apps whose syntax the keyboard knows, because markers an app does not read arrive as punctuation:
| Apps | Bold | Italic | Strike | Mono |
|---|---|---|---|---|
| WhatsApp, Viber | *text* | _text_ | ~text~ | ```text``` |
| Slack, Google Chat, Messenger, Rocket.Chat | *text* | _text_ | ~text~ | `text` |
| Threema | *text* | _text_ | ~text~ | none |
| Telegram | **text** | __text__ | ~~text~~ | `text` |
| Discord, Element, Beeper, Reddit, Mattermost, Zulip, GitHub | **text** | *text* | ~~text~~ | `text` |
Mono on several lines uses the app’s fenced block where it has one. These four are off to start with; find them under Actions.
Convert
Section titled “Convert”- Digits turns figures in another script into
0to9:০১৭১২becomes01712, and Devanagari, Arabic-Indic or Persian figures the same. - Colour appears on a colour code (
#336699,#f00,0xFF336699,rgb(51, 102, 153),hsl(210, 50%, 40%)), wears a swatch of the colour, and opens its other spellings; tap one to write it in place. - JSON pretty-prints a minified object or array with two-space indents, or minifies a pretty one. Key order and number literals survive either way.
- Base64 decodes Base64 text, and Decode a percent-encoded link (
hello%20worldtohello world). Both are careful about what counts: an ordinary word is never mistaken for Base64, and50% offis not encoded.
Language
Section titled “Language”- Bangla turns Banglish into Bengali script, word by word: the spelling map first (
tmrto তোমার), then the same phonetic reading the suggestion strip uses, which is what letsasi,achiandachhiall land on আছি, and only then a literal transliteration. Digits and punctuation stay as they were. It appears on Latin text while Bengali is one of your languages. - Banglish goes the other way, writing Bengali script back in Latin letters by pronunciation (তোমার to
tomar, ধন্যবাদ todhonnobad, কী toki), with the most readable spelling from the map for words it knows. - Grammar runs the Grammar checker over the selection alone and commits every suggestion at once, offline. It shows a spinner while it works and says so when there is nothing to fix.
- AI opens the AI tool on the selection. Under AI buttons you can give any AI action a chip of its own (Formal, Shorter, Friendly and Summarize are made for it): one tap runs it on the selection and the result lands in the AI panel, ready to apply. Applying replaces the selection, not the field around it.
- Translate sends the selection to the translate tool.
Look up
Section titled “Look up”Search opens the web search tool with the selection as the query. Speak reads the selection aloud with the phone’s speech engine (in Bengali for Bengali text) and turns into Stop while it does. Zones appears on a time and shows it in each of the zones you picked under Time zones, UTC and your own to start with; tap one to write it in place of the selection.
Open in
Section titled “Open in”Call and Message open your dialler and your messaging app with the number filled in. WhatsApp opens a chat with that number. Contact adds the number or address to your contacts. Open hands a link to your browser, and an address to your mail app. Email writes a new message to the selected address. QR opens the QR generator with the link already in it. Map opens coordinates (23.8103, 90.4125) or something that looks like a street address in your maps app. Calendar adds a selected date or time (14 Sep 2026, tomorrow 5pm, ১৪ সেপ্টেম্বর) as an event.
None of these send anything anywhere themselves: each hands the text to an app you picked and stops.
Where the bar draws
Section titled “Where the bar draws”Own row is the default. The bar gets a row of its own above the keys, which arrives with the selection and leaves with it. The keyboard is one row taller while it is there. That row is reorderable like any other under Rows & bars, so you can put it above or below the suggestion strip.
Suggestion strip puts the actions over the strip instead, which costs no height at all. There are no word suggestions to show while text is selected, so the strip has nothing to give up. With a panel open the strip goes back to the toolbar, because the arrow on that row is how you get out of the panel.
Options
Section titled “Options”| Setting | Control | Default |
|---|---|---|
| Selection actions | Toggle | Off |
| Where it appears | Choice of 2 | Own row |
| Read what is selected | Toggle | On |
| Actions | Screen | 28 of 45 on |
| AI buttons | Screen | None |
| Time zones | Screen | UTC and your own |
Read what is selected is the entity half of the feature. Turn it off and every selection is read as plain text: you keep the edits, the case options and the conversions, and lose Call, Email, Open, QR and Contact. It is worth turning off if you find the guesses wrong more often than right, since the generic half is the half that always applies.
Actions is the list of everything the bar can offer, grouped, searchable, each with its own switch, and with a pencil that lets you drag the actions that are on into the order you want. The full list is on the settings reference.
Details and edge cases
Section titled “Details and edge cases”- The bar never appears over a password field. Putting a password in front of a Share chooser is exactly the mistake this feature should not make.
- An action is only offered when it can work. WhatsApp is hidden when WhatsApp is not installed. Search, Translate, QR, Grammar and AI are hidden when their tools are switched off, which includes the tools that power saving and the lock screen have already taken away, and AI is hidden until a provider is set up.
- Nothing is stored and nothing is sent by the keyboard. Every action either edits the field you are already in, or hands the text to an app you picked. Grammar and the Bengali conversions run on the device.
- Before your first unlock, only the actions that touch the current field survive: the edits, the rewrites and Find. Paste needs a clipboard that is still locked, Speak needs a speech engine, and everything under Open in would have to start another app.
- A very long selection gets no bar. Past about 4,000 characters you have selected a document rather than a fragment, and the toolbar’s own Copy tool is the better answer.
- The bar follows the selection, not the caret. Extending a selection with selection mode or a trackpad drag re-reads it as you go, so the actions change under your finger as the selection grows into a whole phone number.
- This version resets the list of actions once. The list grew from thirteen actions to forty-five, and the shipped choices replace whatever you had picked before, so the new actions are there. Anything you switch off after that stays off.
