docs: the reading reaches back, and which frontends can

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-18 14:31:44 +09:00
parent 5d9a2a614e
commit cf0eba6642

View File

@@ -57,13 +57,23 @@ emoji's CLDR name and keywords in English, Korean and Japanese, and against
ASCII aliases such as `->` and `<=`. `Ctrl+H` takes the syllable being
composed as its query and composes on from it, converting a word as well as
a syllable — 한자 gives 漢字, 대한민국 gives 大韓民國 — and `Esc` gives the
syllable back. A reading is also the start of the longer words it begins,
whose conversions follow its own, so 대한 answers 大寒 first and 大韓民國
further down. A lone consonant is a reading too, and answers with the
symbol table a Korean keyboard's 한자 key has always offered: ㅁ gives ※ ○
△ ㈜, ㄴ the brackets 「」『』, ㄹ the units ℃ ㎏ , ㅇ the circled numbers
①②③. Text already committed belongs to the application and cannot be
converted.
syllable back. A word is committed a syllable at a time, so the reading
also reaches back into the text the application already holds, as far as
the dictionary knows the whole of it: type 한자 and then `Ctrl+H` and the
query is 한자, not 자, and picking 漢字 takes the 한 back. A reading is
also the start of the longer words it begins, whose conversions follow
its own, so 대한 answers 大寒 first and 大韓民國 further down. A lone
consonant is a reading too, and answers with the symbol table a Korean
keyboard's 한자 key has always offered: ㅁ gives ※ ○ △ ㈜, ㄴ the brackets
「」『』, ㄹ the units ℃ ㎏ , ㅇ the circled numbers ①②③.
Reaching back needs the application to hand over the text around its
cursor and to take some of it away again. The Wayland input method, IBus
and the GTK 3 module all can; XIM has no such request, so there the
reading is what is still being composed and nothing else, and an IBus
client that reads a key's effects only after the call returns is not
asked for its text either, since a deletion could not be ordered before
the commit.
Dead keys and Compose sequences are composed by strans itself for the
Wayland, XIM and IBus frontends, from `XCOMPOSEFILE` or the locale; the
@@ -71,12 +81,12 @@ GTK 3 module leaves them to GtkIMContextSimple.
## Preedit and candidates
| Frontend | Preedit | Candidates |
| --- | --- | --- |
| Wayland input method | inline in the client | popup |
| GTK 3 and IBus | inline in the client | popup |
| XIM PreeditCallbacks | inline through XIM callbacks | popup |
| XIM PreeditPosition, PreeditNothing | popup | popup |
| Frontend | Preedit | Candidates | Reaches back |
| --- | --- | --- | --- |
| Wayland input method | inline in the client | popup | yes |
| GTK 3 and IBus | inline in the client | popup | yes |
| XIM PreeditCallbacks | inline through XIM callbacks | popup | no |
| XIM PreeditPosition, PreeditNothing | popup | popup | no |
On Wayland the popup is a surface the compositor places at the text cursor,
flipping it above the line when there is no room below. Elsewhere it is an