diff --git a/experimental/i/ipachart/HISTORY.md b/experimental/i/ipachart/HISTORY.md
new file mode 100755
index 0000000000..86d97e82fc
--- /dev/null
+++ b/experimental/i/ipachart/HISTORY.md
@@ -0,0 +1,10 @@
+IPAchart Change History
+====================
+
+0.2 (2024-06-124)
+----------------
+* Touch keyboard (Combination and Vowel focus) created.
+
+0.1 (2020-09-30)
+----------------
+* Created by David Rowbory
diff --git a/experimental/i/ipachart/LICENSE b/experimental/i/ipachart/LICENSE
new file mode 100644
index 0000000000..514f71fbdb
--- /dev/null
+++ b/experimental/i/ipachart/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 David Rowbory
+
+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/experimental/i/ipachart/LICENSE.md b/experimental/i/ipachart/LICENSE.md
new file mode 100644
index 0000000000..514f71fbdb
--- /dev/null
+++ b/experimental/i/ipachart/LICENSE.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 David Rowbory
+
+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/experimental/i/ipachart/README.md b/experimental/i/ipachart/README.md
new file mode 100755
index 0000000000..38cd502bec
--- /dev/null
+++ b/experimental/i/ipachart/README.md
@@ -0,0 +1,44 @@
+IPAchart keyboard
+==============
+
+Copyright © 2020-2024 David Rowbory
+
+Version 0.2
+
+Description
+-----------
+
+A touch IPA keyboard formatted similar to an IPA chart, to aid mobile (tablet and phone) IPA transcription.
+
+IPAchart gives you not all but the most frequently used IPA vowels, consonants, tone letters and diacritics tly as possible, laid out like an IPA chart.
+
+It is probably easiest to use this on a tablet but it does work on larger phones.
+
+
+1. Press the ➧ button to left of the vowels to expand the vowel section (hiding some consonants). Press again to contract it.
+2. Flick up-right to get a vowel with a high tone mark, left-right to get mid tone, down-right to get low tone.
+3. Press and hold to get alternate related symbols.
+4. Double-tap to get aspirated plosives and pre-/post-nasals.
+5. Double-tap space to get a length mark.
+
+
+Do let me know if there are features you really need that are currently missing. email keyboards@m.rowbory.co.uk
+
+
+Links
+-----
+
+Supported Platforms
+-------------------
+ * Windows
+ * macOS
+ * Linux
+ * Web
+ * iPhone
+ * iPad
+ * Android phone
+ * Android tablet
+ * Mobile devices
+ * Desktop devices
+ * Tablet devices
+
diff --git a/experimental/i/ipachart/ipachart.keyboard_info b/experimental/i/ipachart/ipachart.keyboard_info
new file mode 100755
index 0000000000..1f17465605
--- /dev/null
+++ b/experimental/i/ipachart/ipachart.keyboard_info
@@ -0,0 +1,7 @@
+{
+ "license": "mit",
+ "languages": [
+
+ ],
+ "description": "IPAchart generated from template"
+}
diff --git a/experimental/i/ipachart/ipachart.kpj b/experimental/i/ipachart/ipachart.kpj
new file mode 100755
index 0000000000..a94b8065db
--- /dev/null
+++ b/experimental/i/ipachart/ipachart.kpj
@@ -0,0 +1,9 @@
+
+
+
+ 2.0
+ True
+ True
+ True
+
+
diff --git a/experimental/i/ipachart/source/Andika-Regular.ttf b/experimental/i/ipachart/source/Andika-Regular.ttf
new file mode 100755
index 0000000000..2378f5ceeb
Binary files /dev/null and b/experimental/i/ipachart/source/Andika-Regular.ttf differ
diff --git a/experimental/i/ipachart/source/ipachart-bg.jpg b/experimental/i/ipachart/source/ipachart-bg.jpg
new file mode 100644
index 0000000000..c6dd8fecae
Binary files /dev/null and b/experimental/i/ipachart/source/ipachart-bg.jpg differ
diff --git a/experimental/i/ipachart/source/ipachart.css b/experimental/i/ipachart/source/ipachart.css
new file mode 100755
index 0000000000..61cbd7e4f6
--- /dev/null
+++ b/experimental/i/ipachart/source/ipachart.css
@@ -0,0 +1,182 @@
+h1 {
+font-size: 250%;
+color: rgb(200,10,10);
+ }
+
+body {
+ /* background-color: #eec; */
+ /* background-image: linear-gradient(80deg, #ffc , #bbf); */
+ /* url("ipachart-bg.jpg"); */
+ font-family: "Andika","Charis SIL","DejaVu Sans","AndikaAfr","Andika Afr","Andika New Basic Compact";
+}
+.kmw-key-layer {
+ /* transition: 1s; /*
+ /* background-image: linear-gradient(80deg, #ffc , #bbf); */
+ background-image: linear-gradient(85deg, rgba(238,238,204,1) 0%, rgba(238,238,204,1) 45%, rgba(34,34,34,1) 50%, rgba(204,204,255,1) 55%, rgba(221,221,255,1) 100%);
+}
+.kmw-key-layer:has(#vowels-K_I) {
+background-image: linear-gradient(85deg, rgba(238,238,204,1) 0%, rgba(238,238,204,1) 55%, rgba(34,34,34,1) 60%, rgba(204,204,255,1) 65%, rgba(221,221,255,1) 100%);
+}
+
+.kmw-key-row:nth-child(5) {
+ background-image: linear-gradient(90deg, rgba(120,120,120,1) 0%, rgba(120,120,120,1) 48%, rgba(34,34,34,1) 51%, rgba(204,204,255,1) 54%, rgba(221,221,255,1) 100%);
+/* transition: 1s ease-out; */
+}
+.kmw-key-row:nth-child(5):has(#vowels-K_SPACE) {
+ background-image: linear-gradient(90deg, rgba(120,120,120,1) 0%, rgba(120,120,120,1) 56%, rgba(34,34,34,1) 61%, rgba(204,204,255,1) 66%, rgba(221,221,255,1) 100%);
+}
+.key-layer-group { padding: 0px 0px; }
+
+.kmw-key[id*="default-U_25"] {
+ border: black solid 4px;
+}
+
+/* easier selecting from below *//*
+.phone .kmw-key-square-ex {
+ margin: 0 0 -30px 5px;
+}
+.phone .kmw-key-square-ex .kmw-key-default {
+ margin: 0 0 30px 5px;
+}*/
+
+.tablet.android .kmw-key-square .kmw-key.kmw-key-default, .phone.android .kmw-key-square .kmw-key.kmw-key-default, .phone.ios .kmw-key-square .kmw-key.kmw-key-default, .tablet.ios .kmw-key-square .kmw-key.kmw-key-default {
+color: black;
+font-size: 1.2em;
+background: transparent;
+}
+
+.android .kmw-key-layer-group, .ios .kmw-key-layer-group {
+ /*background: #eee url("ipachart-bg.jpg"); transition: 1s ease-out; */
+}
+.android .kmw-key.kmw-key-shift, .android .kmw-key.kmw-key-special, .ios .kmw-key.kmw-key-shift, .ios .kmw-key.kmw-key-special {
+ color: #333;
+ background: #ccc;
+}
+.tablet.android .kmw-key.kmw-key-default.kmw-spacebar, .android .kmw-key.kmw-key-default.kmw-spacebar, .ios .kmw-key.kmw-key-default.kmw-spacebar {
+ border: 1pt solid white;
+ border-bottom: none;
+}
+
+.android .kmw-key-popup-icon, .tablet.android .kmw-key-popup-icon, .ios .kmw-key-popup-icon {
+ font-size: 70%;
+ top: -10px;
+ right: 0px;
+ left: initial;
+ color: red;
+}
+
+.android #kmw-popup-keys {
+ border-radius: 10px;
+}
+
+.android .kmw-banner-bar, .ios .kmw-banner-bar {
+ background: #cdc;
+ color: #131;
+ display: none;
+}
+
+.android .kmw-suggestion-text, .ios .kmw-suggestion-text {
+ color: #131;
+}
+
+.kmw-banner-bar .kmw-suggest-option {
+/* height: auto; */
+font-size: 85%;
+ display: none;
+}
+
+.android #kmw-popup-keys, .ios #kmw-popup-keys {
+ background: #fff;
+}
+
+.android #kmw-popup-keys .kmw-key.kmw-key-default, #kmw-popup-keys .kmw-key.kmw-key-default {
+background: #eee;
+}
+
+.android #kmw-popup-keys .kmw-key.kmw-key-default.kmw-key-touched, #kmw-popup-keys .kmw-key.kmw-key-default.kmw-key-touched {
+background-color: #9e9;
+}
+
+.android .kmw-key-touched, .kmw-key-touched {
+background-color: #9e9;
+}
+
+.android #kmw-popup-keys .kmw-key-square-ex .kmw-key, #kmw-popup-keys .kmw-key-square-ex .kmw-key {
+margin-bottom: 30px;
+background: #eee;
+color: black;
+}
+.android .kmw-keytip, .kmw-keytip {
+margin-bottom: 15px;
+}
+#kmw-popup-keys { background-color: #eee; color: black; /* transition: 0.5s ease-out; */ }
+
+
+#default-U_02E5, #default-U_02E6, #default-U_02E7, #default-U_02E8, #default-U_02E9,
+#vowels-U_02E5, #vowels-U_02E6, #vowels-U_02E7, #vowels-U_02E8, #vowels-U_02E9 {
+ background-color: #333;
+ color: white;
+}
+
+
+/* rounded */
+#default-K_Y, #vowels-K_Y, #default-U_028F, #vowels-U_028F, #default-U_00F8, #vowels-U_00F8, #default-U_0153, #vowels-U_0153, #default-U_0276, #vowels-U_0276, #default-U_0289, #vowels-U_0289, #default-U_0275, #vowels-U_0275, #default-U_025E, #vowels-U_025E, #default-K_U, #vowels-K_U, #default-U_028A, #vowels-U_028A, #default-K_O, #vowels-K_O, #default-U_0254, #vowels-U_0254, #default-U_0252, #vowels-U_0252 {
+ border-radius: 20px;
+ background-color: #ff3;
+}
+/* unrounded */
+#default-K_I, #vowels-K_I, #default-U_026A, #vowels-U_026A, #default-K_E, #vowels-K_E, #default-U_025B, #vowels-U_025B, #default-U_00E6, #vowels-U_00E6, #default-K_A, #vowels-K_A, #default-U_0268, #vowels-U_0268, #default-U_0258, #vowels-U_0258, #default-U_025C, #vowels-U_025C, #default-U_026F, #vowels-U_026F, #default-U_0264, #vowels-U_0264, #default-U_028C, #vowels-U_028C, #default-U_0251, #vowels-U_0251
+{
+ border-radius: 1px; background-color: #ee7;
+ border-top-style: solid; border-width: 1px; border-image: linear-gradient(to right,#ee7,black);
+ border-right: 1px solid gray;
+}
+
+@media (prefers-color-scheme: dark) {
+ /*div.ios div.kmw-keytip, div.android div.kmw-keytip {
+ background-color:#cdc;
+ color: #333;
+ }*/
+
+ /* Style for callout used on phones */
+ #kmw-popup-callout {
+ background-color: #eff3f9;
+ }
+
+ /* rounded */
+ #default-K_Y, #vowels-K_Y, #default-U_028F, #vowels-U_028F, #default-U_00F8, #vowels-U_00F8, #default-U_0153, #vowels-U_0153, #default-U_0276, #vowels-U_0276, #default-U_0289, #vowels-U_0289, #default-U_0275, #vowels-U_0275, #default-U_025E, #vowels-U_025E, #default-K_U, #vowels-K_U, #default-U_028A, #vowels-U_028A, #default-K_O, #vowels-K_O, #default-U_0254, #vowels-U_0254, #default-U_0252, #vowels-U_0252
+ {
+ background-color: #880;
+ color: #ffd;
+
+ }
+ /* unrounded */
+ #default-K_I, #vowels-K_I, #default-U_026A, #vowels-U_026A, #default-K_E, #vowels-K_E, #default-U_025B, #vowels-U_025B, #default-U_00E6, #vowels-U_00E6, #default-K_A, #vowels-K_A, #default-U_0268, #vowels-U_0268, #default-U_0258, #vowels-U_0258, #default-U_025C, #vowels-U_025C, #default-U_026F, #vowels-U_026F, #default-U_0264, #vowels-U_0264, #default-U_028C, #vowels-U_028C, #default-U_0251, #vowels-U_0251
+ {
+ background-color: #660;
+ border-right: 1px solid gray;
+ color: #eec;
+ }
+
+ .tablet.ios .kmw-key-square .kmw-key.kmw-key-default, .tablet.android .kmw-key-square .kmw-key.kmw-key-default, .phone.android .kmw-key-square .kmw-key.kmw-key-default, .phone.ios .kmw-key-square .kmw-key.kmw-key-default {
+ background-color: transparent;
+ color: #dde;
+ }
+
+ .kmw-key-layer {
+ /* transition: 1s; /*
+ /* background-image: linear-gradient(80deg, #ffc , #bbf); */
+ background-image: linear-gradient(85deg, #770 0%, #770 45%, black 50%, #119 55%, #119 100%);
+ }
+ .kmw-key-layer:has(#vowels-K_I) {
+ background-image: linear-gradient(85deg, #770 0%, #770 55%, black 60%, #119 65%, #119 100%);
+ }
+ .kmw-key-row:nth-child(5) {
+ background-image: linear-gradient(90deg, #770 0%, #770 48%, black 51%, #119 54%, #119 100%);
+ /* transition: 1s ease-out; */
+ }
+ .kmw-key-row:nth-child(5):has(#vowels-K_SPACE) {
+ background-image: linear-gradient(90deg, #770 0%, #770 56%, black 61%, #119 66%, #119 100%);
+ }
+
+}
diff --git a/experimental/i/ipachart/source/ipachart.keyman-touch-layout b/experimental/i/ipachart/source/ipachart.keyman-touch-layout
new file mode 100755
index 0000000000..6aef42e797
--- /dev/null
+++ b/experimental/i/ipachart/source/ipachart.keyman-touch-layout
@@ -0,0 +1,2142 @@
+{
+ "phone": {
+ "font": "Andika",
+ "layer": [
+ {
+ "id": "default",
+ "row": [
+ {
+ "id": 1,
+ "key": [
+ {
+ "id": "K_I",
+ "text": "i",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "í",
+ "id": "T_i_3"
+ },
+ "se": {
+ "text": "ì",
+ "id": "T_i_1"
+ },
+ "e": {
+ "text": "ī",
+ "id": "T_i_2"
+ }
+ }
+ },
+ {
+ "id": "K_Y",
+ "text": "y",
+ "pad": 1,
+ "width": 80,
+ "flick": {
+ "ne": {
+ "text": "ý",
+ "id": "T_y_3"
+ },
+ "se": {
+ "text": "ỳ",
+ "id": "T_y_1"
+ },
+ "e": {
+ "text": "ȳ",
+ "id": "T_y_2"
+ }
+ }
+ },
+ {
+ "id": "U_026A",
+ "text": "ɪ",
+ "pad": 10,
+ "width": 60,
+ "flick": {
+ "ne": {
+ "text": "ɪ́",
+ "id": "T_i1c_3"
+ },
+ "se": {
+ "text": "ɪ̀",
+ "id": "T_i1c_1"
+ },
+ "e": {
+ "text": "ɪ̄",
+ "id": "T_i1c_2"
+ }
+ }
+ },
+ {
+ "id": "U_028F",
+ "text": "ʏ",
+ "pad": 1,
+ "width": 60,
+ "flick": {
+ "ne": {
+ "text": "ʏ́",
+ "id": "T_y1c_3"
+ },
+ "se": {
+ "text": "ʏ̀",
+ "id": "T_y1c_1"
+ },
+ "e": {
+ "text": "ʏ̄",
+ "id": "T_y1c_2"
+ }
+ }
+ },
+ {
+ "id": "U_0268",
+ "text": "ɨ",
+ "pad": 10,
+ "width": 80,
+ "flick": {
+ "ne": {
+ "text": "ɨ́",
+ "id": "T_i1u_3"
+ },
+ "se": {
+ "text": "ɨ̀",
+ "id": "T_i1u_1"
+ },
+ "e": {
+ "text": "ɨ̄",
+ "id": "T_i1u_2"
+ }
+ }
+ },
+ {
+ "id": "U_0289",
+ "text": "ʉ",
+ "pad": 1,
+ "width": 80,
+ "flick": {
+ "ne": {
+ "text": "ʉ́",
+ "id": "T_u1r_3"
+ },
+ "se": {
+ "text": "ʉ̀",
+ "id": "T_u1r_1"
+ },
+ "e": {
+ "text": "ʉ̄",
+ "id": "T_u1r_2"
+ }
+ }
+ },
+ {
+ "id": "U_028A",
+ "text": "ʊ",
+ "pad": 10,
+ "width": 60,
+ "flick": {
+ "ne": {
+ "text": "ʊ́",
+ "id": "T_uc_3"
+ },
+ "se": {
+ "text": "ʊ̀",
+ "id": "T_uc_1"
+ },
+ "e": {
+ "text": "ʊ̄",
+ "id": "T_uc_2"
+ }
+ }
+ },
+ {
+ "id": "U_026F",
+ "text": "ɯ",
+ "pad": 25,
+ "flick": {
+ "ne": {
+ "text": "ɯ́",
+ "id": "T_u1u_3"
+ },
+ "se": {
+ "text": "ɯ̀",
+ "id": "T_u1u_1"
+ },
+ "e": {
+ "text": "ɯ̄",
+ "id": "T_u1u_2"
+ }
+ }
+ },
+ {
+ "id": "K_U",
+ "text": "u",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ú",
+ "id": "T_u_3"
+ },
+ "se": {
+ "text": "ù",
+ "id": "T_u_1"
+ },
+ "e": {
+ "text": "ū",
+ "id": "T_u_2"
+ }
+ }
+ },
+ {
+ "id": "U_02E5",
+ "text": "˥"
+ },
+ {
+ "id": "K_P",
+ "text": "p",
+ "width": 80,
+ "multitap": [
+ {
+ "text": "pʰ",
+ "id": "T_p_asp"
+ }
+ ]
+ },
+ {
+ "id": "K_B",
+ "text": "b",
+ "pad": 1,
+ "width": 80,
+ "sk": [
+ {
+ "text": "ɓ",
+ "id": "U_0253",
+ "default": true
+ }
+ ],
+ "multitap": [
+ {
+ "text": "bʰ",
+ "id": "T_b_asp"
+ }
+ ]
+ },
+ {
+ "id": "K_T",
+ "text": "t",
+ "width": 80,
+ "sk": [
+ {
+ "text": "ʈ",
+ "id": "U_0288"
+ },
+ {
+ "text": "ɖ",
+ "id": "U_0256"
+ },
+ {
+ "text": "ɳ",
+ "id": "U_0273"
+ },
+ {
+ "text": "ʂ",
+ "id": "U_0262"
+ },
+ {
+ "text": "ʐ",
+ "id": "U_0290"
+ }
+ ],
+ "multitap": [
+ {
+ "text": "tʰ",
+ "id": "T_t_asp"
+ }
+ ]
+ },
+ {
+ "id": "K_D",
+ "text": "d",
+ "pad": 1,
+ "width": 80,
+ "sk": [
+ {
+ "text": "ɗ",
+ "id": "U_0257",
+ "default": true
+ }
+ ],
+ "multitap": [
+ {
+ "text": "dʰ",
+ "id": "T_d_asp"
+ }
+ ]
+ },
+ {
+ "id": "K_C",
+ "text": "c",
+ "width": 80
+ },
+ {
+ "id": "U_025F",
+ "text": "ɟ",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_K",
+ "text": "k",
+ "width": 80,
+ "sk": [
+ {
+ "text": "k͜p",
+ "id": "T_kp",
+ "default": true
+ },
+ {
+ "text": "ƙ",
+ "id": "U_0199"
+ }
+ ],
+ "multitap": [
+ {
+ "text": "kʰ",
+ "id": "T_k_asp"
+ }
+ ]
+ },
+ {
+ "id": "U_0261",
+ "text": "ɡ",
+ "pad": 1,
+ "width": 80,
+ "sk": [
+ {
+ "text": "g͜b",
+ "id": "T_gb",
+ "default": true
+ }
+ ]
+ },
+ {
+ "id": "K_Q",
+ "text": "q",
+ "width": 80,
+ "sk": [
+ {
+ "text": "ɢ",
+ "id": "U_0262"
+ }
+ ]
+ },
+ {
+ "id": "U_0294",
+ "text": "ʔ",
+ "pad": 1,
+ "width": 80
+ }
+ ]
+ },
+ {
+ "id": 2,
+ "key": [
+ {
+ "id": "K_E",
+ "text": "e",
+ "pad": 40,
+ "flick": {
+ "ne": {
+ "text": "é",
+ "id": "T_e_3"
+ },
+ "e": {
+ "text": "ē",
+ "id": "T_e_2"
+ },
+ "se": {
+ "text": "è",
+ "id": "T_e_1"
+ }
+ }
+ },
+ {
+ "id": "U_00F8",
+ "text": "ø",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ǿ",
+ "id": "T_o2r_3"
+ },
+ "se": {
+ "text": "ø̀",
+ "id": "T_o2r_1"
+ },
+ "e": {
+ "text": "ø̄",
+ "id": "T_o2r_2"
+ }
+ }
+ },
+ {
+ "id": "U_0258",
+ "text": "ɘ",
+ "pad": 20,
+ "flick": {
+ "ne": {
+ "text": "ɘ́",
+ "id": "T_e2u_3"
+ },
+ "se": {
+ "text": "ɘ̀",
+ "id": "T_e2u_1"
+ },
+ "e": {
+ "text": "ɘ̄",
+ "id": "T_e2u_2"
+ }
+ }
+ },
+ {
+ "id": "U_0259",
+ "text": "ə",
+ "pad": 5,
+ "flick": {
+ "ne": {
+ "text": "ə́",
+ "id": "T_e2c_3"
+ },
+ "se": {
+ "text": "ə̀",
+ "id": "T_e2c_1"
+ },
+ "e": {
+ "text": "ə̄",
+ "id": "T_e2c_2"
+ }
+ }
+ },
+ {
+ "id": "U_0275",
+ "text": "ɵ",
+ "pad": 5,
+ "flick": {
+ "ne": {
+ "text": "ɵ́",
+ "id": "T_oe3_3"
+ },
+ "se": {
+ "text": "ɵ̀",
+ "id": "T_oe3_1"
+ },
+ "e": {
+ "text": "ɵ̄",
+ "id": "T_oe3_2"
+ }
+ }
+ },
+ {
+ "id": "U_0264",
+ "text": "ɤ",
+ "pad": 10,
+ "flick": {
+ "ne": {
+ "text": "ɤ́",
+ "id": "T_o2u_3"
+ },
+ "se": {
+ "text": "ɤ̀",
+ "id": "T_o2u_1"
+ },
+ "e": {
+ "text": "ɤ̄",
+ "id": "T_o2u_2"
+ }
+ }
+ },
+ {
+ "id": "K_O",
+ "text": "o",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ó",
+ "id": "T_o_3"
+ },
+ "se": {
+ "text": "ò",
+ "id": "T_o_1"
+ },
+ "e": {
+ "text": "ō",
+ "id": "T_o_2"
+ }
+ }
+ },
+ {
+ "id": "U_02E6",
+ "text": "˦"
+ },
+ {
+ "id": "U_0299",
+ "text": "ʙ",
+ "width": 80
+ },
+ {
+ "id": "K_M",
+ "text": "m",
+ "pad": 1,
+ "width": 80,
+ "sk": [
+ {
+ "text": "ŋ͜m",
+ "id": "T_mng"
+ },
+ {
+ "text": "m̩",
+ "id": "T_m_syllabic"
+ }
+ ],
+ "multitap": [
+ {
+ "text": "ᵐ",
+ "id": "U_1D50"
+ }
+ ]
+ },
+ {
+ "id": "U_0271",
+ "text": "ɱ",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_N",
+ "text": "n",
+ "pad": 1,
+ "width": 90,
+ "sk": [
+ {
+ "text": "n̩",
+ "id": "T_n_syllabic",
+ "default": true
+ }
+ ],
+ "multitap": [
+ {
+ "text": "ⁿ",
+ "id": "U_207F"
+ }
+ ]
+ },
+ {
+ "id": "K_R",
+ "text": "r",
+ "width": 80
+ },
+ {
+ "id": "U_0273",
+ "text": "ɳ",
+ "pad": 1,
+ "width": 80,
+ "sk": [
+ {
+ "text": "ɳ̩",
+ "id": "T_ny_syllabic",
+ "default": true
+ }
+ ]
+ },
+ {
+ "id": "U_014B",
+ "text": "ŋ",
+ "pad": 48,
+ "sk": [
+ {
+ "text": "ŋ̩",
+ "id": "T_ng_syllabic"
+ }
+ ]
+ },
+ {
+ "id": "U_0274",
+ "text": "ɴ",
+ "pad": 45,
+ "width": 80
+ },
+ {
+ "id": "U_0280",
+ "text": "ʀ",
+ "pad": 1,
+ "width": 80
+ }
+ ]
+ },
+ {
+ "id": 3,
+ "key": [
+ {
+ "id": "K_SHIFT",
+ "text": "➧",
+ "pad": 1,
+ "width": 80,
+ "sp": 1,
+ "nextlayer": "vowels"
+ },
+ {
+ "id": "U_025B",
+ "text": "ɛ",
+ "flick": {
+ "ne": {
+ "text": "ɛ́",
+ "id": "T_e2_3"
+ },
+ "se": {
+ "text": "ɛ̀",
+ "id": "T_e2_1"
+ },
+ "e": {
+ "text": "ɛ̄",
+ "id": "T_e2_2"
+ }
+ }
+ },
+ {
+ "id": "U_0153",
+ "text": "œ",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "œ́",
+ "id": "T_oe_3"
+ },
+ "se": {
+ "text": "œ̀",
+ "id": "T_oe_1"
+ },
+ "e": {
+ "text": "œ̄",
+ "id": "T_oe_2"
+ }
+ }
+ },
+ {
+ "id": "U_025C",
+ "text": "ɜ",
+ "pad": 40,
+ "flick": {
+ "ne": {
+ "text": "ɜ́",
+ "id": "T_e3u_3"
+ },
+ "se": {
+ "text": "ɜ̀",
+ "id": "T_e3u_1"
+ },
+ "e": {
+ "text": "ɜ̄",
+ "id": "T_e3u_2"
+ }
+ }
+ },
+ {
+ "id": "U_025E",
+ "text": "ɞ",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ɞ́",
+ "id": "T_oe3r_3"
+ },
+ "se": {
+ "text": "ɞ̀",
+ "id": "T_oe3r_1"
+ },
+ "e": {
+ "text": "ɞ̄",
+ "id": "T_oe3r_2"
+ }
+ }
+ },
+ {
+ "id": "U_028C",
+ "text": "ʌ",
+ "pad": 40,
+ "flick": {
+ "ne": {
+ "text": "ʌ́",
+ "id": "T_a3u_3"
+ },
+ "se": {
+ "text": "ʌ̀",
+ "id": "T_a3u_1"
+ },
+ "e": {
+ "text": "ʌ̄",
+ "id": "T_a3u_2"
+ }
+ }
+ },
+ {
+ "id": "U_0254",
+ "text": "ɔ",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ɔ́",
+ "id": "T_o3r_3"
+ },
+ "se": {
+ "text": "ɔ̀",
+ "id": "T_o3r_1"
+ },
+ "e": {
+ "text": "ɔ̄",
+ "id": "T_o3r_2"
+ }
+ }
+ },
+ {
+ "id": "U_02E7",
+ "text": "˧"
+ },
+ {
+ "id": "U_0278",
+ "text": "ɸ",
+ "width": 80
+ },
+ {
+ "id": "U_03B2",
+ "text": "β",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_F",
+ "text": "f",
+ "pad": 12,
+ "width": 80
+ },
+ {
+ "id": "K_V",
+ "text": "v",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "U_03B8",
+ "text": "θ",
+ "width": 80
+ },
+ {
+ "id": "U_00F0",
+ "text": "ð",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_X",
+ "text": "x",
+ "width": 80
+ },
+ {
+ "id": "U_0263",
+ "text": "ɣ",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_H",
+ "text": "h"
+ },
+ {
+ "id": "U_0266",
+ "text": "ɦ",
+ "pad": 1,
+ "width": 60
+ }
+ ]
+ },
+ {
+ "id": 4,
+ "key": [
+ {
+ "id": "U_00E6",
+ "text": "æ",
+ "pad": 45,
+ "flick": {
+ "ne": {
+ "text": "ǽ",
+ "id": "T_ae_3"
+ },
+ "se": {
+ "text": "æ̀",
+ "id": "T_ae_1"
+ },
+ "e": {
+ "text": "ǣ",
+ "id": "T_ae_2"
+ }
+ }
+ },
+ {
+ "id": "K_A",
+ "text": "a",
+ "pad": 20,
+ "flick": {
+ "ne": {
+ "text": "á",
+ "id": "T_a_3"
+ },
+ "se": {
+ "text": "à",
+ "id": "T_a_1"
+ }
+ }
+ },
+ {
+ "id": "U_0276",
+ "text": "ɶ",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ɶ́",
+ "id": "T_oe4r_3"
+ },
+ "se": {
+ "text": "ɶ̀",
+ "id": "T_oe4r_1"
+ },
+ "e": {
+ "text": "ɶ̄",
+ "id": "T_oe4r_2"
+ }
+ }
+ },
+ {
+ "id": "U_0250",
+ "text": "ɐ",
+ "pad": 45,
+ "flick": {
+ "ne": {
+ "text": "ɐ́",
+ "id": "T_a3c_3"
+ },
+ "se": {
+ "text": "ɐ̀",
+ "id": "T_a3c_1"
+ },
+ "e": {
+ "text": "ɐ̄",
+ "id": "T_a3c_2"
+ }
+ }
+ },
+ {
+ "id": "U_0251",
+ "text": "ɑ",
+ "pad": 70,
+ "flick": {
+ "ne": {
+ "text": "ɑ́",
+ "id": "T_a4u"
+ }
+ }
+ },
+ {
+ "id": "U_0252",
+ "text": "ɒ",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ɒ́",
+ "id": "T_o4u_3"
+ },
+ "se": {
+ "text": "ɒ̀",
+ "id": "T_o4u_1"
+ },
+ "e": {
+ "text": "ɒ̄",
+ "id": "T_o4u_2"
+ }
+ }
+ },
+ {
+ "id": "U_02E8",
+ "text": "˨"
+ },
+ {
+ "id": "U_02E9",
+ "text": "˩",
+ "pad": 1
+ },
+ {
+ "id": "U_028B",
+ "text": "ʋ",
+ "width": 80
+ },
+ {
+ "id": "U_2C71",
+ "text": "ⱱ",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_S",
+ "text": "s",
+ "width": 80
+ },
+ {
+ "id": "K_Z",
+ "text": "z",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "U_0283",
+ "text": "ʃ",
+ "width": 80
+ },
+ {
+ "id": "U_0292",
+ "text": "ʒ",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "U_027E",
+ "text": "ɾ",
+ "width": 80
+ },
+ {
+ "id": "U_027D",
+ "text": "ɽ",
+ "pad": 1
+ },
+ {
+ "id": "T_new_7846",
+ "width": 2,
+ "sp": 9
+ }
+ ]
+ },
+ {
+ "id": 5,
+ "key": [
+ {
+ "id": "K_NUMLOCK",
+ "text": "*123*",
+ "sp": 1,
+ "nextlayer": "numeric"
+ },
+ {
+ "id": "K_LOPT",
+ "text": "*Menu*",
+ "pad": 1,
+ "sp": 1
+ },
+ {
+ "id": "K_SPACE",
+ "text": "",
+ "width": 370,
+ "sp": 0,
+ "multitap": [
+ {
+ "text": "ː",
+ "id": "U_02D0"
+ }
+ ]
+ },
+ {
+ "id": "K_PERIOD",
+ "text": ".",
+ "sk": [
+ {
+ "text": "ː",
+ "id": "U_02D0",
+ "default": true
+ },
+ {
+ "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_ENTER",
+ "text": "*Enter*",
+ "width": 185,
+ "sp": 1
+ },
+ {
+ "id": "U_0279",
+ "text": "ɹ"
+ },
+ {
+ "id": "K_L",
+ "text": "l",
+ "width": 80
+ },
+ {
+ "id": "K_J",
+ "text": "j"
+ },
+ {
+ "id": "U_028E",
+ "text": "ʎ",
+ "width": 80
+ },
+ {
+ "id": "U_0279",
+ "text": "ɰ"
+ },
+ {
+ "id": "U_029F",
+ "text": "ʟ",
+ "width": 80
+ },
+ {
+ "id": "K_BKSP",
+ "text": "*BkSp*",
+ "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": 70,
+ "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_14291",
+ "text": "",
+ "width": 10,
+ "sp": 10
+ }
+ ]
+ },
+ {
+ "id": 3,
+ "key": [
+ {
+ "id": "K_SHIFT",
+ "text": "*Shift*",
+ "width": 110,
+ "sp": 1
+ },
+ {
+ "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": "-",
+ "layer": "default"
+ },
+ {
+ "id": "K_8",
+ "text": "*",
+ "layer": "shift"
+ },
+ {
+ "id": "K_SLASH",
+ "text": "/",
+ "layer": "default"
+ },
+ {
+ "id": "K_BKSP",
+ "text": "*BkSp*",
+ "width": 90,
+ "sp": 1
+ }
+ ]
+ },
+ {
+ "id": 4,
+ "key": [
+ {
+ "id": "K_LOWER",
+ "text": "*abc*",
+ "width": 140,
+ "sp": 1,
+ "nextlayer": "default"
+ },
+ {
+ "id": "K_LOPT",
+ "text": "*Menu*",
+ "width": 120,
+ "sp": 1
+ },
+ {
+ "id": "K_SPACE",
+ "text": "",
+ "width": 630,
+ "sp": 0
+ },
+ {
+ "id": "K_ENTER",
+ "text": "*Enter*",
+ "width": 140,
+ "sp": 1
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id": "vowels",
+ "row": [
+ {
+ "id": 1,
+ "key": [
+ {
+ "id": "K_I",
+ "text": "i",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "í",
+ "id": "T_i_3"
+ },
+ "se": {
+ "text": "ì",
+ "id": "T_i_1"
+ },
+ "e": {
+ "text": "ī",
+ "id": "T_i_2"
+ }
+ }
+ },
+ {
+ "id": "K_Y",
+ "text": "y",
+ "pad": 1,
+ "width": 80,
+ "flick": {
+ "ne": {
+ "text": "ý",
+ "id": "T_y_3"
+ },
+ "se": {
+ "text": "ỳ",
+ "id": "T_y_1"
+ },
+ "e": {
+ "text": "ȳ",
+ "id": "T_y_2"
+ }
+ }
+ },
+ {
+ "id": "U_026A",
+ "text": "ɪ",
+ "pad": 10,
+ "width": 60,
+ "flick": {
+ "ne": {
+ "text": "ɪ́",
+ "id": "T_i1c_3"
+ },
+ "se": {
+ "text": "ɪ̀",
+ "id": "T_i1c_1"
+ },
+ "e": {
+ "text": "ɪ̄",
+ "id": "T_i1c_2"
+ }
+ }
+ },
+ {
+ "id": "U_028F",
+ "text": "ʏ",
+ "pad": 1,
+ "width": 60,
+ "flick": {
+ "ne": {
+ "text": "ʏ́",
+ "id": "T_y1c_3"
+ },
+ "se": {
+ "text": "ʏ̀",
+ "id": "T_y1c_1"
+ },
+ "e": {
+ "text": "ʏ̄",
+ "id": "T_y1c_2"
+ }
+ }
+ },
+ {
+ "id": "U_0268",
+ "text": "ɨ",
+ "pad": 10,
+ "width": 80,
+ "flick": {
+ "ne": {
+ "text": "ɨ́",
+ "id": "T_i1u_3"
+ },
+ "se": {
+ "text": "ɨ̀",
+ "id": "T_i1u_1"
+ },
+ "e": {
+ "text": "ɨ̄",
+ "id": "T_i1u_2"
+ }
+ }
+ },
+ {
+ "id": "U_0289",
+ "text": "ʉ",
+ "pad": 1,
+ "width": 80,
+ "flick": {
+ "ne": {
+ "text": "ʉ́",
+ "id": "T_u1r_3"
+ },
+ "se": {
+ "text": "ʉ̀",
+ "id": "T_u1r_1"
+ },
+ "e": {
+ "text": "ʉ̄",
+ "id": "T_u1r_2"
+ }
+ }
+ },
+ {
+ "id": "U_028A",
+ "text": "ʊ",
+ "pad": 10,
+ "width": 60,
+ "flick": {
+ "ne": {
+ "text": "ʊ́",
+ "id": "T_uc_3"
+ },
+ "se": {
+ "text": "ʊ̀",
+ "id": "T_uc_1"
+ },
+ "e": {
+ "text": "ʊ̄",
+ "id": "T_uc_2"
+ }
+ }
+ },
+ {
+ "id": "U_026F",
+ "text": "ɯ",
+ "pad": 25,
+ "flick": {
+ "ne": {
+ "text": "ɯ́",
+ "id": "T_u1u_3"
+ },
+ "se": {
+ "text": "ɯ̀",
+ "id": "T_u1u_1"
+ },
+ "e": {
+ "text": "ɯ̄",
+ "id": "T_u1u_2"
+ }
+ }
+ },
+ {
+ "id": "K_U",
+ "text": "u",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ú",
+ "id": "T_u_3"
+ },
+ "se": {
+ "text": "ù",
+ "id": "T_u_1"
+ },
+ "e": {
+ "text": "ū",
+ "id": "T_u_2"
+ }
+ }
+ },
+ {
+ "id": "U_02E5",
+ "text": "˥"
+ },
+ {
+ "id": "K_P",
+ "text": "p",
+ "width": 80,
+ "sk": [
+ {
+ "text": "pʰ",
+ "id": "T_p_asp",
+ "default": true
+ }
+ ]
+ },
+ {
+ "id": "K_B",
+ "text": "b",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_T",
+ "text": "t",
+ "pad": 1,
+ "width": 80,
+ "sk": [
+ {
+ "text": "tʰ",
+ "id": "T_t_asp"
+ },
+ {
+ "text": "t͡ʃ",
+ "id": "T_tsh",
+ "default": true
+ },
+ {
+ "text": "ʈ",
+ "id": "U_0288"
+ },
+ {
+ "text": "ɖ",
+ "id": "U_0256"
+ },
+ {
+ "text": "ɳ",
+ "id": "U_0273"
+ },
+ {
+ "text": "ʂ",
+ "id": "U_0262"
+ },
+ {
+ "text": "ʐ",
+ "id": "U_0290"
+ }
+ ]
+ },
+ {
+ "id": "K_D",
+ "text": "d",
+ "pad": 1,
+ "width": 80,
+ "sk": [
+ {
+ "text": "d͡ʒ",
+ "id": "T_dzh",
+ "default": true
+ }
+ ]
+ },
+ {
+ "id": "K_K",
+ "text": "k",
+ "pad": 1,
+ "width": 80,
+ "sk": [
+ {
+ "text": "kʰ",
+ "id": "T_k_asp",
+ "default": true
+ },
+ {
+ "text": "k̚",
+ "id": "T_k_unreleased"
+ }
+ ]
+ },
+ {
+ "id": "U_0261",
+ "text": "ɡ",
+ "pad": 1,
+ "width": 80
+ }
+ ]
+ },
+ {
+ "id": 2,
+ "key": [
+ {
+ "id": "K_E",
+ "text": "e",
+ "pad": 40,
+ "flick": {
+ "ne": {
+ "text": "é",
+ "id": "T_e_3"
+ },
+ "e": {
+ "text": "ē",
+ "id": "T_e_2"
+ },
+ "se": {
+ "text": "è",
+ "id": "T_e_1"
+ }
+ }
+ },
+ {
+ "id": "U_00F8",
+ "text": "ø",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ǿ",
+ "id": "T_o2r_3"
+ },
+ "se": {
+ "text": "ø̀",
+ "id": "T_o2r_1"
+ },
+ "e": {
+ "text": "ø̄",
+ "id": "T_o2r_2"
+ }
+ }
+ },
+ {
+ "id": "U_0258",
+ "text": "ɘ",
+ "pad": 20,
+ "flick": {
+ "ne": {
+ "text": "ɘ́",
+ "id": "T_e2u_3"
+ },
+ "se": {
+ "text": "ɘ̀",
+ "id": "T_e2u_1"
+ },
+ "e": {
+ "text": "ɘ̄",
+ "id": "T_e2u_2"
+ }
+ }
+ },
+ {
+ "id": "U_0259",
+ "text": "ə",
+ "pad": 5,
+ "flick": {
+ "ne": {
+ "text": "ə́",
+ "id": "T_e2c_3"
+ },
+ "se": {
+ "text": "ə̀",
+ "id": "T_e2c_1"
+ },
+ "e": {
+ "text": "ə̄",
+ "id": "T_e2c_2"
+ }
+ }
+ },
+ {
+ "id": "U_0275",
+ "text": "ɵ",
+ "pad": 5,
+ "flick": {
+ "ne": {
+ "text": "ɵ́",
+ "id": "T_oe3_3"
+ },
+ "se": {
+ "text": "ɵ̀",
+ "id": "T_oe3_1"
+ },
+ "e": {
+ "text": "ɵ̄",
+ "id": "T_oe3_2"
+ }
+ }
+ },
+ {
+ "id": "U_0264",
+ "text": "ɤ",
+ "pad": 10,
+ "flick": {
+ "ne": {
+ "text": "ɤ́",
+ "id": "T_o2u_3"
+ },
+ "se": {
+ "text": "ɤ̀",
+ "id": "T_o2u_1"
+ },
+ "e": {
+ "text": "ɤ̄",
+ "id": "T_o2u_2"
+ }
+ }
+ },
+ {
+ "id": "K_O",
+ "text": "o",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ó",
+ "id": "T_o_3"
+ },
+ "se": {
+ "text": "ò",
+ "id": "T_o_1"
+ },
+ "e": {
+ "text": "ō",
+ "id": "T_o_2"
+ }
+ }
+ },
+ {
+ "id": "U_02E6",
+ "text": "˦"
+ },
+ {
+ "id": "K_M",
+ "text": "m",
+ "width": 80
+ },
+ {
+ "id": "K_N",
+ "text": "n",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "U_0273",
+ "text": "ɳ",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "U_014B",
+ "text": "ŋ",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_R",
+ "text": "r",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "U_027E",
+ "text": "ɾ",
+ "pad": 1,
+ "width": 80
+ }
+ ]
+ },
+ {
+ "id": 3,
+ "key": [
+ {
+ "id": "K_SHIFT",
+ "text": "🡄",
+ "pad": 1,
+ "width": 80,
+ "sp": 1,
+ "nextlayer": "default"
+ },
+ {
+ "id": "U_025B",
+ "text": "ɛ",
+ "flick": {
+ "ne": {
+ "text": "ɛ́",
+ "id": "T_e2_3"
+ },
+ "se": {
+ "text": "ɛ̀",
+ "id": "T_e2_1"
+ },
+ "e": {
+ "text": "ɛ̄",
+ "id": "T_e2_2"
+ }
+ }
+ },
+ {
+ "id": "U_0153",
+ "text": "œ",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "œ́",
+ "id": "T_oe_3"
+ },
+ "se": {
+ "text": "œ̀",
+ "id": "T_oe_1"
+ },
+ "e": {
+ "text": "œ̄",
+ "id": "T_oe_2"
+ }
+ }
+ },
+ {
+ "id": "U_025C",
+ "text": "ɜ",
+ "pad": 40,
+ "flick": {
+ "ne": {
+ "text": "ɜ́",
+ "id": "T_e3u_3"
+ },
+ "se": {
+ "text": "ɜ̀",
+ "id": "T_e3u_1"
+ },
+ "e": {
+ "text": "ɜ̄",
+ "id": "T_e3u_2"
+ }
+ }
+ },
+ {
+ "id": "U_025E",
+ "text": "ɞ",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ɞ́",
+ "id": "T_oe3r_3"
+ },
+ "se": {
+ "text": "ɞ̀",
+ "id": "T_oe3r_1"
+ },
+ "e": {
+ "text": "ɞ̄",
+ "id": "T_oe3r_2"
+ }
+ }
+ },
+ {
+ "id": "U_028C",
+ "text": "ʌ",
+ "pad": 40,
+ "flick": {
+ "ne": {
+ "text": "ʌ́",
+ "id": "T_a3u_3"
+ },
+ "se": {
+ "text": "ʌ̀",
+ "id": "T_a3u_1"
+ },
+ "e": {
+ "text": "ʌ̄",
+ "id": "T_a3u_2"
+ }
+ }
+ },
+ {
+ "id": "U_0254",
+ "text": "ɔ",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ɔ́",
+ "id": "T_o3r_3"
+ },
+ "se": {
+ "text": "ɔ̀",
+ "id": "T_o3r_1"
+ },
+ "e": {
+ "text": "ɔ̄",
+ "id": "T_o3r_2"
+ }
+ }
+ },
+ {
+ "id": "U_02E7",
+ "text": "˧"
+ },
+ {
+ "id": "U_0278",
+ "text": "ɸ",
+ "width": 80
+ },
+ {
+ "id": "U_03B2",
+ "text": "β",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_F",
+ "text": "f",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_V",
+ "text": "v",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_X",
+ "text": "x",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "U_0263",
+ "text": "ɣ",
+ "pad": 1,
+ "width": 80
+ }
+ ]
+ },
+ {
+ "id": 4,
+ "key": [
+ {
+ "id": "U_00E6",
+ "text": "æ",
+ "pad": 45,
+ "flick": {
+ "ne": {
+ "text": "ǽ",
+ "id": "T_ae_3"
+ },
+ "se": {
+ "text": "æ̀",
+ "id": "T_ae_1"
+ },
+ "e": {
+ "text": "ǣ",
+ "id": "T_ae_2"
+ }
+ }
+ },
+ {
+ "id": "K_A",
+ "text": "a",
+ "pad": 20,
+ "flick": {
+ "ne": {
+ "text": "á",
+ "id": "T_a_3"
+ },
+ "se": {
+ "text": "à",
+ "id": "T_a_1"
+ }
+ }
+ },
+ {
+ "id": "U_0276",
+ "text": "ɶ",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ɶ́",
+ "id": "T_oe4r_3"
+ },
+ "se": {
+ "text": "ɶ̀",
+ "id": "T_oe4r_1"
+ },
+ "e": {
+ "text": "ɶ̄",
+ "id": "T_oe4r_2"
+ }
+ }
+ },
+ {
+ "id": "U_0250",
+ "text": "ɐ",
+ "pad": 45,
+ "flick": {
+ "ne": {
+ "text": "ɐ́",
+ "id": "T_a3c_3"
+ },
+ "se": {
+ "text": "ɐ̀",
+ "id": "T_a3c_1"
+ },
+ "e": {
+ "text": "ɐ̄",
+ "id": "T_a3c_2"
+ }
+ }
+ },
+ {
+ "id": "U_0251",
+ "text": "ɑ",
+ "pad": 70,
+ "flick": {
+ "ne": {
+ "text": "ɑ́",
+ "id": "T_a4u"
+ }
+ }
+ },
+ {
+ "id": "U_0252",
+ "text": "ɒ",
+ "pad": 1,
+ "flick": {
+ "ne": {
+ "text": "ɒ́",
+ "id": "T_o4u_3"
+ },
+ "se": {
+ "text": "ɒ̀",
+ "id": "T_o4u_1"
+ },
+ "e": {
+ "text": "ɒ̄",
+ "id": "T_o4u_2"
+ }
+ }
+ },
+ {
+ "id": "U_02E8",
+ "text": "˨"
+ },
+ {
+ "id": "K_S",
+ "text": "s",
+ "width": 80
+ },
+ {
+ "id": "K_Z",
+ "text": "z",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "U_0283",
+ "text": "ʃ",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "U_0292",
+ "text": "ʒ",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "U_0294",
+ "text": "ʔ",
+ "pad": 1,
+ "width": 80
+ },
+ {
+ "id": "K_H",
+ "text": "h",
+ "pad": 1,
+ "width": 80
+ }
+ ]
+ },
+ {
+ "id": 5,
+ "key": [
+ {
+ "id": "K_NUMLOCK",
+ "text": "*123*",
+ "sp": 1,
+ "nextlayer": "numeric"
+ },
+ {
+ "id": "K_LOPT",
+ "text": "*Menu*",
+ "pad": 1,
+ "sp": 1
+ },
+ {
+ "id": "K_SPACE",
+ "text": "",
+ "width": 270,
+ "sp": 0,
+ "multitap": [
+ {
+ "text": "ː",
+ "id": "U_02D0"
+ }
+ ]
+ },
+ {
+ "id": "K_PERIOD",
+ "text": ".",
+ "sk": [
+ {
+ "text": "ː",
+ "id": "U_02D0",
+ "default": true
+ },
+ {
+ "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_ENTER",
+ "text": "*Enter*",
+ "width": 160,
+ "sp": 1
+ },
+ {
+ "id": "U_02E9",
+ "text": "˩"
+ },
+ {
+ "id": "K_L",
+ "text": "l"
+ },
+ {
+ "id": "K_J",
+ "text": "j"
+ },
+ {
+ "id": "U_0280",
+ "text": "ʀ"
+ },
+ {
+ "id": "K_BKSP",
+ "text": "*BkSp*",
+ "width": 140,
+ "sp": 1
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "displayUnderlying": false,
+ "fontsize": ""
+ }
+}
\ No newline at end of file
diff --git a/experimental/i/ipachart/source/ipachart.kmn b/experimental/i/ipachart/source/ipachart.kmn
new file mode 100755
index 0000000000..a5630f826b
--- /dev/null
+++ b/experimental/i/ipachart/source/ipachart.kmn
@@ -0,0 +1,186 @@
+c IPA chart-style touch keyboard
+store(&NAME) 'IPAchart'
+store(©RIGHT) '© 2024 David Rowbory'
+store(&KEYBOARDVERSION) '0.2'
+store(&TARGETS) 'any'
+store(&LAYOUTFILE) 'ipachart.keyman-touch-layout'
+store(&KMW_EMBEDCSS) 'ipachart.css'
+
+begin Unicode > use(main)
+
+group(main) using keys
+
+c Auto-correct
+'ts' + 'h' > 't͡ʃ'
+'t' + 'ʃ' > 't͡ʃ'
+'dz' + 'h' > 'd͡ʒ'
+'d' + 'ʒ' > 'd͡ʒ'
+'s' + 'h' > 'ʃ'
+'z' + 'h' > 'ʒ'
+'g' + 'b' > 'g͜b'
+'k' + 'p' > 'k͜p'
+
+'0/' + '/' > '∅'
+
+c For touch
+c Tone accents: 0 = 30f, 1 = 300. 2 = 304, 3 = 301, 4 = 30b, fall = 302 rise = 30c (Tone accents are 340...)
+c + [T_a_3] > 'a' U+0301
+c + [T_e_3] > 'e' U+0301
++ [T_tsh] > 't͡ʃ'
++ [T_dzh] > 'd͡ʒ'
++ [T_gb] > 'g͜b'
++ [T_kp] > 'k͜p'
++ [T_mng] > 'ŋ͜m'
+
++ [T_p_asp] > 'pʰ'
++ [T_t_asp] > 'tʰ'
++ [T_k_asp] > 'kʰ'
++ [T_b_asp] > 'bʰ'
++ [T_d_asp] > 'dʰ'
++ [T_g_asp] > 'gʰ'
++ [T_m_syllabic] > 'm̩'
++ [T_n_syllabic] > '̩n̩'
++ [T_ng_syllabic] > '̩ŋ̩'
++ [T_ny_syllabic] > '̩ɳ̩'
+
+ + [T_i_1] > 'i' U+0300
+ + [T_i_2] > 'i' U+0304
+ + [T_i_3] > 'i' U+0301
+ + [T_i_4] > 'i' U+030B
+ + [T_i_0] > 'i' U+030F
+ + [T_y_1] > 'y' U+0300
+ + [T_y_2] > 'y' U+0304
+ + [T_y_3] > 'y' U+0301
+ + [T_y_4] > 'y' U+030B
+ + [T_y_0] > 'y' U+030F
+ + [T_i1c_1] > 'ɪ' U+0300
+ + [T_i1c_2] > 'ɪ' U+0304
+ + [T_i1c_3] > 'ɪ' U+0301
+ + [T_i1c_4] > 'ɪ' U+030B
+ + [T_i1c_0] > 'ɪ' U+030F
+ + [T_y1c_1] > 'ʏ' U+0300
+ + [T_y1c_2] > 'ʏ' U+0304
+ + [T_y1c_3] > 'ʏ' U+0301
+ + [T_y1c_4] > 'ʏ' U+030B
+ + [T_y1c_0] > 'ʏ' U+030F
+ + [T_e_1] > 'e' U+0300
+ + [T_e_2] > 'e' U+0304
+ + [T_e_3] > 'e' U+0301
+ + [T_e_4] > 'e' U+030B
+ + [T_e_0] > 'e' U+030F
+ + [T_o2r_1] > 'ø' U+0300
+ + [T_o2r_2] > 'ø' U+0304
+ + [T_o2r_3] > 'ø' U+0301
+ + [T_o2r_4] > 'ø' U+030B
+ + [T_o2r_0] > 'ø' U+030F
+ + [T_e2_1] > 'ɛ' U+0300
+ + [T_e2_2] > 'ɛ' U+0304
+ + [T_e2_3] > 'ɛ' U+0301
+ + [T_e2_4] > 'ɛ' U+030B
+ + [T_e2_0] > 'ɛ' U+030F
+ + [T_oe_1] > 'œ' U+0300
+ + [T_oe_2] > 'œ' U+0304
+ + [T_oe_3] > 'œ' U+0301
+ + [T_oe_4] > 'œ' U+030B
+ + [T_oe_0] > 'œ' U+030F
+ + [T_ae_1] > 'æ' U+0300
+ + [T_ae_2] > 'æ' U+0304
+ + [T_ae_3] > 'æ' U+0301
+ + [T_ae_4] > 'æ' U+030B
+ + [T_ae_0] > 'æ' U+030F
+ + [T_a_1] > 'a' U+0300
+ + [T_a_2] > 'a' U+0304
+ + [T_a_3] > 'a' U+0301
+ + [T_a_4] > 'a' U+030B
+ + [T_a_0] > 'a' U+030F
+ + [T_oe4r_1] > 'ɶ' U+0300
+ + [T_oe4r_2] > 'ɶ' U+0304
+ + [T_oe4r_3] > 'ɶ' U+0301
+ + [T_oe4r_4] > 'ɶ' U+030B
+ + [T_oe4r_0] > 'ɶ' U+030F
+ + [T_i1U+1] > 'ɨ' U+0300
+ + [T_i1U+2] > 'ɨ' U+0304
+ + [T_i1U+3] > 'ɨ' U+0301
+ + [T_i1U+4] > 'ɨ' U+030B
+ + [T_i1U+0] > 'ɨ' U+030F
+ + [T_u1r_1] > 'ʉ' U+0300
+ + [T_u1r_2] > 'ʉ' U+0304
+ + [T_u1r_3] > 'ʉ' U+0301
+ + [T_u1r_4] > 'ʉ' U+030B
+ + [T_u1r_0] > 'ʉ' U+030F
+ + [T_e2U+1] > 'ɘ' U+0300
+ + [T_e2U+2] > 'ɘ' U+0304
+ + [T_e2U+3] > 'ɘ' U+0301
+ + [T_e2U+4] > 'ɘ' U+030B
+ + [T_e2U+0] > 'ɘ' U+030F
+ + [T_oe3_1] > 'ɵ' U+0300
+ + [T_oe3_2] > 'ɵ' U+0304
+ + [T_oe3_3] > 'ɵ' U+0301
+ + [T_oe3_4] > 'ɵ' U+030B
+ + [T_oe3_0] > 'ɵ' U+030F
+ + [T_e2c_1] > 'ə' U+0300
+ + [T_e2c_2] > 'ə' U+0304
+ + [T_e2c_3] > 'ə' U+0301
+ + [T_e2c_4] > 'ə' U+030B
+ + [T_e2c_0] > 'ə' U+030F
+ + [T_e3U+1] > 'ɜ' U+0300
+ + [T_e3U+2] > 'ɜ' U+0304
+ + [T_e3U+3] > 'ɜ' U+0301
+ + [T_e3U+4] > 'ɜ' U+030B
+ + [T_e3U+0] > 'ɜ' U+030F
+ + [T_oe3r_1] > 'ɞ' U+0300
+ + [T_oe3r_2] > 'ɞ' U+0304
+ + [T_oe3r_3] > 'ɞ' U+0301
+ + [T_oe3r_4] > 'ɞ' U+030B
+ + [T_oe3r_0] > 'ɞ' U+030F
+ + [T_a3c_1] > 'ɐ' U+0300
+ + [T_a3c_2] > 'ɐ' U+0304
+ + [T_a3c_3] > 'ɐ' U+0301
+ + [T_a3c_4] > 'ɐ' U+030B
+ + [T_a3c_0] > 'ɐ' U+030F
+ + [T_u1U+1] > 'ɯ' U+0300
+ + [T_u1U+2] > 'ɯ' U+0304
+ + [T_u1U+3] > 'ɯ' U+0301
+ + [T_u1U+4] > 'ɯ' U+030B
+ + [T_u1U+0] > 'ɯ' U+030F
+ + [T_U+1] > 'u' U+0300
+ + [T_U+2] > 'u' U+0304
+ + [T_U+3] > 'u' U+0301
+ + [T_U+4] > 'u' U+030B
+ + [T_U+0] > 'u' U+030F
+ + [T_uc_1] > 'ʊ' U+0300
+ + [T_uc_2] > 'ʊ' U+0304
+ + [T_uc_3] > 'ʊ' U+0301
+ + [T_uc_4] > 'ʊ' U+030B
+ + [T_uc_0] > 'ʊ' U+030F
+ + [T_o2U+1] > 'ɤ' U+0300
+ + [T_o2U+2] > 'ɤ' U+0304
+ + [T_o2U+3] > 'ɤ' U+0301
+ + [T_o2U+4] > 'ɤ' U+030B
+ + [T_o2U+0] > 'ɤ' U+030F
+ + [T_o_1] > 'o' U+0300
+ + [T_o_2] > 'o' U+0304
+ + [T_o_3] > 'o' U+0301
+ + [T_o_4] > 'o' U+030B
+ + [T_o_0] > 'o' U+030F
+ + [T_a3U+1] > 'ʌ' U+0300
+ + [T_a3U+2] > 'ʌ' U+0304
+ + [T_a3U+3] > 'ʌ' U+0301
+ + [T_a3U+4] > 'ʌ' U+030B
+ + [T_a3U+0] > 'ʌ' U+030F
+ + [T_o3r_1] > 'ɔ' U+0300
+ + [T_o3r_2] > 'ɔ' U+0304
+ + [T_o3r_3] > 'ɔ' U+0301
+ + [T_o3r_4] > 'ɔ' U+030B
+ + [T_o3r_0] > 'ɔ' U+030F
+ + [T_a4U+1] > 'ɑ' U+0300
+ + [T_a4U+2] > 'ɑ' U+0304
+ + [T_a4U+3] > 'ɑ' U+0301
+ + [T_a4U+4] > 'ɑ' U+030B
+ + [T_a4U+0] > 'ɑ' U+030F
+ + [T_o4r_1] > 'ɒ' U+0300
+ + [T_o4r_2] > 'ɒ' U+0304
+ + [T_o4r_3] > 'ɒ' U+0301
+ + [T_o4r_4] > 'ɒ' U+030B
+ + [T_o4r_0] > 'ɒ' U+030F
+
diff --git a/experimental/i/ipachart/source/ipachart.kps b/experimental/i/ipachart/source/ipachart.kps
new file mode 100755
index 0000000000..58db7748f3
--- /dev/null
+++ b/experimental/i/ipachart/source/ipachart.kps
@@ -0,0 +1,88 @@
+
+
+
+ 17.0.326.0
+ 7.0
+
+
+
+ readme.htm
+ welcome.htm
+
+
+
+
+
+
+
+
+
+ IPAchart
+ © 2024 David Rowbory
+ David Rowbory
+
+
+
+
+ ..\build\ipachart.kmx
+
+ 0
+ .kmx
+
+
+ ..\build\ipachart.js
+
+ 0
+ .js
+
+
+ welcome.htm
+
+ 0
+ .htm
+
+
+ readme.htm
+
+ 0
+ .htm
+
+
+ Andika-Regular.ttf
+ Font Andika
+ 0
+ .ttf
+
+
+ ..\LICENSE.md
+ File LICENSE.md
+ 0
+ .md
+
+
+ ipachart-bg.jpg
+ File ipachart-bg.jpg
+ 0
+ .jpg
+
+
+
+
+ IPAchart
+ ipachart
+ 0.2
+ Andika-Regular.ttf
+ Andika-Regular.ttf
+
+ IPA
+
+
+
+
+
+
+
+
+
+
+
diff --git a/experimental/i/ipachart/source/ipachart.kvks b/experimental/i/ipachart/source/ipachart.kvks
new file mode 100755
index 0000000000..037348a053
--- /dev/null
+++ b/experimental/i/ipachart/source/ipachart.kvks
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/experimental/i/ipachart/source/readme.htm b/experimental/i/ipachart/source/readme.htm
new file mode 100755
index 0000000000..695b847a44
--- /dev/null
+++ b/experimental/i/ipachart/source/readme.htm
@@ -0,0 +1,30 @@
+
+
+
+
+ IPAchart
+
+
+
+
+IPAchart
+
+
+ IPAchart gives you not all but the most frequently used IPA vowels, consonants, tone letters and diacritics tly as possible, laid out like an IPA chart.
+ It is probably easiest to use this on a tablet but it does work on larger phones.
+
+
+ - Press the ➧ button to left of the vowels to expand the vowel section (hiding some consonants). Press again to contract it.
+
- Flick up-right to get a vowel with a high tone mark, left-right to get mid tone, down-right to get low tone.
+
- Press and hold to get alternate related symbols.
+
- Double-tap to get aspirated plosives and syllabic nasals.
+
+Do let me know if there are features you really need that are currently missing. email keyboards@m.rowbory.co.uk
+© 2024 David Rowbory
+
+
+
diff --git a/experimental/i/ipachart/source/welcome.htm b/experimental/i/ipachart/source/welcome.htm
new file mode 100755
index 0000000000..9a590a1800
--- /dev/null
+++ b/experimental/i/ipachart/source/welcome.htm
@@ -0,0 +1,30 @@
+
+
+
+
+ Start Using IPAchart
+
+
+
+
+IPAchart
+
+
+ IPAchart gives you not all but the most frequently used IPA vowels, consonants, tone letters and diacritics tly as possible, laid out like an IPA chart.
+ It is probably easiest to use this on a tablet but it does work on larger phones.
+
+
+ - Press the ➧ button to left of the vowels to expand the vowel section (hiding some consonants). Press again to contract it.
+
- Flick up-right to get a vowel with a high tone mark, left-right to get mid tone, down-right to get low tone.
+
- Press and hold to get alternate related symbols.
+
- Double-tap to get aspirated plosives and syllabic nasals.
+
+Do let me know if there are features you really need that are currently missing. email keyboards@m.rowbory.co.uk
+© 2024 David Rowbory
+
+
+