diff --git a/release/k/kalasha/HISTORY.md b/release/k/kalasha/HISTORY.md new file mode 100644 index 0000000000..0cf5a923f4 --- /dev/null +++ b/release/k/kalasha/HISTORY.md @@ -0,0 +1,17 @@ +Kaḷaṣamondr keyboard Change History +==================== + +1.0 (2026-03-04) +---------------- +* Updated by MengHeng to include + * Support backspace with aspiration characters such as rh, ṛh (base with dot underneath + h). + * Add ch(=č), sh(=š), zh(=ž). + * Change backtick to dot on On-screen. + * Add Mobile layout. + +0.3 (2022-07-13) +---------------- +* Created by Malachi James: + * A dot under both vowels and consonants, for ‘retroflexed’ vowels and ‘retroflexed’ consonants. + * A tilde over nasalised vowels. + * Vowels can be both nasalised and ‘retroflexed’, so both diacritics are able to sit over and under a vowel at the same time. diff --git a/release/k/kalasha/LICENSE.md b/release/k/kalasha/LICENSE.md new file mode 100644 index 0000000000..d29fab5cb6 --- /dev/null +++ b/release/k/kalasha/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright © 2022 - 2026 Malachi James and Elsa Cooper + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/release/k/kalasha/README.md b/release/k/kalasha/README.md new file mode 100644 index 0000000000..d633087b88 --- /dev/null +++ b/release/k/kalasha/README.md @@ -0,0 +1,29 @@ +Kaḷaṣamondr keyboard +============== + +Description +----------- +The Kaḷaṣamondr keyboard is created to type the kalasha language with Roman (Latin) script. Allowing keyboard users to write in English and Kalasha without switching keyboards. + +Links +----- +Keyboard Homepage: https://keyman.com/keyboards/kalasha + +Copyright +--------- +See [LICENSE.md](LICENSE.md) + +Supported Platforms +------------------- + * Windows + * macOS + * Linux + * Web + * iPhone + * iPad + * Android phone + * Android tablet + * Mobile devices + * Desktop devices + * Tablet devices + diff --git a/release/k/kalasha/kalasha.kpj b/release/k/kalasha/kalasha.kpj new file mode 100644 index 0000000000..bdb9b508cd --- /dev/null +++ b/release/k/kalasha/kalasha.kpj @@ -0,0 +1,9 @@ + + + + 2.0 + True + True + True + + diff --git a/release/k/kalasha/source/help/kalasha.php b/release/k/kalasha/source/help/kalasha.php new file mode 100644 index 0000000000..eaa04a1339 --- /dev/null +++ b/release/k/kalasha/source/help/kalasha.php @@ -0,0 +1,340 @@ + + +
+
+

The Kaḷaṣamondr keyboard is created to type the Kalasha language with Roman (Latin) script. Allowing keyboard users to write in English and Kalasha without switching keyboards.

+ +

+ The Kaḷaṣamondr keyboards has a number of rules to differentiate itself from the standard US keyboard. At first glance, the keyboard only has the typical English characters we are accustomed to; however, there is one key that is different, the top left-hand key. This key has two functions: to represent retroflexion and/or nasalisation. +

+ +

Retroflexion (both consonants and vowels can be retroflex)

+ +

In the Kaḷaṣamondr keyboard, the US keyboard backquote symbol (`) is replaced with now represents retroflexion with a dot-under (combining with the preceding typed character), e.g. , , .

+ +

Nasalisation (only vowels can be nasalised)

+ +

In the Kaḷaṣamondr keyboard, the US keyboard tilde symbol (SHIFT+~) now represents nasalisation with a tilde over the preceding typed vowel character, e.g. , , , , , ạ̃, ẹ̃, ị̃, ọ̃, ụ̃

+ +

Note: the last five examples. They show that vowels can sometimes be both retroflex and nasalised. The dot-under retroflexion symbol should be typed first.

+ +

Aspiration

+ +

+ If you are familiar with In the language Kaḷaṣamondr keyboard, you'd know that there are characters which created from aspirated consonants are represented with an h that follows the consonant. That is, two characters together (a digraph), (sometimes with a dot) to produce with the second one being h, represent one aspirated phoneme. These characters are: + bh, c̣h, dh, ḍh, gh, jh, kh, lh, ḷh, mh, + ph, rh, th, ṭh, and ẓh. +

+

+ When one both of these characters are typed, but then need to be deleted, there is a special rule that would make sure that both characters can be backspace-deleted together (behaving like a composed letter character), unless if, however, the next (a third) following letter character is typed, then the special phonemes individual characters return to a decomposed (separate) behaviour state and can be deleted one by one. +

+

+ Exception: In the fricatives sh, zh, and ch, h does not represent aspiration. These digraphs will continue to represent these fricatives. Alternatively, a future option could be a caron (wedge) inserted above the s, z, or c by the ^ key, or these characters can be selected using long press on a mobile layout. +

+ +

The affricates ts and dz are typed using these two separate characters. The aspirated affricate tsh (/t͡sʰ/) is typed using these three separate characters.

+ + (See the key combinations below). +
+ +
+

Desktop Keyboard Layout

+
+ +
+

Key combinations

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLowercaseKeystrokeUppercaseKeystroke
BACKTICK or BACKQUOTE```
LATIN LETTER S WITH CARONsh (š)sh^SH (Š)SH^
LATIN LETTER Z WITH CARONzh (ž)zh^ZH (Ž)ZH^
LATIN LETTER C WITH CARONc (č)c^C (Č)C^
DOT (   ̣ )
LETTER A WITH DOT BELOWa`A`
LETTER C WITH DOT BELOWc`C`
LETTER D WITH DOT BELOWd`D`
LETTER E WITH DOT BELOWe`E`
LETTER I WITH DOT BELOWi`I`
LETTER L WITH DOT BELOWl`L`
LETTER O WITH DOT BELOWo`O`
LETTER R WITH DOT BELOWr`R`
LETTER S WITH DOT BELOWs`S`
LETTER T WITH DOT BELOWt`T`
LETTER U WITH DOT BELOWu`U`
LETTER Z WITH DOT BELOWz`Z`
TILDE (~)
LETTER A WITH TILDEa~A~
LETTER E WITH TILDEe~E~
LETTER I WITH TILDEi~I~
LETTER O WITH TILDEo~O~
LETTER U WITH TILDEu~U~
DOT BELOW + TILDE (   ̣ ) + (~)
LETTER A WITH DOT BELOW AND TILDEạ̃a`~Ạ̃A`~
LETTER E WITH DOT BELOW AND TILDEẹ̃e`~Ẹ̃E`~
LETTER I WITH DOT BELOW AND TILDEị̃i`~Ị̃I`~
LETTER O WITH DOT BELOW AND TILDEọ̃o`~Ọ̃O`~
LETTER U WITH DOT BELOW AND TILDEụ̃u`~Ụ̃U`~
NameLowercaseKeystrokeUppercaseKeystroke
+
+
+ +
+

Mobile/Tablet Keyboard Layout

+
+ +

Longpress

+ Mobile Layout - Longpress + +
+ +
diff --git a/release/k/kalasha/source/help/longpress.gif b/release/k/kalasha/source/help/longpress.gif new file mode 100644 index 0000000000..581d416a0d Binary files /dev/null and b/release/k/kalasha/source/help/longpress.gif differ diff --git a/release/k/kalasha/source/kalasha.keyman-touch-layout b/release/k/kalasha/source/kalasha.keyman-touch-layout new file mode 100644 index 0000000000..d57dd29a80 --- /dev/null +++ b/release/k/kalasha/source/kalasha.keyman-touch-layout @@ -0,0 +1,987 @@ +{ + "phone": { + "font": "", + "layer": [ + { + "id": "default", + "row": [ + { + "id": 1, + "key": [ + { + "id": "K_Q", + "text": "q" + }, + { + "id": "K_W", + "text": "w" + }, + { + "id": "K_E", + "text": "e", + "sk": [ + { + "text": "ẹ", + "id": "T_e_d" + }, + { + "text": "ẽ", + "id": "T_e_t" + }, + { + "text": "ẹ̃", + "id": "T_e_d_t" + } + ] + }, + { + "id": "K_R", + "text": "r", + "sk": [ + { + "text": "ṛ", + "id": "T_r_d" + } + ] + }, + { + "id": "K_T", + "text": "t", + "sk": [ + { + "text": "ṭ", + "id": "T_t_d" + }, + { + "text": "ts", + "id": "U_0074_0073" + } + ] + }, + { + "id": "K_Y", + "text": "y" + }, + { + "id": "K_U", + "text": "u", + "sk": [ + { + "text": "ụ", + "id": "T_u_d" + }, + { + "text": "ũ", + "id": "T_u_t" + }, + { + "text": "ụ̃", + "id": "T_u_d_t" + } + ] + }, + { + "id": "K_I", + "text": "i", + "sk": [ + { + "text": "ị", + "id": "T_i_d" + }, + { + "text": "ĩ", + "id": "T_i_t" + }, + { + "text": "ị̃", + "id": "T_i_d_t" + } + ] + }, + { + "id": "K_O", + "text": "o", + "sk": [ + { + "text": "ọ", + "id": "T_o_d" + }, + { + "text": "õ", + "id": "T_o_t" + }, + { + "text": "ọ̃", + "id": "T_o_d_t" + } + ] + }, + { + "id": "K_P", + "text": "p" + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "T_new_153", + "width": 50, + "sp": 10 + }, + { + "id": "K_A", + "text": "a", + "sk": [ + { + "text": "ạ", + "id": "T_a_d" + }, + { + "text": "ã", + "id": "T_a_t" + }, + { + "text": "ạ̃", + "id": "T_a_d_t" + } + ] + }, + { + "id": "K_S", + "text": "s", + "sk": [ + { + "text": "ṣ", + "id": "T_s_d" + }, + { + "text": "š", + "id": "U_0161" + } + ] + }, + { + "id": "K_D", + "text": "d", + "sk": [ + { + "text": "ḍ", + "id": "T_d_d" + }, + { + "text": "dz", + "id": "U_0064_007A" + } + ] + }, + { + "id": "K_F", + "text": "f" + }, + { + "id": "K_G", + "text": "g" + }, + { + "id": "K_H", + "text": "h" + }, + { + "id": "K_J", + "text": "j", + "sk": [ + { + "text": "j̣", + "id": "T_j_d" + } + ] + }, + { + "id": "K_K", + "text": "k" + }, + { + "id": "K_L", + "text": "l", + "sk": [ + { + "text": "ḷ", + "id": "T_l_d" + } + ] + }, + { + "id": "T_new_290", + "text": "", + "width": 10, + "sp": 10 + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SHIFT", + "text": "*Shift*", + "sp": 1, + "nextlayer": "shift" + }, + { + "id": "K_Z", + "text": "z", + "sk": [ + { + "text": "ẓ", + "id": "T_z_d" + }, + { + "text": "ž", + "id": "U_017E" + } + ] + }, + { + "id": "K_X", + "text": "x" + }, + { + "id": "K_C", + "text": "c", + "sk": [ + { + "text": "c̣", + "id": "T_c_d" + }, + { + "text": "č", + "id": "U_010D" + }, + { + "text": "čh", + "id": "U_010D_0068" + } + ] + }, + { + "id": "K_V", + "text": "v" + }, + { + "id": "K_B", + "text": "b" + }, + { + "id": "K_N", + "text": "n" + }, + { + "id": "K_M", + "text": "m" + }, + { + "id": "K_PERIOD", + "text": ".", + "sk": [ + { + "text": ",", + "id": "K_COMMA" + }, + { + "text": "!", + "id": "K_1", + "layer": "shift" + }, + { + "text": "?", + "id": "K_SLASH", + "layer": "shift" + }, + { + "text": "'", + "id": "K_QUOTE" + }, + { + "text": "\"", + "id": "K_QUOTE", + "layer": "shift" + }, + { + "text": "\\", + "id": "K_BKSLASH" + }, + { + "text": ":", + "id": "K_COLON", + "layer": "shift" + }, + { + "text": ";", + "id": "K_COLON" + } + ] + }, + { + "id": "K_BKSP", + "text": "*BkSp*", + "width": 100, + "sp": 1 + } + ] + }, + { + "id": 4, + "key": [ + { + "id": "K_NUMLOCK", + "text": "*123*", + "width": 150, + "sp": 1, + "nextlayer": "numeric" + }, + { + "id": "K_LOPT", + "text": "*Menu*", + "width": 120, + "sp": 1 + }, + { + "id": "K_SPACE", + "text": "", + "width": 610, + "sp": 0 + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "width": 150, + "sp": 1 + } + ] + } + ] + }, + { + "id": "shift", + "row": [ + { + "id": 1, + "key": [ + { + "id": "K_Q", + "text": "Q", + "nextlayer": "default" + }, + { + "id": "K_W", + "text": "W", + "nextlayer": "default" + }, + { + "id": "K_E", + "text": "E", + "nextlayer": "default", + "sk": [ + { + "text": "Ẹ", + "id": "U_0045_0323" + }, + { + "text": "Ẽ", + "id": "U_0045_0303" + }, + { + "text": "Ẹ̃", + "id": "U_0045_0323_0303" + } + ] + }, + { + "id": "K_R", + "text": "R", + "nextlayer": "default", + "sk": [ + { + "text": "Ṛ", + "id": "U_0052_0323" + } + ] + }, + { + "id": "K_T", + "text": "T", + "nextlayer": "default", + "sk": [ + { + "text": "Ṭ", + "id": "U_0054_0323" + }, + { + "text": "TS", + "id": "U_0054_0053" + } + ] + }, + { + "id": "K_Y", + "text": "Y", + "nextlayer": "default" + }, + { + "id": "K_U", + "text": "U", + "nextlayer": "default", + "sk": [ + { + "text": "Ụ", + "id": "U_0055_0323" + }, + { + "text": "Ũ", + "id": "U_0055_0303" + }, + { + "text": "Ụ̃", + "id": "U_0055_0323_0303" + } + ] + }, + { + "id": "K_I", + "text": "I", + "nextlayer": "default", + "sk": [ + { + "text": "Ị", + "id": "U_0049_0323" + }, + { + "text": "Ĩ", + "id": "U_0049_0303" + }, + { + "text": "Ị̃", + "id": "U_0049_0323_0303" + } + ] + }, + { + "id": "K_O", + "text": "O", + "nextlayer": "default", + "sk": [ + { + "text": "Ọ", + "id": "U_004F_0323" + }, + { + "text": "Õ", + "id": "U_004F_0303" + }, + { + "text": "Ọ̃", + "id": "U_004F_0323_0303" + } + ] + }, + { + "id": "K_P", + "text": "P", + "nextlayer": "default" + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "T_new_293", + "width": 50, + "sp": 10 + }, + { + "id": "K_A", + "text": "A", + "nextlayer": "default", + "sk": [ + { + "text": "Ạ", + "id": "U_0041_0323" + }, + { + "text": "Ã", + "id": "U_0041_0303" + }, + { + "text": "Ạ̃", + "id": "U_0041_0323_0303" + } + ] + }, + { + "id": "K_S", + "text": "S", + "nextlayer": "default", + "sk": [ + { + "text": "Ṣ", + "id": "U_0053_0323" + } + ], + "flick": { + "n": { + "text": "Š", + "id": "U_0160" + } + } + }, + { + "id": "K_D", + "text": "D", + "nextlayer": "default", + "sk": [ + { + "text": "Ḍ", + "id": "U_0044_0323" + }, + { + "text": "DZ", + "id": "U_0044_005A" + } + ] + }, + { + "id": "K_F", + "text": "F", + "nextlayer": "default" + }, + { + "id": "K_G", + "text": "G", + "nextlayer": "default" + }, + { + "id": "K_H", + "text": "H", + "nextlayer": "default" + }, + { + "id": "K_J", + "text": "J", + "nextlayer": "default", + "sk": [ + { + "text": "J̣", + "id": "U_004A_0323" + } + ] + }, + { + "id": "K_K", + "text": "K", + "nextlayer": "default" + }, + { + "id": "K_L", + "text": "L", + "nextlayer": "default", + "sk": [ + { + "text": "Ḷ", + "id": "U_004C_0323" + } + ] + }, + { + "id": "T_new_500", + "text": "", + "width": 10, + "sp": 10 + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SHIFT", + "text": "*Shift*", + "sp": 2, + "nextlayer": "default" + }, + { + "id": "K_Z", + "text": "Z", + "nextlayer": "default", + "sk": [ + { + "text": "Ẓ", + "id": "U_005A_0323" + }, + { + "text": "Ž", + "id": "U_017D" + } + ] + }, + { + "id": "K_X", + "text": "X", + "nextlayer": "default" + }, + { + "id": "K_C", + "text": "C", + "nextlayer": "default", + "sk": [ + { + "text": "C̣", + "id": "U_0043_0323" + }, + { + "text": "Č", + "id": "U_010C" + }, + { + "text": "ČH", + "id": "U_010C_0048" + } + ] + }, + { + "id": "K_V", + "text": "V", + "nextlayer": "default" + }, + { + "id": "K_B", + "text": "B", + "nextlayer": "default" + }, + { + "id": "K_N", + "text": "N", + "nextlayer": "default" + }, + { + "id": "K_M", + "text": "M", + "nextlayer": "default" + }, + { + "id": "K_PERIOD", + "text": ".", + "nextlayer": "default", + "layer": "default", + "sk": [ + { + "text": ",", + "id": "K_COMMA", + "layer": "default" + }, + { + "text": "!", + "id": "K_1", + "layer": "shift" + }, + { + "text": "?", + "id": "K_SLASH", + "layer": "shift" + }, + { + "text": "'", + "id": "K_QUOTE", + "layer": "default" + }, + { + "text": "\"", + "id": "K_QUOTE", + "layer": "shift" + }, + { + "text": "\\", + "id": "K_BKSLASH", + "layer": "default" + }, + { + "text": ":", + "id": "K_COLON", + "layer": "shift" + }, + { + "text": ";", + "id": "K_COLON", + "layer": "default" + }, + { + "text": "̣", + "id": "U_0323" + } + ] + }, + { + "id": "K_BKSP", + "text": "*BkSp*", + "sp": 1 + } + ] + }, + { + "id": 4, + "key": [ + { + "id": "K_NUMLOCK", + "text": "*123*", + "width": 150, + "sp": 1, + "nextlayer": "numeric" + }, + { + "id": "K_LOPT", + "text": "*Menu*", + "width": 120, + "sp": 1 + }, + { + "id": "K_SPACE", + "text": "", + "width": 610, + "sp": 0 + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "width": 150, + "sp": 1 + } + ] + } + ] + }, + { + "id": "numeric", + "row": [ + { + "id": 1, + "key": [ + { + "id": "K_1", + "text": "1" + }, + { + "id": "K_2", + "text": "2" + }, + { + "id": "K_3", + "text": "3" + }, + { + "id": "K_4", + "text": "4" + }, + { + "id": "K_5", + "text": "5" + }, + { + "id": "K_6", + "text": "6" + }, + { + "id": "K_7", + "text": "7" + }, + { + "id": "K_8", + "text": "8" + }, + { + "id": "K_9", + "text": "9" + }, + { + "id": "K_0", + "text": "0" + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "K_4", + "text": "$", + "pad": 50, + "layer": "shift" + }, + { + "id": "K_2", + "text": "@", + "layer": "shift" + }, + { + "id": "K_3", + "text": "#", + "layer": "shift" + }, + { + "id": "K_5", + "text": "%", + "layer": "shift" + }, + { + "id": "K_7", + "text": "&", + "layer": "shift" + }, + { + "id": "K_HYPHEN", + "text": "_", + "layer": "shift" + }, + { + "id": "K_EQUAL", + "text": "=", + "layer": "default" + }, + { + "id": "K_BKSLASH", + "text": "|", + "layer": "shift" + }, + { + "id": "K_BKSLASH", + "text": "\\", + "layer": "default" + }, + { + "id": "T_new_558", + "text": "", + "width": 10, + "sp": 10 + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "U_007E", + "text": "~" + }, + { + "id": "K_LBRKT", + "text": "[", + "sk": [ + { + "id": "U_00AB", + "text": "«" + }, + { + "id": "K_COMMA", + "text": "<", + "layer": "shift" + }, + { + "id": "K_LBRKT", + "text": "{", + "layer": "shift" + } + ] + }, + { + "id": "K_9", + "text": "(", + "layer": "shift" + }, + { + "id": "K_0", + "text": ")", + "layer": "shift" + }, + { + "id": "K_RBRKT", + "text": "]", + "sk": [ + { + "id": "U_00BB", + "text": "»" + }, + { + "id": "K_PERIOD", + "text": ">", + "layer": "shift" + }, + { + "id": "K_RBRKT", + "text": "}", + "layer": "shift" + } + ] + }, + { + "id": "K_EQUAL", + "text": "+", + "layer": "shift" + }, + { + "id": "K_HYPHEN", + "text": "-" + }, + { + "id": "K_8", + "text": "*", + "layer": "shift" + }, + { + "id": "K_SLASH", + "text": "/" + }, + { + "id": "K_BKSP", + "text": "*BkSp*", + "width": 100, + "sp": 1 + } + ] + }, + { + "id": 4, + "key": [ + { + "id": "K_LOWER", + "text": "*abc*", + "width": 150, + "sp": 1, + "nextlayer": "default" + }, + { + "id": "K_LOPT", + "text": "*Menu*", + "width": 120, + "sp": 1 + }, + { + "id": "K_SPACE", + "width": 610, + "sp": 0 + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "width": 150, + "sp": 1 + } + ] + } + ] + } + ], + "displayUnderlying": false, + "fontsize": "" + } +} \ No newline at end of file diff --git a/release/k/kalasha/source/kalasha.kmn b/release/k/kalasha/source/kalasha.kmn new file mode 100644 index 0000000000..32efd68881 --- /dev/null +++ b/release/k/kalasha/source/kalasha.kmn @@ -0,0 +1,238 @@ +c kalasha generated from template at 2022-07-13 12:26:18 +c with name "kalasha" +store(&VERSION) '17.0' +store(&NAME) 'Kaḷaṣamondr' +store(©RIGHT) '© Elsa Cooper, Greg Cooper, and Malachi James.' +store(&TARGETS) 'any' +store(&VISUALKEYBOARD) 'kalasha.kvks' +store(&LAYOUTFILE) 'kalasha.keyman-touch-layout' +store(&KEYBOARDVERSION) '1.0' + +begin Unicode > use(main) +begin NewContext > use(NewContext) +begin PostKeystroke > use(PostKeystroke) + +c This tells Keyman which keys should have casing behavior applied +store(&CasedKeys) [K_A] .. [K_Z] + +store(digit) '0'..'9' +store(caps) 'A'..'Z' +store(letters) 'a'..'z' + +store(sentencePunctuation) '.?!' + +group(NewContext) readonly + nomatch > use(detectStartOfSentence) + +group(PostKeystroke) readonly + c We get here after every keystroke and model action is processed + + c Okay, let's stay on the numeric layer if we are there already + if(&newLayer = "") if(&layer = 'numeric') any(digit) > context + + c Don't swap off the caps lock layer automatically + if(&layer = 'caps') > context + + c no other changes, so detect sentence or layer change, as long + c as the user hasn't attempted to change layer themselves. + if(&newLayer = "") > use(detectStartOfSentence) + +group(detectStartOfSentence) readonly + nomatch > layer('shift') + + any(sentencePunctuation) ' ' > layer('shift') + + nomatch > layer('default') + +group(main) using keys + ++ [SHIFT K_EQUAL] > '+' ++ [SHIFT K_HYPHEN] > '_' ++ [SHIFT K_0] > ')' ++ [SHIFT K_9] > '(' ++ [SHIFT K_8] > '*' ++ [SHIFT K_7] > '&' ++ [SHIFT K_6] > '^' ++ [SHIFT K_5] > '%' ++ [SHIFT K_4] > '$' ++ [SHIFT K_3] > '#' ++ [SHIFT K_2] > '@' ++ [SHIFT K_1] > '!' +c + [SHIFT K_BKQUOTE] > '̃' ++ [SHIFT K_BKSLASH] > '|' ++ [SHIFT K_RBRKT] > '}' ++ [SHIFT K_LBRKT] > '{' ++ [SHIFT K_P] > 'P' ++ [SHIFT K_O] > 'O' ++ [SHIFT K_I] > 'I' ++ [SHIFT K_U] > 'U' ++ [SHIFT K_Y] > 'Y' ++ [SHIFT K_T] > 'T' ++ [SHIFT K_R] > 'R' ++ [SHIFT K_E] > 'E' ++ [SHIFT K_W] > 'W' ++ [SHIFT K_Q] > 'Q' ++ [SHIFT K_QUOTE] > '"' ++ [SHIFT K_COLON] > ':' ++ [SHIFT K_L] > 'L' ++ [SHIFT K_K] > 'K' ++ [SHIFT K_J] > 'J' ++ [SHIFT K_H] > 'H' ++ [SHIFT K_G] > 'G' ++ [SHIFT K_F] > 'F' ++ [SHIFT K_D] > 'D' ++ [SHIFT K_S] > 'S' ++ [SHIFT K_A] > 'A' ++ [SHIFT K_SLASH] > '?' ++ [SHIFT K_PERIOD] > '>' ++ [SHIFT K_COMMA] > '<' ++ [SHIFT K_M] > 'M' ++ [SHIFT K_N] > 'N' ++ [SHIFT K_B] > 'B' ++ [SHIFT K_V] > 'V' ++ [SHIFT K_C] > 'C' ++ [SHIFT K_X] > 'X' ++ [SHIFT K_Z] > 'Z' ++ [K_EQUAL] > '=' ++ [K_HYPHEN] > '-' ++ [K_0] > '0' ++ [K_9] > '9' ++ [K_8] > '8' ++ [K_7] > '7' ++ [K_6] > '6' ++ [K_5] > '5' ++ [K_4] > '4' ++ [K_3] > '3' ++ [K_2] > '2' ++ [K_1] > '1' ++ [K_BKSLASH] > '\' ++ [K_RBRKT] > ']' ++ [K_LBRKT] > '[' ++ [K_P] > 'p' ++ [K_O] > 'o' ++ [K_I] > 'i' ++ [K_U] > 'u' ++ [K_Y] > 'y' ++ [K_T] > 't' ++ [K_R] > 'r' ++ [K_E] > 'e' ++ [K_W] > 'w' ++ [K_Q] > 'q' ++ [K_SLASH] > '/' ++ [K_PERIOD] > '.' ++ [K_COMMA] > ',' ++ [K_M] > 'm' ++ [K_N] > 'n' ++ [K_B] > 'b' ++ [K_V] > 'v' ++ [K_C] > 'c' ++ [K_X] > 'x' ++ [K_Z] > 'z' ++ [K_QUOTE] > U+0027 ++ [K_COLON] > ';' ++ [K_L] > 'l' ++ [K_K] > 'k' ++ [K_J] > 'j' ++ [K_H] > 'h' ++ [K_G] > 'g' ++ [K_F] > 'f' ++ [K_D] > 'd' ++ [K_S] > 's' ++ [K_A] > 'a' ++ [K_BKQUOTE] > U+0323 + +c ====================== Rotation rule ====================== + +c produce backquote +U+0323 + '`' > '`' + +c produce tilde +U+0303 + '~' > '~' + +c reorder to dot below, then tilde +U+0303 + '`' > U+0323 U+0303 + +c ====================== Diacritics rule ====================== + +c define dot below +store(dotted_letter) "aAcCdDeEiIlLoOrRsStTuUzZ" +any(dotted_letter) + '`' > index(dotted_letter,1) U+0323 deadkey(dotwait) c dotwait is special for the caracter d (see below) + +c define tilde +store(tilde_letter) 'aAeEiIoOuU' U+0323 +any(tilde_letter) + '~' > index(tilde_letter,1) U+0303 + +c ====================== Backspace rule ====================== + +c backspace removes diacritic and the base letter +store(alphabet) 'a'..'z' 'A'..'Z' +store(diacritic) U+0323 U+0303 +any(alphabet) any(diacritic) any(diacritic) + [K_BKSP] > nul +any(alphabet) any(diacritic) + [K_BKSP] > nul + +c backspace removes characters c,s,z + h +any(digraph_char) + any(hchar) > index(digraph_char, 1) index(hchar, 2) dk(h_combination) +dk(h_combination) + any(alphabet) > index(alphabet, 2) +any(digraph_char) any(hchar) dk(h_combination) + [K_BKSP] > nul + +c ====================== Character + h/H rule ====================== +c turn decomposed to composed characters (store(base) + h) +store(hchar) 'hH' +store(base) 'dDgGjJkKlLmMnNpPrRtT' + +any(base) + any(hchar) > index(base, 1) index(hchar, 2) dk(composing_char) +dk(composing_char) + any(alphabet) > index(alphabet, 2) +any(base) any(hchar) dk(composing_char) + [K_BKSP] > nul + +any(dotted_letter) U+0323 + any(hchar) > index(dotted_letter, 1) U+0323 index(hchar, 3) dk(composed_dotted) +dk(composed_dotted) + any(alphabet) > index(alphabet, 2) +any(dotted_letter) U+0323 any(hchar) dk(composed_dotted) + [K_BKSP] > nul + +c transforming c,s,z,j to have caron: digraphs (ch,sh,zh, j) +store(digraph_char) 'cCjsSzZ' +store(transform_digraph) 'čČǰšŠžŽ' + +"J" + [SHIFT K_J] > "J̌" +"J" + "^" > "J̌" +"J̌" + "`" > "J" U+030C U+0323 + +any(digraph_char) + '^' > index(transform_digraph, 1) +any(digraph_char) + any(digraph_char) > index(transform_digraph, 1) +any(transform_digraph) + '`' > index(transform_digraph, 1) U+0323 + +c prevent typing dot before the dotted letter +c + '`' > + +c Double tap space to produce a full stop or period +' ' + [K_SPACE] > U+002E U+0020 + +c write a rule so that d followed by anything but h loses its dot +store(allkeys) 'abcdefgijklmnopqrstuvwxyzABCDEFGIJKLMNOPQRSTUVWXYZ' + +'d' U+0323 deadkey(dotwait) + any(allkeys) > 'd' index(allkeys,4) + +c touch keys; d = dot; a = tilde ++ [T_a_d] > 'a' U+0323 ++ [T_a_t] > 'a' U+0303 ++ [T_a_d_t] > 'a' U+0323 U+0303 ++ [T_e_d] > 'e' U+0323 ++ [T_e_t] > 'e' U+0303 ++ [T_e_d_t] > 'e' U+0323 U+0303 ++ [T_i_d] > 'i' U+0323 ++ [T_i_t] > 'i' U+0303 ++ [T_i_d_t] > 'i' U+0323 U+0303 ++ [T_o_d] > 'o' U+0323 ++ [T_o_t] > 'o' U+0303 ++ [T_o_d_t] > 'o' U+0323 U+0303 ++ [T_u_d] > 'u' U+0323 ++ [T_u_t] > 'u' U+0303 ++ [T_u_d_t] > 'u' U+0323 U+0303 ++ [T_c_d] > 'c' U+0323 ++ [T_d_d] > 'd' U+0323 ++ [T_j_d] > 'j' U+0323 ++ [T_l_d] > 'l' U+0323 ++ [T_r_d] > 'r' U+0323 ++ [T_s_d] > 's' U+0323 ++ [T_t_d] > 't' U+0323 ++ [T_z_d] > 'z' U+0323 +c + [T_a_d_cap] > 'A' U+0323 diff --git a/release/k/kalasha/source/kalasha.kps b/release/k/kalasha/source/kalasha.kps new file mode 100644 index 0000000000..d589eadc57 --- /dev/null +++ b/release/k/kalasha/source/kalasha.kps @@ -0,0 +1,104 @@ + + + + 19.0.212.0 + 7.0 + + + + readme.htm + ..\LICENSE.md + welcome\welcome.htm + + + + + + + + + + Kaḷaṣamondr + © Malachi James, Elsa Cooper, and Greg Cooper + Malachi James, Elsa Cooper, and Greg Cooper + The Kaḷaṣamondr keyboard is created to type the Kalasha language with Roman (Latin) script. Allowing keyboard users to write in English and Kalasha without switching keyboards. + + + + + ..\build\kalasha.kmx + + 0 + .kmx + + + ..\build\kalasha.js + + 0 + .js + + + ..\build\kalasha.kvk + + 0 + .kvk + + + readme.htm + + 0 + .htm + + + welcome\welcome.htm + File welcome.htm + 0 + .htm + + + welcome\DesktopLayout.png + Desktop layouts + 0 + .png + + + welcome\TouchLayout_Default.jpg + Touch Default Layout + 0 + .jpg + + + welcome\TouchLayout_Shift.jpg + Touch Shift Layout + 0 + .jpg + + + welcome\TouchLayout_Numeric.jpg + Touch Numeric Layout + 0 + .jpg + + + ..\LICENSE.md + File LICENSE.md + 0 + .md + + + welcome\longpress.gif + File longpress.gif + 0 + .gif + + + + + kalasha + + Kalasha + + + + + diff --git a/release/k/kalasha/source/kalasha.kvks b/release/k/kalasha/source/kalasha.kvks new file mode 100644 index 0000000000..8c99fd06d6 --- /dev/null +++ b/release/k/kalasha/source/kalasha.kvks @@ -0,0 +1,108 @@ + + +
+ 10.0 + kalasha + +
+ + + ! + " + # + $ + % + & + ( + ) + * + + + : + < + > + ? + @ + A + B + C + D + E + F + G + H + I + J + K + L + M + N + O + P + Q + R + S + T + U + V + W + X + Y + Z + ^ + _ + { + | + } + ~ + + + ' + , + - + . + / + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + ; + = + [ + \ + ] + ̣ + a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z + + +
diff --git a/release/k/kalasha/source/readme.htm b/release/k/kalasha/source/readme.htm new file mode 100644 index 0000000000..6143c8cbef --- /dev/null +++ b/release/k/kalasha/source/readme.htm @@ -0,0 +1,22 @@ + + + + + + Kaḷaṣamondr + + + + +

Kaḷaṣamondr

+ +

+ The Kaḷaṣamondr keyboard is created to type the Kalasha language with Roman (Latin) script. Allowing keyboard users to write in English and Kalasha without switching keyboards. +

+ + + diff --git a/release/k/kalasha/source/welcome/DesktopLayout.png b/release/k/kalasha/source/welcome/DesktopLayout.png new file mode 100644 index 0000000000..9f683ccb4b Binary files /dev/null and b/release/k/kalasha/source/welcome/DesktopLayout.png differ diff --git a/release/k/kalasha/source/welcome/TouchLayout_Default.jpg b/release/k/kalasha/source/welcome/TouchLayout_Default.jpg new file mode 100644 index 0000000000..4a7c94b977 Binary files /dev/null and b/release/k/kalasha/source/welcome/TouchLayout_Default.jpg differ diff --git a/release/k/kalasha/source/welcome/TouchLayout_Numeric.jpg b/release/k/kalasha/source/welcome/TouchLayout_Numeric.jpg new file mode 100644 index 0000000000..53727dbee6 Binary files /dev/null and b/release/k/kalasha/source/welcome/TouchLayout_Numeric.jpg differ diff --git a/release/k/kalasha/source/welcome/TouchLayout_Shift.jpg b/release/k/kalasha/source/welcome/TouchLayout_Shift.jpg new file mode 100644 index 0000000000..b9db8d19f9 Binary files /dev/null and b/release/k/kalasha/source/welcome/TouchLayout_Shift.jpg differ diff --git a/release/k/kalasha/source/welcome/longpress.gif b/release/k/kalasha/source/welcome/longpress.gif new file mode 100644 index 0000000000..581d416a0d Binary files /dev/null and b/release/k/kalasha/source/welcome/longpress.gif differ diff --git a/release/k/kalasha/source/welcome/welcome.htm b/release/k/kalasha/source/welcome/welcome.htm new file mode 100644 index 0000000000..e7912c17a9 --- /dev/null +++ b/release/k/kalasha/source/welcome/welcome.htm @@ -0,0 +1,389 @@ + + + + + + Start Using Kaḷaṣamondr + + + + +

Start Using Kaḷaṣamondr

+
+

The Kaḷaṣamondr keyboard is created to type the Kalasha language with Roman (Latin) script. Allowing keyboard users to write in English and Kalasha without switching keyboards.

+ +

+ The Kaḷaṣamondr keyboards has a number of rules to differentiate itself from the standard US keyboard. At first glance, the keyboard only has the typical English characters we are accustomed to; however, there is one key that is different, the top left-hand key. This key has two functions: to represent retroflexion and/or nasalisation. +

+ +

Retroflexion (both consonants and vowels can be retroflex)

+ +

In the Kaḷaṣamondr keyboard, the US keyboard backquote symbol (`) is replaced with now represents retroflexion with a dot-under (combining with the preceding typed character), e.g. , , .

+ +

Nasalisation (only vowels can be nasalised)

+ +

In the Kaḷaṣamondr keyboard, the US keyboard tilde symbol (SHIFT+~) now represents nasalisation with a tilde over the preceding typed vowel character, e.g. , , , , , ạ̃, ẹ̃, ị̃, ọ̃, ụ̃

+ +

Note: the last five examples. They show that vowels can sometimes be both retroflex and nasalised. The dot-under retroflexion symbol should be typed first.

+ +

Aspiration

+ +

+ If you are familiar with In the language Kaḷaṣamondr keyboard, you'd know that there are characters which created from aspirated consonants are represented with an h that follows the consonant. That is, two characters together (a digraph), (sometimes with a dot) to produce with the second one being h, represent one aspirated phoneme. These characters are: + bh, c̣h, dh, ḍh, gh, jh, kh, lh, ḷh, mh, + ph, rh, th, ṭh, and ẓh. +

+

+ When one both of these characters are typed, but then need to be deleted, there is a special rule that would make sure that both characters can be backspace-deleted together (behaving like a composed letter character), unless if, however, the next (a third) following letter character is typed, then the special phonemes individual characters return to a decomposed (separate) behaviour state and can be deleted one by one. +

+

+ Exception: In the fricatives sh, zh, and ch, h does not represent aspiration. These digraphs will continue to represent these fricatives. Alternatively, a future option could be a caron (wedge) inserted above the s, z, or c by the ^ key, or these characters can be selected using long press on a mobile layout. +

+ +

The affricates ts and dz are typed using these two separate characters. The aspirated affricate tsh (/t͡sʰ/) is typed using these three separate characters.

+ + (See the key combinations below). +
+

Keyboard Layout

+ +

Desktop Keyboard Layout

+ +Desktop Layout + +
+
+

Key combinations

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLowercaseKeystrokeUppercaseKeystroke
BACKTICK or BACKQUOTE```
CARON (ˇ)
LATIN LETTER C WITH CARONch (č)cc/c^CH (Č)CC/C^
LATIN LETTER S WITH CARONsh (š)ss/s^SH (Š)SS/S^
LATIN LETTER Z WITH CARONzh (ž)zz/z^ZH (Ž)ZZ/Z^
LATIN LETTER J WITH CARONǰjj/j^JJ/J^
DOT (   ̣ )
LETTER A WITH DOT BELOWa`A`
LETTER C WITH DOT BELOWc`C`
LETTER D WITH DOT BELOWd`D`
LETTER E WITH DOT BELOWe`E`
LETTER I WITH DOT BELOWi`I`
LETTER J WITH DOT BELOWj`J`
LETTER L WITH DOT BELOWl`L`
LETTER O WITH DOT BELOWo`O`
LETTER R WITH DOT BELOWr`R`
LETTER S WITH DOT BELOWs`S`
LETTER T WITH DOT BELOWt`T`
LETTER U WITH DOT BELOWu`U`
LETTER Z WITH DOT BELOWz`Z`
TILDE (~)
LETTER A WITH TILDEa~A~
LETTER E WITH TILDEe~E~
LETTER I WITH TILDEi~I~
LETTER O WITH TILDEo~O~
LETTER U WITH TILDEu~U~
DOT BELOW + TILDE (   ̣ ) + (~)
LETTER A WITH DOT BELOW AND TILDEạ̃a~`Ạ̃A~`
LETTER E WITH DOT BELOW AND TILDEẹ̃e~`Ẹ̃E~`
LETTER I WITH DOT BELOW AND TILDEị̃i~`Ị̃I~`
LETTER O WITH DOT BELOW AND TILDEọ̃o~`Ọ̃O~`
LETTER U WITH DOT BELOW AND TILDEụ̃u~`Ụ̃U~`
NameLowercaseKeystrokeUppercaseKeystroke
+
+ +

Mobile/Tablet Keyboard Layout

+ +

Default (unshifted)

+ +Touch Layout - Default + +

Shift

+ +Touch Layout - Shift + +

Numeric

+ +Touch Layout - Numeric + +

Longpress

+Touch Layout - Longpress + +

+ + + \ No newline at end of file