diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..dfe0770424 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore index bd9be27135..0c1aed6e09 100644 --- a/.gitignore +++ b/.gitignore @@ -1,35 +1,33 @@ -*.kpj.user -.idea/ -legacy/*/*/build/ -release/*/*/build/ -release/*/*/tests/ -experimental/*/*/build/ -packages/*/build/ -.cache -.DS_Store -/.project -.vscode/ -node_modules/ - -# compiler is downloaded into tools/kmcomp/ -/tools/kmcomp/ - -# regression tests will be built into /output -/output/ - -# Program files downloaded -- legacy, these are no longer required -# but we'll keep them in .gitignore so they don't accidentally get -# added into commits -/tools/keyboard_info.distribution.json -/tools/keyboard_info.source.json -/tools/kmcmpdll.dll -/tools/kmcmpdll.x64.dll -/tools/kmcomp.exe -/tools/kmcomp.x64.exe -/tools/kmconvert.exe - -.source_is_binary -build_targets.txt -build_external_targets.txt -build_fv_all.txt -build_legacy.txt +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Log/OS Files +*.log + +# Android Studio generated files and folders +captures/ +.externalNativeBuild/ +.cxx/ +*.apk +output.json + +# IntelliJ +*.iml +.idea/ +misc.xml +deploymentTargetDropDown.xml +render.experimental.xml + +# Keystore files +*.jks +*.keystore + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Android Profiling +*.hprof diff --git a/HISTORY.md b/HISTORY.md new file mode 100644 index 0000000000..0e61cc1812 --- /dev/null +++ b/HISTORY.md @@ -0,0 +1,6 @@ +Yangap_phone Change History +==================== + +1.0 (2025-09-23) +---------------- +* Created by Asnake Berhanu diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..0755c1bc86 --- /dev/null +++ b/LICENSE @@ -0,0 +1,23 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN 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/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000000..751b7c0e72 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +© 2025SILEthiopia + +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/Nyangatom Keyboard/HISTORY.md b/Nyangatom Keyboard/HISTORY.md new file mode 100644 index 0000000000..0e61cc1812 --- /dev/null +++ b/Nyangatom Keyboard/HISTORY.md @@ -0,0 +1,6 @@ +Yangap_phone Change History +==================== + +1.0 (2025-09-23) +---------------- +* Created by Asnake Berhanu diff --git a/Nyangatom Keyboard/LICENSE b/Nyangatom Keyboard/LICENSE new file mode 100644 index 0000000000..0755c1bc86 --- /dev/null +++ b/Nyangatom Keyboard/LICENSE @@ -0,0 +1,23 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN 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/Nyangatom Keyboard/LICENSE.md b/Nyangatom Keyboard/LICENSE.md new file mode 100644 index 0000000000..751b7c0e72 --- /dev/null +++ b/Nyangatom Keyboard/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +© 2025SILEthiopia + +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/Nyangatom Keyboard/Nyangatom.kpj.user b/Nyangatom Keyboard/Nyangatom.kpj.user new file mode 100644 index 0000000000..cee14e708b --- /dev/null +++ b/Nyangatom Keyboard/Nyangatom.kpj.user @@ -0,0 +1,149 @@ + + + + 3 + 1 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\yangap_phone.kpj + + + + + id_fc723d30b02a4cca7a534518111c1a66 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\.gitattributes + + + id_a084b794bc0759e7a6b77810e01874f2 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\.gitignore + + + id_ede98e4633e239f933cbfd1f4e1b766c + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\HISTORY.md + + + id_718779752b851ac0dc6281a8c8d77e7e + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\LICENSE + + + id_53e892b8b41cc4caece1cfd5ef21d6e7 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\LICENSE.md + + + id_a5ac2f387096241fb38521ad52d9e419 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\Nyangatom Keyboard.kpj + + + id_731c267d1ecb84776386acce2142eb48 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\Nyangatom Keyboard.kpj.user + + + id_505044229e72b4688cb0bed66e5954b9 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\Nyangatom.kpj + + + id_0730bb7c2e8f9ea2438b52e419dd86c9 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\README.md + + + id_8259ba1ad7f1d32c5600c9bd3eb68849 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\yangap.kpj.user + + + id_004dc1dad5edd32727cd3bd2314bbea6 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\yangap_phone.kpj + + + id_900876a35a2996c81c29e4e2cbd0087d + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\yangap_phone.kpj.user + + + id_51f167459f897df041b333fef61dd778 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom Keyboard.kmn + False + + + id_3dc74a3e762ce520e7eb0032c07acfa4 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom Keyboard.kps + + + id_7872080524a07674901995b5aa7f27d6 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom Keyboard.kvks + + + id_151b3b308ead4ac972374b1d9dbf1481 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom Keyboard.png + + + id_fdd27e84a29cc79c375e66b8d8afe6ec + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.ico + + + id_98b3afec8f4ebc5cee0380df4361f7fc + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.keyman-touch-layout + + + id_5f380c1e558939edca9a00df92c23473 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.kmn + False + + + id_2a3f9219045327e4d564c994d618fdae + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.kps + + + id_5610184d66c8f3eb4266c789b892be4f + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.kvks + + + id_8d87109b3bfd9a0bb30d5b801bb9243e + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.png + + + id_8da344c4cea6f467013357fe099006f5 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\readme.htm + + + id_356e5d149c1e539356d72698c1e401a6 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\welcome.htm + + + id_f678f1226f19a480241735c7867eb8a9 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\yangap_phone.ico + + + id_bb5c8c7825200f3c0377f5ed23dcbc2b + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\yangap_phone.keyman-touch-layout + + + id_844400f113dd27040e84000e7ff43a22 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\yangap_phone.kvks + + + id_c4a99d13a8b29c479c996e7766409c26 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\..\build\yangap_phone.kmx + + + id_45c81eac1ecf0545504543153992c9fb + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\..\build\yangap_phone.js + + + id_87f0848bfc1cdbdf1027c346716986fa + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\..\build\yangap_phone.kvk + + + id_c296b5df3dc126e219e0173fcbc1baec + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\..\LICENSE.md + + + id_8015a1accd2c6e2add79f263d40d4a13 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\yangap_phoneU.png + + + + + id_MRU0 + Nyangatom.kps + .kps + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.kps + + + diff --git a/Nyangatom Keyboard/README.md b/Nyangatom Keyboard/README.md new file mode 100644 index 0000000000..7d250c8525 --- /dev/null +++ b/Nyangatom Keyboard/README.md @@ -0,0 +1,2 @@ +# yangap_phone + This is Neyangatom keyboard for Andriod diff --git a/Nyangatom Keyboard/source/Nyangatom.ico b/Nyangatom Keyboard/source/Nyangatom.ico new file mode 100644 index 0000000000..c919bf142b Binary files /dev/null and b/Nyangatom Keyboard/source/Nyangatom.ico differ diff --git a/Nyangatom Keyboard/source/Nyangatom.js b/Nyangatom Keyboard/source/Nyangatom.js new file mode 100644 index 0000000000..3a7ad6d1af --- /dev/null +++ b/Nyangatom Keyboard/source/Nyangatom.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_nyangatom());}function Keyboard_nyangatom(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_nyangatom";this.KN="Nyangatom";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x10;this.KVER="18.0.249.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,222)) {if(k.KFCM(1,t,[';'])){r=m=1;k.KDC(1,t);k.KO(-1,t,"!");}}else if(k.KKM(e,16400,69)) {if(k.KFCM(1,t,[';'])){r=m=1;k.KDC(1,t);k.KO(-1,t,"Ɛ");}}else if(k.KKM(e,16400,79)) {if(k.KFCM(1,t,[';'])){r=m=1;k.KDC(1,t);k.KO(-1,t,"Ɔ");}}else if(k.KKM(e,16384,69)) {if(k.KFCM(1,t,[';'])){r=m=1;k.KDC(1,t);k.KO(-1,t,"ɛ");}}else if(k.KKM(e,16384,79)) {if(k.KFCM(1,t,[';'])){r=m=1;k.KDC(1,t);k.KO(-1,t,"ɔ");}}return r;};} \ No newline at end of file diff --git a/Nyangatom Keyboard/source/Nyangatom.keyman-touch-layout b/Nyangatom Keyboard/source/Nyangatom.keyman-touch-layout new file mode 100644 index 0000000000..3fdc7f1a63 --- /dev/null +++ b/Nyangatom Keyboard/source/Nyangatom.keyman-touch-layout @@ -0,0 +1,650 @@ +{ + "phone": { + "font": "Tahoma", + "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": "U_025B" + } + ] + }, + { + "id": "K_R", + "text": "r" + }, + { + "id": "K_T", + "text": "t" + }, + { + "id": "K_Y", + "text": "y" + }, + { + "id": "K_U", + "text": "u" + }, + { + "id": "K_I", + "text": "i" + }, + { + "id": "K_O", + "text": "o", + "sk": [ + { + "text": "ɔ", + "id": "U_0254" + } + ] + }, + { + "id": "K_P", + "text": "p" + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "K_A", + "text": "a", + "pad": 50 + }, + { + "id": "K_S", + "text": "s" + }, + { + "id": "K_D", + "text": "d" + }, + { + "id": "K_F", + "text": "f" + }, + { + "id": "K_G", + "text": "g" + }, + { + "id": "K_H", + "text": "h" + }, + { + "id": "K_J", + "text": "j" + }, + { + "id": "K_K", + "text": "k" + }, + { + "id": "K_L", + "text": "l" + }, + { + "id": "T_new_88", + "text": "", + "width": 10, + "sp": 10 + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SHIFT", + "text": "*Shift*", + "sp": 1, + "nextlayer": "shift" + }, + { + "id": "K_Z", + "text": "z" + }, + { + "id": "K_X", + "text": "x" + }, + { + "id": "K_C", + "text": "c" + }, + { + "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_QUOTE" + } + ] + }, + { + "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" + }, + { + "id": "K_W", + "text": "W" + }, + { + "id": "K_E", + "text": "E", + "sk": [ + { + "text": "Ɛ", + "id": "U_0190" + } + ] + }, + { + "id": "K_R", + "text": "R" + }, + { + "id": "K_T", + "text": "T" + }, + { + "id": "K_Y", + "text": "Y" + }, + { + "id": "K_U", + "text": "U" + }, + { + "id": "K_I", + "text": "I" + }, + { + "id": "K_O", + "text": "O", + "sk": [ + { + "text": "Ɔ", + "id": "U_0186" + } + ] + }, + { + "id": "K_P", + "text": "P" + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "K_A", + "text": "A", + "pad": 50 + }, + { + "id": "K_S", + "text": "S" + }, + { + "id": "K_D", + "text": "D" + }, + { + "id": "K_F", + "text": "F" + }, + { + "id": "K_G", + "text": "G" + }, + { + "id": "K_H", + "text": "H" + }, + { + "id": "K_J", + "text": "J" + }, + { + "id": "K_K", + "text": "K" + }, + { + "id": "K_L", + "text": "L" + }, + { + "id": "T_new_124", + "text": "", + "width": 10, + "sp": 10 + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SHIFT", + "text": "*Shift*", + "sp": 2, + "nextlayer": "default" + }, + { + "id": "K_Z", + "text": "Z" + }, + { + "id": "K_X", + "text": "X" + }, + { + "id": "K_C", + "text": "C" + }, + { + "id": "K_V", + "text": "V" + }, + { + "id": "K_B", + "text": "B" + }, + { + "id": "K_N", + "text": "N" + }, + { + "id": "K_M", + "text": "M" + }, + { + "id": "K_PERIOD", + "text": ".", + "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" + } + ] + }, + { + "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_297", + "text": "", + "width": 10, + "sp": 10 + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_LBRKT", + "text": "[", + "pad": 110, + "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", + "text": "", + "width": 610, + "sp": 0 + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "width": 150, + "sp": 1 + } + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/Nyangatom Keyboard/source/Nyangatom.kmx b/Nyangatom Keyboard/source/Nyangatom.kmx new file mode 100644 index 0000000000..29604d3f50 Binary files /dev/null and b/Nyangatom Keyboard/source/Nyangatom.kmx differ diff --git a/Nyangatom Keyboard/source/Nyangatom.kps b/Nyangatom Keyboard/source/Nyangatom.kps new file mode 100644 index 0000000000..7cbe056081 --- /dev/null +++ b/Nyangatom Keyboard/source/Nyangatom.kps @@ -0,0 +1,98 @@ + + + + 18.0.249.0 + 7.0 + + + + readme.htm + ..\LICENSE.md + welcome.htm + + + + + + + + + + Nyangatom Keyboard + © SILEthiopia + Asnake Berhanu + This keyboard is a Yangatom language Keyboard and it is use for Phone + + + + + welcome.htm + + 0 + .htm + + + readme.htm + + 0 + .htm + + + ..\LICENSE.md + + 0 + .md + + + Nyangatom.kmn + File Nyangatom.kmn + 0 + .kmn + + + Nyangatom.kps + File Nyangatom.kps + 0 + .kps + + + Nyangatom.ico + File Nyangatom.ico + 0 + .ico + + + Nyangatom.kvks + File Nyangatom.kvks + 0 + .kvks + + + Nyangatom.png + File Nyangatom.png + 0 + .png + + + Nyangatom.js + File Nyangatom.js + 0 + .js + + + Nyangatom.kmx + Keyboard Nyangatom + 0 + .kmx + + + + + nyangatom + + Nyangatom + + + + + diff --git a/Nyangatom Keyboard/source/Nyangatom.kvks b/Nyangatom Keyboard/source/Nyangatom.kvks new file mode 100644 index 0000000000..00b21cb3c5 --- /dev/null +++ b/Nyangatom Keyboard/source/Nyangatom.kvks @@ -0,0 +1,8 @@ + + +
+ 10.0 + yangap_phone + +
+
diff --git a/Nyangatom Keyboard/source/Nyangatom.png b/Nyangatom Keyboard/source/Nyangatom.png new file mode 100644 index 0000000000..bc162f0678 Binary files /dev/null and b/Nyangatom Keyboard/source/Nyangatom.png differ diff --git a/Nyangatom Keyboard/source/help/Nyangatom.php.text b/Nyangatom Keyboard/source/help/Nyangatom.php.text new file mode 100644 index 0000000000..5db9b9a6c7 --- /dev/null +++ b/Nyangatom Keyboard/source/help/Nyangatom.php.text @@ -0,0 +1,19 @@ +PHP + + +

+ This is a touch/mobile keyboard layout for the Nyangatom (Nyangatom) language. +

+ +

Touch Keyboard Layout

+

Open the keyboard on your mobile device to view the touch layout distribution.

+ + \ No newline at end of file diff --git a/Nyangatom Keyboard/source/nyangatom.kmn b/Nyangatom Keyboard/source/nyangatom.kmn new file mode 100644 index 0000000000..db22d70c57 --- /dev/null +++ b/Nyangatom Keyboard/source/nyangatom.kmn @@ -0,0 +1,19 @@ +c Nyangatom generated from template at 2025-09-23 23:56:28 +c with name "Nyangatom" +store(&VERSION) '10.0' +store(&NAME) 'Nyangatom' +store(©RIGHT) '© SIL Ethiopia' +store(&KEYBOARDVERSION) '1.0' +store(&TARGETS) 'any' + +group(main) using keys + +begin Unicode > use(main) +";" + "e" > "ɛ" +";" + "o" > "ɔ" +";" + "E" > "Ɛ" +";" + "O" > "Ɔ" +";" + "'" > "!" + + + diff --git a/Nyangatom Keyboard/source/readme.htm b/Nyangatom Keyboard/source/readme.htm new file mode 100644 index 0000000000..4459cefd86 --- /dev/null +++ b/Nyangatom Keyboard/source/readme.htm @@ -0,0 +1,24 @@ + + + + + + Yangap_phone + + + + +

Yangap_phone

+ +

+ This keyboard is a Yangatom language Keyboard and it is use for Phone +

+ +

© SIL Ethiopia

+ + + diff --git a/Nyangatom Keyboard/source/welcome.htm b/Nyangatom Keyboard/source/welcome.htm new file mode 100644 index 0000000000..f5ac7025bb --- /dev/null +++ b/Nyangatom Keyboard/source/welcome.htm @@ -0,0 +1,27 @@ + + + + + + Start Using Yangap_phone + + + + +

Start Using Yangap_phone

+ +

+ This keyboard is a Yangatom language Keyboard and it is use for Phone +

see this document for all the key combinations.

+ +

Keyboard Layout

+ + + + + + \ No newline at end of file diff --git a/Nyangatom Keyboard/yangap_phone.kpj.user b/Nyangatom Keyboard/yangap_phone.kpj.user new file mode 100644 index 0000000000..01e5408812 --- /dev/null +++ b/Nyangatom Keyboard/yangap_phone.kpj.user @@ -0,0 +1,112 @@ + + + + 3 + 1 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\yangap_phone.kpj + + + + + id_ede98e4633e239f933cbfd1f4e1b766c + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\HISTORY.md + + + id_718779752b851ac0dc6281a8c8d77e7e + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\LICENSE + + + id_53e892b8b41cc4caece1cfd5ef21d6e7 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\LICENSE.md + + + id_505044229e72b4688cb0bed66e5954b9 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\Nyangatom.kpj + + + id_608a3779f5b97418f561824ebab3c367 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\Nyangatom.kpj.user + + + id_0730bb7c2e8f9ea2438b52e419dd86c9 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\README.md + + + id_004dc1dad5edd32727cd3bd2314bbea6 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\yangap_phone.kpj + + + id_900876a35a2996c81c29e4e2cbd0087d + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\yangap_phone.kpj.user + + + id_fdd27e84a29cc79c375e66b8d8afe6ec + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.ico + + + id_98b3afec8f4ebc5cee0380df4361f7fc + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.keyman-touch-layout + + + id_5f380c1e558939edca9a00df92c23473 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.kmn + False + + + id_2a3f9219045327e4d564c994d618fdae + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.kps + + Consolas|-9| |0 + Consolas|-9| |0 + + + + id_5610184d66c8f3eb4266c789b892be4f + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.kvks + + + id_8d87109b3bfd9a0bb30d5b801bb9243e + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.png + + + id_8da344c4cea6f467013357fe099006f5 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\readme.htm + + + id_356e5d149c1e539356d72698c1e401a6 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\welcome.htm + + + id_f678f1226f19a480241735c7867eb8a9 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\yangap_phone.ico + + + id_c4a99d13a8b29c479c996e7766409c26 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\..\build\yangap_phone.kmx + + + id_45c81eac1ecf0545504543153992c9fb + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\..\build\yangap_phone.js + + + id_87f0848bfc1cdbdf1027c346716986fa + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\..\build\yangap_phone.kvk + + + id_c296b5df3dc126e219e0173fcbc1baec + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\..\LICENSE.md + + + id_8015a1accd2c6e2add79f263d40d4a13 + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\yangap_phoneU.png + + + + + id_MRU0 + Nyangatom.kps + .kps + C:\Users\Mesfin\Documents\Keyman Developer\Projects\Nyangatom Keyboard\source\Nyangatom.kps + + + diff --git a/README.md b/README.md index addd6faddf..67a8937d7e 100644 --- a/README.md +++ b/README.md @@ -1,190 +1,2 @@ -# Open Source Keyman keyboards - -## Table of Contents -- [File Layout](#file-layout) -- [Contributing](#contributing) - - [Tool](#tool) - - [Standard keyboard design](#standard-keyboard-design) - - [Keyboard submission guidelines](#keyboard-submission-guidelines) - - [Publish your keyboard](#publish-your-keyboard) - - [Modify a keyboard layout](#modify-a-keyboard) - - [Documentation](#documentation) -- [Building Keyboards](#building-keyboards) - - [Prerequisites](#prerequisites) - - [Build instructions](#build-instructions) - - [Common `build.sh` parameters](#common-buildsh-parameters) -- [Deprecated Keyboards](#deprecated-keyboards) -- [Common Links](#common-links) -- [Community](#community) - -## File Layout - -Keyboards are grouped into three folders: - - * `release` - keyboards with full source that pass our stringent quality - checks, Unicode only, generally no PUA - * `legacy` - binary distributions of keyboards, migrated from Tavultesoft - servers, Unicode and non-Unicode - * `experimental` - keyboards that have not yet passed the quality check, - available from the 'experimental' category in Keyman apps with Keyman 10 and - later. Unicode only, but PUA is acceptable. - -Within each of the folders, keyboards are further grouped by first letter or by -prefix, where multiple keyboards share the same prefix indicating provenance, -for example `sil` or `gff`. - -## Contributing - -### Tool - -Get the latest version of [Keyman Developer](https://keyman.com/developer) to start the journey of keyboard development. - -### Standard keyboard design - -A good way to start creating a keyboard is to plan out the requirements of the keyboard ahead and decide on the keyboard's language, target users, usability, structure, and many more steps that can be carried out further along the process. To ensure that the keyboard is up to standard, start by implementing the D.I.S.C.U.S. method. Find out [more](https://help.keyman.com/developer/keyboards/standard/)! - -### Keyboard submission guidelines - -Please make sure the keyboard and the package compile successfully before making a keyboard submission. If there are warning messages, try to address all of them; if there are errors, those must be corrected before submission. Help on this: [Compiler Messages](https://help.keyman.com/developer/current-version/reference/messages/) - -### Publish your keyboard - -When a keyboard is ready to submit, please confirm that the folders and files are consistent to the repository. For more clarification: - -- [Folder and File layout](https://help.keyman.com/developer/current-version/reference/file-layout) -- [File types](https://help.keyman.com/developer/current-version/reference/file-types/) - -After two to three rounds of confirmation and testing, you are welcome to create a Pull Request - -- [GitHub Keyboard Submission Guide](https://help.keyman.com/developer/keyboards/github/) - -### Modify a keyboard - -To update a keyboard in this repository, follow these steps: - -1. Create a fork from this repository (Update your fork of the keyboards repository if you already have one) - - The Fork button is located near the top of the repository, then follow the instructions [here](https://help.keyman.com/developer/keyboards/advanced/), and come back. - - Update the forked repository [here](https://help.keyman.com/developer/keyboards/github/step-3#toc-updating-your-fork), and proceed to the next step. - -2. Download a copy of the latest files that are in your forked repository as a ZIP file. - - Go to `https://github.com/[YourGitHubName]/keyboards/` (after replacing `[YourGitHubName]` with your actual GitHub name) - - Navigate to the keyboard, for example, to “release”, then “a”, then “ausephon” - - At that point, the browser URL will be something like: `https://github.com/[YourGitHubName]/keyboards/tree/master/release/a/ausephon` - - Copy the URL - - Go to: - - Paste the URL into the field and press Enter - - The files for the keyboard are zipped up and offered for download as: `keymanapp keyboards master release-a_ausephon.zip` - - Rename the file to `ausephon.zip` and save (Or save first, then rename). - - Unzip `ausephon.zip` to get the keyboard project folder ausephon with all of its files and subfolders. - -3. Update the keyboard files on your computer with Keyman Developer and/or a text editor - - Double-click on the `ausephon.kpj` (Keyman project file) in the ausephon folder to launch Keyman Developer - - Make your changes - - Build and test the keyboard, then build the package - - When everything is working and complete, include the changes to the HISTORY.md file and, if necessary, to the LICENSE.md file. - - Almost there, but first, delete the build folder and the files in it - - Also delete the .kpj.user (but don’t delete the .kpj file!). - -4. Submit your updates as a new pull request - - Go back to GitHub - - Create a new branch (from master) with a short name to represent the pull request. For example, ausephon-updates... - - Navigate to the target folder location (click on release, then on a, and you’ll see the ausephon folder) - - Click on “Add file”, then “Upload files” - - Drag the “ausephon” folder from your Windows Explorer window, and drop it on the GitHub window - - Follow the steps to create a pull request, although the commit message will be something like `[ausephon] updated keyboard` - -### Include font files - -If the fonts are used on multiple keyboards, the font files must be placed under the `shared folder`. Follow through this [documentation](https://help.keyman.com/developer/keyboards/github/step-2#toc-including-fonts-in-your-keyboard-package). However, if you are editing the keyboard package within the folders of the forked repository (skip step 2 above) only specifying the existing shared-font location in the package is necessary. - -### Documentation - -If the guides are not enough to provide you with a complete keyboard, don't be afraid to explore the main keyboard and keyman developer help pages! - -- [Keyboard helps](https://help.keyman.com/developer/keyboards/) -- [Keyman Developer helps](https://help.keyman.com/developer/current-version/) - -## Building Keyboards - -### Prerequisites - -Windows: - * Git for Windows (or MinGW) - * You will need to use **Git Bash** or equivalent to build (not tested with - Cygwin), not Windows Command Prompt or PowerShell. - * You can also use **WSL2** (Bash on Ubuntu on Windows). Beware of line-ending - changes if mixing Windows and WSL usage. - * Node.js 18.0 - -Linux: - * Node.js 18.0 - * bash 5.0 (standard now on most distributions) - -macOS: - * bash 5.0 (`brew install bash`) - * coreutils (`brew install coreutils`) - * Node.js 18.0 (`brew install node`) - * Ensure coreutils is on the PATH: `export PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"` - -### Build instructions - -`./build.sh` can be used to build all the keyboards from the command line. - -* `kmc`, the Keyman Developer compiler, is installed as a Node.js module, and so - Keyman Developer is not required for builds. - -#### Common `build.sh` parameters - -``` -Summary: - Build Keyman keyboards - -Script Identifier: - /c/Projects/keyman/keyboards - -Usage: - build.sh [options...] [action][:target]... - -Actions: - clean remove build/ folder and build artifacts - configure install dependencies, e.g. npm - build build target(s) - test run automated tests - -Targets: - :project this project - -Options: - --silent, -s Suppress unnecessary messages - --keyboard, -k KEYBOARD Build specific targets only, e.g. release/ or release/a/ or release/a/anii/, comma separated - --verbose, -v Verbose logging - --debug, -d Debug build - --color Force colorized output - --no-color Never use colorized output - --help, -h Show this help - -Dependencies: - This module has no dependencies - -* Specify action:target to run a specific action against a specific :target. -* If action is specified without a target suffix, it will be applied to all :targets. -* If :target is specified without an action prefix, build:target will be inferred. -* If no action, :target, or action:target entries are specified, build will run on all :targets. -``` - -* Each keyboard also includes a project file which can be used to build the project - either from the command line - kmc compiler, or from the Keyman Developer IDE. - -## Deprecated Keyboards - -If a keyboard has been replaced by another keyboard, include a DEPRECATED.md file in the folder referencing the new keyboard name. - -## Common Links - -* : Guide to working with this repository -* : Published documentation for each keyboard -* : JSON API for compiled keyboards available from Keyman Cloud - -## Community - -We appreciate the effort of reaching out about any issue or suggestion that is beneficial for the community. Share with us on our [community site](https://community.software.sil.org/new-message?groupname=keyman). +# Nyangatom + This is Neyangatom keyboard for Andriod diff --git a/experimental/n/nyangatom/HISTORY.md b/experimental/n/nyangatom/HISTORY.md new file mode 100644 index 0000000000..dea0ece948 --- /dev/null +++ b/experimental/n/nyangatom/HISTORY.md @@ -0,0 +1,6 @@ +Nyangatom Change History +==================== + +1.0 (2026-07-28) +---------------- +* Created by Asnake Berhanu diff --git a/experimental/n/nyangatom/LICENSE.md b/experimental/n/nyangatom/LICENSE.md new file mode 100644 index 0000000000..d3f8fcf1ab --- /dev/null +++ b/experimental/n/nyangatom/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +© SIL Ethiopia + +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/n/nyangatom/README.md b/experimental/n/nyangatom/README.md new file mode 100644 index 0000000000..02ccd09672 --- /dev/null +++ b/experimental/n/nyangatom/README.md @@ -0,0 +1,29 @@ +Nyangatom keyboard +============== + +Description +----------- +This is a thouch keyboard for Nyangatom language + +Links +----- +Keyboard Homepage: https://keyman.com/keyboards/nyangatom + +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/experimental/n/nyangatom/nyangatom.kpj b/experimental/n/nyangatom/nyangatom.kpj new file mode 100644 index 0000000000..d3a678044b --- /dev/null +++ b/experimental/n/nyangatom/nyangatom.kpj @@ -0,0 +1,8 @@ + + + + 2.0 + True + True + + diff --git a/experimental/n/nyangatom/source/nyangatom.ico b/experimental/n/nyangatom/source/nyangatom.ico new file mode 100644 index 0000000000..af84d60318 Binary files /dev/null and b/experimental/n/nyangatom/source/nyangatom.ico differ diff --git a/experimental/n/nyangatom/source/nyangatom.keyman-touch-layout b/experimental/n/nyangatom/source/nyangatom.keyman-touch-layout new file mode 100644 index 0000000000..62a57ab30b --- /dev/null +++ b/experimental/n/nyangatom/source/nyangatom.keyman-touch-layout @@ -0,0 +1,685 @@ +{ + "phone": { + "font": "Tahoma", + "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": "U_025B" + } + ] + }, + { + "id": "K_R", + "text": "r" + }, + { + "id": "K_T", + "text": "t" + }, + { + "id": "K_Y", + "text": "y" + }, + { + "id": "K_U", + "text": "u" + }, + { + "id": "K_I", + "text": "i" + }, + { + "id": "K_O", + "text": "o", + "sk": [ + { + "text": "ɔ", + "id": "U_0254" + } + ] + }, + { + "id": "K_P", + "text": "p" + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "K_A", + "text": "a", + "pad": 50 + }, + { + "id": "K_S", + "text": "s" + }, + { + "id": "K_D", + "text": "d" + }, + { + "id": "K_F", + "text": "f" + }, + { + "id": "K_G", + "text": "g" + }, + { + "id": "K_H", + "text": "h" + }, + { + "id": "K_J", + "text": "j" + }, + { + "id": "K_K", + "text": "k" + }, + { + "id": "K_L", + "text": "l" + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SHIFT", + "text": "*Shift*", + "sp": 1, + "nextlayer": "shift" + }, + { + "id": "K_Z", + "text": "z" + }, + { + "id": "K_X", + "text": "x" + }, + { + "id": "K_C", + "text": "c" + }, + { + "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": 550, + "sp": 0 + }, + { + "id": "K_COLON", + "text": ";", + "sk": [ + { + "text": "ꞌ", + "id": "U_A78C" + } + ] + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "width": 150, + "sp": 1 + } + ] + } + ] + }, + { + "id": "shift", + "row": [ + { + "id": 1, + "key": [ + { + "id": "K_Q", + "text": "Q" + }, + { + "id": "K_W", + "text": "W" + }, + { + "id": "K_E", + "text": "E", + "sk": [ + { + "text": "Ɛ", + "id": "U_0190" + } + ] + }, + { + "id": "K_R", + "text": "R" + }, + { + "id": "K_T", + "text": "T" + }, + { + "id": "K_Y", + "text": "Y" + }, + { + "id": "K_U", + "text": "U" + }, + { + "id": "K_I", + "text": "I" + }, + { + "id": "K_O", + "text": "O", + "sk": [ + { + "text": "Ɔ", + "id": "U_0186" + } + ] + }, + { + "id": "K_P", + "text": "P" + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "K_A", + "text": "A", + "pad": 50 + }, + { + "id": "K_S", + "text": "S" + }, + { + "id": "K_D", + "text": "D" + }, + { + "id": "K_F", + "text": "F" + }, + { + "id": "K_G", + "text": "G" + }, + { + "id": "K_H", + "text": "H" + }, + { + "id": "K_J", + "text": "J" + }, + { + "id": "K_K", + "text": "K" + }, + { + "id": "K_L", + "text": "L" + }, + { + "id": "T_new_924", + "text": "", + "width": 10, + "sp": 10 + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SHIFT", + "text": "*Shift*", + "sp": 2, + "nextlayer": "default" + }, + { + "id": "K_Z", + "text": "Z" + }, + { + "id": "K_X", + "text": "X" + }, + { + "id": "K_C", + "text": "C" + }, + { + "id": "K_V", + "text": "V" + }, + { + "id": "K_B", + "text": "B" + }, + { + "id": "K_N", + "text": "N" + }, + { + "id": "K_M", + "text": "M" + }, + { + "id": "K_PERIOD", + "text": ".", + "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" + } + ] + }, + { + "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", + "layer": "shift", + "text": "$", + "pad": 50 + }, + { + "id": "K_2", + "layer": "shift", + "text": "@" + }, + { + "id": "K_3", + "layer": "shift", + "text": "#" + }, + { + "id": "K_5", + "layer": "shift", + "text": "%" + }, + { + "id": "K_7", + "layer": "shift", + "text": "&" + }, + { + "id": "K_HYPHEN", + "layer": "shift", + "text": "_" + }, + { + "id": "K_EQUAL", + "text": "=", + "layer": "default" + }, + { + "id": "K_BKSLASH", + "layer": "shift", + "text": "|" + }, + { + "id": "K_BKSLASH", + "text": "\\", + "layer": "default" + }, + { + "text": "", + "width": 10, + "sp": 10 + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_LBRKT", + "text": "[", + "pad": 110, + "sk": [ + { + "id": "U_00AB", + "text": "«" + }, + { + "id": "K_COMMA", + "text": "<", + "layer": "shift" + }, + { + "id": "K_LBRKT", + "text": "{", + "layer": "shift" + } + ] + }, + { + "id": "K_9", + "layer": "shift", + "text": "(" + }, + { + "id": "K_0", + "layer": "shift", + "text": ")" + }, + { + "id": "K_RBRKT", + "text": "]", + "sk": [ + { + "id": "U_00BB", + "text": "»" + }, + { + "id": "K_PERIOD", + "text": ">", + "layer": "shift" + }, + { + "id": "K_RBRKT", + "text": "}", + "layer": "shift" + } + ] + }, + { + "id": "K_EQUAL", + "layer": "shift", + "text": "+" + }, + { + "id": "K_HYPHEN", + "text": "-" + }, + { + "id": "K_8", + "layer": "shift", + "text": "*" + }, + { + "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", + "text": "", + "width": 610, + "sp": 0 + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "width": 150, + "sp": 1 + } + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/experimental/n/nyangatom/source/nyangatom.kmn b/experimental/n/nyangatom/source/nyangatom.kmn new file mode 100644 index 0000000000..ceeb570b15 --- /dev/null +++ b/experimental/n/nyangatom/source/nyangatom.kmn @@ -0,0 +1,14 @@ +c nyangatom generated from template at 2026-07-28 09:56:30 +c with name "Nyangatom" +store(&VERSION) '10.0' +store(&NAME) 'Nyangatom' +store(©RIGHT) '© SIL Ethiopia' +store(&KEYBOARDVERSION) '1.0' +store(&TARGETS) 'any' +store(&BITMAP) 'nyangatom.ico' +store(&VISUALKEYBOARD) 'nyangatom.kvks' +store(&LAYOUTFILE) 'nyangatom.keyman-touch-layout' + +begin Unicode > use(main) + +group(main) using keys diff --git a/experimental/n/nyangatom/source/nyangatom.kps b/experimental/n/nyangatom/source/nyangatom.kps new file mode 100644 index 0000000000..3f63090dc6 --- /dev/null +++ b/experimental/n/nyangatom/source/nyangatom.kps @@ -0,0 +1,81 @@ + + + + 18.0.249.0 + 7.0 + + + + readme.htm + ..\LICENSE.md + ..\LICENSE.md + welcome.htm + + + + + + + + + + Nyangatom + © SIL Ethiopia + Asnake Berhanu + This is a thouch keyboard for Nyangatom language + + + + + ..\build\nyangatom.kmx + + 0 + .kmx + + + ..\build\nyangatom.js + + 0 + .js + + + ..\build\nyangatom.kvk + + 0 + .kvk + + + welcome.htm + + 0 + .htm + + + readme.htm + + 0 + .htm + + + ..\LICENSE.md + + 0 + .md + + + nyangatom.png + File nyangatom.png + 0 + .png + + + + + nyangatom + + Nyangatom + + + + + diff --git a/experimental/n/nyangatom/source/nyangatom.kvks b/experimental/n/nyangatom/source/nyangatom.kvks new file mode 100644 index 0000000000..d10dece0ce --- /dev/null +++ b/experimental/n/nyangatom/source/nyangatom.kvks @@ -0,0 +1,8 @@ + + +
+ 10.0 + nyangatom + +
+
diff --git a/experimental/n/nyangatom/source/nyangatom.png b/experimental/n/nyangatom/source/nyangatom.png new file mode 100644 index 0000000000..271e91efea Binary files /dev/null and b/experimental/n/nyangatom/source/nyangatom.png differ diff --git a/experimental/n/nyangatom/source/readme.htm b/experimental/n/nyangatom/source/readme.htm new file mode 100644 index 0000000000..ac2708a153 --- /dev/null +++ b/experimental/n/nyangatom/source/readme.htm @@ -0,0 +1,24 @@ + + + + + + Nyangatom + + + + +

Nyangatom

+ +

+ Nyangatom 1.0 generated to thouch keyboard +

+ +

© SIL Ethiopia

+ + + diff --git a/experimental/n/nyangatom/source/welcome.htm b/experimental/n/nyangatom/source/welcome.htm new file mode 100644 index 0000000000..83696490ff --- /dev/null +++ b/experimental/n/nyangatom/source/welcome.htm @@ -0,0 +1,32 @@ + + + + + + Start Using Nyangatom + + + + +

Start Using Nyangatom

+ +

+ Nyangatom 1.0 generated from thouch keyboard +

+

See this document for all the key combinations.

+ +

Keyboard Layout

+ + +

Unshifted

+keyboard Layout +

Shifted

+keyboard Layout + + + + \ No newline at end of file diff --git a/yangap_phone.kpj b/yangap_phone.kpj new file mode 100644 index 0000000000..d3a678044b --- /dev/null +++ b/yangap_phone.kpj @@ -0,0 +1,8 @@ + + + + 2.0 + True + True + +