Input methods: Difference between revisions

2,584 bytes removed ,  21:09, 4 November 2023
Link to MultiLing O
(Update Derani Workman layout to new encoding)
(Link to MultiLing O)
 
(17 intermediate revisions by 4 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 {{Key|CapsLock}} {{Key|'}} {{Key|a}} becomes {{t|á}}.
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.


On Linux, this might not even involve installing anything! Look for "compose key" plus your distro name.
=== 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".


On Windows, [https://wincompose.info/ WinCompose] is pretty good.
=== vim ===
See [[Vim input]].


Here's how to type Toaq-specific characters in the default ruleset.
=== AutoHotkey (Windows) ===
Only the first paragraph of the following script is strictly necessary. The rest are just useful shortcuts.


{| class="wikitable"
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.
! Character || Combo
|-
| {{Done|2}} || {{Key|'}} + vowel
|-
| {{Done|3}} || {{Key|"}} + vowel
|-
| {{Done|4}} || {{Key|^}} + vowel
|-
| dotless i ({{t|ı}}) || {{Key|.}} + {{Key|i}}
|-
| left quote ({{t|«}}) || {{Key|<}} + {{Key|<}}
|-
| right quote ({{t|»}}) || {{Key|>}} + {{Key|>}}
|}


Then there are these supplemental definitions. WinCompose provides them by default; on Linux you’re going to have to add them yourself one-by-one or by sourcing [https://github.com/kragen/xcompose]. That said you might not find them very convenient to type.
{{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::û
:?*:!!::̣
:?*:<<::«
:?*:>>::»
:?*:.<::‹
:?*:.>::›


{| class="wikitable"
; Pronouns
! Character || Combo
::ji::jí
|-
::suq::súq
| {{VY}} || {{Key|V}} + {{Key|&}} + {{Key|Y}}
::nhao::nháo
|-
::umo::úmo
| {{vy}} || {{Key|v}} + {{Key|&}} + {{Key|y}}
::ime::íme
|-
::ama::áma
| combining underdot (like in {{t|ı̣}}) || {{Key|\}} + {{Key|!}}
::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á


=== Kaıchuo ===
; Determiners
This is a little tool by [[User:Lynn]] that runs in your browser, <s>available [http://foldr.moe/kaichuo/ here]</s> updated for [[Toaq Delta]] by [[User:El]] and available [https://ixera.github.io/kaichuo here]. You type something like {{Key|Kiai ji kato/ da}} 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}}.)
::sa::
::tu::tú
::tuq::túq
::sia::sía
::ni::ní
::baq::báq
::hi::hí
::hu::hú
::ke::ké
::ja::já


=== vim ===
; Usually in T2
Copy the contents below into a file called <code>toaq.vim</code> inside a folder named <code>keymap</code> in your <code>.vim</code> 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 <code>:help mbyte-keymap</code> for more detailed information.)
::moq::móq
::hoi::hóı


{| class=wikitable
; Always in T3
! || Without underdot || With underdot
::ju::jü
|-
::la::lä
! {{done|1}}
::na::nä
|          || {{key|.}}
::kio::kïo
|-
! {{done|2}}
| {{key|/}} || {{key|'}}
|-
! {{done|3}}
| {{key|:}} || {{key|"}}
|-
! {{done|4}}
| {{key|>}} || {{key|^}}
|}


{{collapsible|Toaq vim keymap|<pre>" toaq keymap
; vy-related shortcuts
" by uakci on 2022-12-20
::va::ꝡä
scriptencoding utf8
::ve::ꝡë
let b:keymap_name = "toaq"
::vo::ꝡo
loadkeymap
.i i
i ı
// /
:: :
>> >
'' '
"" "
^^ ^
.. .
.< «
.> »
.{ ‹
.} ›
./ ́
.: ̈
.> ̂
., ̣
.A Ạ
.U Ụ
.I Ị
.O Ọ
.E Ẹ
.a ạ
.u ụ
.i ı̣
.o ọ
.e ẹ
vy ꝡ
Vy Ꝡ
VY Ꝡ
/A Á
/U Ú
/I Í
/O Ó
/E É
/a á
/u ú
/i í
/o ó
/e é
:A Ä
:U Ü
:I Ï
:O Ö
:E Ë
:a ä
:u ü
:i ï
:o ö
:e ë
>A Â
>U Û
>I Î
>O Ô
>E Ê
>a â
>u û
>i î
>o ô
>e ê
'A Ạ́
'U Ụ́
'I Ị́
'O Ọ́
'E Ẹ́
'a ạ́
'u ụ́
'i ị́
'o ọ́
'e ẹ́
"A Ạ̈
"U Ụ̈
"I Ị̈
"O Ọ̈
"E Ẹ̈
"a ạ̈
"u ụ̈
"i ị̈
"o ọ̈
"e ẹ̈
^A Ậ
^U Ụ̂
^I Ị̂
^O Ộ
^E Ệ
^a ậ
^u ụ̂
^i ị̂
^o ộ
^e ệ
</pre>}}
</pre>}}
Alternatively, for sporadic usage, you can enter Toaq characters using Ctrl+K followed by two keystrokes (see <code>:help digraph</code>). {{VY}} is not available to input using this method.
{| class="wikitable"
! Character || Combo
|-
| {{Done|2}} || {{Key|Ctrl+K}} {{Key|vowel}} {{Key|'}}
|-
| {{Done|3}} || {{Key|Ctrl+K}} {{Key|vowel}} {{Key|:}}
|-
| {{Done|4}} || {{Key|Ctrl+K}} {{Key|vowel}} {{Key|>}}
|-
| dotless i ({{t|ı}}) || {{Key|Ctrl+K}} {{Key|.}} {{Key|i}}
|-
| left quote ({{t|«}}) || {{Key|Ctrl+K}} {{Key|&lt;}} {{Key|&lt;}}
|-
| right quote ({{t|»}}) || {{Key|Ctrl+K}} {{Key|&gt;}} {{Key|&gt;}}
|}
=== AutoHotkey ===
[https://github.com/toaq/toaq.org/blob/master/toaq.ahk This official AutoHotkey script] will convert {{Key|a/}} into á, etc. Oh, it's actually outdated (has the old {{tone|3old}} instead of the new {{tone|3}}). Oh it's actually double outdated.


=== US, intl. with dead keys ===
=== US, intl. with dead keys ===
Line 183: Line 92:


=== XKB ===
=== XKB ===
Note that this requires editing a few other files, so remember to make backups of files you change.
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.
This layout, for QWERTY keyboards, also has diacritics for Gamma and Beta.
Line 214: Line 123:
|-
|-
!{{tone|3old}}
!{{tone|3old}}
|{{key|Shift}} {{key|v}} {{key|vowel}}
|{{key|AltGr}} {{key|\}} {{key|vowel}}
!{{t|«}}
!{{t|«}}
|{{key|[}}
|{{key|[}}
Line 224: Line 133:
|-
|-
!{{tone|6}}
!{{tone|6}}
|{{key|AltGr}} {{key|\}} {{key|vowel}}
|{{key|Shift}} {{key|v}} {{key|vowel}}
!{{t|‹}}
!{{t|‹}}
|{{key|<nowiki>{</nowiki>}}
|{{key|<nowiki>{</nowiki>}}
Line 233: Line 142:
|{{key|<nowiki>}</nowiki>}}
|{{key|<nowiki>}</nowiki>}}
|}
|}
{{collapsible|XKB symbols file|<pre>
{{collapsible|XKB symbols file - /usr/share/X11/xkb/symbols/qtq|<pre>
default  partial alphanumeric_keys modifier_keys
default  partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
xkb_symbols "basic" {
Line 277: Line 186:
     key <AC08> { [   k, K ] };
     key <AC08> { [   k, K ] };
     key <AC09> { [   l, L ] };
     key <AC09> { [   l, L ] };
     key <AC10> { [ dead_circumflex, dead_hook, semicolon, colon ] };
     key <AC10> { [ dead_circumflex, dead_hook, semicolon, colon ] };
     key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
     key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] };


Line 283: Line 192:
     key <AB02> { [   rightsinglequotemark, dead_macron, x, X ] };
     key <AB02> { [   rightsinglequotemark, dead_macron, x, X ] };
     key <AB03> { [   c, C ] };
     key <AB03> { [   c, C ] };
     key <AB04> { [   dead_belowdot, dead_caron, v, V ] };
     key <AB04> { [   dead_belowdot, dead_grave, v, V ] };
     key <AB05> { [   b, B ] };
     key <AB05> { [   b, B ] };
     key <AB06> { [   n, N ] };
     key <AB06> { [   n, N ] };
Line 291: Line 200:
     key <AB10> { [   slash, question ] };
     key <AB10> { [   slash, question ] };


     key <BKSL> { [   backslash,         bar, dead_grave, dead_tilde ] };
     key <BKSL> { [   backslash, bar, dead_caron, dead_tilde ] };
      
      
     key <SPCE> { [   space, space, nobreakspace, nobreakspace ] };
     key <SPCE> { [   space, space, nobreakspace, nobreakspace ] };
      
      
   include "level3(ralt_switch)"
   include "level3(ralt_switch)"
Line 390: Line 299:
=== Kanakey ===
=== 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!
[[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 ==
Line 397: Line 309:


=== MultiLing O ===
=== MultiLing O ===
There's a decently customizable Android custom keyboard app called [https://play.google.com/store/apps/details?id=kl.ime.oh&hl=en&gl=US MultiLing O], which comes with a selection of diacritics out of the box (bar old {{tone|4}}). To use them, first type the desired letter, then hold-tap the key that says <code>,/AltGr</code>. An alternate screen should appear; without lifting your finger, slide it to the desired choice of diacritic. However, this won’t get you typing full-featured [[Toaq Delta]] right away – luckily for us, Multiling supports custom layouts. To install these:
See [[MultiLing O]].


# Choose a layout you like, hold-tap and then drag to make a selection starting from <code>OK_Layout_Begin</code> and ending on <code>OK_Layout_End</code>, then click Copy.
=== Unexpected Keyboard ===
# With the Multiling keyboard open: hold the spacebar, then drag your finger over to a button named Layouts in the top right that should just have appeared. (Optionally: first slide to Languages > Other > X language 1. This disables word prediction and lets you switch between English and Toaq by swiping the spacebar leftward.)
# Select [+DIY] from the pop-up list, then Paste, then OK.


The following layouts are available:
Below is a [https://github.com/Julow/Unexpected-Keyboard Unexpected Keyboard] layout due to Discord user A'rely:


==== [[Mıao]]'s layout ====
{{collapsible|Unexpected Keyboard layout definition file|<pre>
[[Image:Miao's layout screenshot.png|thumb|Screenshot of Mıao's layout]]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 
<keyboard>
Your standard QWERTY layout with flick access to prearranged underdot + {{done|2}} {{done|3}} {{done|4}} combos.
  <row>
{{collapsible|MultiLing O layout definition file|<pre>
    <key key0="q" key2="1" key4="esc"/>
OK_Layout_Begin
    <key key0="ꝡ" key1="~" key2="2" key3="\@"/>
Name:Tóaqdeota
    <key key0="e" key1="ê" key2="3" key3="ë" key4="é"/>
1234567890
    <key key0="r" key1="loc ₪" key2="4" key3="$"/>
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
    <key key0="t" key2="5" key3="%"/>
[4D:a[U+0301]áäâạ[MC:ạ́][MC:ạ̈][MC:ậ]]sdfghjkl
    <key key0="y" key2="6" key3="^"/>
zxcvbnm
    <key key0="u" key1="û" key2="7" key3="ü" key4="ú"/>
!@#$%^&*()
    <key key0="ı" key1="î" key2="8" key3="í" key4="ï"/>
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
    <key key0="o" key1="ô" key2="9" key3="ó" key4="ö"/>
[4D:A[U+0301]ÁÄÂẠ[MC:Ạ́][MC:Ạ̈][MC:Ậ]]SDFGHJKL
    <key key0="p" key2="0" key3="f11_placeholder" key4="f12_placeholder"/>
ZXCVBNM
  </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="&amp;"/>
―∑éə®†Ωœøπ•·¡
    <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="}"/>
OK_Layout_End
    <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="&lt;" 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="&quot;" key3="'"/>
    <key width="1.5" key0="backspace" key2="delete"/>
  </row>
</keyboard>
</pre>}}
</pre>}}


==== [[uakci]]'s mobile-optimized layout ====
== [[Derani|Deranı]] layouts ==
[[Image:uakci's mobile-optimized layout screenshot.png|thumb|Screenshot of uakci's layout]]


The third-or-so iteration of this layout (this time updated for [[Toaq Delta]] and adorned with cool symbols to boot). Fewer keys means less fat finger fumbling. Some keys are moved out of the way or (in the case of v, w, y) folded into the {{vy}} key; the underdot key stands alone on the right edge of the middle row.
=== Kaıchuo ===
{{collapsible|MultiLing O layout definition file|<pre>
OK_Layout_Begin
Name:uakci’s mobile-optimized layout
 
q[XK:ꝡvwy][4D:e éëê]rt[4D:uüú û][4D:ıïíiî][4D:oöó ô]p
[4D:a áäâ]sdhjklṃ
zxcfgbn
 
Q[XK:ꝠVWY][4D:E ÉËÊ]RT[4D:UÜÚ Û][4D:IÏÍIÎ][4D:OÖ ÓÔ]P
[4D:A ÁÄÂ]SDHJKLṂ
ZXCFGBN
 
‹  —–  ›   
«⟪⟨-⟩⟫»·
!.,…?:;
OK_Layout_End
</pre>}}


== [[Derani|Deranı]] layouts ==
[https://toaq.net/kaichuo/ Kaıchuo] also has an option for typing Derani.


=== Mıao's layout (QWERTY-based) ===
=== Mıao's layout (QWERTY-based) ===


[[File:Toaq_(QWERTY).svg]]
[[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.
Some punctuation whose keys were taken over have been put under AltGr.
Line 465: Line 373:
<pre class="mw-collapsible-content">
<pre class="mw-collapsible-content">
default  partial alphanumeric_keys modifier_keys
default  partial alphanumeric_keys modifier_keys
xkb_symbols "derani" {
xkb_symbols "basic" {


     name[Group1]= "Toaqzu (Deranı)";
     name[Group1]= "Toaqzu (Deranı)";
Line 505: Line 413:
     key <AC08> { [ UF16C4 ] }; // K
     key <AC08> { [ UF16C4 ] }; // K
     key <AC09> { [ UF16BC ] }; // L
     key <AC09> { [ UF16BC ] }; // L
     key <AC10> { [ UF16D8, UF16CD, semicolon, colon ] }; // cartouche start | hiatus mark
     key <AC10> { [ UF16CD, UF16DA, semicolon, colon ] }; // hiatus mark | null variable
     key <AC11> { [ UF16D9, UF16DA, apostrophe, quotedbl ] }; // cartouche end | null variable
     key <AC11> { [ UF16D8, UF16D9, apostrophe, quotedbl ] }; // cartouche start | cartouche end  


     key <AB01> { [ UF16B8 ] }; // Z
     key <AB01> { [ UF16B8 ] }; // Z
Line 584: Line 492:
== Sad alternatives ==
== Sad alternatives ==
=== ASCII tone markers ===
=== ASCII tone markers ===
You can always write the ASCII-friendly (although reader-hostile) <tt>/"^</tt> [[tone]] markers after words like this, usefully combined with sparse tone marking:
You can always write the ASCII-friendly (although reader-hostile) <tt>/"^</tt> [[tone]] markers after words like this:


<blockquote><tt>Hio ka. Bu va" bo ji/ sa gi kaichuo rao^ ni/.</tt></blockquote>
<blockquote><tt>Hio ka. Ji/ na" bo hoa/ sia/ kaichuo gi rao^ nidaq/.</tt></blockquote>


Or tone number digits <tt>234</tt>:
Or tone number digits <tt>234</tt>:


<blockquote><tt>Hio ka. Bu va3 bo ji2 sa gi kaichuo rao4 ni2.</tt></blockquote>
<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]]