diff --git a/experimental/l/lemko_qwerty/HISTORY.md b/experimental/l/lemko_qwerty/HISTORY.md new file mode 100644 index 0000000000..b405d66f60 --- /dev/null +++ b/experimental/l/lemko_qwerty/HISTORY.md @@ -0,0 +1,29 @@ +# Version history + +## 0.3.4 — 2026-10-16 + +* Match the requested EuroLatin-style numeric arrangement and add a currency page. +* Display grey long-press letter and symbol hints. +* Add touch sentence capitalization with manual Shift override; preserve decimal input. + +## 0.3.3 — 2026-10-16 + +* Split numbers and symbols into two four-row pages with balanced widths. +* Keep all digits equal in width, enlarge space, and provide a dedicated symbol-page toggle. + +## 0.3.2 — 2026-10-16 + +* Apply system sans-serif typography to suggestion text through embedded CSS. +* Widen the space key and round key corners without changing letter positions. +* Preserve platform colors and special-key icon fonts. + +## 0.3.1 — 2026-10-16 + +* Use system sans-serif font fallbacks on phone and tablet instead of unavailable Tahoma on iOS. + +## 0.3.0 — 2026-10-16 + +* Initial submission with desktop and phone/tablet layouts. +* Apple Russian Phonetic base with direct є/Є and additional Option/AltGr mappings. +* Language association rue, displayed as Lemko. +* Native device acceptance tests pending. diff --git a/experimental/l/lemko_qwerty/LICENSE.md b/experimental/l/lemko_qwerty/LICENSE.md new file mode 100644 index 0000000000..2bb9b5f71c --- /dev/null +++ b/experimental/l/lemko_qwerty/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright © 2026 lemko.tools + +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/l/lemko_qwerty/README.md b/experimental/l/lemko_qwerty/README.md new file mode 100644 index 0000000000..96fa91cbcc --- /dev/null +++ b/experimental/l/lemko_qwerty/README.md @@ -0,0 +1,19 @@ +# Rusyn (Lemko, Poland) keyboard + +A phonetic Cyrillic keyboard for Lemko. Additional mappings include і on Option/AltGr+I, ї on Option/AltGr+A and ґ on Option/AltGr+H. The language tag rue identifies Rusyn broadly; this keyboard and its visible labels target Lemko specifically. + +Includes desktop rules, on-screen keyboard legends, and phone/tablet touch layouts. Touch long-press alternatives include і/ї on и, ґ on г, and щ on ш; a separate symbols layer provides numbers and punctuation. + +This package contains no lexical model or dictionary data. A separately developed Lemko model is not included in this submission. The keyboard itself does not provide desktop autocorrection. + +## Build + +`kmc build lemko_qwerty.kpj` + +## License + +MIT. Copyright 2026 lemko.tools. See LICENSE.md. + +## Touch behavior + +The number page follows the EuroLatin-style arrangement, with a second currency/symbol page. Grey corner labels show long-press alternatives. Automatic Shift is enabled at an empty field, after a newline, and after `.`, `?`, or `!` followed by one to three spaces. After a letter it returns to lowercase. Manual Shift can override the next letter; decimal points without a following space do not start a sentence. Abbreviations are not detected linguistically. Desktop capitalization is unchanged. diff --git a/experimental/l/lemko_qwerty/lemko_qwerty.kpj b/experimental/l/lemko_qwerty/lemko_qwerty.kpj new file mode 100644 index 0000000000..7ed1ac72df --- /dev/null +++ b/experimental/l/lemko_qwerty/lemko_qwerty.kpj @@ -0,0 +1,8 @@ + + + + 2.0 + True + True + + diff --git a/experimental/l/lemko_qwerty/source/lemko_qwerty.css b/experimental/l/lemko_qwerty/source/lemko_qwerty.css new file mode 100644 index 0000000000..105d10385a --- /dev/null +++ b/experimental/l/lemko_qwerty/source/lemko_qwerty.css @@ -0,0 +1,11 @@ +/* Injected only while this keyboard is active. Preserve native light/dark colors, + hit targets, row geometry and Keyman's special-key icon font. */ +.kmw-suggestion-text, +.kmw-suggestion-container { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important; + font-weight: 400; + font-style: normal; +} +.kmw-key { + border-radius: 7px !important; +} diff --git a/experimental/l/lemko_qwerty/source/lemko_qwerty.keyman-touch-layout b/experimental/l/lemko_qwerty/source/lemko_qwerty.keyman-touch-layout new file mode 100644 index 0000000000..3bb8f04c82 --- /dev/null +++ b/experimental/l/lemko_qwerty/source/lemko_qwerty.keyman-touch-layout @@ -0,0 +1,1139 @@ +{ + "phone": { + "font": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Arial, sans-serif", + "layer": [ + { + "id": "default", + "row": [ + { + "id": 1, + "key": [ + { + "id": "K_Q", + "text": "я" + }, + { + "id": "K_W", + "text": "ш", + "hint": "щ", + "sk": [ + { + "id": "U_0449", + "text": "щ" + } + ] + }, + { + "id": "K_E", + "text": "е", + "hint": "єё", + "sk": [ + { + "id": "U_0454", + "text": "є" + }, + { + "id": "U_0451", + "text": "ё" + } + ] + }, + { + "id": "K_R", + "text": "р" + }, + { + "id": "K_T", + "text": "т" + }, + { + "id": "K_Y", + "text": "ы" + }, + { + "id": "K_U", + "text": "у" + }, + { + "id": "K_I", + "text": "и", + "hint": "ії", + "sk": [ + { + "id": "U_0456", + "text": "і" + }, + { + "id": "U_0457", + "text": "ї" + } + ] + }, + { + "id": "K_O", + "text": "о" + }, + { + "id": "K_P", + "text": "п" + }, + { + "id": "K_LBRKT", + "text": "ю" + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "K_A", + "text": "а" + }, + { + "id": "K_S", + "text": "с" + }, + { + "id": "K_D", + "text": "д" + }, + { + "id": "K_F", + "text": "ф" + }, + { + "id": "K_G", + "text": "г", + "hint": "ґ", + "sk": [ + { + "id": "U_0491", + "text": "ґ" + } + ] + }, + { + "id": "K_H", + "text": "ч", + "hint": "ґ", + "sk": [ + { + "id": "U_0491", + "text": "ґ" + } + ] + }, + { + "id": "K_J", + "text": "й" + }, + { + "id": "K_K", + "text": "к" + }, + { + "id": "K_L", + "text": "л" + }, + { + "id": "K_RBRKT", + "text": "ж" + }, + { + "id": "K_BKSLASH", + "text": "є" + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SHIFT", + "text": "*Shift*", + "sp": "1", + "nextlayer": "shift" + }, + { + "id": "K_Z", + "text": "з" + }, + { + "id": "K_X", + "text": "х" + }, + { + "id": "K_C", + "text": "ц" + }, + { + "id": "K_V", + "text": "в" + }, + { + "id": "K_B", + "text": "б" + }, + { + "id": "K_N", + "text": "н" + }, + { + "id": "K_M", + "text": "м" + }, + { + "id": "K_HYPHEN", + "text": "ь" + }, + { + "id": "K_EQUAL", + "text": "ъ" + }, + { + "id": "K_BKSP", + "text": "*BkSp*", + "sp": "1" + } + ] + }, + { + "id": 4, + "key": [ + { + "id": "K_SYMBOLS", + "text": "123", + "sp": "1", + "width": "120", + "nextlayer": "symbols" + }, + { + "id": "K_LOPT", + "text": "*Menu*", + "sp": "1", + "width": "90" + }, + { + "id": "U_002C", + "text": ",", + "width": "75" + }, + { + "id": "K_SPACE", + "text": "", + "width": "560" + }, + { + "id": "U_002E", + "text": ".", + "width": "75" + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "sp": "1", + "width": "180" + } + ] + } + ] + }, + { + "id": "shift", + "row": [ + { + "id": 1, + "key": [ + { + "id": "K_Q", + "text": "Я" + }, + { + "id": "K_W", + "text": "Ш", + "hint": "Щ", + "sk": [ + { + "id": "U_0429", + "text": "Щ" + } + ] + }, + { + "id": "K_E", + "text": "Е", + "hint": "ЄЁ", + "sk": [ + { + "id": "U_0404", + "text": "Є" + }, + { + "id": "U_0401", + "text": "Ё" + } + ] + }, + { + "id": "K_R", + "text": "Р" + }, + { + "id": "K_T", + "text": "Т" + }, + { + "id": "K_Y", + "text": "Ы" + }, + { + "id": "K_U", + "text": "У" + }, + { + "id": "K_I", + "text": "И", + "hint": "ІЇ", + "sk": [ + { + "id": "U_0406", + "text": "І" + }, + { + "id": "U_0407", + "text": "Ї" + } + ] + }, + { + "id": "K_O", + "text": "О" + }, + { + "id": "K_P", + "text": "П" + }, + { + "id": "K_LBRKT", + "text": "Ю" + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "K_A", + "text": "А" + }, + { + "id": "K_S", + "text": "С" + }, + { + "id": "K_D", + "text": "Д" + }, + { + "id": "K_F", + "text": "Ф" + }, + { + "id": "K_G", + "text": "Г", + "hint": "Ґ", + "sk": [ + { + "id": "U_0490", + "text": "Ґ" + } + ] + }, + { + "id": "K_H", + "text": "Ч", + "hint": "Ґ", + "sk": [ + { + "id": "U_0490", + "text": "Ґ" + } + ] + }, + { + "id": "K_J", + "text": "Й" + }, + { + "id": "K_K", + "text": "К" + }, + { + "id": "K_L", + "text": "Л" + }, + { + "id": "K_RBRKT", + "text": "Ж" + }, + { + "id": "K_BKSLASH", + "text": "Є" + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SHIFT", + "text": "*Shift*", + "sp": "1", + "nextlayer": "default" + }, + { + "id": "K_Z", + "text": "З" + }, + { + "id": "K_X", + "text": "Х" + }, + { + "id": "K_C", + "text": "Ц" + }, + { + "id": "K_V", + "text": "В" + }, + { + "id": "K_B", + "text": "Б" + }, + { + "id": "K_N", + "text": "Н" + }, + { + "id": "K_M", + "text": "М" + }, + { + "id": "K_HYPHEN", + "text": "Ь" + }, + { + "id": "K_EQUAL", + "text": "Ъ" + }, + { + "id": "K_BKSP", + "text": "*BkSp*", + "sp": "1" + } + ] + }, + { + "id": 4, + "key": [ + { + "id": "K_SYMBOLS", + "text": "123", + "sp": "1", + "width": "120", + "nextlayer": "symbols" + }, + { + "id": "K_LOPT", + "text": "*Menu*", + "sp": "1", + "width": "90" + }, + { + "id": "U_002C", + "text": ",", + "width": "75" + }, + { + "id": "K_SPACE", + "text": "", + "width": "560" + }, + { + "id": "U_002E", + "text": ".", + "width": "75" + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "sp": "1", + "width": "180" + } + ] + } + ] + }, + { + "id": "symbols", + "row": [ + { + "id": 1, + "key": [ + { + "id": "U_0031", + "text": "1", + "width": "110", + "pad": "10" + }, + { + "id": "U_0032", + "text": "2", + "width": "110", + "pad": "5" + }, + { + "id": "U_0033", + "text": "3", + "width": "110", + "pad": "5" + }, + { + "id": "U_0034", + "text": "4", + "width": "110", + "pad": "5" + }, + { + "id": "U_0035", + "text": "5", + "width": "110", + "pad": "5" + }, + { + "id": "U_0036", + "text": "6", + "width": "110", + "pad": "5" + }, + { + "id": "U_0037", + "text": "7", + "width": "110", + "pad": "5" + }, + { + "id": "U_0038", + "text": "8", + "width": "110", + "pad": "5" + }, + { + "id": "U_0039", + "text": "9", + "width": "110", + "pad": "5" + }, + { + "id": "U_0030", + "text": "0", + "width": "110", + "pad": "5" + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "U_0040", + "text": "@", + "hint": "#", + "sk": [ + { + "id": "U_0023", + "text": "#" + } + ], + "width": "110", + "pad": "67.5" + }, + { + "id": "U_0024", + "text": "$", + "hint": "€£¥", + "sk": [ + { + "id": "U_20AC", + "text": "€" + }, + { + "id": "U_00A3", + "text": "£" + }, + { + "id": "U_00A5", + "text": "¥" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_003C", + "text": "<", + "hint": "«", + "sk": [ + { + "id": "U_00AB", + "text": "«" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_003E", + "text": ">", + "hint": "»", + "sk": [ + { + "id": "U_00BB", + "text": "»" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_002B", + "text": "+", + "hint": "&", + "sk": [ + { + "id": "U_0026", + "text": "&" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_002D", + "text": "-", + "hint": "_–—", + "sk": [ + { + "id": "U_005F", + "text": "_" + }, + { + "id": "U_2013", + "text": "–" + }, + { + "id": "U_2014", + "text": "—" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_002A", + "text": "*", + "hint": "^", + "sk": [ + { + "id": "U_005E", + "text": "^" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_002F", + "text": "/", + "hint": "%\\", + "sk": [ + { + "id": "U_0025", + "text": "%" + }, + { + "id": "U_005C", + "text": "\\" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_003D", + "text": "=", + "hint": "≠", + "sk": [ + { + "id": "U_2260", + "text": "≠" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "T_SPACER", + "sp": "10", + "width": "52.5", + "pad": "5" + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SYMBOLS", + "text": "€£¥", + "sp": "1", + "width": "110", + "pad": "10", + "nextlayer": "symbols2" + }, + { + "id": "U_0028", + "text": "(", + "hint": "[{", + "sk": [ + { + "id": "U_005B", + "text": "[" + }, + { + "id": "U_007B", + "text": "{" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_0029", + "text": ")", + "hint": "]}", + "sk": [ + { + "id": "U_005D", + "text": "]" + }, + { + "id": "U_007D", + "text": "}" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_0027", + "text": "'", + "hint": "’ʼ‘`", + "sk": [ + { + "id": "U_2019", + "text": "’" + }, + { + "id": "U_02BC", + "text": "ʼ" + }, + { + "id": "U_2018", + "text": "‘" + }, + { + "id": "U_0060", + "text": "`" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_0022", + "text": "\"", + "hint": "“”„", + "sk": [ + { + "id": "U_201C", + "text": "“" + }, + { + "id": "U_201D", + "text": "”" + }, + { + "id": "U_201E", + "text": "„" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_0021", + "text": "!", + "hint": "¡", + "sk": [ + { + "id": "U_00A1", + "text": "¡" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_003F", + "text": "?", + "hint": "¿", + "sk": [ + { + "id": "U_00BF", + "text": "¿" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_002C", + "text": ",", + "hint": ";", + "sk": [ + { + "id": "U_003B", + "text": ";" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_002E", + "text": ".", + "hint": ":…", + "sk": [ + { + "id": "U_003A", + "text": ":" + }, + { + "id": "U_2026", + "text": "…" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "K_BKSP", + "text": "*BkSp*", + "sp": "1", + "width": "110", + "pad": "5" + } + ] + }, + { + "id": 4, + "key": [ + { + "id": "K_LOWER", + "text": "*abc*", + "sp": "1", + "width": "160", + "pad": "5", + "nextlayer": "default" + }, + { + "id": "K_LOPT", + "text": "*Menu*", + "sp": "1", + "width": "90", + "pad": "5" + }, + { + "id": "K_SPACE", + "text": "", + "width": "665", + "pad": "5" + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "sp": "1", + "width": "220", + "pad": "5" + } + ] + } + ] + }, + { + "id": "symbols2", + "row": [ + { + "id": 1, + "key": [ + { + "id": "U_20AC", + "text": "€", + "width": "110", + "pad": "10" + }, + { + "id": "U_00A3", + "text": "£", + "width": "110", + "pad": "5" + }, + { + "id": "U_00A5", + "text": "¥", + "width": "110", + "pad": "5" + }, + { + "id": "U_00A2", + "text": "¢", + "width": "110", + "pad": "5" + }, + { + "id": "U_20B4", + "text": "₴", + "width": "110", + "pad": "5" + }, + { + "id": "U_20BD", + "text": "₽", + "width": "110", + "pad": "5" + }, + { + "id": "U_0024", + "text": "$", + "hint": "€£¥", + "sk": [ + { + "id": "U_20AC", + "text": "€" + }, + { + "id": "U_00A3", + "text": "£" + }, + { + "id": "U_00A5", + "text": "¥" + } + ], + "width": "110", + "pad": "5" + }, + { + "id": "U_00A4", + "text": "¤", + "width": "110", + "pad": "5" + }, + { + "id": "U_20B9", + "text": "₹", + "width": "110", + "pad": "5" + }, + { + "id": "U_20BF", + "text": "₿", + "width": "110", + "pad": "5" + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "U_005B", + "text": "[", + "width": "110", + "pad": "67.5" + }, + { + "id": "U_005D", + "text": "]", + "width": "110", + "pad": "5" + }, + { + "id": "U_007B", + "text": "{", + "width": "110", + "pad": "5" + }, + { + "id": "U_007D", + "text": "}", + "width": "110", + "pad": "5" + }, + { + "id": "U_0023", + "text": "#", + "width": "110", + "pad": "5" + }, + { + "id": "U_0025", + "text": "%", + "width": "110", + "pad": "5" + }, + { + "id": "U_0026", + "text": "&", + "width": "110", + "pad": "5" + }, + { + "id": "U_005E", + "text": "^", + "width": "110", + "pad": "5" + }, + { + "id": "U_007E", + "text": "~", + "width": "110", + "pad": "5" + }, + { + "id": "T_SPACER", + "sp": "10", + "width": "52.5", + "pad": "5" + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SYMBOLS", + "text": "123", + "sp": "1", + "width": "110", + "pad": "10", + "nextlayer": "symbols" + }, + { + "id": "U_005C", + "text": "\\", + "width": "110", + "pad": "5" + }, + { + "id": "U_007C", + "text": "|", + "width": "110", + "pad": "5" + }, + { + "id": "U_005F", + "text": "_", + "width": "110", + "pad": "5" + }, + { + "id": "U_2013", + "text": "–", + "width": "110", + "pad": "5" + }, + { + "id": "U_2014", + "text": "—", + "width": "110", + "pad": "5" + }, + { + "id": "U_2022", + "text": "•", + "width": "110", + "pad": "5" + }, + { + "id": "U_003A", + "text": ":", + "width": "110", + "pad": "5" + }, + { + "id": "U_003B", + "text": ";", + "width": "110", + "pad": "5" + }, + { + "id": "K_BKSP", + "text": "*BkSp*", + "sp": "1", + "width": "110", + "pad": "5" + } + ] + }, + { + "id": 4, + "key": [ + { + "id": "K_LOWER", + "text": "*abc*", + "sp": "1", + "width": "160", + "pad": "5", + "nextlayer": "default" + }, + { + "id": "K_LOPT", + "text": "*Menu*", + "sp": "1", + "width": "90", + "pad": "5" + }, + { + "id": "K_SPACE", + "text": "", + "width": "665", + "pad": "5" + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "sp": "1", + "width": "220", + "pad": "5" + } + ] + } + ] + } + ] + } +} diff --git a/experimental/l/lemko_qwerty/source/lemko_qwerty.kmn b/experimental/l/lemko_qwerty/source/lemko_qwerty.kmn new file mode 100644 index 0000000000..73f96a89ca --- /dev/null +++ b/experimental/l/lemko_qwerty/source/lemko_qwerty.kmn @@ -0,0 +1,525 @@ +c Generated by scripts/generate-keyboard.mjs; edit the generator, not this file. +store(&NAME) 'Rusyn (Lemko, Poland)' +store(©RIGHT) '© lemko.tools' +store(&VERSION) '10.0' +store(&KEYBOARDVERSION) '0.3.4' +store(&TARGETS) 'any' +store(&MNEMONICLAYOUT) '0' +store(&KMW_EMBEDCSS) 'lemko_qwerty.css' +store(&VISUALKEYBOARD) 'lemko_qwerty.kvks' +store(&LAYOUTFILE) 'lemko_qwerty.keyman-touch-layout' + +begin Unicode > use(main) +begin NewContext > use(NewContext) +begin PostKeystroke > use(PostKeystroke) +store(sentencePunctuation) '.?!' +store(whitespace) U+0020 U+00A0 U+0009 U+000A U+000D + +group(NewContext) readonly +platform('touch') > use(sentenceCase) + +group(PostKeystroke) readonly +platform('touch') if(&newLayer = 'default') if(&layer = 'symbols') > use(sentenceCase) +platform('touch') if(&newLayer = 'default') if(&layer = 'symbols2') > use(sentenceCase) +platform('touch') if(&layer = 'symbols') > context +platform('touch') if(&layer = 'symbols2') > context +platform('touch') if(&newLayer = '') > use(sentenceCase) + +group(sentenceCase) readonly +nul > layer('shift') +U+000A > layer('shift') +U+000D > layer('shift') +any(sentencePunctuation) any(whitespace) > layer('shift') +any(sentencePunctuation) any(whitespace) any(whitespace) > layer('shift') +any(sentencePunctuation) any(whitespace) any(whitespace) any(whitespace) > layer('shift') +nomatch > layer('default') + +group(main) using keys ++ [NCAPS K_BKQUOTE] > U+0449 ++ [SHIFT NCAPS K_BKQUOTE] > U+0429 ++ [CAPS K_BKQUOTE] > U+0429 ++ [SHIFT CAPS K_BKQUOTE] > U+0449 ++ [NCAPS K_1] > U+0031 ++ [SHIFT NCAPS K_1] > U+0021 ++ [CAPS K_1] > U+0031 ++ [SHIFT CAPS K_1] > U+0021 ++ [NCAPS K_2] > U+0032 ++ [SHIFT NCAPS K_2] > U+0040 ++ [CAPS K_2] > U+0032 ++ [SHIFT CAPS K_2] > U+0040 ++ [NCAPS K_3] > U+0033 ++ [SHIFT NCAPS K_3] > U+0023 ++ [CAPS K_3] > U+0033 ++ [SHIFT CAPS K_3] > U+0023 ++ [NCAPS K_4] > U+0034 ++ [SHIFT NCAPS K_4] > U+0024 ++ [CAPS K_4] > U+0034 ++ [SHIFT CAPS K_4] > U+0024 ++ [NCAPS K_5] > U+0035 ++ [SHIFT NCAPS K_5] > U+0025 ++ [CAPS K_5] > U+0035 ++ [SHIFT CAPS K_5] > U+0025 ++ [NCAPS K_6] > U+0036 ++ [SHIFT NCAPS K_6] > U+005E ++ [CAPS K_6] > U+0036 ++ [SHIFT CAPS K_6] > U+005E ++ [NCAPS K_7] > U+0037 ++ [SHIFT NCAPS K_7] > U+0026 ++ [CAPS K_7] > U+0037 ++ [SHIFT CAPS K_7] > U+0026 ++ [NCAPS K_8] > U+0038 ++ [SHIFT NCAPS K_8] > U+002A ++ [CAPS K_8] > U+0038 ++ [SHIFT CAPS K_8] > U+002A ++ [NCAPS K_9] > U+0039 ++ [SHIFT NCAPS K_9] > U+0028 ++ [CAPS K_9] > U+0039 ++ [SHIFT CAPS K_9] > U+0028 ++ [NCAPS K_0] > U+0030 ++ [SHIFT NCAPS K_0] > U+0029 ++ [CAPS K_0] > U+0030 ++ [SHIFT CAPS K_0] > U+0029 ++ [NCAPS K_HYPHEN] > U+044C ++ [SHIFT NCAPS K_HYPHEN] > U+042C ++ [CAPS K_HYPHEN] > U+042C ++ [SHIFT CAPS K_HYPHEN] > U+044C ++ [NCAPS K_EQUAL] > U+044A ++ [SHIFT NCAPS K_EQUAL] > U+042A ++ [CAPS K_EQUAL] > U+042A ++ [SHIFT CAPS K_EQUAL] > U+044A ++ [NCAPS K_Q] > U+044F ++ [SHIFT NCAPS K_Q] > U+042F ++ [CAPS K_Q] > U+042F ++ [SHIFT CAPS K_Q] > U+044F ++ [NCAPS K_W] > U+0448 ++ [SHIFT NCAPS K_W] > U+0428 ++ [CAPS K_W] > U+0428 ++ [SHIFT CAPS K_W] > U+0448 ++ [NCAPS K_E] > U+0435 ++ [SHIFT NCAPS K_E] > U+0415 ++ [CAPS K_E] > U+0415 ++ [SHIFT CAPS K_E] > U+0435 ++ [NCAPS K_R] > U+0440 ++ [SHIFT NCAPS K_R] > U+0420 ++ [CAPS K_R] > U+0420 ++ [SHIFT CAPS K_R] > U+0440 ++ [NCAPS K_T] > U+0442 ++ [SHIFT NCAPS K_T] > U+0422 ++ [CAPS K_T] > U+0422 ++ [SHIFT CAPS K_T] > U+0442 ++ [NCAPS K_Y] > U+044B ++ [SHIFT NCAPS K_Y] > U+042B ++ [CAPS K_Y] > U+042B ++ [SHIFT CAPS K_Y] > U+044B ++ [NCAPS K_U] > U+0443 ++ [SHIFT NCAPS K_U] > U+0423 ++ [CAPS K_U] > U+0423 ++ [SHIFT CAPS K_U] > U+0443 ++ [NCAPS K_I] > U+0438 ++ [SHIFT NCAPS K_I] > U+0418 ++ [CAPS K_I] > U+0418 ++ [SHIFT CAPS K_I] > U+0438 ++ [NCAPS K_O] > U+043E ++ [SHIFT NCAPS K_O] > U+041E ++ [CAPS K_O] > U+041E ++ [SHIFT CAPS K_O] > U+043E ++ [NCAPS K_P] > U+043F ++ [SHIFT NCAPS K_P] > U+041F ++ [CAPS K_P] > U+041F ++ [SHIFT CAPS K_P] > U+043F ++ [NCAPS K_LBRKT] > U+044E ++ [SHIFT NCAPS K_LBRKT] > U+042E ++ [CAPS K_LBRKT] > U+042E ++ [SHIFT CAPS K_LBRKT] > U+044E ++ [NCAPS K_RBRKT] > U+0436 ++ [SHIFT NCAPS K_RBRKT] > U+0416 ++ [CAPS K_RBRKT] > U+0416 ++ [SHIFT CAPS K_RBRKT] > U+0436 ++ [NCAPS K_BKSLASH] > U+0454 ++ [SHIFT NCAPS K_BKSLASH] > U+0404 ++ [CAPS K_BKSLASH] > U+0404 ++ [SHIFT CAPS K_BKSLASH] > U+0454 ++ [NCAPS K_A] > U+0430 ++ [SHIFT NCAPS K_A] > U+0410 ++ [CAPS K_A] > U+0410 ++ [SHIFT CAPS K_A] > U+0430 ++ [NCAPS K_S] > U+0441 ++ [SHIFT NCAPS K_S] > U+0421 ++ [CAPS K_S] > U+0421 ++ [SHIFT CAPS K_S] > U+0441 ++ [NCAPS K_D] > U+0434 ++ [SHIFT NCAPS K_D] > U+0414 ++ [CAPS K_D] > U+0414 ++ [SHIFT CAPS K_D] > U+0434 ++ [NCAPS K_F] > U+0444 ++ [SHIFT NCAPS K_F] > U+0424 ++ [CAPS K_F] > U+0424 ++ [SHIFT CAPS K_F] > U+0444 ++ [NCAPS K_G] > U+0433 ++ [SHIFT NCAPS K_G] > U+0413 ++ [CAPS K_G] > U+0413 ++ [SHIFT CAPS K_G] > U+0433 ++ [NCAPS K_H] > U+0447 ++ [SHIFT NCAPS K_H] > U+0427 ++ [CAPS K_H] > U+0427 ++ [SHIFT CAPS K_H] > U+0447 ++ [NCAPS K_J] > U+0439 ++ [SHIFT NCAPS K_J] > U+0419 ++ [CAPS K_J] > U+0419 ++ [SHIFT CAPS K_J] > U+0439 ++ [NCAPS K_K] > U+043A ++ [SHIFT NCAPS K_K] > U+041A ++ [CAPS K_K] > U+041A ++ [SHIFT CAPS K_K] > U+043A ++ [NCAPS K_L] > U+043B ++ [SHIFT NCAPS K_L] > U+041B ++ [CAPS K_L] > U+041B ++ [SHIFT CAPS K_L] > U+043B ++ [NCAPS K_COLON] > U+003B ++ [SHIFT NCAPS K_COLON] > U+003A ++ [CAPS K_COLON] > U+003B ++ [SHIFT CAPS K_COLON] > U+003A ++ [NCAPS K_QUOTE] > U+0027 ++ [SHIFT NCAPS K_QUOTE] > U+0022 ++ [CAPS K_QUOTE] > U+0027 ++ [SHIFT CAPS K_QUOTE] > U+0022 ++ [NCAPS K_Z] > U+0437 ++ [SHIFT NCAPS K_Z] > U+0417 ++ [CAPS K_Z] > U+0417 ++ [SHIFT CAPS K_Z] > U+0437 ++ [NCAPS K_X] > U+0445 ++ [SHIFT NCAPS K_X] > U+0425 ++ [CAPS K_X] > U+0425 ++ [SHIFT CAPS K_X] > U+0445 ++ [NCAPS K_C] > U+0446 ++ [SHIFT NCAPS K_C] > U+0426 ++ [CAPS K_C] > U+0426 ++ [SHIFT CAPS K_C] > U+0446 ++ [NCAPS K_V] > U+0432 ++ [SHIFT NCAPS K_V] > U+0412 ++ [CAPS K_V] > U+0412 ++ [SHIFT CAPS K_V] > U+0432 ++ [NCAPS K_B] > U+0431 ++ [SHIFT NCAPS K_B] > U+0411 ++ [CAPS K_B] > U+0411 ++ [SHIFT CAPS K_B] > U+0431 ++ [NCAPS K_N] > U+043D ++ [SHIFT NCAPS K_N] > U+041D ++ [CAPS K_N] > U+041D ++ [SHIFT CAPS K_N] > U+043D ++ [NCAPS K_M] > U+043C ++ [SHIFT NCAPS K_M] > U+041C ++ [CAPS K_M] > U+041C ++ [SHIFT CAPS K_M] > U+043C ++ [NCAPS K_COMMA] > U+002C ++ [SHIFT NCAPS K_COMMA] > U+003C ++ [CAPS K_COMMA] > U+002C ++ [SHIFT CAPS K_COMMA] > U+003C ++ [NCAPS K_PERIOD] > U+002E ++ [SHIFT NCAPS K_PERIOD] > U+003E ++ [CAPS K_PERIOD] > U+002E ++ [SHIFT CAPS K_PERIOD] > U+003E ++ [NCAPS K_SLASH] > U+002F ++ [SHIFT NCAPS K_SLASH] > U+003F ++ [CAPS K_SLASH] > U+002F ++ [SHIFT CAPS K_SLASH] > U+003F ++ [NCAPS K_oE2] > U+003E ++ [SHIFT NCAPS K_oE2] > U+003C ++ [CAPS K_oE2] > U+003E ++ [SHIFT CAPS K_oE2] > U+003C ++ [NCAPS K_SPACE] > U+0020 ++ [SHIFT NCAPS K_SPACE] > U+0020 ++ [CAPS K_SPACE] > U+0020 ++ [SHIFT CAPS K_SPACE] > U+0020 ++ [RALT NCAPS K_1] > U+0457 ++ [RALT SHIFT NCAPS K_1] > U+0407 ++ [RALT CAPS K_1] > U+0407 ++ [RALT SHIFT CAPS K_1] > U+0457 ++ [RALT NCAPS K_2] > U+0451 ++ [RALT SHIFT NCAPS K_2] > U+0401 ++ [RALT CAPS K_2] > U+0401 ++ [RALT SHIFT CAPS K_2] > U+0451 ++ [RALT NCAPS K_3] > U+0454 ++ [RALT SHIFT NCAPS K_3] > U+0404 ++ [RALT CAPS K_3] > U+0404 ++ [RALT SHIFT CAPS K_3] > U+0454 ++ [RALT NCAPS K_4] > U+0491 ++ [RALT SHIFT NCAPS K_4] > U+0490 ++ [RALT CAPS K_4] > U+0490 ++ [RALT SHIFT CAPS K_4] > U+0491 ++ [RALT NCAPS K_W] > U+0449 ++ [RALT SHIFT NCAPS K_W] > U+0429 ++ [RALT CAPS K_W] > U+0429 ++ [RALT SHIFT CAPS K_W] > U+0449 ++ [RALT NCAPS K_E] > U+0451 ++ [RALT SHIFT NCAPS K_E] > U+0401 ++ [RALT CAPS K_E] > U+0401 ++ [RALT SHIFT CAPS K_E] > U+0451 ++ [RALT NCAPS K_I] > U+0456 ++ [RALT SHIFT NCAPS K_I] > U+0406 ++ [RALT CAPS K_I] > U+0406 ++ [RALT SHIFT CAPS K_I] > U+0456 ++ [RALT NCAPS K_H] > U+0491 ++ [RALT SHIFT NCAPS K_H] > U+0490 ++ [RALT CAPS K_H] > U+0490 ++ [RALT SHIFT CAPS K_H] > U+0491 ++ [RALT NCAPS K_A] > U+0457 ++ [RALT SHIFT NCAPS K_A] > U+0407 ++ [RALT CAPS K_A] > U+0407 ++ [RALT SHIFT CAPS K_A] > U+0457 ++ [RALT NCAPS K_BKSLASH] > U+0454 ++ [RALT SHIFT NCAPS K_BKSLASH] > U+0404 ++ [RALT CAPS K_BKSLASH] > U+0404 ++ [RALT SHIFT CAPS K_BKSLASH] > U+0454 ++ [RALT NCAPS K_BKQUOTE] > U+0060 ++ [RALT SHIFT NCAPS K_BKQUOTE] > U+007E ++ [RALT CAPS K_BKQUOTE] > U+0060 ++ [RALT SHIFT CAPS K_BKQUOTE] > U+007E ++ [RALT NCAPS K_HYPHEN] > U+002D ++ [RALT SHIFT NCAPS K_HYPHEN] > U+005F ++ [RALT CAPS K_HYPHEN] > U+002D ++ [RALT SHIFT CAPS K_HYPHEN] > U+005F ++ [RALT NCAPS K_EQUAL] > U+003D ++ [RALT SHIFT NCAPS K_EQUAL] > U+002B ++ [RALT CAPS K_EQUAL] > U+003D ++ [RALT SHIFT CAPS K_EQUAL] > U+002B ++ [RALT NCAPS K_LBRKT] > U+005B ++ [RALT SHIFT NCAPS K_LBRKT] > U+007B ++ [RALT CAPS K_LBRKT] > U+005B ++ [RALT SHIFT CAPS K_LBRKT] > U+007B ++ [RALT NCAPS K_RBRKT] > U+005D ++ [RALT SHIFT NCAPS K_RBRKT] > U+007D ++ [RALT CAPS K_RBRKT] > U+005D ++ [RALT SHIFT CAPS K_RBRKT] > U+007D ++ [RALT NCAPS K_SLASH] > U+005C ++ [RALT SHIFT NCAPS K_SLASH] > U+007C ++ [RALT CAPS K_SLASH] > U+005C ++ [RALT SHIFT CAPS K_SLASH] > U+007C ++ [RALT NCAPS K_SPACE] > U+00A0 ++ [RALT SHIFT NCAPS K_SPACE] > U+00A0 ++ [RALT CAPS K_SPACE] > U+00A0 ++ [RALT SHIFT CAPS K_SPACE] > U+00A0 +platform('macos') + [LALT NCAPS K_1] > U+0457 +platform('macos') + [LALT SHIFT NCAPS K_1] > U+0407 +platform('macos') + [LALT CAPS K_1] > U+0407 +platform('macos') + [LALT SHIFT CAPS K_1] > U+0457 +platform('macos') + [LALT NCAPS K_2] > U+0451 +platform('macos') + [LALT SHIFT NCAPS K_2] > U+0401 +platform('macos') + [LALT CAPS K_2] > U+0401 +platform('macos') + [LALT SHIFT CAPS K_2] > U+0451 +platform('macos') + [LALT NCAPS K_3] > U+0454 +platform('macos') + [LALT SHIFT NCAPS K_3] > U+0404 +platform('macos') + [LALT CAPS K_3] > U+0404 +platform('macos') + [LALT SHIFT CAPS K_3] > U+0454 +platform('macos') + [LALT NCAPS K_4] > U+0491 +platform('macos') + [LALT SHIFT NCAPS K_4] > U+0490 +platform('macos') + [LALT CAPS K_4] > U+0490 +platform('macos') + [LALT SHIFT CAPS K_4] > U+0491 +platform('macos') + [LALT NCAPS K_W] > U+0449 +platform('macos') + [LALT SHIFT NCAPS K_W] > U+0429 +platform('macos') + [LALT CAPS K_W] > U+0429 +platform('macos') + [LALT SHIFT CAPS K_W] > U+0449 +platform('macos') + [LALT NCAPS K_E] > U+0451 +platform('macos') + [LALT SHIFT NCAPS K_E] > U+0401 +platform('macos') + [LALT CAPS K_E] > U+0401 +platform('macos') + [LALT SHIFT CAPS K_E] > U+0451 +platform('macos') + [LALT NCAPS K_I] > U+0456 +platform('macos') + [LALT SHIFT NCAPS K_I] > U+0406 +platform('macos') + [LALT CAPS K_I] > U+0406 +platform('macos') + [LALT SHIFT CAPS K_I] > U+0456 +platform('macos') + [LALT NCAPS K_H] > U+0491 +platform('macos') + [LALT SHIFT NCAPS K_H] > U+0490 +platform('macos') + [LALT CAPS K_H] > U+0490 +platform('macos') + [LALT SHIFT CAPS K_H] > U+0491 +platform('macos') + [LALT NCAPS K_A] > U+0457 +platform('macos') + [LALT SHIFT NCAPS K_A] > U+0407 +platform('macos') + [LALT CAPS K_A] > U+0407 +platform('macos') + [LALT SHIFT CAPS K_A] > U+0457 +platform('macos') + [LALT NCAPS K_BKSLASH] > U+0454 +platform('macos') + [LALT SHIFT NCAPS K_BKSLASH] > U+0404 +platform('macos') + [LALT CAPS K_BKSLASH] > U+0404 +platform('macos') + [LALT SHIFT CAPS K_BKSLASH] > U+0454 +platform('macos') + [LALT NCAPS K_BKQUOTE] > U+0060 +platform('macos') + [LALT SHIFT NCAPS K_BKQUOTE] > U+007E +platform('macos') + [LALT CAPS K_BKQUOTE] > U+0060 +platform('macos') + [LALT SHIFT CAPS K_BKQUOTE] > U+007E +platform('macos') + [LALT NCAPS K_HYPHEN] > U+002D +platform('macos') + [LALT SHIFT NCAPS K_HYPHEN] > U+005F +platform('macos') + [LALT CAPS K_HYPHEN] > U+002D +platform('macos') + [LALT SHIFT CAPS K_HYPHEN] > U+005F +platform('macos') + [LALT NCAPS K_EQUAL] > U+003D +platform('macos') + [LALT SHIFT NCAPS K_EQUAL] > U+002B +platform('macos') + [LALT CAPS K_EQUAL] > U+003D +platform('macos') + [LALT SHIFT CAPS K_EQUAL] > U+002B +platform('macos') + [LALT NCAPS K_LBRKT] > U+005B +platform('macos') + [LALT SHIFT NCAPS K_LBRKT] > U+007B +platform('macos') + [LALT CAPS K_LBRKT] > U+005B +platform('macos') + [LALT SHIFT CAPS K_LBRKT] > U+007B +platform('macos') + [LALT NCAPS K_RBRKT] > U+005D +platform('macos') + [LALT SHIFT NCAPS K_RBRKT] > U+007D +platform('macos') + [LALT CAPS K_RBRKT] > U+005D +platform('macos') + [LALT SHIFT CAPS K_RBRKT] > U+007D +platform('macos') + [LALT NCAPS K_SLASH] > U+005C +platform('macos') + [LALT SHIFT NCAPS K_SLASH] > U+007C +platform('macos') + [LALT CAPS K_SLASH] > U+005C +platform('macos') + [LALT SHIFT CAPS K_SLASH] > U+007C +platform('macos') + [LALT NCAPS K_SPACE] > U+00A0 +platform('macos') + [LALT SHIFT NCAPS K_SPACE] > U+00A0 +platform('macos') + [LALT CAPS K_SPACE] > U+00A0 +platform('macos') + [LALT SHIFT CAPS K_SPACE] > U+00A0 ++ [U_0449] > U+0449 ++ [SHIFT U_0449] > U+0449 ++ [U_0454] > U+0454 ++ [SHIFT U_0454] > U+0454 ++ [U_0451] > U+0451 ++ [SHIFT U_0451] > U+0451 ++ [U_0456] > U+0456 ++ [SHIFT U_0456] > U+0456 ++ [U_0457] > U+0457 ++ [SHIFT U_0457] > U+0457 ++ [U_0491] > U+0491 ++ [SHIFT U_0491] > U+0491 ++ [U_002C] > U+002C ++ [SHIFT U_002C] > U+002C ++ [U_002E] > U+002E ++ [SHIFT U_002E] > U+002E ++ [U_0429] > U+0429 ++ [SHIFT U_0429] > U+0429 ++ [U_0404] > U+0404 ++ [SHIFT U_0404] > U+0404 ++ [U_0401] > U+0401 ++ [SHIFT U_0401] > U+0401 ++ [U_0406] > U+0406 ++ [SHIFT U_0406] > U+0406 ++ [U_0407] > U+0407 ++ [SHIFT U_0407] > U+0407 ++ [U_0490] > U+0490 ++ [SHIFT U_0490] > U+0490 ++ [U_0031] > U+0031 ++ [SHIFT U_0031] > U+0031 ++ [U_0032] > U+0032 ++ [SHIFT U_0032] > U+0032 ++ [U_0033] > U+0033 ++ [SHIFT U_0033] > U+0033 ++ [U_0034] > U+0034 ++ [SHIFT U_0034] > U+0034 ++ [U_0035] > U+0035 ++ [SHIFT U_0035] > U+0035 ++ [U_0036] > U+0036 ++ [SHIFT U_0036] > U+0036 ++ [U_0037] > U+0037 ++ [SHIFT U_0037] > U+0037 ++ [U_0038] > U+0038 ++ [SHIFT U_0038] > U+0038 ++ [U_0039] > U+0039 ++ [SHIFT U_0039] > U+0039 ++ [U_0030] > U+0030 ++ [SHIFT U_0030] > U+0030 ++ [U_0040] > U+0040 ++ [SHIFT U_0040] > U+0040 ++ [U_0023] > U+0023 ++ [SHIFT U_0023] > U+0023 ++ [U_0024] > U+0024 ++ [SHIFT U_0024] > U+0024 ++ [U_20AC] > U+20AC ++ [SHIFT U_20AC] > U+20AC ++ [U_00A3] > U+00A3 ++ [SHIFT U_00A3] > U+00A3 ++ [U_00A5] > U+00A5 ++ [SHIFT U_00A5] > U+00A5 ++ [U_003C] > U+003C ++ [SHIFT U_003C] > U+003C ++ [U_00AB] > U+00AB ++ [SHIFT U_00AB] > U+00AB ++ [U_003E] > U+003E ++ [SHIFT U_003E] > U+003E ++ [U_00BB] > U+00BB ++ [SHIFT U_00BB] > U+00BB ++ [U_002B] > U+002B ++ [SHIFT U_002B] > U+002B ++ [U_0026] > U+0026 ++ [SHIFT U_0026] > U+0026 ++ [U_002D] > U+002D ++ [SHIFT U_002D] > U+002D ++ [U_005F] > U+005F ++ [SHIFT U_005F] > U+005F ++ [U_2013] > U+2013 ++ [SHIFT U_2013] > U+2013 ++ [U_2014] > U+2014 ++ [SHIFT U_2014] > U+2014 ++ [U_002A] > U+002A ++ [SHIFT U_002A] > U+002A ++ [U_005E] > U+005E ++ [SHIFT U_005E] > U+005E ++ [U_002F] > U+002F ++ [SHIFT U_002F] > U+002F ++ [U_0025] > U+0025 ++ [SHIFT U_0025] > U+0025 ++ [U_005C] > U+005C ++ [SHIFT U_005C] > U+005C ++ [U_003D] > U+003D ++ [SHIFT U_003D] > U+003D ++ [U_2260] > U+2260 ++ [SHIFT U_2260] > U+2260 ++ [U_0028] > U+0028 ++ [SHIFT U_0028] > U+0028 ++ [U_005B] > U+005B ++ [SHIFT U_005B] > U+005B ++ [U_007B] > U+007B ++ [SHIFT U_007B] > U+007B ++ [U_0029] > U+0029 ++ [SHIFT U_0029] > U+0029 ++ [U_005D] > U+005D ++ [SHIFT U_005D] > U+005D ++ [U_007D] > U+007D ++ [SHIFT U_007D] > U+007D ++ [U_0027] > U+0027 ++ [SHIFT U_0027] > U+0027 ++ [U_2019] > U+2019 ++ [SHIFT U_2019] > U+2019 ++ [U_02BC] > U+02BC ++ [SHIFT U_02BC] > U+02BC ++ [U_2018] > U+2018 ++ [SHIFT U_2018] > U+2018 ++ [U_0060] > U+0060 ++ [SHIFT U_0060] > U+0060 ++ [U_0022] > U+0022 ++ [SHIFT U_0022] > U+0022 ++ [U_201C] > U+201C ++ [SHIFT U_201C] > U+201C ++ [U_201D] > U+201D ++ [SHIFT U_201D] > U+201D ++ [U_201E] > U+201E ++ [SHIFT U_201E] > U+201E ++ [U_0021] > U+0021 ++ [SHIFT U_0021] > U+0021 ++ [U_00A1] > U+00A1 ++ [SHIFT U_00A1] > U+00A1 ++ [U_003F] > U+003F ++ [SHIFT U_003F] > U+003F ++ [U_00BF] > U+00BF ++ [SHIFT U_00BF] > U+00BF ++ [U_003B] > U+003B ++ [SHIFT U_003B] > U+003B ++ [U_003A] > U+003A ++ [SHIFT U_003A] > U+003A ++ [U_2026] > U+2026 ++ [SHIFT U_2026] > U+2026 ++ [U_00A2] > U+00A2 ++ [SHIFT U_00A2] > U+00A2 ++ [U_20B4] > U+20B4 ++ [SHIFT U_20B4] > U+20B4 ++ [U_20BD] > U+20BD ++ [SHIFT U_20BD] > U+20BD ++ [U_00A4] > U+00A4 ++ [SHIFT U_00A4] > U+00A4 ++ [U_20B9] > U+20B9 ++ [SHIFT U_20B9] > U+20B9 ++ [U_20BF] > U+20BF ++ [SHIFT U_20BF] > U+20BF ++ [U_007E] > U+007E ++ [SHIFT U_007E] > U+007E ++ [U_007C] > U+007C ++ [SHIFT U_007C] > U+007C ++ [U_2022] > U+2022 ++ [SHIFT U_2022] > U+2022 diff --git a/experimental/l/lemko_qwerty/source/lemko_qwerty.kps b/experimental/l/lemko_qwerty/source/lemko_qwerty.kps new file mode 100644 index 0000000000..840a734729 --- /dev/null +++ b/experimental/l/lemko_qwerty/source/lemko_qwerty.kps @@ -0,0 +1,47 @@ + + + + 18.0.253.0 + 7.0 + + + readme.htm + ..\LICENSE.md + welcome.htm + + + + Rusyn (Lemko, Poland) + © lemko.tools + lemko.tools + A phonetic Cyrillic keyboard for Lemko. + + + + ..\build\lemko_qwerty.kmx + + + ..\build\lemko_qwerty.js + + + ..\build\lemko_qwerty.kvk + + + welcome.htm + + + readme.htm + + + ..\LICENSE.md + + + + + lemko_qwerty + + Lemko + + + + diff --git a/experimental/l/lemko_qwerty/source/lemko_qwerty.kvks b/experimental/l/lemko_qwerty/source/lemko_qwerty.kvks new file mode 100644 index 0000000000..9d37d8a74d --- /dev/null +++ b/experimental/l/lemko_qwerty/source/lemko_qwerty.kvks @@ -0,0 +1,7 @@ + +
10.0lemko_qwerty
+щ1234567890ьъяшертыуиопюжєасдфгчйкл;'зхцвбнм,./> +Щ!@#$%^&*()ЬЪЯШЕРТЫУИОПЮЖЄАСДФГЧЙКЛ:"ЗХЦВБНМ<>?< +їёєґщёіґїє`-=[]\  +ЇЁЄҐЩЁІҐЇЄ~_+{}|  +
diff --git a/experimental/l/lemko_qwerty/source/readme.htm b/experimental/l/lemko_qwerty/source/readme.htm new file mode 100644 index 0000000000..7ada4064f7 --- /dev/null +++ b/experimental/l/lemko_qwerty/source/readme.htm @@ -0,0 +1,17 @@ + + + + + Rusyn (Lemko, Poland) + + + +

Rusyn (Lemko, Poland)

+

Fonetyczny układ cyrylicy qwerty. Windows i macOS: klawiatura. Android i iOS: klawiatura dotykowa; zainstaluj osobno słownik.

+ + + diff --git a/experimental/l/lemko_qwerty/source/welcome.htm b/experimental/l/lemko_qwerty/source/welcome.htm new file mode 100644 index 0000000000..43692b0b02 --- /dev/null +++ b/experimental/l/lemko_qwerty/source/welcome.htm @@ -0,0 +1,17 @@ + + + + + Start Using Rusyn (Lemko, Poland) + + + +

Start Using Rusyn (Lemko, Poland)

+

Fonetyczny układ cyrylicy qwerty. Windows i macOS: klawiatura. Android i iOS: klawiatura dotykowa; zainstaluj osobno słownik.

+ + +