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
+
+
+
+ | Name |
+ Lowercase |
+ Keystroke |
+ Uppercase |
+ Keystroke |
+
+
+
+
+ | BACKTICK or BACKQUOTE |
+ ` |
+ `` |
+ |
+ |
+
+
+
+ | LATIN LETTER S WITH CARON |
+ sh (š) |
+ sh^ |
+ SH (Š) |
+ SH^ |
+
+
+
+ | LATIN LETTER Z WITH CARON |
+ zh (ž) |
+ zh^ |
+ ZH (Ž) |
+ ZH^ |
+
+
+
+ | LATIN LETTER C WITH CARON |
+ c (č) |
+ c^ |
+ C (Č) |
+ C^ |
+
+
+
+ | LETTER A WITH DOT BELOW |
+ ạ |
+ a` |
+ Ạ |
+ A` |
+
+
+
+ | LETTER C WITH DOT BELOW |
+ c̣ |
+ c` |
+ C̣ |
+ C` |
+
+
+
+ | LETTER D WITH DOT BELOW |
+ ḍ |
+ d` |
+ Ḍ |
+ D` |
+
+
+
+ | LETTER E WITH DOT BELOW |
+ ẹ |
+ e` |
+ Ẹ |
+ E` |
+
+
+
+ | LETTER I WITH DOT BELOW |
+ ị |
+ i` |
+ Ị |
+ I` |
+
+
+
+ | LETTER L WITH DOT BELOW |
+ ḷ |
+ l` |
+ Ḷ |
+ L` |
+
+
+
+ | LETTER O WITH DOT BELOW |
+ ọ |
+ o` |
+ Ọ |
+ O` |
+
+
+
+ | LETTER R WITH DOT BELOW |
+ ṛ |
+ r` |
+ Ṛ |
+ R` |
+
+
+
+ | LETTER S WITH DOT BELOW |
+ ṣ |
+ s` |
+ Ṣ |
+ S` |
+
+
+
+ | LETTER T WITH DOT BELOW |
+ ṭ |
+ t` |
+ Ṭ |
+ T` |
+
+
+
+ | LETTER U WITH DOT BELOW |
+ ụ |
+ u` |
+ Ụ |
+ U` |
+
+
+
+ | LETTER Z WITH DOT BELOW |
+ ẓ |
+ z` |
+ Ẓ |
+ Z` |
+
+
+ LETTER A WITH TILDE |
+ ã |
+ a~ |
+ Ã |
+ A~ |
+
+
+
+ | LETTER E WITH TILDE |
+ ẽ |
+ e~ |
+ Ẽ |
+ E~ |
+
+
+
+ | LETTER I WITH TILDE |
+ ĩ |
+ i~ |
+ Ĩ |
+ I~ |
+
+
+
+ | LETTER O WITH TILDE |
+ õ |
+ o~ |
+ Õ |
+ O~ |
+
+
+
+ | LETTER U WITH TILDE |
+ ũ |
+ u~ |
+ Ũ |
+ U~ |
+
+
+
+ | 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`~ |
+
+
+
+
+ | Name |
+ Lowercase |
+ Keystroke |
+ Uppercase |
+ Keystroke |
+
+
+
+
+
+
+
+
Mobile/Tablet Keyboard 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 @@
+
+
+
+
+
+ !
+ "
+ #
+ $
+ %
+ &
+ (
+ )
+ *
+ +
+ :
+ <
+ >
+ ?
+ @
+ 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
+
+
+
+
+
+
Key combinations
+
+
+
+ | Name |
+ Lowercase |
+ Keystroke |
+ Uppercase |
+ Keystroke |
+
+
+
+
+ | BACKTICK or BACKQUOTE |
+ ` |
+ `` |
+ |
+ |
+
+
+
+
+ | LATIN LETTER C WITH CARON |
+ ch (č) |
+ cc/c^ |
+ CH (Č) |
+ CC/C^ |
+
+
+
+ | LATIN LETTER S WITH CARON |
+ sh (š) |
+ ss/s^ |
+ SH (Š) |
+ SS/S^ |
+
+
+
+ | LATIN LETTER Z WITH CARON |
+ zh (ž) |
+ zz/z^ |
+ ZH (Ž) |
+ ZZ/Z^ |
+
+
+
+ | LATIN LETTER J WITH CARON |
+ ǰ |
+ jj/j^ |
+ J̌ |
+ JJ/J^ |
+
+
+
+ | LETTER A WITH DOT BELOW |
+ ạ |
+ a` |
+ Ạ |
+ A` |
+
+
+
+ | LETTER C WITH DOT BELOW |
+ c̣ |
+ c` |
+ C̣ |
+ C` |
+
+
+
+ | LETTER D WITH DOT BELOW |
+ ḍ |
+ d` |
+ Ḍ |
+ D` |
+
+
+
+ | LETTER E WITH DOT BELOW |
+ ẹ |
+ e` |
+ Ẹ |
+ E` |
+
+
+
+ | LETTER I WITH DOT BELOW |
+ ị |
+ i` |
+ Ị |
+ I` |
+
+
+
+ | LETTER J WITH DOT BELOW |
+ j̣ |
+ j` |
+ J̣ |
+ J` |
+
+
+
+ | LETTER L WITH DOT BELOW |
+ ḷ |
+ l` |
+ Ḷ |
+ L` |
+
+
+
+ | LETTER O WITH DOT BELOW |
+ ọ |
+ o` |
+ Ọ |
+ O` |
+
+
+
+ | LETTER R WITH DOT BELOW |
+ ṛ |
+ r` |
+ Ṛ |
+ R` |
+
+
+
+ | LETTER S WITH DOT BELOW |
+ ṣ |
+ s` |
+ Ṣ |
+ S` |
+
+
+
+ | LETTER T WITH DOT BELOW |
+ ṭ |
+ t` |
+ Ṭ |
+ T` |
+
+
+
+ | LETTER U WITH DOT BELOW |
+ ụ |
+ u` |
+ Ụ |
+ U` |
+
+
+
+ | LETTER Z WITH DOT BELOW |
+ ẓ |
+ z` |
+ Ẓ |
+ Z` |
+
+
+ LETTER A WITH TILDE |
+ ã |
+ a~ |
+ Ã |
+ A~ |
+
+
+
+ | LETTER E WITH TILDE |
+ ẽ |
+ e~ |
+ Ẽ |
+ E~ |
+
+
+
+ | LETTER I WITH TILDE |
+ ĩ |
+ i~ |
+ Ĩ |
+ I~ |
+
+
+
+ | LETTER O WITH TILDE |
+ õ |
+ o~ |
+ Õ |
+ O~ |
+
+
+
+ | LETTER U WITH TILDE |
+ ũ |
+ u~ |
+ Ũ |
+ U~ |
+
+
+
+ | 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~` |
+
+
+
+
+ | Name |
+ Lowercase |
+ Keystroke |
+ Uppercase |
+ Keystroke |
+
+
+
+
+
+
Mobile/Tablet Keyboard Layout
+
+
Default (unshifted)
+
+

+
+
Shift
+
+

+
+
Numeric
+
+

+
+
Longpress
+

+
+
+
+
+
\ No newline at end of file