Input methods: Difference between revisions
(Moved diacritics to come after the "◌") |
(Updated layout) |
||
Line 273: | Line 273: | ||
` 1 2 3 4 5 6 7 8 9 0 - = | ` 1 2 3 4 5 6 7 8 9 0 - = | ||
{{derani| | {{derani| ◌ ◌◌ ◌ ◌ }} « » \ | ||
{{derani| | {{derani| }} | ||
{{derani| | {{derani| }} | ||
'''Shifted''' | '''Shifted''' | ||
Line 285: | Line 285: | ||
X X X X X X X X X X ‹ › | | X X X X X X X X X X ‹ › | | ||
X X X X X X X X X {{derani|◌◌ }} | |||
X X X X X X X {{derani| | X X X X X X X {{derani| }} | ||
Some punctuation whose keys were taken over have been put under AltGr. | Some punctuation whose keys were taken over have been put under AltGr. | ||
Line 297: | Line 297: | ||
name[Group1]= "Toaqzu (Deranı)"; | name[Group1]= "Toaqzu (Deranı)"; | ||
key <TLDE> { [ grave, asciitilde ] }; | key <TLDE> { [ grave, asciitilde ] }; | ||
key <AE01> { [ 1, exclam | key <AE01> { [ 1, exclam ] }; | ||
key <AE02> { [ 2, at ] }; | key <AE02> { [ 2, at ] }; | ||
key <AE03> { [ 3, numbersign ] }; | key <AE03> { [ 3, numbersign ] }; | ||
key <AE04> { [ 4, dollar | key <AE04> { [ 4, dollar ] }; | ||
key <AE05> { [ 5, percent | key <AE05> { [ 5, percent ] }; | ||
key <AE06> { [ 6, asciicircum ] }; | key <AE06> { [ 6, asciicircum ] }; | ||
key <AE07> { [ 7, ampersand ] }; | key <AE07> { [ 7, ampersand ] }; | ||
key <AE08> { [ 8, asterisk ] }; | key <AE08> { [ 8, asterisk ] }; | ||
key <AE09> { [ 9, parenleft ] }; | key <AE09> { [ 9, parenleft ] }; | ||
key <AE10> { [ 0, parenright ] }; | key <AE10> { [ 0, parenright ] }; | ||
key <AE11> { [ minus, underscore, endash, emdash ] }; | key <AE11> { [ minus, underscore, endash, emdash ] }; | ||
key <AE12> { [ equal, plus ] }; | key <AE12> { [ equal, plus ] }; | ||
key <AD01> { [ | key <AD01> { [ UEDC2 ] }; // Q | ||
key <AD02> { [ | key <AD02> { [ UEDC1 ] }; // Ꝡ | ||
key <AD03> { [ | key <AD03> { [ UEDD0 ] }; // 2nd tone | ||
key <AD04> { [ | key <AD04> { [ UEDBB ] }; // R | ||
key <AD05> { [ | key <AD05> { [ UEDB7 ] }; // T | ||
key <AD06> { [ | key <AD06> { [ UEDD4 ] }; // diphthong | ||
key <AD07> { [ | key <AD07> { [ UEDD1 ] }; // 3rd tone | ||
key <AD08> { [ | key <AD08> { [ UEDBD ] }; // NH | ||
key <AD09> { [ | key <AD09> { [ UEDD2 ] }; // 4th tone | ||
key <AD10> { [ | key <AD10> { [ UEDB3 ] }; // P | ||
key <AD11> { [ guillemotleft, U2039, bracketleft, braceleft ] }; | key <AD11> { [ guillemotleft, U2039, bracketleft, braceleft ] }; | ||
key <AD12> { [ guillemotright, U203A, bracketright, braceright ] }; | key <AD12> { [ guillemotright, U203A, bracketright, braceright ] }; | ||
key <AC01> { [ | key <AC01> { [ UEDC5 ] }; // ' | ||
key <AC02> { [ | key <AC02> { [ UEDBA ] }; // S | ||
key <AC03> { [ | key <AC03> { [ UEDB6 ] }; // D | ||
key <AC04> { [ | key <AC04> { [ UEDB4 ] }; // F | ||
key <AC05> { [ | key <AC05> { [ UEDC3 ] }; // G | ||
key <AC06> { [ | key <AC06> { [ UEDC6 ] }; // H | ||
key <AC07> { [ | key <AC07> { [ UEDBE ] }; // J | ||
key <AC08> { [ | key <AC08> { [ UEDC4 ] }; // K | ||
key <AC09> { [ | key <AC09> { [ UEDBC ] }; // L | ||
key <AC10> { [ | key <AC10> { [ UEDE6, UEDD3, semicolon, colon ] }; // cartouche start | hiatus mark | ||
key <AC11> { [ | key <AC11> { [ UEDE7, UEDE8, apostrophe, quotedbl ] }; // cartouche end | null variable | ||
key <AB01> { [ | key <AB01> { [ UEDB8 ] }; // Z | ||
key <AB02> { [ | key <AB02> { [ UEDC0 ] }; // SH | ||
key <AB03> { [ | key <AB03> { [ UEDB9 ] }; // C | ||
key <AB04> { [ | key <AB04> { [ UEDBF ] }; // CH | ||
key <AB05> { [ | key <AB05> { [ UEDB2 ] }; // B | ||
key <AB06> { [ | key <AB06> { [ UEDB5 ] }; // N | ||
key <AB07> { [ UEDB0 ] }; // M | key <AB07> { [ UEDB0, UEDB1 ] }; // M | M coda | ||
key <AB08> { [ | key <AB08> { [ UEDE2, UEDE0, comma, less ] }; // subordination mark | prefix mark | ||
key <AB09> { [ | key <AB09> { [ UEDE3, UEDE1, period, greater ] }; // declarative full stop | quotation mark | ||
key <AB10> { [ | key <AB10> { [ UEDE4, UEDE5, slash, question ] }; // other full stop | question mark | ||
key <BKSL> { [ backslash, bar] }; | key <BKSL> { [ backslash, bar] }; | ||
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] }; | key <SPCE> { [ space, space, nobreakspace, nobreakspace ] }; | ||
include "level3(ralt_switch)" | include "level3(ralt_switch)" | ||
}; | }; | ||
</pre> | </pre> | ||
Revision as of 03:40, 17 December 2022
Toaq's Latin writing system features many letter with diacritics, which are tricky to type on a standard keyboard configured for English. Here are some solutions.
Desktop computers
Compose key
You can set up a compose key on your computer, which will change the behavior of one of the keys on your keyboard to "compose" the next two keypresses into one character — for example CapsLock ? a becomes ả.
On Linux, this might not even involve installing anything! Look for "compose key" plus your distro name.
On Windows, WinCompose is pretty good.
Here's how to type Toaq-specific characters in the default ruleset. Unfortunately, Ꝡ is not on there by default and you will have to add it yourself.
Character | Combo |
---|---|
' + vowel | |
" + vowel | |
^ + vowel | |
dotless i (ı) | . + i |
left quote («) | < + < |
right quote (») | > + > |
Kaıchuo
This is a little tool by User:Lynn that runs in your browser, available here. You type something like Kiai ji kato/ da and it turns it into Kıaı jí káto da. (Wow! It knows jí is a pronoun and automatically adds .)
vim
Copy the contents below into a file called toaq.vim
inside a folder named keymap
in your .vim
directory (create it if it doesn’t exist). Then, in insert mode, you may use any of the two-keystroke “combinations” and have them replaced with accented letters on the fly. (See :help mbyte-keymap
for more detailed information.)
Toaq vim keymap
" toaq keymap " by uakci on 2022-06-23 scriptencoding utf8 let b:keymap_name = "toaq" loadkeymap .i i i ı // / '' ' \"\" \" :: : ?? ? ^^ ^ `` ` \\\\ \\ ~~ ~ .. . .< « .> » .{ ‹ .} › ./ ́ .' ́ ." ̈ .: ̈ .? ̉ .^ ̂ .` ̀ .\ ̀ .~ ̃ /A Á /U Ú /I Í /O Ó /E É /Y Ý /a á /u ú /i í /o ó /e é /y ý 'A Á 'U Ú 'I Í 'O Ó 'E É 'Y Ý 'a á 'u ú 'i í 'o ó 'e é 'y ý \"A Ä \"U Ü \"I Ï \"O Ö \"E Ë \"Y Ÿ \"a ä \"u ü \"i ï \"o ö \"e ë \"y ÿ :A Ä :U Ü :I Ï :O Ö :E Ë :Y Ÿ :a ä :u ü :i ï :o ö :e ë :y ÿ ?A Ả ?U Ủ ?I Ỉ ?O Ỏ ?E Ẻ ?Y Ỷ ?a ả ?u ủ ?i ỉ ?o ỏ ?e ẻ ?y ỷ ^A Â ^U Û ^I Î ^O Ô ^E Ê ^Y Ŷ ^a â ^u û ^i î ^o ô ^e ê ^y ŷ `A À `U Ù `I Ì `O Ò `E È `Y Ỳ `a à `u ù `i ì `o ò `e è `y ỳ \\A À \\U Ù \\I Ì \\O Ò \\E È \\Y Ỳ \\a à \\u ù \\i ì \\o ò \\e è \\y ỳ ~A Ã ~U Ũ ~I Ĩ ~O Õ ~E Ẽ ~Y Ỹ ~a ã ~u ũ ~i ĩ ~o õ ~e ẽ ~y ỹ
Alternatively, for sporadic usage, you can enter Toaq characters using Ctrl+K followed by two keys: (see :help digraph
)
Character | Combo |
---|---|
Ctrl+K vowel ' | |
Ctrl+K vowel : | |
Ctrl+K vowel 2 | |
Ctrl+K vowel > | |
Ctrl+K vowel ` | |
Ctrl+K vowel ? | |
dotless i (ı) | Ctrl+K . i |
left quote («) | Ctrl+K < < |
right quote (») | Ctrl+K > > |
AutoHotkey
This official AutoHotkey script will convert a/ into á, etc. Oh, it's actually outdated (has the old instead of the new ).
Kanakey
User:Hoaqgio uses a custom Python script that can be found at https://github.com/toaq/kanakey. The way it works is that the script always runs in the background (you start it on login) and when you want to type Toaq, you type alt+; followed by the Toaq you want in the format of "Mai4 ji2 suq2 da.", and finally you just type ; alone. Then the script erases what you typed and replaces it with pretty Toaq. Unfortunately it has two pretty inconvenient issues, one of which is that it currently can't show an icon in the system tray to indicate whether the script is in "listening mode" or not (which means you can accidentally put it in listening mode and leave it there for a while) and the other of which is that if you have non-text data on your system clipboard at the time you try to use the script, it will simply crash. User:Hoaqgio recommends not using this unless you really have no better alternative!
US, intl. with dead keys
If you are on Linux, there is a keyboard option called "US, intl. with dead keys". The way you enter diacritics is the same as the compose key one. Unfortunately, Ꝡ is not on the layout.
Xmodmap
If you’re running X11 on a Linux machine, create a file (I suggest calling it .Xmodmap
in your home directory) with the following contents, then run xmodmap filename
to activate:
keycode 11 = 2 at 2 at dead_acute keycode 12 = 3 numbersign 3 numbersign dead_diaeresis keycode 13 = 4 dollar 4 dollar dead_hook keycode 14 = 5 percent 5 percent dead_circumflex keycode 15 = 6 asciicircum 6 asciicircum dead_grave keycode 16 = 7 ampersand 7 ampersand dead_tilde keycode 31 = i I i I idotless
- Note: You will require your keyboard layout to have a modifier key active (if at all, usually RAlt a.k.a. AltGr); to achieve this, you may run
setxkbmap us intl
to switch to the international US layout with dead keys. Also note that a layout change wipes anyxmodmap
s previously issued, so you will have to rerun thexmodmap
command. Feel free to add those two commands (in the right order!) to your.xprofile
, or whatever other file your system picks up when starting up X11. Contact uakci if you run into issues.
To use: hold RAlt and then press a digit, 2 thru 7. After releasing, press the key for your favourite vowel. This should produce a vowel with the desired precomposed tone diacritic (this is a big deal to some people). For dotless ı, use RAltI.
Variations
Bind the dead diacritic keys to s, d, f, j, k, l (for that sweet sweet ergonomic swag):
keycode 39 = s S s S dead_acute keycode 40 = d D d D dead_diaeresis keycode 41 = f F f F dead_hook keycode 44 = j J j J dead_circumflex keycode 45 = k K k K dead_grave keycode 46 = l L l L dead_tilde
Make dotless ı the default when pressing I, requiring RAltI to obtain regular dotted i (and also when composing diacritics with the mechanism described above):
keycode 31 = i I i I idotless
Phones
MultiLing O
There's a decently customizable Android custom keyboard app called MultiLing O which comes with a selection of diacritics out of the box (bar ). To use them, first type the desired letter, then hold-tap the key that says ,/AltGr
. An alternate screen should appear; without lifting your finger, slide it to the desired choice of diacritic.
Mıao's layout
OK_Layout_Begin Name:Tóaqdeota 1234567890 q[XK:ꝡw][4D:e[U+0308]éëêẹ[MC:ẹ́][MC:ẹ̈][MC:ệ]]rty[4D:u[U+0302]úüûụ[MC:ụ́][MC:ụ̈][MC:ụ̂]][4D:ıiíïî[MC:ı̣][MC:ị́][MC:ị̈][MC:ị̂]][4D:o[U+0323]óöôọ[MC:ọ́][MC:ọ̈][MC:ộ]]p [4D:a[U+0301]áäâạ[MC:ạ́][MC:ạ̈][MC:ậ]]sdfghjkl zxcvbnm !@#$%^&*() Q[XK:ꝠW][4D:E[U+0308]ÉËÊẸ[MC:Ẹ́][MC:Ẹ̈][MC:Ệ]]RTY[4D:U[U+0302]ÚÜÛỤ[MC:Ụ́][MC:Ụ̈][MC:Ụ̂]][4D:IİÍÏÎ[MC:Ị́][MC:Ị̈][MC:Ị̂]][4D:O[U+0323]ÓÖÔỌ[MC:Ọ́][MC:Ọ̈][MC:Ộ]]P [4D:A[U+0301]ÁÄÂẠ[MC:Ạ́][MC:Ạ̈][MC:Ậ]]SDFGHJKL ZXCVBNM £¥€$₹^&*()№√÷ ~`{}%_-=|+§∷‡ @[]#/\'"«»—‐– …<>!;:?‹›±., ˉˋˇ´¨˙˚¸﹐˛˘˜ˆ ―∑éə®†Ωœøπ•·¡ æß∂ðƒ©ªº∆≠℥∞¿ ʒΩ≈çþ∫ŋµ≤≥° OK_Layout_End
Other options
In general, on many phone keyboards you can long-press a vowel to get some accents, though you still won't find Ꝡ.
Deranı layouts
Mıao's layout (QWERTY-based)
Normal
` 1 2 3 4 5 6 7 8 9 0 - =
◌ ◌◌ ◌ ◌ « » \
Shifted
~ ! @ # $ % ^ & * ( ) _ +
X X X X X X X X X X ‹ › |
X X X X X X X X X ◌◌
X X X X X X X
Some punctuation whose keys were taken over have been put under AltGr.
default partial alphanumeric_keys modifier_keys xkb_symbols "derani" { name[Group1]= "Toaqzu (Deranı)"; key <TLDE> { [ grave, asciitilde ] }; key <AE01> { [ 1, exclam ] }; key <AE02> { [ 2, at ] }; key <AE03> { [ 3, numbersign ] }; key <AE04> { [ 4, dollar ] }; key <AE05> { [ 5, percent ] }; key <AE06> { [ 6, asciicircum ] }; key <AE07> { [ 7, ampersand ] }; key <AE08> { [ 8, asterisk ] }; key <AE09> { [ 9, parenleft ] }; key <AE10> { [ 0, parenright ] }; key <AE11> { [ minus, underscore, endash, emdash ] }; key <AE12> { [ equal, plus ] }; key <AD01> { [ UEDC2 ] }; // Q key <AD02> { [ UEDC1 ] }; // Ꝡ key <AD03> { [ UEDD0 ] }; // 2nd tone key <AD04> { [ UEDBB ] }; // R key <AD05> { [ UEDB7 ] }; // T key <AD06> { [ UEDD4 ] }; // diphthong key <AD07> { [ UEDD1 ] }; // 3rd tone key <AD08> { [ UEDBD ] }; // NH key <AD09> { [ UEDD2 ] }; // 4th tone key <AD10> { [ UEDB3 ] }; // P key <AD11> { [ guillemotleft, U2039, bracketleft, braceleft ] }; key <AD12> { [ guillemotright, U203A, bracketright, braceright ] }; key <AC01> { [ UEDC5 ] }; // ' key <AC02> { [ UEDBA ] }; // S key <AC03> { [ UEDB6 ] }; // D key <AC04> { [ UEDB4 ] }; // F key <AC05> { [ UEDC3 ] }; // G key <AC06> { [ UEDC6 ] }; // H key <AC07> { [ UEDBE ] }; // J key <AC08> { [ UEDC4 ] }; // K key <AC09> { [ UEDBC ] }; // L key <AC10> { [ UEDE6, UEDD3, semicolon, colon ] }; // cartouche start | hiatus mark key <AC11> { [ UEDE7, UEDE8, apostrophe, quotedbl ] }; // cartouche end | null variable key <AB01> { [ UEDB8 ] }; // Z key <AB02> { [ UEDC0 ] }; // SH key <AB03> { [ UEDB9 ] }; // C key <AB04> { [ UEDBF ] }; // CH key <AB05> { [ UEDB2 ] }; // B key <AB06> { [ UEDB5 ] }; // N key <AB07> { [ UEDB0, UEDB1 ] }; // M | M coda key <AB08> { [ UEDE2, UEDE0, comma, less ] }; // subordination mark | prefix mark key <AB09> { [ UEDE3, UEDE1, period, greater ] }; // declarative full stop | quotation mark key <AB10> { [ UEDE4, UEDE5, slash, question ] }; // other full stop | question mark key <BKSL> { [ backslash, bar] }; key <SPCE> { [ space, space, nobreakspace, nobreakspace ] }; include "level3(ralt_switch)" };
Seoqrea's layout (Workman-based)
xkb_symbols "toaq" { include "us(workman)" key <AD01> { [ UEDBC ] }; key <AD02> { [ UEDB5 ] }; key <AD03> { [ UEDBA ] }; key <AD04> { [ UEDC0 ] }; key <AD05> { [ UEDD0 ] }; key <AD06> { [ UEDBD ] }; key <AD07> { [ UEDC1 ] }; key <AD08> { [ UEDB1 ] }; key <AD09> { [ UEDB2 ] }; key <AD10> { [ UEDD4, UEDD5 ] }; key <AC01> { [ UEDC4 ] }; key <AC02> { [ UEDB9 ] }; key <AC03> { [ UEDC5 ] }; key <AC04> { [ UEDB6 ] }; key <AC05> { [ UEDD1 ] }; key <AC06> { [ UEDD2 ] }; key <AC07> { [ UEDB4 ] }; key <AC08> { [ UEDB3 ] }; key <AC09> { [ UEDC2 ] }; key <AC10> { [ UEDB8 ] }; key <AC11> { [ UEDD7, UEDD8 ] }; key <AB01> { [ UEDB7 ] }; key <AB02> { [ UEDBF ] }; key <AB03> { [ UEDB0 ] }; key <AB04> { [ UEDBE ] }; key <AB05> { [ UEDD3 ] }; key <AB06> { [ UEDC3 ] }; key <AB07> { [ UEDBB ] }; key <AB08> { [ UEDD6 ] }; key <AB09> { [ UEDDA, UEDDC ] }; key <AB10> { [ UEDDB, UEDD9 ] }; };
Sad alternatives
ASCII tone markers
You can always write the ASCII-friendly (although reader-hostile) /"^ tone markers after words like this, usefully combined with sparse tone marking:
Hio ka. Bu va" bo ji/ sa gi kaichuo rao^ ni/.
Or tone number digits 234:
Hio ka. Bu va3 bo ji2 sa gi kaichuo rao4 ni2.
And you will be understood.
Vietoaq
For a bit, a Vietnamese Telex equivalent called Vietoaq was popular, where the idea was to use consonants at the end of a syllable to represent tone.
For example, lé lë lẻ lê lè lẽ is written lep lex len let lek lef.
To make matters worse, léq lëq lẻq lêq lèq lẽq is written, by diehard Vietoaq oldbies, as leb lez lem led leg lev.
This was back when compound words used , and lē lēq were written ler lel. So, tóaqkūq became toabkul.
Eventually came Diet Vietoaq, which just puts one of pxntkf, marking the tone for the whole word, at the end of the word: tóaqkūq becomes toaqkuqp. In that sense, it is more like the "ASCII tone markers" in the previous section.
Refrain from using Vietoaq in any setting at all. If you must, please use #Kảıchuo to convert it to a reader-friendly form.