Input methods: Difference between revisions
No edit summary |
(Link to MultiLing O) |
||
(67 intermediate revisions by 6 users not shown) | |||
Line 3: | Line 3: | ||
== Desktop computers == | == Desktop computers == | ||
=== Compose key === | === Compose key === | ||
You can set up a [https://en.wikipedia.org/wiki/Compose_key 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 | You can set up a [https://en.wikipedia.org/wiki/Compose_key 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 {{Key|CapsLock}} {{Key|'}} {{Key|a}} becomes {{t|á}}. See [[Compose key]] for more information. | ||
=== Kaıchuo === | |||
This is a little tool originally by [[User:Lynn]] that runs in your browser [https://toaq.net/kaichuo/ here]. You type something like {{Key|Kiai ji kato/ da}} (alternatively, {{Key|kato2}}) and it turns it into {{t|Kıaı jí káto da}}. (Wow! It knows {{t|jí}} is a pronoun and automatically adds {{Done|2}}.) The underdot ◌̣ is typed with a hyphen and {{t|Ꝡ}} with "V". | |||
=== vim === | |||
See [[Vim input]]. | |||
=== AutoHotkey (Windows) === | |||
Only the first paragraph of the following script is strictly necessary. The rest are just useful shortcuts. | |||
To use, install [https://www.autohotkey.com/ AutoHotkey], copy the script to a text editor and save it as toaq.ahk, then double-click the file you saved. | |||
{{collapsible|toaq.ahk|<pre style="height:300px">; Basic layout | |||
:?*:vy::ꝡ | |||
:?*:a2::á | |||
:?*:a3::ä | |||
:?*:a4::â | |||
:?*:e2::é | |||
:?*:e3::ë | |||
:?*:e4::ê | |||
:?*:ii::ı | |||
:?*:i1::ı | |||
:?*:i2::í | |||
:?*:i3::ï | |||
:?*:i4::î | |||
:?*:o2::ó | |||
:?*:o3::ö | |||
:?*:o4::ô | |||
:?*:u2::ú | |||
:?*:u3::ü | |||
:?*:u4::û | |||
:?*:!!::̣ | |||
:?*:<<::« | |||
:?*:>>::» | |||
:?*:.<::‹ | |||
:?*:.>::› | |||
; Pronouns | |||
::ji::jí | |||
::suq::súq | |||
::nhao::nháo | |||
::umo::úmo | |||
::ime::íme | |||
::ama::áma | |||
::suna::súna | |||
::suho::súho | |||
::nhana::nhána | |||
::ho::hó | |||
::maq::máq | |||
::hoq::hóq | |||
::ta::tá | |||
::aq::áq | |||
::cheq::chéq | |||
::hoa::hóa | |||
::ha::há | |||
; Determiners | |||
::sa::sá | |||
::tu::tú | |||
::tuq::túq | |||
::sia::sía | |||
::ni::ní | |||
::baq::báq | |||
::hi::hí | |||
::hu::hú | |||
::ke::ké | |||
::ja::já | |||
; Usually in T2 | |||
::moq::móq | |||
::hoi::hóı | |||
; Always in T3 | |||
::ju::jü | |||
::la::lä | |||
::na::nä | |||
::kio::kïo | |||
; vy-related shortcuts | |||
::va::ꝡä | |||
::ve::ꝡë | |||
::vo::ꝡo | |||
</pre>}} | |||
=== 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, {{t|Ꝡ}} is not on the layout. | |||
=== XKB === | |||
Note that this requires editing a few other files, so remember to ''make backups of files you change''. Follow the format in the files in /usr/share/X11/xkb/rules/: base.lst, base.xml, evdev.lst, evdev.xml. | |||
This layout, for QWERTY keyboards, also has diacritics for Gamma and Beta. | |||
{| class="wikitable" | {| class="wikitable" | ||
! | ! ||Without underdot|| colspan="2" |With underdot | ||
|- | |||
!{{done|1}} | |||
| style="background:#ccc" | | |||
| colspan="2" |{{key|v}} {{key|vowel}} | |||
|- | |- | ||
| {{ | !{{done|2}} | ||
|{{key|'}} {{key|vowel}}|| colspan="2" |{{key|'}} {{key|v}} {{key|vowel}} | |||
|- | |- | ||
| {{ | !{{done|3}} | ||
|{{key|"}} {{key|vowel}}|| colspan="2" |{{key|"}} {{key|v}} {{key|vowel}} | |||
|- | |- | ||
| {{ | !{{done|4}} | ||
|{{key|;}} {{key|vowel}}|| colspan="2" |{{key|;}} {{key|v}} {{key|vowel}} | |||
|- | |- | ||
!{{T|Ꝡ ꝡ}} | |||
| colspan="3" |{{Key|W}}, {{Key|w}} | |||
|- | |- | ||
! colspan="2" style="text-align:center" |Old diacritics | |||
! colspan="2" |Other | |||
|- | |- | ||
| {{ | !{{tone|1}} | ||
|{{key|Shift}} {{key|x}} {{key|vowel}} | |||
!{{t|’}} | |||
|{{key|x}} | |||
|- | |- | ||
| | !{{tone|3old}} | ||
|{{key|AltGr}} {{key|\}} {{key|vowel}} | |||
!{{t|«}} | |||
|{{key|[}} | |||
|- | |- | ||
| | !{{tone|4}} | ||
|{{key|:}} {{key|vowel}} | |||
!{{t|»}} | |||
|{{key|]}} | |||
|- | |- | ||
| | !{{tone|6}} | ||
|{{key|Shift}} {{key|v}} {{key|vowel}} | |||
!{{t|‹}} | |||
|{{key|<nowiki>{</nowiki>}} | |||
|- | |||
!{{tone|7}} | |||
|{{key|AltGr}} {{key|<nowiki>|</nowiki>}} {{key|vowel}} | |||
!{{t|›}} | |||
|{{key|<nowiki>}</nowiki>}} | |||
|} | |} | ||
{{collapsible|XKB symbols file - /usr/share/X11/xkb/symbols/qtq|<pre> | |||
default partial alphanumeric_keys modifier_keys | |||
xkb_symbols "basic" { | |||
name[Group1]= "Toaqzu (Hóegua)"; | |||
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> { [ q, Q ] }; | |||
key <AD02> { type[group1] = "FOUR_LEVEL_ALPHABETIC", | |||
[ UA761, UA760, w, W ] }; | |||
key <AD03> { [ e, E ] }; | |||
key <AD04> { [ r, R ] }; | |||
key <AD05> { [ t, T ] }; | |||
key <AD06> { [ y, Y ] }; | |||
key <AD07> { [ u, U ] }; | |||
key <AD08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", | |||
[ idotless, I, i, Iabovedot ] }; | |||
key <AD09> { [ o, O ] }; | |||
key <AD10> { [ p, P ] }; | |||
key <AD11> { [ guillemotleft, U2039, bracketleft, braceleft ] }; | |||
key <AD12> { [ guillemotright, U203A, bracketright, braceright ] }; | |||
key <AC01> { [ a, A ] }; | |||
key <AC02> { [ s, S ] }; | |||
key <AC03> { [ d, D ] }; | |||
key <AC04> { [ f, F ] }; | |||
key <AC05> { [ g, G ] }; | |||
key <AC06> { [ h, H ] }; | |||
key <AC07> { [ j, J ] }; | |||
key <AC08> { [ k, K ] }; | |||
key <AC09> { [ l, L ] }; | |||
key <AC10> { [ dead_circumflex, dead_hook, semicolon, colon ] }; | |||
key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; | |||
key <AB01> { [ z, Z ] }; | |||
key <AB02> { [ rightsinglequotemark, dead_macron, x, X ] }; | |||
key <AB03> { [ c, C ] }; | |||
key <AB04> { [ dead_belowdot, dead_grave, v, V ] }; | |||
key <AB05> { [ b, B ] }; | |||
key <AB06> { [ n, N ] }; | |||
key <AB07> { [ m, M ] }; | |||
key <AB08> { [ comma, less ] }; | |||
key <AB09> { [ period, greater ] }; | |||
key <AB10> { [ slash, question ] }; | |||
key <BKSL> { [ backslash, bar, dead_caron, dead_tilde ] }; | |||
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] }; | |||
include "level3(ralt_switch)" | |||
}; | |||
</pre>}} | |||
You will also need add some Compose keys. | |||
{{collapsible|XCompose definitions|<pre> | |||
<dead_acute> <dead_belowdot> <a> :"ạ́" | |||
<dead_diaeresis> <dead_belowdot> <a> :"ạ̈" | |||
<dead_circumflex> <dead_belowdot> <a> :"ậ" | |||
<dead_acute> <dead_belowdot> <e> :"ẹ́" | |||
<dead_diaeresis> <dead_belowdot> <e> :"ẹ̈" | |||
<dead_circumflex> <dead_belowdot> <e> :"ệ" | |||
<dead_acute> <dead_belowdot> <idotless> :"ị́" | |||
<dead_diaeresis> <dead_belowdot> <idotless> :"ị̈" | |||
<dead_circumflex> <dead_belowdot> <idotless> :"ị̂" | |||
<dead_acute> <dead_belowdot> <o> :"ọ́" | |||
<dead_diaeresis> <dead_belowdot> <o> :"ọ̈" | |||
<dead_circumflex> <dead_belowdot> <o> :"ộ" | |||
<dead_acute> <dead_belowdot> <u> :"ụ́" | |||
<dead_diaeresis> <dead_belowdot> <u> :"ụ̈" | |||
<dead_circumflex> <dead_belowdot> <u> :"ụ̂" | |||
<dead_belowdot> <dead_acute> <a> :"ạ́" | |||
<dead_belowdot> <dead_diaeresis> <a> :"ạ̈" | |||
<dead_belowdot> <dead_circumflex> <a> :"ậ" | |||
<dead_belowdot> <dead_acute> <e> :"ẹ́" | |||
<dead_belowdot> <dead_diaeresis> <e> :"ẹ̈" | |||
<dead_belowdot> <dead_circumflex> <e> :"ệ" | |||
<dead_belowdot> <dead_acute> <idotless> :"ị́" | |||
<dead_belowdot> <dead_diaeresis> <idotless> :"ị̈" | |||
<dead_belowdot> <dead_circumflex> <idotless> :"ị̂" | |||
<dead_belowdot> <dead_acute> <o> :"ọ́" | |||
<dead_belowdot> <dead_diaeresis> <o> :"ọ̈" | |||
<dead_belowdot> <dead_circumflex> <o> :"ộ" | |||
<dead_belowdot> <dead_acute> <u> :"ụ́" | |||
<dead_belowdot> <dead_diaeresis> <u> :"ụ̈" | |||
<dead_belowdot> <dead_circumflex> <u> :"ụ̂" | |||
<dead_acute> <dead_belowdot> <A> :"Ạ́" | |||
<dead_diaeresis> <dead_belowdot> <A> :"Ạ̈" | |||
<dead_circumflex> <dead_belowdot> <A> :"Ậ" | |||
<dead_acute> <dead_belowdot> <E> :"Ẹ́" | |||
<dead_diaeresis> <dead_belowdot> <E> :"Ẹ̈" | |||
<dead_circumflex> <dead_belowdot> <E> :"Ệ" | |||
<dead_acute> <dead_belowdot> <I> :"Ị́" | |||
<dead_diaeresis> <dead_belowdot> <I> :"Ị̈" | |||
<dead_circumflex> <dead_belowdot> <I> :"Ị̂" | |||
<dead_acute> <dead_belowdot> <O> :"Ọ́" | |||
<dead_diaeresis> <dead_belowdot> <O> :"Ọ̈" | |||
<dead_circumflex> <dead_belowdot> <O> :"Ộ" | |||
<dead_acute> <dead_belowdot> <U> :"Ụ́" | |||
<dead_diaeresis> <dead_belowdot> <U> :"Ụ̈" | |||
<dead_circumflex> <dead_belowdot> <U> :"Ụ̂" | |||
<dead_belowdot> <dead_acute> <A> :"Ạ́" | |||
<dead_belowdot> <dead_diaeresis> <A> :"Ạ̈" | |||
<dead_belowdot> <dead_circumflex> <A> :"Ậ" | |||
<dead_belowdot> <dead_acute> <E> :"Ẹ́" | |||
<dead_belowdot> <dead_diaeresis> <E> :"Ẹ̈" | |||
<dead_belowdot> <dead_circumflex> <E> :"Ệ" | |||
<dead_belowdot> <dead_acute> <I> :"Ị́" | |||
<dead_belowdot> <dead_diaeresis> <I> :"Ị̈" | |||
<dead_belowdot> <dead_circumflex> <I> :"Ị̂" | |||
<dead_belowdot> <dead_acute> <O> :"Ọ́" | |||
<dead_belowdot> <dead_diaeresis> <O> :"Ọ̈" | |||
<dead_belowdot> <dead_circumflex> <O> :"Ộ" | |||
<dead_belowdot> <dead_acute> <U> :"Ụ́" | |||
<dead_belowdot> <dead_diaeresis> <U> :"Ụ̈" | |||
<dead_belowdot> <dead_circumflex> <U> :"Ụ̂" | |||
</pre>}} | |||
=== Xmodmap === | |||
If you’re running X11 on a Linux machine, create a file (I suggest calling it <code>.Xmodmap</code> in your home directory) with the following contents, then run <code>xmodmap <i>filename</i></code> 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_circumflex | |||
keycode 31 = i I i I idotless | |||
: <b>Note:</b> You will require your keyboard layout to have a modifier key active (if at all, usually {{key|RAlt}} a.k.a. {{key|AltGr}}); to achieve this, you may run <code>setxkbmap us intl</code> to switch to the international US layout with dead keys. Also note that a layout change wipes any <code>xmodmap</code>s previously issued, so you will have to rerun the <code>xmodmap</code> command. Feel free to add those two commands (in the right order!) to your <code>.xprofile</code>, or whatever other file your system picks up when starting up X11. Contact [[user:uakci|uakci]] if you run into issues. | |||
<b>To use:</b> hold {{key|RAlt}} and then press a digit, {{key|2}} thru {{key|4}}. 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 {{t|ı}}, use {{key|RAlt}}{{key|I}}. | |||
=== | ==== Variations ==== | ||
Bind the dead diacritic keys to {{key|s}}, {{key|d}}, {{key|f}} (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_circumflex | |||
=== | Make dotless {{t|ı}} the default when pressing {{key|I}}, requiring {{key|RAlt}}{{key|I}} to obtain regular dotted i (and also when composing diacritics with the mechanism described above): | ||
[https://github.com/toaq/ | |||
keycode 31 = i I i I idotless | |||
=== 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! | |||
=== Stenography === | |||
See [[Stenography]]. | |||
== Phones == | == Phones == | ||
In general, on many phone keyboards you can long-press a vowel to get some accents, though | === Your built-in keyboard? === | ||
In general, on many phone keyboards you can long-press a vowel to get some accents, though you still won't find {{t|Ꝡ}} or the underdot ({{key|-}} will do, though). | |||
=== MultiLing O === | |||
See [[MultiLing O]]. | |||
=== Unexpected Keyboard === | |||
Below is a [https://github.com/Julow/Unexpected-Keyboard Unexpected Keyboard] layout due to Discord user A'rely: | |||
{{collapsible|Unexpected Keyboard layout definition file|<pre> | |||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | |||
<keyboard> | |||
<row> | |||
<key key0="q" key2="1" key4="esc"/> | |||
<key key0="ꝡ" key1="~" key2="2" key3="\@"/> | |||
<key key0="e" key1="ê" key2="3" key3="ë" key4="é"/> | |||
<key key0="r" key1="loc ₪" key2="4" key3="$"/> | |||
<key key0="t" key2="5" key3="%"/> | |||
<key key0="y" key2="6" key3="^"/> | |||
<key key0="u" key1="û" key2="7" key3="ü" key4="ú"/> | |||
<key key0="ı" key1="î" key2="8" key3="í" key4="ï"/> | |||
<key key0="o" key1="ô" key2="9" key3="ó" key4="ö"/> | |||
<key key0="p" key2="0" key3="f11_placeholder" key4="f12_placeholder"/> | |||
</row> | |||
<row> | |||
<key shift="0.5" key0="a" key1="tab" key2="ä" key3="â" key4="á"/> | |||
<key key0="s" key1="loc accent_ring" key3="loc ß" key4="loc accent_ogonek"/> | |||
<key key0="d" key1="!" key2="loc £" key3="loc accent_aigu" key4="loc accent_grave"/> | |||
<key key0="f" key1="loc accent_dot_above" key4="&"/> | |||
<key key0="g" key1="loc accent_caron" key2="-" key3="_"/> | |||
<key key0="h" key1="*" key2="=" key3="+"/> | |||
<key key0="j" key1="loc accent_trema" key2="loc accent_circonflexe" key3="{" key4="}"/> | |||
<key key0="k" key1="(" key2=")" key3="[" key4="]"/> | |||
<key key0="l" key2="|" key3="\\"/> | |||
</row> | |||
<row> | |||
<key width="1.5" key0="shift" key2="loc capslock"/> | |||
<key key0="z" key2="`"/> | |||
<key key0="x" key2="\#" key4="loc €"/> | |||
<key key0="c" key1="loc accent_cedille" key2="<" key3="."/> | |||
<key key0="v" key2=">" key3=","/> | |||
<key key0="b" key2="\?" key3="/" key4="loc accent_macron"/> | |||
<key key0="n" key1="loc accent_tilde" key2=":" key3=";"/> | |||
<key key0="m" key1="loc accent_double_aigu" key2=""" key3="'"/> | |||
<key width="1.5" key0="backspace" key2="delete"/> | |||
</row> | |||
</keyboard> | |||
</pre>}} | |||
== [[Derani|Deranı]] layouts == | |||
=== Kaıchuo === | |||
[https://toaq.net/kaichuo/ Kaıchuo] also has an option for typing Derani. | |||
=== Mıao's layout (QWERTY-based) === | |||
[[File:Toaq_(QWERTY).svg]] | |||
Note that the image above is a bit outdated. The hiatus key has been moved to the semicolon key rather than the colon key and the cartouches are now both on the quotation mark key. | |||
Some punctuation whose keys were taken over have been put under AltGr. | |||
==== XKB (Linux) ==== | |||
<div class="toccolours mw-collapsible mw-collapsed" style="width:400px; overflow:auto;"> | |||
<div style="font-weight:bold;line-height:1.6;">XKB symbols file</div> | |||
<pre class="mw-collapsible-content"> | |||
default partial alphanumeric_keys modifier_keys | |||
xkb_symbols "basic" { | |||
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> { [ UF16C2 ] }; // Q | |||
key <AD02> { [ UF16C1 ] }; // Ꝡ | |||
key <AD03> { [ UF16CA ] }; // 2nd tone | |||
key <AD04> { [ UF16BB ] }; // R | |||
key <AD05> { [ UF16B7 ] }; // T | |||
key <AD06> { [ UF16CE ] }; // diphthong | |||
key <AD07> { [ UF16CB ] }; // 3rd tone | |||
key <AD08> { [ UF16BD ] }; // NH | |||
key <AD09> { [ UF16CC ] }; // 4th tone | |||
key <AD10> { [ UF16B3 ] }; // P | |||
key <AD11> { [ guillemotleft, U2039, bracketleft, braceleft ] }; | |||
key <AD12> { [ guillemotright, U203A, bracketright, braceright ] }; | |||
key <AC01> { [ UF16C5 ] }; // ' | |||
key <AC02> { [ UF16BA ] }; // S | |||
key <AC03> { [ UF16B6 ] }; // D | |||
key <AC04> { [ UF16B4 ] }; // F | |||
key <AC05> { [ UF16C3 ] }; // G | |||
key <AC06> { [ UF16C6 ] }; // H | |||
key <AC07> { [ UF16BE ] }; // J | |||
key <AC08> { [ UF16C4 ] }; // K | |||
key <AC09> { [ UF16BC ] }; // L | |||
key <AC10> { [ UF16CD, UF16DA, semicolon, colon ] }; // hiatus mark | null variable | |||
key <AC11> { [ UF16D8, UF16D9, apostrophe, quotedbl ] }; // cartouche start | cartouche end | |||
key <AB01> { [ UF16B8 ] }; // Z | |||
key <AB02> { [ UF16C0 ] }; // SH | |||
key <AB03> { [ UF16B9 ] }; // C | |||
key <AB04> { [ UF16BF ] }; // CH | |||
key <AB05> { [ UF16B2 ] }; // B | |||
key <AB06> { [ UF16B5 ] }; // N | |||
key <AB07> { [ UF16B0, UF16B1 ] }; // M | M coda | |||
key <AB08> { [ UF16D4, UF16D2, comma, less ] }; // subordination mark | prefix mark | |||
key <AB09> { [ UF16D5, UF16D3, period, greater ] }; // declarative full stop | quotation mark | |||
key <AB10> { [ UF16D6, UF16D7, slash, question ] }; // other full stop | question mark | |||
key <BKSL> { [ backslash, bar] }; | |||
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] }; | |||
include "level3(ralt_switch)" | |||
}; | |||
</pre> | |||
</div> | |||
==== Windows ==== | |||
Made with Microsoft Keyboard Layout Creator. Unzip the .zip [[:File:Toaq (QWERTY, Windows).zip|file]] and open setup.exe. You may have to restart your computer for it to show up. To uninstall, uninstall it like you would any other program. | |||
=== Loekıa's layout (Workman-based) === | |||
[[File:Toaq_(Workman).svg]] | |||
<div class="toccolours mw-collapsible mw-collapsed" style="width:400px; overflow:auto;"> | |||
<div style="font-weight:bold;line-height:1.6;">XKB symbols file</div> | |||
<pre class="mw-collapsible-content"> | |||
xkb_symbols "toaq" | |||
{ | |||
include "us(workman)" | |||
key <AD01> { [ UF16BD ] }; | |||
key <AD02> { [ UF16B6 ] }; | |||
key <AD03> { [ UF16BB ] }; | |||
key <AD04> { [ UF16CD ] }; | |||
key <AD05> { [ UF16CE ] }; | |||
key <AD06> { [ UF16BE ] }; | |||
key <AD07> { [ UF16B5 ] }; | |||
key <AD08> { [ UF16B2 ] }; | |||
key <AD09> { [ UF16B3 ] }; | |||
key <AD10> { [ UF16D8, UF16D9 ] }; | |||
key <AC01> { [ UF16BA ] }; | |||
key <AC02> { [ UF16C0 ] }; | |||
key <AC03> { [ UF16C6 ] }; | |||
key <AC04> { [ UF16B7 ] }; | |||
key <AC05> { [ UF16CA ] }; | |||
key <AC06> { [ UF16CB, UF16CC ] }; | |||
key <AC07> { [ UF16C2 ] }; | |||
key <AC08> { [ UF16B4 ] }; | |||
key <AC09> { [ UF16C3 ] }; | |||
key <AC10> { [ UF16B9 ] }; | |||
key <AC11> { [ UF16D2, UF16D3 ] }; | |||
key <AB01> { [ UF16B8 ] }; | |||
key <AB02> { [ UF16C5 ] }; | |||
key <AB03> { [ UF16B0, UF16B1 ] }; | |||
key <AB04> { [ UF16BF ] }; | |||
key <AB05> { [ UF16C1 ] }; | |||
key <AB06> { [ UF16C4 ] }; | |||
key <AB07> { [ UF16BC ] }; | |||
key <AB08> { [ UF16D4, UF16DA ] }; | |||
key <AB09> { [ UF16D5 ] }; | |||
key <AB10> { [ UF16D6, UF16D7 ] }; | |||
key <SPCE> { [ U0020, U00A0 ] }; | |||
}; | |||
</pre> | |||
</div> | |||
== Sad alternatives == | == Sad alternatives == | ||
=== ASCII tone markers === | === ASCII tone markers === | ||
You can always write the ASCII-friendly <tt>/" | You can always write the ASCII-friendly (although reader-hostile) <tt>/"^</tt> [[tone]] markers after words like this: | ||
<blockquote><tt>Hio ka. | <blockquote><tt>Hio ka. Ji/ na" bo hoa/ sia/ kaichuo gi rao^ nidaq/.</tt></blockquote> | ||
Or tone number digits <tt> | Or tone number digits <tt>234</tt>: | ||
<blockquote><tt>Hio ka. | <blockquote><tt>Hio ka. Ji2 na3 bo hoa2 sia2 kaichuo gi rao4 nidaq2.</tt></blockquote> | ||
And you will be understood. | And you will be understood. | ||
=== | == Other places to look for solutions == | ||
* Talk to us on [[Discord]]. | |||
* The documentation for Raku (Perl 6), a Unicode-heavy programming language, includes [https://docs.raku.org/language/unicode_entry copious amounts of instructions on Unicode character input]. | |||
[[Category:Input methods]] |
Revision as of 21:09, 4 November 2023
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 á. See Compose key for more information.
Kaıchuo
This is a little tool originally by User:Lynn that runs in your browser here. You type something like Kiai ji kato/ da (alternatively, kato2) and it turns it into Kıaı jí káto da. (Wow! It knows jí is a pronoun and automatically adds .) The underdot ◌̣ is typed with a hyphen and Ꝡ with "V".
vim
See Vim input.
AutoHotkey (Windows)
Only the first paragraph of the following script is strictly necessary. The rest are just useful shortcuts.
To use, install AutoHotkey, copy the script to a text editor and save it as toaq.ahk, then double-click the file you saved.
; Basic layout :?*:vy::ꝡ :?*:a2::á :?*:a3::ä :?*:a4::â :?*:e2::é :?*:e3::ë :?*:e4::ê :?*:ii::ı :?*:i1::ı :?*:i2::í :?*:i3::ï :?*:i4::î :?*:o2::ó :?*:o3::ö :?*:o4::ô :?*:u2::ú :?*:u3::ü :?*:u4::û :?*:!!::̣ :?*:<<::« :?*:>>::» :?*:.<::‹ :?*:.>::› ; Pronouns ::ji::jí ::suq::súq ::nhao::nháo ::umo::úmo ::ime::íme ::ama::áma ::suna::súna ::suho::súho ::nhana::nhána ::ho::hó ::maq::máq ::hoq::hóq ::ta::tá ::aq::áq ::cheq::chéq ::hoa::hóa ::ha::há ; Determiners ::sa::sá ::tu::tú ::tuq::túq ::sia::sía ::ni::ní ::baq::báq ::hi::hí ::hu::hú ::ke::ké ::ja::já ; Usually in T2 ::moq::móq ::hoi::hóı ; Always in T3 ::ju::jü ::la::lä ::na::nä ::kio::kïo ; vy-related shortcuts ::va::ꝡä ::ve::ꝡë ::vo::ꝡo
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.
XKB
Note that this requires editing a few other files, so remember to make backups of files you change. Follow the format in the files in /usr/share/X11/xkb/rules/: base.lst, base.xml, evdev.lst, evdev.xml.
This layout, for QWERTY keyboards, also has diacritics for Gamma and Beta.
default partial alphanumeric_keys modifier_keys xkb_symbols "basic" { name[Group1]= "Toaqzu (Hóegua)"; 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> { [ q, Q ] }; key <AD02> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ UA761, UA760, w, W ] }; key <AD03> { [ e, E ] }; key <AD04> { [ r, R ] }; key <AD05> { [ t, T ] }; key <AD06> { [ y, Y ] }; key <AD07> { [ u, U ] }; key <AD08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ idotless, I, i, Iabovedot ] }; key <AD09> { [ o, O ] }; key <AD10> { [ p, P ] }; key <AD11> { [ guillemotleft, U2039, bracketleft, braceleft ] }; key <AD12> { [ guillemotright, U203A, bracketright, braceright ] }; key <AC01> { [ a, A ] }; key <AC02> { [ s, S ] }; key <AC03> { [ d, D ] }; key <AC04> { [ f, F ] }; key <AC05> { [ g, G ] }; key <AC06> { [ h, H ] }; key <AC07> { [ j, J ] }; key <AC08> { [ k, K ] }; key <AC09> { [ l, L ] }; key <AC10> { [ dead_circumflex, dead_hook, semicolon, colon ] }; key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; key <AB01> { [ z, Z ] }; key <AB02> { [ rightsinglequotemark, dead_macron, x, X ] }; key <AB03> { [ c, C ] }; key <AB04> { [ dead_belowdot, dead_grave, v, V ] }; key <AB05> { [ b, B ] }; key <AB06> { [ n, N ] }; key <AB07> { [ m, M ] }; key <AB08> { [ comma, less ] }; key <AB09> { [ period, greater ] }; key <AB10> { [ slash, question ] }; key <BKSL> { [ backslash, bar, dead_caron, dead_tilde ] }; key <SPCE> { [ space, space, nobreakspace, nobreakspace ] }; include "level3(ralt_switch)" };
You will also need add some Compose keys.
<dead_acute> <dead_belowdot> <a> :"ạ́" <dead_diaeresis> <dead_belowdot> <a> :"ạ̈" <dead_circumflex> <dead_belowdot> <a> :"ậ" <dead_acute> <dead_belowdot> <e> :"ẹ́" <dead_diaeresis> <dead_belowdot> <e> :"ẹ̈" <dead_circumflex> <dead_belowdot> <e> :"ệ" <dead_acute> <dead_belowdot> <idotless> :"ị́" <dead_diaeresis> <dead_belowdot> <idotless> :"ị̈" <dead_circumflex> <dead_belowdot> <idotless> :"ị̂" <dead_acute> <dead_belowdot> <o> :"ọ́" <dead_diaeresis> <dead_belowdot> <o> :"ọ̈" <dead_circumflex> <dead_belowdot> <o> :"ộ" <dead_acute> <dead_belowdot> <u> :"ụ́" <dead_diaeresis> <dead_belowdot> <u> :"ụ̈" <dead_circumflex> <dead_belowdot> <u> :"ụ̂" <dead_belowdot> <dead_acute> <a> :"ạ́" <dead_belowdot> <dead_diaeresis> <a> :"ạ̈" <dead_belowdot> <dead_circumflex> <a> :"ậ" <dead_belowdot> <dead_acute> <e> :"ẹ́" <dead_belowdot> <dead_diaeresis> <e> :"ẹ̈" <dead_belowdot> <dead_circumflex> <e> :"ệ" <dead_belowdot> <dead_acute> <idotless> :"ị́" <dead_belowdot> <dead_diaeresis> <idotless> :"ị̈" <dead_belowdot> <dead_circumflex> <idotless> :"ị̂" <dead_belowdot> <dead_acute> <o> :"ọ́" <dead_belowdot> <dead_diaeresis> <o> :"ọ̈" <dead_belowdot> <dead_circumflex> <o> :"ộ" <dead_belowdot> <dead_acute> <u> :"ụ́" <dead_belowdot> <dead_diaeresis> <u> :"ụ̈" <dead_belowdot> <dead_circumflex> <u> :"ụ̂" <dead_acute> <dead_belowdot> <A> :"Ạ́" <dead_diaeresis> <dead_belowdot> <A> :"Ạ̈" <dead_circumflex> <dead_belowdot> <A> :"Ậ" <dead_acute> <dead_belowdot> <E> :"Ẹ́" <dead_diaeresis> <dead_belowdot> <E> :"Ẹ̈" <dead_circumflex> <dead_belowdot> <E> :"Ệ" <dead_acute> <dead_belowdot> <I> :"Ị́" <dead_diaeresis> <dead_belowdot> <I> :"Ị̈" <dead_circumflex> <dead_belowdot> <I> :"Ị̂" <dead_acute> <dead_belowdot> <O> :"Ọ́" <dead_diaeresis> <dead_belowdot> <O> :"Ọ̈" <dead_circumflex> <dead_belowdot> <O> :"Ộ" <dead_acute> <dead_belowdot> <U> :"Ụ́" <dead_diaeresis> <dead_belowdot> <U> :"Ụ̈" <dead_circumflex> <dead_belowdot> <U> :"Ụ̂" <dead_belowdot> <dead_acute> <A> :"Ạ́" <dead_belowdot> <dead_diaeresis> <A> :"Ạ̈" <dead_belowdot> <dead_circumflex> <A> :"Ậ" <dead_belowdot> <dead_acute> <E> :"Ẹ́" <dead_belowdot> <dead_diaeresis> <E> :"Ẹ̈" <dead_belowdot> <dead_circumflex> <E> :"Ệ" <dead_belowdot> <dead_acute> <I> :"Ị́" <dead_belowdot> <dead_diaeresis> <I> :"Ị̈" <dead_belowdot> <dead_circumflex> <I> :"Ị̂" <dead_belowdot> <dead_acute> <O> :"Ọ́" <dead_belowdot> <dead_diaeresis> <O> :"Ọ̈" <dead_belowdot> <dead_circumflex> <O> :"Ộ" <dead_belowdot> <dead_acute> <U> :"Ụ́" <dead_belowdot> <dead_diaeresis> <U> :"Ụ̈" <dead_belowdot> <dead_circumflex> <U> :"Ụ̂"
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_circumflex 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 4. 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 (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_circumflex
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
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!
Stenography
See Stenography.
Phones
Your built-in keyboard?
In general, on many phone keyboards you can long-press a vowel to get some accents, though you still won't find Ꝡ or the underdot (- will do, though).
MultiLing O
See MultiLing O.
Unexpected Keyboard
Below is a Unexpected Keyboard layout due to Discord user A'rely:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <keyboard> <row> <key key0="q" key2="1" key4="esc"/> <key key0="ꝡ" key1="~" key2="2" key3="\@"/> <key key0="e" key1="ê" key2="3" key3="ë" key4="é"/> <key key0="r" key1="loc ₪" key2="4" key3="$"/> <key key0="t" key2="5" key3="%"/> <key key0="y" key2="6" key3="^"/> <key key0="u" key1="û" key2="7" key3="ü" key4="ú"/> <key key0="ı" key1="î" key2="8" key3="í" key4="ï"/> <key key0="o" key1="ô" key2="9" key3="ó" key4="ö"/> <key key0="p" key2="0" key3="f11_placeholder" key4="f12_placeholder"/> </row> <row> <key shift="0.5" key0="a" key1="tab" key2="ä" key3="â" key4="á"/> <key key0="s" key1="loc accent_ring" key3="loc ß" key4="loc accent_ogonek"/> <key key0="d" key1="!" key2="loc £" key3="loc accent_aigu" key4="loc accent_grave"/> <key key0="f" key1="loc accent_dot_above" key4="&"/> <key key0="g" key1="loc accent_caron" key2="-" key3="_"/> <key key0="h" key1="*" key2="=" key3="+"/> <key key0="j" key1="loc accent_trema" key2="loc accent_circonflexe" key3="{" key4="}"/> <key key0="k" key1="(" key2=")" key3="[" key4="]"/> <key key0="l" key2="|" key3="\\"/> </row> <row> <key width="1.5" key0="shift" key2="loc capslock"/> <key key0="z" key2="`"/> <key key0="x" key2="\#" key4="loc €"/> <key key0="c" key1="loc accent_cedille" key2="<" key3="."/> <key key0="v" key2=">" key3=","/> <key key0="b" key2="\?" key3="/" key4="loc accent_macron"/> <key key0="n" key1="loc accent_tilde" key2=":" key3=";"/> <key key0="m" key1="loc accent_double_aigu" key2=""" key3="'"/> <key width="1.5" key0="backspace" key2="delete"/> </row> </keyboard>
Deranı layouts
Kaıchuo
Kaıchuo also has an option for typing Derani.
Mıao's layout (QWERTY-based)
Note that the image above is a bit outdated. The hiatus key has been moved to the semicolon key rather than the colon key and the cartouches are now both on the quotation mark key.
Some punctuation whose keys were taken over have been put under AltGr.
XKB (Linux)
default partial alphanumeric_keys modifier_keys xkb_symbols "basic" { 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> { [ UF16C2 ] }; // Q key <AD02> { [ UF16C1 ] }; // Ꝡ key <AD03> { [ UF16CA ] }; // 2nd tone key <AD04> { [ UF16BB ] }; // R key <AD05> { [ UF16B7 ] }; // T key <AD06> { [ UF16CE ] }; // diphthong key <AD07> { [ UF16CB ] }; // 3rd tone key <AD08> { [ UF16BD ] }; // NH key <AD09> { [ UF16CC ] }; // 4th tone key <AD10> { [ UF16B3 ] }; // P key <AD11> { [ guillemotleft, U2039, bracketleft, braceleft ] }; key <AD12> { [ guillemotright, U203A, bracketright, braceright ] }; key <AC01> { [ UF16C5 ] }; // ' key <AC02> { [ UF16BA ] }; // S key <AC03> { [ UF16B6 ] }; // D key <AC04> { [ UF16B4 ] }; // F key <AC05> { [ UF16C3 ] }; // G key <AC06> { [ UF16C6 ] }; // H key <AC07> { [ UF16BE ] }; // J key <AC08> { [ UF16C4 ] }; // K key <AC09> { [ UF16BC ] }; // L key <AC10> { [ UF16CD, UF16DA, semicolon, colon ] }; // hiatus mark | null variable key <AC11> { [ UF16D8, UF16D9, apostrophe, quotedbl ] }; // cartouche start | cartouche end key <AB01> { [ UF16B8 ] }; // Z key <AB02> { [ UF16C0 ] }; // SH key <AB03> { [ UF16B9 ] }; // C key <AB04> { [ UF16BF ] }; // CH key <AB05> { [ UF16B2 ] }; // B key <AB06> { [ UF16B5 ] }; // N key <AB07> { [ UF16B0, UF16B1 ] }; // M | M coda key <AB08> { [ UF16D4, UF16D2, comma, less ] }; // subordination mark | prefix mark key <AB09> { [ UF16D5, UF16D3, period, greater ] }; // declarative full stop | quotation mark key <AB10> { [ UF16D6, UF16D7, slash, question ] }; // other full stop | question mark key <BKSL> { [ backslash, bar] }; key <SPCE> { [ space, space, nobreakspace, nobreakspace ] }; include "level3(ralt_switch)" };
Windows
Made with Microsoft Keyboard Layout Creator. Unzip the .zip file and open setup.exe. You may have to restart your computer for it to show up. To uninstall, uninstall it like you would any other program.
Loekıa's layout (Workman-based)
xkb_symbols "toaq" { include "us(workman)" key <AD01> { [ UF16BD ] }; key <AD02> { [ UF16B6 ] }; key <AD03> { [ UF16BB ] }; key <AD04> { [ UF16CD ] }; key <AD05> { [ UF16CE ] }; key <AD06> { [ UF16BE ] }; key <AD07> { [ UF16B5 ] }; key <AD08> { [ UF16B2 ] }; key <AD09> { [ UF16B3 ] }; key <AD10> { [ UF16D8, UF16D9 ] }; key <AC01> { [ UF16BA ] }; key <AC02> { [ UF16C0 ] }; key <AC03> { [ UF16C6 ] }; key <AC04> { [ UF16B7 ] }; key <AC05> { [ UF16CA ] }; key <AC06> { [ UF16CB, UF16CC ] }; key <AC07> { [ UF16C2 ] }; key <AC08> { [ UF16B4 ] }; key <AC09> { [ UF16C3 ] }; key <AC10> { [ UF16B9 ] }; key <AC11> { [ UF16D2, UF16D3 ] }; key <AB01> { [ UF16B8 ] }; key <AB02> { [ UF16C5 ] }; key <AB03> { [ UF16B0, UF16B1 ] }; key <AB04> { [ UF16BF ] }; key <AB05> { [ UF16C1 ] }; key <AB06> { [ UF16C4 ] }; key <AB07> { [ UF16BC ] }; key <AB08> { [ UF16D4, UF16DA ] }; key <AB09> { [ UF16D5 ] }; key <AB10> { [ UF16D6, UF16D7 ] }; key <SPCE> { [ U0020, U00A0 ] }; };
Sad alternatives
ASCII tone markers
You can always write the ASCII-friendly (although reader-hostile) /"^ tone markers after words like this:
Hio ka. Ji/ na" bo hoa/ sia/ kaichuo gi rao^ nidaq/.
Or tone number digits 234:
Hio ka. Ji2 na3 bo hoa2 sia2 kaichuo gi rao4 nidaq2.
And you will be understood.
Other places to look for solutions
- Talk to us on Discord.
- The documentation for Raku (Perl 6), a Unicode-heavy programming language, includes copious amounts of instructions on Unicode character input.