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 @@
+
+
+щ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.
+
+
+