diff --git a/README.md b/README.md index c834a94..f3c788e 100644 --- a/README.md +++ b/README.md @@ -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