summaryrefslogtreecommitdiffstats
path: root/data/osk-layouts
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 15:07:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 15:07:22 +0000
commitf9d480cfe50ca1d7a0f0b5a2b8bb9932962bfbe7 (patch)
treece9e8db2d4e8799780fa72ae8f1953039373e2ee /data/osk-layouts
parentInitial commit. (diff)
downloadgnome-shell-f9d480cfe50ca1d7a0f0b5a2b8bb9932962bfbe7.tar.xz
gnome-shell-f9d480cfe50ca1d7a0f0b5a2b8bb9932962bfbe7.zip
Adding upstream version 3.38.6.upstream/3.38.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--data/osk-layouts/am.json599
-rw-r--r--data/osk-layouts/ara.json488
-rw-r--r--data/osk-layouts/be.json584
-rw-r--r--data/osk-layouts/bg.json533
-rw-r--r--data/osk-layouts/by.json541
-rw-r--r--data/osk-layouts/ca.json599
-rw-r--r--data/osk-layouts/cz.json613
-rw-r--r--data/osk-layouts/de.json570
-rw-r--r--data/osk-layouts/dk.json590
-rw-r--r--data/osk-layouts/ee.json666
-rw-r--r--data/osk-layouts/epo.json711
-rw-r--r--data/osk-layouts/es+cat.json602
-rw-r--r--data/osk-layouts/es.json604
-rw-r--r--data/osk-layouts/fi.json570
-rw-r--r--data/osk-layouts/fr.json614
-rw-r--r--data/osk-layouts/ge.json409
-rw-r--r--data/osk-layouts/gr.json532
-rw-r--r--data/osk-layouts/hr.json531
-rw-r--r--data/osk-layouts/hu.json579
-rw-r--r--data/osk-layouts/id.json507
-rw-r--r--data/osk-layouts/il.json419
-rw-r--r--data/osk-layouts/in+bolnagri.json439
-rw-r--r--data/osk-layouts/in+mal.json559
-rw-r--r--data/osk-layouts/ir.json495
-rw-r--r--data/osk-layouts/is.json583
-rw-r--r--data/osk-layouts/it.json580
-rw-r--r--data/osk-layouts/ke.json577
-rw-r--r--data/osk-layouts/kg.json547
-rw-r--r--data/osk-layouts/kh.json481
-rw-r--r--data/osk-layouts/la.json472
-rw-r--r--data/osk-layouts/latam.json603
-rw-r--r--data/osk-layouts/lt.json647
-rw-r--r--data/osk-layouts/lv.json645
-rw-r--r--data/osk-layouts/mk.json541
-rw-r--r--data/osk-layouts/mn.json547
-rw-r--r--data/osk-layouts/my.json507
-rw-r--r--data/osk-layouts/nl.json584
-rw-r--r--data/osk-layouts/no.json590
-rw-r--r--data/osk-layouts/ph.json507
-rw-r--r--data/osk-layouts/pl.json579
-rw-r--r--data/osk-layouts/pt.json584
-rw-r--r--data/osk-layouts/ro.json547
-rw-r--r--data/osk-layouts/rs.json541
-rw-r--r--data/osk-layouts/ru.json541
-rw-r--r--data/osk-layouts/se.json624
-rw-r--r--data/osk-layouts/si.json518
-rw-r--r--data/osk-layouts/sk.json648
-rw-r--r--data/osk-layouts/th.json472
-rw-r--r--data/osk-layouts/tr.json566
-rw-r--r--data/osk-layouts/ua.json545
-rw-r--r--data/osk-layouts/uk.json576
-rw-r--r--data/osk-layouts/us.json575
-rw-r--r--data/osk-layouts/vn.json643
-rw-r--r--data/osk-layouts/za.json589
54 files changed, 30313 insertions, 0 deletions
diff --git a/data/osk-layouts/am.json b/data/osk-layouts/am.json
new file mode 100644
index 0000000..23c86ba
--- /dev/null
+++ b/data/osk-layouts/am.json
@@ -0,0 +1,599 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "է"
+ ],
+ [
+ "թ"
+ ],
+ [
+ "փ"
+ ],
+ [
+ "ձ"
+ ],
+ [
+ "ջ"
+ ],
+ [
+ "ր"
+ ],
+ [
+ "չ"
+ ],
+ [
+ "ճ"
+ ],
+ [
+ "ժ"
+ ],
+ [
+ "ծ"
+ ]
+ ],
+ [
+ [
+ "ք"
+ ],
+ [
+ "ո"
+ ],
+ [
+ "ե",
+ "և"
+ ],
+ [
+ "ռ"
+ ],
+ [
+ "տ"
+ ],
+ [
+ "ը"
+ ],
+ [
+ "ւ"
+ ],
+ [
+ "ի"
+ ],
+ [
+ "օ"
+ ],
+ [
+ "պ"
+ ]
+ ],
+ [
+ [
+ "ա"
+ ],
+ [
+ "ս"
+ ],
+ [
+ "դ"
+ ],
+ [
+ "ֆ"
+ ],
+ [
+ "գ"
+ ],
+ [
+ "հ"
+ ],
+ [
+ "յ"
+ ],
+ [
+ "կ"
+ ],
+ [
+ "լ"
+ ],
+ [
+ "խ"
+ ]
+ ],
+ [
+ [
+ "զ"
+ ],
+ [
+ "ղ"
+ ],
+ [
+ "ց"
+ ],
+ [
+ "վ"
+ ],
+ [
+ "բ"
+ ],
+ [
+ "ն"
+ ],
+ [
+ "մ"
+ ],
+ [
+ "շ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ "։"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Է"
+ ],
+ [
+ "Թ"
+ ],
+ [
+ "Փ"
+ ],
+ [
+ "Ձ"
+ ],
+ [
+ "Ջ"
+ ],
+ [
+ "Ր"
+ ],
+ [
+ "Չ"
+ ],
+ [
+ "Ճ"
+ ],
+ [
+ "Ժ"
+ ],
+ [
+ "Ծ"
+ ]
+ ],
+ [
+ [
+ "Ք"
+ ],
+ [
+ "Ո"
+ ],
+ [
+ "Ե",
+ "ԵՒ"
+ ],
+ [
+ "Ռ"
+ ],
+ [
+ "Տ"
+ ],
+ [
+ "Ը"
+ ],
+ [
+ "Ւ"
+ ],
+ [
+ "Ի"
+ ],
+ [
+ "Օ"
+ ],
+ [
+ "Պ"
+ ]
+ ],
+ [
+ [
+ "Ա"
+ ],
+ [
+ "Ս"
+ ],
+ [
+ "Դ"
+ ],
+ [
+ "Ֆ"
+ ],
+ [
+ "Գ"
+ ],
+ [
+ "Հ"
+ ],
+ [
+ "Յ"
+ ],
+ [
+ "Կ"
+ ],
+ [
+ "Լ"
+ ],
+ [
+ "Խ"
+ ]
+ ],
+ [
+ [
+ "Զ"
+ ],
+ [
+ "Ղ"
+ ],
+ [
+ "Ց"
+ ],
+ [
+ "Վ"
+ ],
+ [
+ "Բ"
+ ],
+ [
+ "Ն"
+ ],
+ [
+ "Մ"
+ ],
+ [
+ "Շ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ "։"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "՜",
+ "¡"
+ ],
+ [
+ "?",
+ "՞",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ "՝"
+ ],
+ [
+ "։",
+ "!",
+ "?",
+ ",",
+ ".",
+ "֊",
+ "՜",
+ "՝",
+ "՞",
+ ":",
+ ";",
+ "@",
+ "ՙ",
+ "՚",
+ "՛",
+ "՟"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ "՝"
+ ],
+ [
+ "։",
+ "!",
+ "?",
+ ",",
+ ".",
+ "֊",
+ "՜",
+ "՝",
+ "՞",
+ ":",
+ ";",
+ "@",
+ "ՙ",
+ "՚",
+ "՛",
+ "՟"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "hy",
+ "name": "Armenian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/ara.json b/data/osk-layouts/ara.json
new file mode 100644
index 0000000..0a4900c
--- /dev/null
+++ b/data/osk-layouts/ara.json
@@ -0,0 +1,488 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ض"
+ ],
+ [
+ "ص"
+ ],
+ [
+ "ث"
+ ],
+ [
+ "ق",
+ "ڨ"
+ ],
+ [
+ "ف",
+ "ڤ",
+ "ڢ",
+ "ڥ"
+ ],
+ [
+ "غ"
+ ],
+ [
+ "ع"
+ ],
+ [
+ "ه",
+ "ه‍"
+ ],
+ [
+ "خ"
+ ],
+ [
+ "ح"
+ ],
+ [
+ "ج",
+ "چ"
+ ]
+ ],
+ [
+ [
+ "ش",
+ "ڜ"
+ ],
+ [
+ "س"
+ ],
+ [
+ "ي",
+ "ئ",
+ "ى"
+ ],
+ [
+ "ب",
+ "پ"
+ ],
+ [
+ "ل",
+ "لا",
+ "لأ",
+ "لإ",
+ "لآ"
+ ],
+ [
+ "ا",
+ "آ",
+ "ء",
+ "أ",
+ "إ",
+ "ٱ"
+ ],
+ [
+ "ت"
+ ],
+ [
+ "ن"
+ ],
+ [
+ "م"
+ ],
+ [
+ "ك",
+ "گ",
+ "ک"
+ ],
+ [
+ "ط"
+ ]
+ ],
+ [
+ [
+ "ذ"
+ ],
+ [
+ "ء"
+ ],
+ [
+ "ؤ"
+ ],
+ [
+ "ر"
+ ],
+ [
+ "ى",
+ "ئ"
+ ],
+ [
+ "ة"
+ ],
+ [
+ "و"
+ ],
+ [
+ "ز",
+ "ژ"
+ ],
+ [
+ "ظ"
+ ],
+ [
+ "د"
+ ]
+ ],
+ [
+ [
+ "،"
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "\"",
+ "'",
+ "#",
+ "-",
+ ":",
+ "!",
+ "،",
+ "؟",
+ "@",
+ "&",
+ "%",
+ "+",
+ "؛",
+ "/",
+ ")",
+ "("
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "١",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "٢",
+ "²",
+ "⅔"
+ ],
+ [
+ "٣",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "٤",
+ "⁴"
+ ],
+ [
+ "٥",
+ "⅝"
+ ],
+ [
+ "٦"
+ ],
+ [
+ "٧",
+ "⅞"
+ ],
+ [
+ "٨"
+ ],
+ [
+ "٩"
+ ],
+ [
+ "٠",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "٪",
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "﴿",
+ ">",
+ "}",
+ "]"
+ ],
+ [
+ ")",
+ "﴾",
+ "<",
+ "{",
+ "["
+ ]
+ ],
+ [
+ [
+ "*",
+ "★",
+ "٭"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ "؛",
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "؟",
+ "?"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ "،",
+ "؟",
+ "؛",
+ "!",
+ ":",
+ "-",
+ "/",
+ "'",
+ "\""
+ ],
+ [
+ ".",
+ "ٕ",
+ "ٔ",
+ "ْ",
+ "ٍ",
+ "ٌ",
+ "ً",
+ "ّ",
+ "ٖ",
+ "ٰ",
+ "ٓ",
+ "ِ",
+ "ُ",
+ "َ",
+ "ـ"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ ">",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ " "
+ ],
+ [
+ "،",
+ "؟",
+ "؛",
+ "!",
+ ":",
+ "-",
+ "/",
+ "'",
+ "\""
+ ],
+ [
+ ".",
+ "ٕ",
+ "ٔ",
+ "ْ",
+ "ٍ",
+ "ٌ",
+ "ً",
+ "ّ",
+ "ٖ",
+ "ٰ",
+ "ٓ",
+ "ِ",
+ "ُ",
+ "َ",
+ "ـ"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ar",
+ "name": "Arabic"
+} \ No newline at end of file
diff --git a/data/osk-layouts/be.json b/data/osk-layouts/be.json
new file mode 100644
index 0000000..2427916
--- /dev/null
+++ b/data/osk-layouts/be.json
@@ -0,0 +1,584 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ë",
+ "ê",
+ "è",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "ij"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "ī",
+ "ij"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ä",
+ "â",
+ "à",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ë",
+ "Ê",
+ "È",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "IJ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Ï",
+ "Ì",
+ "Î",
+ "Į",
+ "Ī",
+ "IJ"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "Ä",
+ "Â",
+ "À",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "nl-BE",
+ "name": "Dutch (Belgium)"
+} \ No newline at end of file
diff --git a/data/osk-layouts/bg.json b/data/osk-layouts/bg.json
new file mode 100644
index 0000000..5c8528f
--- /dev/null
+++ b/data/osk-layouts/bg.json
@@ -0,0 +1,533 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "я"
+ ],
+ [
+ "в"
+ ],
+ [
+ "е"
+ ],
+ [
+ "р"
+ ],
+ [
+ "т"
+ ],
+ [
+ "ъ"
+ ],
+ [
+ "у"
+ ],
+ [
+ "и",
+ "ѝ"
+ ],
+ [
+ "о"
+ ],
+ [
+ "п"
+ ],
+ [
+ "ч"
+ ]
+ ],
+ [
+ [
+ "а"
+ ],
+ [
+ "с"
+ ],
+ [
+ "д"
+ ],
+ [
+ "ф"
+ ],
+ [
+ "г"
+ ],
+ [
+ "х"
+ ],
+ [
+ "й"
+ ],
+ [
+ "к"
+ ],
+ [
+ "л"
+ ],
+ [
+ "ш"
+ ],
+ [
+ "щ"
+ ]
+ ],
+ [
+ [
+ "з"
+ ],
+ [
+ "ь"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "б"
+ ],
+ [
+ "н"
+ ],
+ [
+ "м"
+ ],
+ [
+ "ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Я"
+ ],
+ [
+ "В"
+ ],
+ [
+ "Е"
+ ],
+ [
+ "Р"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ъ"
+ ],
+ [
+ "У"
+ ],
+ [
+ "И",
+ "Ѝ"
+ ],
+ [
+ "О"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Ч"
+ ]
+ ],
+ [
+ [
+ "А"
+ ],
+ [
+ "С"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ф"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Х"
+ ],
+ [
+ "Й"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Ш"
+ ],
+ [
+ "Щ"
+ ]
+ ],
+ [
+ [
+ "З"
+ ],
+ [
+ "Ь"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Н"
+ ],
+ [
+ "М"
+ ],
+ [
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "bg",
+ "name": "Bulgarian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/by.json b/data/osk-layouts/by.json
new file mode 100644
index 0000000..1f98cd2
--- /dev/null
+++ b/data/osk-layouts/by.json
@@ -0,0 +1,541 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "й"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "у"
+ ],
+ [
+ "к"
+ ],
+ [
+ "е",
+ "ё"
+ ],
+ [
+ "н"
+ ],
+ [
+ "г"
+ ],
+ [
+ "ш"
+ ],
+ [
+ "ў"
+ ],
+ [
+ "з"
+ ],
+ [
+ "х"
+ ]
+ ],
+ [
+ [
+ "ф"
+ ],
+ [
+ "ы"
+ ],
+ [
+ "в"
+ ],
+ [
+ "а"
+ ],
+ [
+ "п"
+ ],
+ [
+ "р"
+ ],
+ [
+ "о"
+ ],
+ [
+ "л"
+ ],
+ [
+ "д"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "э"
+ ]
+ ],
+ [
+ [
+ "я"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "с"
+ ],
+ [
+ "м"
+ ],
+ [
+ "і"
+ ],
+ [
+ "т"
+ ],
+ [
+ "ь",
+ "ъ"
+ ],
+ [
+ "б"
+ ],
+ [
+ "ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Й"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "У"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Е",
+ "Ё"
+ ],
+ [
+ "Н"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Ш"
+ ],
+ [
+ "Ў"
+ ],
+ [
+ "З"
+ ],
+ [
+ "Х"
+ ]
+ ],
+ [
+ [
+ "Ф"
+ ],
+ [
+ "Ы"
+ ],
+ [
+ "В"
+ ],
+ [
+ "А"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Р"
+ ],
+ [
+ "О"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Э"
+ ]
+ ],
+ [
+ [
+ "Я"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "С"
+ ],
+ [
+ "М"
+ ],
+ [
+ "І"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ь",
+ "Ъ"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "be",
+ "name": "Belarusian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/ca.json b/data/osk-layouts/ca.json
new file mode 100644
index 0000000..2b2bedc
--- /dev/null
+++ b/data/osk-layouts/ca.json
@@ -0,0 +1,599 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "%",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "%",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ù",
+ "û",
+ "%",
+ "ü",
+ "ú",
+ "ū"
+ ],
+ [
+ "i",
+ "î",
+ "%",
+ "ï",
+ "ì",
+ "í",
+ "į",
+ "ī"
+ ],
+ [
+ "o",
+ "ô",
+ "œ",
+ "%",
+ "ö",
+ "ò",
+ "ó",
+ "õ",
+ "ø",
+ "ō",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "à",
+ "â",
+ "%",
+ "æ",
+ "á",
+ "ä",
+ "ã",
+ "å",
+ "ā",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "%",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "%",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ù",
+ "Û",
+ "%",
+ "Ü",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "I",
+ "Î",
+ "%",
+ "Ï",
+ "Ì",
+ "Í",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ô",
+ "Œ",
+ "%",
+ "Ö",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Ø",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Â",
+ "%",
+ "Æ",
+ "Á",
+ "Ä",
+ "Ã",
+ "Å",
+ "Ā",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "fr-CA",
+ "name": "French Canada"
+} \ No newline at end of file
diff --git a/data/osk-layouts/cz.json b/data/osk-layouts/cz.json
new file mode 100644
index 0000000..9bad074
--- /dev/null
+++ b/data/osk-layouts/cz.json
@@ -0,0 +1,613 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ě",
+ "è",
+ "ê",
+ "ë",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r",
+ "ř"
+ ],
+ [
+ "t",
+ "ť"
+ ],
+ [
+ "z",
+ "ž",
+ "ź",
+ "ż"
+ ],
+ [
+ "u",
+ "ú",
+ "ů",
+ "û",
+ "ü",
+ "ù",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "î",
+ "ï",
+ "ì",
+ "į",
+ "ī"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "à",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ],
+ [
+ "s",
+ "š",
+ "ß",
+ "ś"
+ ],
+ [
+ "d",
+ "ď"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "č",
+ "ç",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ň",
+ "ñ",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ě",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R",
+ "Ř"
+ ],
+ [
+ "T",
+ "Ť"
+ ],
+ [
+ "Z",
+ "Ž",
+ "Ź",
+ "Ż"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ů",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Î",
+ "Ï",
+ "Ì",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ],
+ [
+ "S",
+ "Š",
+ "SS",
+ "Ś"
+ ],
+ [
+ "D",
+ "Ď"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ň",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "cs",
+ "name": "Czech"
+} \ No newline at end of file
diff --git a/data/osk-layouts/de.json b/data/osk-layouts/de.json
new file mode 100644
index 0000000..751a856
--- /dev/null
+++ b/data/osk-layouts/de.json
@@ -0,0 +1,570 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ė"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "z"
+ ],
+ [
+ "u",
+ "ü",
+ "û",
+ "ù",
+ "ú",
+ "ū"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o",
+ "ö",
+ "ô",
+ "ò",
+ "ó",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "ä",
+ "â",
+ "à",
+ "á",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ],
+ [
+ "s",
+ "ß",
+ "ś",
+ "š"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "y"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ė"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Z"
+ ],
+ [
+ "U",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ä",
+ "Â",
+ "À",
+ "Á",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ],
+ [
+ "S",
+ "SS",
+ "Ś",
+ "Š"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Y"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "de",
+ "name": "German"
+} \ No newline at end of file
diff --git a/data/osk-layouts/dk.json b/data/osk-layouts/dk.json
new file mode 100644
index 0000000..80df9ae
--- /dev/null
+++ b/data/osk-layouts/dk.json
@@ -0,0 +1,590 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ë"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "ï"
+ ],
+ [
+ "o",
+ "ó",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ō"
+ ],
+ [
+ "p"
+ ],
+ [
+ "å"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ä",
+ "à",
+ "â",
+ "ã",
+ "ā"
+ ],
+ [
+ "s",
+ "ß",
+ "ś",
+ "š"
+ ],
+ [
+ "d",
+ "ð"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l",
+ "ł"
+ ],
+ [
+ "æ",
+ "ä"
+ ],
+ [
+ "ø",
+ "ö"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ë"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Ï"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ō"
+ ],
+ [
+ "P"
+ ],
+ [
+ "Å"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "Ä",
+ "À",
+ "Â",
+ "Ã",
+ "Ā"
+ ],
+ [
+ "S",
+ "SS",
+ "Ś",
+ "Š"
+ ],
+ [
+ "D",
+ "Ð"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L",
+ "Ł"
+ ],
+ [
+ "Æ",
+ "Ä"
+ ],
+ [
+ "Ø",
+ "Ö"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "da",
+ "name": "Danish"
+} \ No newline at end of file
diff --git a/data/osk-layouts/ee.json b/data/osk-layouts/ee.json
new file mode 100644
index 0000000..5fd2f11
--- /dev/null
+++ b/data/osk-layouts/ee.json
@@ -0,0 +1,666 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "ē",
+ "è",
+ "ė",
+ "é",
+ "ê",
+ "ë",
+ "ę",
+ "ě"
+ ],
+ [
+ "r",
+ "ŗ",
+ "ř",
+ "ŕ"
+ ],
+ [
+ "t",
+ "ţ",
+ "ť"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ü",
+ "ū",
+ "ų",
+ "ù",
+ "ú",
+ "û",
+ "ů",
+ "ű"
+ ],
+ [
+ "i",
+ "ī",
+ "ì",
+ "į",
+ "í",
+ "î",
+ "ï",
+ "ı"
+ ],
+ [
+ "o",
+ "ö",
+ "õ",
+ "ò",
+ "ó",
+ "ô",
+ "œ",
+ "ő",
+ "ø"
+ ],
+ [
+ "p"
+ ],
+ [
+ "ü"
+ ]
+ ],
+ [
+ [
+ "a",
+ "ä",
+ "ā",
+ "à",
+ "á",
+ "â",
+ "ã",
+ "å",
+ "æ",
+ "ą"
+ ],
+ [
+ "s",
+ "š",
+ "ß",
+ "ś",
+ "ş"
+ ],
+ [
+ "d",
+ "ď"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "ģ",
+ "ğ"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k",
+ "ķ"
+ ],
+ [
+ "l",
+ "ļ",
+ "ł",
+ "ĺ",
+ "ľ"
+ ],
+ [
+ "ö",
+ "õ"
+ ],
+ [
+ "ä"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "č",
+ "ç",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ņ",
+ "ñ",
+ "ń",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "Ē",
+ "È",
+ "Ė",
+ "É",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ě"
+ ],
+ [
+ "R",
+ "Ŗ",
+ "Ř",
+ "Ŕ"
+ ],
+ [
+ "T",
+ "Ţ",
+ "Ť"
+ ],
+ [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ü",
+ "Ū",
+ "Ų",
+ "Ù",
+ "Ú",
+ "Û",
+ "Ů",
+ "Ű"
+ ],
+ [
+ "I",
+ "Ī",
+ "Ì",
+ "Į",
+ "Í",
+ "Î",
+ "Ï",
+ "I"
+ ],
+ [
+ "O",
+ "Ö",
+ "Õ",
+ "Ò",
+ "Ó",
+ "Ô",
+ "Œ",
+ "Ő",
+ "Ø"
+ ],
+ [
+ "P"
+ ],
+ [
+ "Ü"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ä",
+ "Ā",
+ "À",
+ "Á",
+ "Â",
+ "Ã",
+ "Å",
+ "Æ",
+ "Ą"
+ ],
+ [
+ "S",
+ "Š",
+ "SS",
+ "Ś",
+ "Ş"
+ ],
+ [
+ "D",
+ "Ď"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Ģ",
+ "Ğ"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K",
+ "Ķ"
+ ],
+ [
+ "L",
+ "Ļ",
+ "Ł",
+ "Ĺ",
+ "Ľ"
+ ],
+ [
+ "Ö",
+ "Õ"
+ ],
+ [
+ "Ä"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž",
+ "Ż",
+ "Ź"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ņ",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "et",
+ "name": "Estonian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/epo.json b/data/osk-layouts/epo.json
new file mode 100644
index 0000000..71f9ef8
--- /dev/null
+++ b/data/osk-layouts/epo.json
@@ -0,0 +1,711 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ŝ",
+ "q"
+ ],
+ [
+ "ĝ",
+ "w",
+ "ŵ"
+ ],
+ [
+ "e",
+ "é",
+ "ě",
+ "è",
+ "ê",
+ "ë",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r",
+ "ř",
+ "ŕ",
+ "ŗ"
+ ],
+ [
+ "t",
+ "ť",
+ "ț",
+ "ţ",
+ "ŧ"
+ ],
+ [
+ "ŭ",
+ "y",
+ "ý",
+ "ŷ",
+ "ÿ",
+ "þ"
+ ],
+ [
+ "u",
+ "ú",
+ "ů",
+ "û",
+ "ü",
+ "ù",
+ "ū",
+ "ũ",
+ "ű",
+ "ų",
+ "µ"
+ ],
+ [
+ "i",
+ "í",
+ "î",
+ "ï",
+ "ĩ",
+ "ì",
+ "į",
+ "ī",
+ "ı",
+ "ij"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō",
+ "ő",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "à",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā",
+ "ă",
+ "ą",
+ "ª"
+ ],
+ [
+ "s",
+ "ß",
+ "š",
+ "ś",
+ "ș",
+ "ş"
+ ],
+ [
+ "d",
+ "ð",
+ "ď",
+ "đ"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "ğ",
+ "ġ",
+ "ģ"
+ ],
+ [
+ "h",
+ "ĥ",
+ "ħ"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k",
+ "ķ",
+ "ĸ"
+ ],
+ [
+ "l",
+ "ĺ",
+ "ļ",
+ "ľ",
+ "ŀ",
+ "ł"
+ ],
+ [
+ "ĵ"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ź",
+ "ż",
+ "ž"
+ ],
+ [
+ "ĉ",
+ "x"
+ ],
+ [
+ "c",
+ "ć",
+ "č",
+ "ç",
+ "ċ"
+ ],
+ [
+ "v",
+ "w",
+ "ŵ"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "ń",
+ "ņ",
+ "ň",
+ "ʼn",
+ "ŋ"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Ŝ",
+ "Q"
+ ],
+ [
+ "Ĝ",
+ "W",
+ "Ŵ"
+ ],
+ [
+ "E",
+ "É",
+ "Ě",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R",
+ "Ř",
+ "Ŕ",
+ "Ŗ"
+ ],
+ [
+ "T",
+ "Ť",
+ "Ț",
+ "Ţ",
+ "Ŧ"
+ ],
+ [
+ "Ŭ",
+ "Y",
+ "Ý",
+ "Ŷ",
+ "Ÿ",
+ "Þ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ů",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ū",
+ "Ũ",
+ "Ű",
+ "Ų",
+ "Μ"
+ ],
+ [
+ "I",
+ "Í",
+ "Î",
+ "Ï",
+ "Ĩ",
+ "Ì",
+ "Į",
+ "Ī",
+ "I",
+ "IJ"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō",
+ "Ő",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā",
+ "Ă",
+ "Ą",
+ "ª"
+ ],
+ [
+ "S",
+ "SS",
+ "Š",
+ "Ś",
+ "Ș",
+ "Ş"
+ ],
+ [
+ "D",
+ "Ð",
+ "Ď",
+ "Đ"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Ğ",
+ "Ġ",
+ "Ģ"
+ ],
+ [
+ "H",
+ "Ĥ",
+ "Ħ"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K",
+ "Ķ",
+ "ĸ"
+ ],
+ [
+ "L",
+ "Ĺ",
+ "Ļ",
+ "Ľ",
+ "Ŀ",
+ "Ł"
+ ],
+ [
+ "Ĵ"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ź",
+ "Ż",
+ "Ž"
+ ],
+ [
+ "Ĉ",
+ "X"
+ ],
+ [
+ "C",
+ "Ć",
+ "Č",
+ "Ç",
+ "Ċ"
+ ],
+ [
+ "V",
+ "W",
+ "Ŵ"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń",
+ "Ņ",
+ "Ň",
+ "ʼN",
+ "Ŋ"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "eo",
+ "name": "Esperanto"
+} \ No newline at end of file
diff --git a/data/osk-layouts/es+cat.json b/data/osk-layouts/es+cat.json
new file mode 100644
index 0000000..d0bd125
--- /dev/null
+++ b/data/osk-layouts/es+cat.json
@@ -0,0 +1,602 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ë",
+ "ê",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "ī"
+ ],
+ [
+ "o",
+ "ò",
+ "ó",
+ "ö",
+ "ô",
+ "õ",
+ "ø",
+ "œ",
+ "ō",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "à",
+ "á",
+ "ä",
+ "â",
+ "ã",
+ "å",
+ "ą",
+ "æ",
+ "ā",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l",
+ "l·l",
+ "ł"
+ ],
+ [
+ "ç"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "·",
+ "!",
+ ",",
+ "?",
+ ":",
+ ";",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ë",
+ "Ê",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Ï",
+ "Ì",
+ "Î",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ò",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Õ",
+ "Ø",
+ "Œ",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Á",
+ "Ä",
+ "Â",
+ "Ã",
+ "Å",
+ "Ą",
+ "Æ",
+ "Ā",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L",
+ "L·L",
+ "Ł"
+ ],
+ [
+ "Ç"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "·",
+ "!",
+ ",",
+ "?",
+ ":",
+ ";",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "?",
+ "·"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "?",
+ "·"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ca",
+ "name": "Catalan"
+} \ No newline at end of file
diff --git a/data/osk-layouts/es.json b/data/osk-layouts/es.json
new file mode 100644
index 0000000..0bb5d72
--- /dev/null
+++ b/data/osk-layouts/es.json
@@ -0,0 +1,604 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ë",
+ "ê",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "ī"
+ ],
+ [
+ "o",
+ "ó",
+ "ò",
+ "ö",
+ "ô",
+ "õ",
+ "ø",
+ "œ",
+ "ō",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "à",
+ "ä",
+ "â",
+ "ã",
+ "å",
+ "ą",
+ "æ",
+ "ā",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ],
+ [
+ "ñ"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ë",
+ "Ê",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Ï",
+ "Ì",
+ "Î",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ò",
+ "Ö",
+ "Ô",
+ "Õ",
+ "Ø",
+ "Œ",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "À",
+ "Ä",
+ "Â",
+ "Ã",
+ "Å",
+ "Ą",
+ "Æ",
+ "Ā",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ],
+ [
+ "Ñ"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!",
+ "¡"
+ ],
+ [
+ ".",
+ "?",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!",
+ "¡"
+ ],
+ [
+ ".",
+ "?",
+ "¿"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "es",
+ "name": "Spanish"
+} \ No newline at end of file
diff --git a/data/osk-layouts/fi.json b/data/osk-layouts/fi.json
new file mode 100644
index 0000000..3ba5b56
--- /dev/null
+++ b/data/osk-layouts/fi.json
@@ -0,0 +1,570 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ü"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o",
+ "ø",
+ "ô",
+ "ò",
+ "ó",
+ "õ",
+ "œ",
+ "ō"
+ ],
+ [
+ "p"
+ ],
+ [
+ "å"
+ ]
+ ],
+ [
+ [
+ "a",
+ "æ",
+ "à",
+ "á",
+ "â",
+ "ã",
+ "ā"
+ ],
+ [
+ "s",
+ "š",
+ "ß",
+ "ś"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ],
+ [
+ "ö",
+ "ø"
+ ],
+ [
+ "ä",
+ "æ"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž",
+ "ź",
+ "ż"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ü"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O",
+ "Ø",
+ "Ô",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Œ",
+ "Ō"
+ ],
+ [
+ "P"
+ ],
+ [
+ "Å"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Æ",
+ "À",
+ "Á",
+ "Â",
+ "Ã",
+ "Ā"
+ ],
+ [
+ "S",
+ "Š",
+ "SS",
+ "Ś"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ],
+ [
+ "Ö",
+ "Ø"
+ ],
+ [
+ "Ä",
+ "Æ"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž",
+ "Ź",
+ "Ż"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "fi",
+ "name": "Finnish"
+} \ No newline at end of file
diff --git a/data/osk-layouts/fr.json b/data/osk-layouts/fr.json
new file mode 100644
index 0000000..dd572b1
--- /dev/null
+++ b/data/osk-layouts/fr.json
@@ -0,0 +1,614 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "a",
+ "à",
+ "â",
+ "%",
+ "æ",
+ "á",
+ "ä",
+ "ã",
+ "å",
+ "ā",
+ "ª"
+ ],
+ [
+ "z"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "%",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "%",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ù",
+ "û",
+ "%",
+ "ü",
+ "ú",
+ "ū"
+ ],
+ [
+ "i",
+ "î",
+ "%",
+ "ï",
+ "ì",
+ "í",
+ "į",
+ "ī"
+ ],
+ [
+ "o",
+ "ô",
+ "œ",
+ "%",
+ "ö",
+ "ò",
+ "ó",
+ "õ",
+ "ø",
+ "ō",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "q"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ "w"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "A",
+ "À",
+ "Â",
+ "%",
+ "Æ",
+ "Á",
+ "Ä",
+ "Ã",
+ "Å",
+ "Ā",
+ "ª"
+ ],
+ [
+ "Z"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "%",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "%",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ù",
+ "Û",
+ "%",
+ "Ü",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "I",
+ "Î",
+ "%",
+ "Ï",
+ "Ì",
+ "Í",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ô",
+ "Œ",
+ "%",
+ "Ö",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Ø",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "Q"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ "W"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "fr",
+ "name": "French"
+} \ No newline at end of file
diff --git a/data/osk-layouts/ge.json b/data/osk-layouts/ge.json
new file mode 100644
index 0000000..a94b3ba
--- /dev/null
+++ b/data/osk-layouts/ge.json
@@ -0,0 +1,409 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ქ"
+ ],
+ [
+ "წ"
+ ],
+ [
+ "ე",
+ "ჱ"
+ ],
+ [
+ "რ"
+ ],
+ [
+ "ტ"
+ ],
+ [
+ "ყ",
+ "ჸ"
+ ],
+ [
+ "უ"
+ ],
+ [
+ "ი",
+ "ჲ"
+ ],
+ [
+ "ო"
+ ],
+ [
+ "პ"
+ ]
+ ],
+ [
+ [
+ "ა",
+ "ჺ"
+ ],
+ [
+ "ს"
+ ],
+ [
+ "დ"
+ ],
+ [
+ "ფ",
+ "ჶ"
+ ],
+ [
+ "გ",
+ "ჹ"
+ ],
+ [
+ "ჰ",
+ "ჵ"
+ ],
+ [
+ "ჯ",
+ "ჷ"
+ ],
+ [
+ "კ"
+ ],
+ [
+ "ლ"
+ ]
+ ],
+ [
+ [
+ "ზ"
+ ],
+ [
+ "ხ",
+ "ჴ"
+ ],
+ [
+ "ც"
+ ],
+ [
+ "ვ",
+ "ჳ"
+ ],
+ [
+ "ბ"
+ ],
+ [
+ "ნ",
+ "ჼ"
+ ],
+ [
+ "მ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ka",
+ "name": "Georgian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/gr.json b/data/osk-layouts/gr.json
new file mode 100644
index 0000000..b2337e5
--- /dev/null
+++ b/data/osk-layouts/gr.json
@@ -0,0 +1,532 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ ";",
+ ":"
+ ],
+ [
+ "ς"
+ ],
+ [
+ "ε",
+ "έ"
+ ],
+ [
+ "ρ"
+ ],
+ [
+ "τ"
+ ],
+ [
+ "υ",
+ "ύ",
+ "ϋ",
+ "ΰ"
+ ],
+ [
+ "θ"
+ ],
+ [
+ "ι",
+ "ί",
+ "ϊ",
+ "ΐ"
+ ],
+ [
+ "ο",
+ "ό"
+ ],
+ [
+ "π"
+ ]
+ ],
+ [
+ [
+ "α",
+ "ά"
+ ],
+ [
+ "σ"
+ ],
+ [
+ "δ"
+ ],
+ [
+ "φ"
+ ],
+ [
+ "γ"
+ ],
+ [
+ "η",
+ "ή"
+ ],
+ [
+ "ξ"
+ ],
+ [
+ "κ"
+ ],
+ [
+ "λ"
+ ]
+ ],
+ [
+ [
+ "ζ"
+ ],
+ [
+ "χ"
+ ],
+ [
+ "ψ"
+ ],
+ [
+ "ω",
+ "ώ"
+ ],
+ [
+ "β"
+ ],
+ [
+ "ν"
+ ],
+ [
+ "μ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ ";",
+ ":"
+ ],
+ [
+ "Σ"
+ ],
+ [
+ "Ε",
+ "Έ"
+ ],
+ [
+ "Ρ"
+ ],
+ [
+ "Τ"
+ ],
+ [
+ "Υ",
+ "Ύ",
+ "Ϋ",
+ "Ϋ́"
+ ],
+ [
+ "Θ"
+ ],
+ [
+ "Ι",
+ "Ί",
+ "Ϊ",
+ "Ϊ́"
+ ],
+ [
+ "Ο",
+ "Ό"
+ ],
+ [
+ "Π"
+ ]
+ ],
+ [
+ [
+ "Α",
+ "Ά"
+ ],
+ [
+ "Σ"
+ ],
+ [
+ "Δ"
+ ],
+ [
+ "Φ"
+ ],
+ [
+ "Γ"
+ ],
+ [
+ "Η",
+ "Ή"
+ ],
+ [
+ "Ξ"
+ ],
+ [
+ "Κ"
+ ],
+ [
+ "Λ"
+ ]
+ ],
+ [
+ [
+ "Ζ"
+ ],
+ [
+ "Χ"
+ ],
+ [
+ "Ψ"
+ ],
+ [
+ "Ω",
+ "Ώ"
+ ],
+ [
+ "Β"
+ ],
+ [
+ "Ν"
+ ],
+ [
+ "Μ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "el",
+ "name": "Greek"
+} \ No newline at end of file
diff --git a/data/osk-layouts/hr.json b/data/osk-layouts/hr.json
new file mode 100644
index 0000000..ff0d1d0
--- /dev/null
+++ b/data/osk-layouts/hr.json
@@ -0,0 +1,531 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "z",
+ "ž",
+ "ź",
+ "ż"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a"
+ ],
+ [
+ "s",
+ "š",
+ "ś",
+ "ß"
+ ],
+ [
+ "d",
+ "đ"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "y"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "č",
+ "ć",
+ "ç"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Z",
+ "Ž",
+ "Ź",
+ "Ż"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A"
+ ],
+ [
+ "S",
+ "Š",
+ "Ś",
+ "SS"
+ ],
+ [
+ "D",
+ "Đ"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Y"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ć",
+ "Ç"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "hr",
+ "name": "Croatian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/hu.json b/data/osk-layouts/hu.json
new file mode 100644
index 0000000..9bcc532
--- /dev/null
+++ b/data/osk-layouts/hu.json
@@ -0,0 +1,579 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "z"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "ű",
+ "û",
+ "ù",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "î",
+ "ï",
+ "ì",
+ "į",
+ "ī"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ő",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "à",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "y"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Z"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Ű",
+ "Û",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Î",
+ "Ï",
+ "Ì",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ő",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Y"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "hu",
+ "name": "Hungarian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/id.json b/data/osk-layouts/id.json
new file mode 100644
index 0000000..2342962
--- /dev/null
+++ b/data/osk-layouts/id.json
@@ -0,0 +1,507 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "id",
+ "name": "Indonesian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/il.json b/data/osk-layouts/il.json
new file mode 100644
index 0000000..76dd588
--- /dev/null
+++ b/data/osk-layouts/il.json
@@ -0,0 +1,419 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "'",
+ "\""
+ ],
+ [
+ "-",
+ "_"
+ ],
+ [
+ "ק"
+ ],
+ [
+ "ר"
+ ],
+ [
+ "א"
+ ],
+ [
+ "ט"
+ ],
+ [
+ "ו"
+ ],
+ [
+ "ן"
+ ],
+ [
+ "ם"
+ ],
+ [
+ "פ"
+ ]
+ ],
+ [
+ [
+ "ש"
+ ],
+ [
+ "ד"
+ ],
+ [
+ "ג",
+ "ג׳"
+ ],
+ [
+ "כ"
+ ],
+ [
+ "ע"
+ ],
+ [
+ "י",
+ "ײַ"
+ ],
+ [
+ "ח",
+ "ח׳"
+ ],
+ [
+ "ל"
+ ],
+ [
+ "ך"
+ ],
+ [
+ "ף"
+ ]
+ ],
+ [
+ [
+ "ז",
+ "ז׳"
+ ],
+ [
+ "ס"
+ ],
+ [
+ "ב"
+ ],
+ [
+ "ה"
+ ],
+ [
+ "נ"
+ ],
+ [
+ "מ"
+ ],
+ [
+ "צ",
+ "צ׳"
+ ],
+ [
+ "ת",
+ "ת׳"
+ ],
+ [
+ "ץ",
+ "ץ׳"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "₪",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±",
+ "﬩"
+ ],
+ [
+ "(",
+ ">",
+ "}",
+ "]"
+ ],
+ [
+ ")",
+ "<",
+ "{",
+ "["
+ ]
+ ],
+ [
+ [
+ "*",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!"
+ ],
+ [
+ ".",
+ "?"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ ">",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!"
+ ],
+ [
+ ".",
+ "?"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "he",
+ "name": "Hebrew"
+} \ No newline at end of file
diff --git a/data/osk-layouts/in+bolnagri.json b/data/osk-layouts/in+bolnagri.json
new file mode 100644
index 0000000..36f10ac
--- /dev/null
+++ b/data/osk-layouts/in+bolnagri.json
@@ -0,0 +1,439 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "◌ौ"
+ ],
+ [
+ "◌ै"
+ ],
+ [
+ "◌ा"
+ ],
+ [
+ "◌ी"
+ ],
+ [
+ "◌ू"
+ ],
+ [
+ "ब",
+ "ब॒",
+ "%"
+ ],
+ [
+ "ह"
+ ],
+ [
+ "ग",
+ "ज्ञ",
+ "ग़",
+ "ग॒",
+ "%"
+ ],
+ [
+ "द"
+ ],
+ [
+ "ज",
+ "ज॒",
+ "ज्ञ",
+ "ज़",
+ "%"
+ ],
+ [
+ "ड",
+ "ड॒",
+ "ड़"
+ ]
+ ],
+ [
+ [
+ "◌ो"
+ ],
+ [
+ "◌े"
+ ],
+ [
+ "◌्"
+ ],
+ [
+ "◌ि"
+ ],
+ [
+ "◌ु"
+ ],
+ [
+ "प"
+ ],
+ [
+ "र",
+ "ऋ",
+ "ऱ",
+ "ॠ"
+ ],
+ [
+ "क",
+ "क़"
+ ],
+ [
+ "त",
+ "त्र"
+ ],
+ [
+ "च"
+ ],
+ [
+ "ट"
+ ]
+ ],
+ [
+ [
+ "◌ॉ"
+ ],
+ [
+ "◌ं"
+ ],
+ [
+ "म",
+ "ॐ"
+ ],
+ [
+ "न",
+ "ञ",
+ "ङ",
+ "ऩ"
+ ],
+ [
+ "व"
+ ],
+ [
+ "ल",
+ "ऌ",
+ "ॡ"
+ ],
+ [
+ "स"
+ ],
+ [
+ "य",
+ "य़"
+ ],
+ [
+ "◌़"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "१",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "२",
+ "²",
+ "⅔"
+ ],
+ [
+ "३",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "४",
+ "⁴"
+ ],
+ [
+ "५",
+ "⅝"
+ ],
+ [
+ "६"
+ ],
+ [
+ "७",
+ "⅞"
+ ],
+ [
+ "८"
+ ],
+ [
+ "९"
+ ],
+ [
+ "०",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "₹",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "hi",
+ "name": "Hindi"
+} \ No newline at end of file
diff --git a/data/osk-layouts/in+mal.json b/data/osk-layouts/in+mal.json
new file mode 100644
index 0000000..bc153be
--- /dev/null
+++ b/data/osk-layouts/in+mal.json
@@ -0,0 +1,559 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "െ"
+ ],
+ [
+ "ൌ"
+ ],
+ [
+ "ൈ"
+ ],
+ [
+ "ാ"
+ ],
+ [
+ "ീ"
+ ],
+ [
+ "ൂ"
+ ],
+ [
+ "ബ"
+ ],
+ [
+ "ഹ"
+ ],
+ [
+ "ഗ"
+ ],
+ [
+ "ദ"
+ ],
+ [
+ "ജ"
+ ],
+ [
+ "ഡ"
+ ],
+ [
+ "‍"
+ ]
+ ],
+ [
+ [
+ "ോ"
+ ],
+ [
+ "േ"
+ ],
+ [
+ "്"
+ ],
+ [
+ "ി"
+ ],
+ [
+ "ു"
+ ],
+ [
+ "പ"
+ ],
+ [
+ "ര"
+ ],
+ [
+ "ക"
+ ],
+ [
+ "ത"
+ ],
+ [
+ "ച"
+ ],
+ [
+ "ട"
+ ]
+ ],
+ [
+ [
+ "െ"
+ ],
+ [
+ "ം"
+ ],
+ [
+ "മ",
+ "ç"
+ ],
+ [
+ "ന"
+ ],
+ [
+ "വ"
+ ],
+ [
+ "ല",
+ "ñ"
+ ],
+ [
+ "സ"
+ ],
+ [
+ "ഷ"
+ ],
+ [
+ "യ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "ഔ"
+ ],
+ [
+ "ഐ"
+ ],
+ [
+ "ആ"
+ ],
+ [
+ "ഈ"
+ ],
+ [
+ "ഊ"
+ ],
+ [
+ "ഭ"
+ ],
+ [
+ "ങ"
+ ],
+ [
+ "ഘ"
+ ],
+ [
+ "ധ"
+ ],
+ [
+ "ഝ"
+ ],
+ [
+ "ഢ"
+ ],
+ [
+ "ഞ"
+ ]
+ ],
+ [
+ [
+ "ഓ"
+ ],
+ [
+ "ഏ"
+ ],
+ [
+ "അ"
+ ],
+ [
+ "ഇ"
+ ],
+ [
+ "ഉ"
+ ],
+ [
+ "ഫ"
+ ],
+ [
+ "റ"
+ ],
+ [
+ "ഖ"
+ ],
+ [
+ "ഥ"
+ ],
+ [
+ "ഛ"
+ ],
+ [
+ "ഠ"
+ ]
+ ],
+ [
+ [
+ "എ"
+ ],
+ [
+ "​"
+ ],
+ [
+ "ണ"
+ ],
+ [
+ "ന"
+ ],
+ [
+ "ഴ"
+ ],
+ [
+ "ള"
+ ],
+ [
+ "ശ"
+ ],
+ [
+ "ഷ"
+ ],
+ [
+ "യ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "൧",
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "൨",
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "൩",
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "൪",
+ "4",
+ "⁴"
+ ],
+ [
+ "൫",
+ "5",
+ "⅝"
+ ],
+ [
+ "൬",
+ "6"
+ ],
+ [
+ "൭",
+ "7",
+ "⅞"
+ ],
+ [
+ "൮",
+ "8"
+ ],
+ [
+ "൯",
+ "9"
+ ],
+ [
+ "൦",
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "₹",
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ml",
+ "name": "Malayalam"
+}
diff --git a/data/osk-layouts/ir.json b/data/osk-layouts/ir.json
new file mode 100644
index 0000000..a773b14
--- /dev/null
+++ b/data/osk-layouts/ir.json
@@ -0,0 +1,495 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ض"
+ ],
+ [
+ "ص"
+ ],
+ [
+ "ث"
+ ],
+ [
+ "ق",
+ "ڨ"
+ ],
+ [
+ "ف",
+ "ڤ",
+ "ڢ",
+ "ڥ"
+ ],
+ [
+ "غ"
+ ],
+ [
+ "ع"
+ ],
+ [
+ "ه",
+ "ه‍"
+ ],
+ [
+ "خ"
+ ],
+ [
+ "ح"
+ ],
+ [
+ "ج",
+ "چ"
+ ]
+ ],
+ [
+ [
+ "ش",
+ "ڜ"
+ ],
+ [
+ "س"
+ ],
+ [
+ "ي",
+ "ئ",
+ "ى"
+ ],
+ [
+ "ب",
+ "پ"
+ ],
+ [
+ "ل",
+ "لا",
+ "لأ",
+ "لإ",
+ "لآ"
+ ],
+ [
+ "ا",
+ "آ",
+ "ء",
+ "أ",
+ "إ",
+ "ٱ"
+ ],
+ [
+ "ت"
+ ],
+ [
+ "ن"
+ ],
+ [
+ "م"
+ ],
+ [
+ "ك",
+ "گ",
+ "ک"
+ ],
+ [
+ "ط"
+ ]
+ ],
+ [
+ [
+ "ذ"
+ ],
+ [
+ "ء"
+ ],
+ [
+ "ؤ"
+ ],
+ [
+ "ر"
+ ],
+ [
+ "ى",
+ "ئ"
+ ],
+ [
+ "ة"
+ ],
+ [
+ "و"
+ ],
+ [
+ "ز",
+ "ژ"
+ ],
+ [
+ "ظ"
+ ],
+ [
+ "د"
+ ]
+ ],
+ [
+ [
+ "،"
+ ],
+ [
+ " "
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "\"",
+ "'",
+ "#",
+ "-",
+ ":",
+ "!",
+ "،",
+ "؟",
+ "@",
+ "&",
+ "%",
+ "+",
+ "؛",
+ "/",
+ ")",
+ "("
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "۱",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "۲",
+ "²",
+ "⅔"
+ ],
+ [
+ "۳",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "۴",
+ "⁴"
+ ],
+ [
+ "۵",
+ "⅝"
+ ],
+ [
+ "۶"
+ ],
+ [
+ "۷",
+ "⅞"
+ ],
+ [
+ "۸"
+ ],
+ [
+ "۹"
+ ],
+ [
+ "۰",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "٬",
+ "@"
+ ],
+ [
+ "٫",
+ "#"
+ ],
+ [
+ "﷼",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ],
+ [
+ "٪",
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "﴿",
+ ">",
+ "}",
+ "]"
+ ],
+ [
+ ")",
+ "﴾",
+ "<",
+ "{",
+ "["
+ ]
+ ],
+ [
+ [
+ "*",
+ "★",
+ "٭"
+ ],
+ [
+ "«",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "»",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ "؛",
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "؟",
+ "?"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ "،",
+ ":",
+ "!",
+ "؟",
+ "؛",
+ "-",
+ "/",
+ "»",
+ "«"
+ ],
+ [
+ ".",
+ "ٕ",
+ "ٔ",
+ "ْ",
+ "ٍ",
+ "ٌ",
+ "ً",
+ "ّ",
+ "ٖ",
+ "ٰ",
+ "ٓ",
+ "ِ",
+ "ُ",
+ "َ",
+ "ـ"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "«",
+ "›",
+ "≥",
+ ">"
+ ],
+ [
+ "»",
+ "‹",
+ "≤",
+ "<"
+ ],
+ [
+ " "
+ ],
+ [
+ "،",
+ ":",
+ "!",
+ "؟",
+ "؛",
+ "-",
+ "/",
+ "»",
+ "«"
+ ],
+ [
+ ".",
+ "ٕ",
+ "ٔ",
+ "ْ",
+ "ٍ",
+ "ٌ",
+ "ً",
+ "ّ",
+ "ٖ",
+ "ٰ",
+ "ٓ",
+ "ِ",
+ "ُ",
+ "َ",
+ "ـ"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "fa",
+ "name": "Persian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/is.json b/data/osk-layouts/is.json
new file mode 100644
index 0000000..b53df32
--- /dev/null
+++ b/data/osk-layouts/is.json
@@ -0,0 +1,583 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ë",
+ "è",
+ "ê",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t",
+ "þ"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "ï",
+ "î",
+ "ì",
+ "į",
+ "ī"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ä",
+ "æ",
+ "å",
+ "à",
+ "â",
+ "ã",
+ "ā"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d",
+ "ð"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ë",
+ "È",
+ "Ê",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T",
+ "Þ"
+ ],
+ [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Ï",
+ "Î",
+ "Ì",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "Ä",
+ "Æ",
+ "Å",
+ "À",
+ "Â",
+ "Ã",
+ "Ā"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D",
+ "Ð"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "is",
+ "name": "Icelandic"
+} \ No newline at end of file
diff --git a/data/osk-layouts/it.json b/data/osk-layouts/it.json
new file mode 100644
index 0000000..d865266
--- /dev/null
+++ b/data/osk-layouts/it.json
@@ -0,0 +1,580 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ù",
+ "ú",
+ "û",
+ "ü",
+ "ū"
+ ],
+ [
+ "i",
+ "ì",
+ "í",
+ "î",
+ "ï",
+ "į",
+ "ī"
+ ],
+ [
+ "o",
+ "ò",
+ "ó",
+ "ô",
+ "ö",
+ "õ",
+ "œ",
+ "ø",
+ "ō",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "à",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ù",
+ "Ú",
+ "Û",
+ "Ü",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ì",
+ "Í",
+ "Î",
+ "Ï",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ò",
+ "Ó",
+ "Ô",
+ "Ö",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Á",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "it",
+ "name": "Italian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/ke.json b/data/osk-layouts/ke.json
new file mode 100644
index 0000000..9c3e935
--- /dev/null
+++ b/data/osk-layouts/ke.json
@@ -0,0 +1,577 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "û",
+ "ü",
+ "ù",
+ "ú",
+ "ū"
+ ],
+ [
+ "i",
+ "î",
+ "ï",
+ "í",
+ "ī",
+ "ì"
+ ],
+ [
+ "o",
+ "ô",
+ "ö",
+ "ò",
+ "ó",
+ "œ",
+ "ø",
+ "ō",
+ "õ"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "à",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ],
+ [
+ "s",
+ "ß"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "g'"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "I",
+ "Î",
+ "Ï",
+ "Í",
+ "Ī",
+ "Ì"
+ ],
+ [
+ "O",
+ "Ô",
+ "Ö",
+ "Ò",
+ "Ó",
+ "Œ",
+ "Ø",
+ "Ō",
+ "Õ"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Á",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ],
+ [
+ "S",
+ "SS"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "G'"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "sw",
+ "name": "Swahili"
+} \ No newline at end of file
diff --git a/data/osk-layouts/kg.json b/data/osk-layouts/kg.json
new file mode 100644
index 0000000..b56915a
--- /dev/null
+++ b/data/osk-layouts/kg.json
@@ -0,0 +1,547 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "й"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "у",
+ "ү"
+ ],
+ [
+ "к"
+ ],
+ [
+ "е",
+ "ё"
+ ],
+ [
+ "н",
+ "ң"
+ ],
+ [
+ "г"
+ ],
+ [
+ "ш"
+ ],
+ [
+ "щ"
+ ],
+ [
+ "з"
+ ],
+ [
+ "х"
+ ]
+ ],
+ [
+ [
+ "ф"
+ ],
+ [
+ "ы"
+ ],
+ [
+ "в"
+ ],
+ [
+ "а"
+ ],
+ [
+ "п"
+ ],
+ [
+ "р"
+ ],
+ [
+ "о",
+ "ө"
+ ],
+ [
+ "л"
+ ],
+ [
+ "д"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "э"
+ ]
+ ],
+ [
+ [
+ "я"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "с"
+ ],
+ [
+ "м"
+ ],
+ [
+ "и"
+ ],
+ [
+ "т"
+ ],
+ [
+ "ь",
+ "ъ"
+ ],
+ [
+ "б"
+ ],
+ [
+ "ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Й"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "У",
+ "Ү"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Е",
+ "Ё"
+ ],
+ [
+ "Н",
+ "Ң"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Ш"
+ ],
+ [
+ "Щ"
+ ],
+ [
+ "З"
+ ],
+ [
+ "Х"
+ ]
+ ],
+ [
+ [
+ "Ф"
+ ],
+ [
+ "Ы"
+ ],
+ [
+ "В"
+ ],
+ [
+ "А"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Р"
+ ],
+ [
+ "О",
+ "Ө"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Э"
+ ]
+ ],
+ [
+ [
+ "Я"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "С"
+ ],
+ [
+ "М"
+ ],
+ [
+ "И"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ь",
+ "Ъ"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ky",
+ "name": "Kirghiz"
+} \ No newline at end of file
diff --git a/data/osk-layouts/kh.json b/data/osk-layouts/kh.json
new file mode 100644
index 0000000..e5d34cb
--- /dev/null
+++ b/data/osk-layouts/kh.json
@@ -0,0 +1,481 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "១",
+ "៱"
+ ],
+ [
+ "២",
+ "៲"
+ ],
+ [
+ "៣",
+ "៳"
+ ],
+ [
+ "៤",
+ "៴"
+ ],
+ [
+ "៥",
+ "៵"
+ ],
+ [
+ "៦",
+ "៶"
+ ],
+ [
+ "៧",
+ "៷"
+ ],
+ [
+ "៨",
+ "៸"
+ ],
+ [
+ "៩",
+ "៹"
+ ],
+ [
+ "០",
+ "៰"
+ ],
+ [
+ "ឥ",
+ "",
+ "ឦ"
+ ],
+ [
+ "ឲ",
+ "ឱ"
+ ]
+ ],
+ [
+ [
+ "ឆ"
+ ],
+ [
+ "ឹ"
+ ],
+ [
+ "េ"
+ ],
+ [
+ "រ"
+ ],
+ [
+ "ត"
+ ],
+ [
+ "យ"
+ ],
+ [
+ "ុ"
+ ],
+ [
+ "ិ"
+ ],
+ [
+ "ោ"
+ ],
+ [
+ "ផ"
+ ],
+ [
+ "ៀ"
+ ],
+ [
+ "ឪ",
+ "ឧ",
+ "ឱ",
+ "ឳ",
+ "ឩ",
+ "ឨ"
+ ]
+ ],
+ [
+ [
+ "ា"
+ ],
+ [
+ "ស"
+ ],
+ [
+ "ដ"
+ ],
+ [
+ "ថ"
+ ],
+ [
+ "ង"
+ ],
+ [
+ "ហ"
+ ],
+ [
+ "្"
+ ],
+ [
+ "ក"
+ ],
+ [
+ "ល"
+ ],
+ [
+ "ើ"
+ ],
+ [
+ "់"
+ ],
+ [
+ "ឮ",
+ "ឭ",
+ "ឰ"
+ ]
+ ],
+ [
+ [
+ "ឋ"
+ ],
+ [
+ "ខ"
+ ],
+ [
+ "ច"
+ ],
+ [
+ "វ"
+ ],
+ [
+ "ប"
+ ],
+ [
+ "ន"
+ ],
+ [
+ "ម"
+ ],
+ [
+ "ុំ"
+ ],
+ [
+ "។"
+ ],
+ [
+ "៊"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "៛",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "km",
+ "name": "Khmer"
+} \ No newline at end of file
diff --git a/data/osk-layouts/la.json b/data/osk-layouts/la.json
new file mode 100644
index 0000000..aedff60
--- /dev/null
+++ b/data/osk-layouts/la.json
@@ -0,0 +1,472 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ຢ",
+ "໑"
+ ],
+ [
+ "ຟ",
+ "໒"
+ ],
+ [
+ "ໂ",
+ "໓"
+ ],
+ [
+ "ຖ",
+ "໔"
+ ],
+ [
+ "ຸ"
+ ],
+ [
+ "ູ"
+ ],
+ [
+ "ຄ",
+ "໕"
+ ],
+ [
+ "ຕ",
+ "໖"
+ ],
+ [
+ "ຈ",
+ "໗"
+ ],
+ [
+ "ຂ",
+ "໘"
+ ],
+ [
+ "ຊ",
+ "໙"
+ ],
+ [
+ "ໍ"
+ ]
+ ],
+ [
+ [
+ "ົ"
+ ],
+ [
+ "ໄ",
+ "໐"
+ ],
+ [
+ "ຳ"
+ ],
+ [
+ "ພ"
+ ],
+ [
+ "ະ"
+ ],
+ [
+ "ິ"
+ ],
+ [
+ "ີ"
+ ],
+ [
+ "ຮ"
+ ],
+ [
+ "ນ"
+ ],
+ [
+ "ຍ"
+ ],
+ [
+ "ບ"
+ ],
+ [
+ "ລ"
+ ]
+ ],
+ [
+ [
+ "ັ"
+ ],
+ [
+ "ຫ"
+ ],
+ [
+ "ກ"
+ ],
+ [
+ "ດ"
+ ],
+ [
+ "ເ"
+ ],
+ [
+ "້"
+ ],
+ [
+ "່"
+ ],
+ [
+ "າ"
+ ],
+ [
+ "ສ"
+ ],
+ [
+ "ວ"
+ ],
+ [
+ "ງ"
+ ],
+ [
+ "“"
+ ]
+ ],
+ [
+ [
+ "ຜ"
+ ],
+ [
+ "ປ"
+ ],
+ [
+ "ແ"
+ ],
+ [
+ "ອ"
+ ],
+ [
+ "ຶ"
+ ],
+ [
+ "ື"
+ ],
+ [
+ "ທ"
+ ],
+ [
+ "ມ"
+ ],
+ [
+ "ໃ"
+ ],
+ [
+ "ຝ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "₭",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "lo",
+ "name": "Lao"
+} \ No newline at end of file
diff --git a/data/osk-layouts/latam.json b/data/osk-layouts/latam.json
new file mode 100644
index 0000000..4095c7a
--- /dev/null
+++ b/data/osk-layouts/latam.json
@@ -0,0 +1,603 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ë",
+ "ê",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "ī"
+ ],
+ [
+ "o",
+ "ó",
+ "ò",
+ "ö",
+ "ô",
+ "õ",
+ "ø",
+ "œ",
+ "ō",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "à",
+ "ä",
+ "â",
+ "ã",
+ "å",
+ "ą",
+ "æ",
+ "ā",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ],
+ [
+ "ñ"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ë",
+ "Ê",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Ï",
+ "Ì",
+ "Î",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ò",
+ "Ö",
+ "Ô",
+ "Õ",
+ "Ø",
+ "Œ",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "À",
+ "Ä",
+ "Â",
+ "Ã",
+ "Å",
+ "Ą",
+ "Æ",
+ "Ā",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ],
+ [
+ "Ñ"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!",
+ "¡"
+ ],
+ [
+ ".",
+ "?",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!",
+ "¡"
+ ],
+ [
+ ".",
+ "?",
+ "¿"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "es-US",
+ "name": "Spanish United States"
+} \ No newline at end of file
diff --git a/data/osk-layouts/lt.json b/data/osk-layouts/lt.json
new file mode 100644
index 0000000..7cd5352
--- /dev/null
+++ b/data/osk-layouts/lt.json
@@ -0,0 +1,647 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "ė",
+ "ę",
+ "ē",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ě"
+ ],
+ [
+ "r",
+ "ŗ",
+ "ř",
+ "ŕ"
+ ],
+ [
+ "t",
+ "ţ",
+ "ť"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ū",
+ "ų",
+ "ü",
+ "ū",
+ "ù",
+ "ú",
+ "û",
+ "ů",
+ "ű"
+ ],
+ [
+ "i",
+ "į",
+ "ī",
+ "ì",
+ "í",
+ "î",
+ "ï",
+ "ı"
+ ],
+ [
+ "o",
+ "ö",
+ "õ",
+ "ò",
+ "ó",
+ "ô",
+ "œ",
+ "ő",
+ "ø"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "ą",
+ "ä",
+ "ā",
+ "à",
+ "á",
+ "â",
+ "ã",
+ "å",
+ "æ"
+ ],
+ [
+ "s",
+ "š",
+ "ß",
+ "ś",
+ "ş"
+ ],
+ [
+ "d",
+ "ď"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "ģ",
+ "ğ"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k",
+ "ķ"
+ ],
+ [
+ "l",
+ "ļ",
+ "ł",
+ "ĺ",
+ "ľ"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "č",
+ "ç",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ņ",
+ "ñ",
+ "ń",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "Ė",
+ "Ę",
+ "Ē",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ě"
+ ],
+ [
+ "R",
+ "Ŗ",
+ "Ř",
+ "Ŕ"
+ ],
+ [
+ "T",
+ "Ţ",
+ "Ť"
+ ],
+ [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ū",
+ "Ų",
+ "Ü",
+ "Ū",
+ "Ù",
+ "Ú",
+ "Û",
+ "Ů",
+ "Ű"
+ ],
+ [
+ "I",
+ "Į",
+ "Ī",
+ "Ì",
+ "Í",
+ "Î",
+ "Ï",
+ "I"
+ ],
+ [
+ "O",
+ "Ö",
+ "Õ",
+ "Ò",
+ "Ó",
+ "Ô",
+ "Œ",
+ "Ő",
+ "Ø"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ą",
+ "Ä",
+ "Ā",
+ "À",
+ "Á",
+ "Â",
+ "Ã",
+ "Å",
+ "Æ"
+ ],
+ [
+ "S",
+ "Š",
+ "SS",
+ "Ś",
+ "Ş"
+ ],
+ [
+ "D",
+ "Ď"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Ģ",
+ "Ğ"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K",
+ "Ķ"
+ ],
+ [
+ "L",
+ "Ļ",
+ "Ł",
+ "Ĺ",
+ "Ľ"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž",
+ "Ż",
+ "Ź"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ņ",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "lt",
+ "name": "Lithuanian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/lv.json b/data/osk-layouts/lv.json
new file mode 100644
index 0000000..bab6ae3
--- /dev/null
+++ b/data/osk-layouts/lv.json
@@ -0,0 +1,645 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "ē",
+ "ė",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ę",
+ "ě"
+ ],
+ [
+ "r",
+ "ŗ",
+ "ř",
+ "ŕ"
+ ],
+ [
+ "t",
+ "ţ",
+ "ť"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ū",
+ "ų",
+ "ù",
+ "ú",
+ "û",
+ "ü",
+ "ů",
+ "ű"
+ ],
+ [
+ "i",
+ "ī",
+ "į",
+ "ì",
+ "í",
+ "î",
+ "ï",
+ "ı"
+ ],
+ [
+ "o",
+ "ò",
+ "ó",
+ "ô",
+ "õ",
+ "ö",
+ "œ",
+ "ő",
+ "ø"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "ā",
+ "à",
+ "á",
+ "â",
+ "ã",
+ "ä",
+ "å",
+ "æ",
+ "ą"
+ ],
+ [
+ "s",
+ "š",
+ "ß",
+ "ś",
+ "ş"
+ ],
+ [
+ "d",
+ "ď"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "ģ",
+ "ğ"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k",
+ "ķ"
+ ],
+ [
+ "l",
+ "ļ",
+ "ł",
+ "ĺ",
+ "ľ"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "č",
+ "ç",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ņ",
+ "ñ",
+ "ń",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "Ē",
+ "Ė",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ě"
+ ],
+ [
+ "R",
+ "Ŗ",
+ "Ř",
+ "Ŕ"
+ ],
+ [
+ "T",
+ "Ţ",
+ "Ť"
+ ],
+ [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ū",
+ "Ų",
+ "Ù",
+ "Ú",
+ "Û",
+ "Ü",
+ "Ů",
+ "Ű"
+ ],
+ [
+ "I",
+ "Ī",
+ "Į",
+ "Ì",
+ "Í",
+ "Î",
+ "Ï",
+ "I"
+ ],
+ [
+ "O",
+ "Ò",
+ "Ó",
+ "Ô",
+ "Õ",
+ "Ö",
+ "Œ",
+ "Ő",
+ "Ø"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ā",
+ "À",
+ "Á",
+ "Â",
+ "Ã",
+ "Ä",
+ "Å",
+ "Æ",
+ "Ą"
+ ],
+ [
+ "S",
+ "Š",
+ "SS",
+ "Ś",
+ "Ş"
+ ],
+ [
+ "D",
+ "Ď"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Ģ",
+ "Ğ"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K",
+ "Ķ"
+ ],
+ [
+ "L",
+ "Ļ",
+ "Ł",
+ "Ĺ",
+ "Ľ"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž",
+ "Ż",
+ "Ź"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ņ",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "lv",
+ "name": "Latvian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/mk.json b/data/osk-layouts/mk.json
new file mode 100644
index 0000000..2815121
--- /dev/null
+++ b/data/osk-layouts/mk.json
@@ -0,0 +1,541 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "љ"
+ ],
+ [
+ "њ"
+ ],
+ [
+ "е",
+ "ѐ"
+ ],
+ [
+ "р"
+ ],
+ [
+ "т"
+ ],
+ [
+ "ѕ"
+ ],
+ [
+ "у"
+ ],
+ [
+ "и",
+ "ѝ"
+ ],
+ [
+ "о"
+ ],
+ [
+ "п"
+ ],
+ [
+ "ш"
+ ]
+ ],
+ [
+ [
+ "а"
+ ],
+ [
+ "с"
+ ],
+ [
+ "д"
+ ],
+ [
+ "ф"
+ ],
+ [
+ "г"
+ ],
+ [
+ "х"
+ ],
+ [
+ "ј"
+ ],
+ [
+ "к"
+ ],
+ [
+ "л"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "ќ"
+ ]
+ ],
+ [
+ [
+ "з"
+ ],
+ [
+ "џ"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "в"
+ ],
+ [
+ "б"
+ ],
+ [
+ "н"
+ ],
+ [
+ "м"
+ ],
+ [
+ "ѓ"
+ ],
+ [
+ "ж"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Љ"
+ ],
+ [
+ "Њ"
+ ],
+ [
+ "Е",
+ "Ѐ"
+ ],
+ [
+ "Р"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ѕ"
+ ],
+ [
+ "У"
+ ],
+ [
+ "И",
+ "Ѝ"
+ ],
+ [
+ "О"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Ш"
+ ]
+ ],
+ [
+ [
+ "А"
+ ],
+ [
+ "С"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ф"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Х"
+ ],
+ [
+ "Ј"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "Ќ"
+ ]
+ ],
+ [
+ [
+ "З"
+ ],
+ [
+ "Џ"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "В"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Н"
+ ],
+ [
+ "М"
+ ],
+ [
+ "Ѓ"
+ ],
+ [
+ "Ж"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "mk",
+ "name": "Macedonian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/mn.json b/data/osk-layouts/mn.json
new file mode 100644
index 0000000..88eaa24
--- /dev/null
+++ b/data/osk-layouts/mn.json
@@ -0,0 +1,547 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ф"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "у"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "э"
+ ],
+ [
+ "н"
+ ],
+ [
+ "г"
+ ],
+ [
+ "ш",
+ "щ"
+ ],
+ [
+ "ү"
+ ],
+ [
+ "з"
+ ],
+ [
+ "к"
+ ]
+ ],
+ [
+ [
+ "й"
+ ],
+ [
+ "ы"
+ ],
+ [
+ "б"
+ ],
+ [
+ "ө"
+ ],
+ [
+ "а"
+ ],
+ [
+ "х"
+ ],
+ [
+ "р"
+ ],
+ [
+ "о"
+ ],
+ [
+ "л"
+ ],
+ [
+ "д"
+ ],
+ [
+ "п"
+ ]
+ ],
+ [
+ [
+ "я"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "ё",
+ "е"
+ ],
+ [
+ "с"
+ ],
+ [
+ "м"
+ ],
+ [
+ "и"
+ ],
+ [
+ "т"
+ ],
+ [
+ "ь",
+ "ъ"
+ ],
+ [
+ "в",
+ "ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Ф"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "У"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Э"
+ ],
+ [
+ "Н"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Ш",
+ "Щ"
+ ],
+ [
+ "Ү"
+ ],
+ [
+ "З"
+ ],
+ [
+ "К"
+ ]
+ ],
+ [
+ [
+ "Й"
+ ],
+ [
+ "Ы"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ө"
+ ],
+ [
+ "А"
+ ],
+ [
+ "Х"
+ ],
+ [
+ "Р"
+ ],
+ [
+ "О"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "П"
+ ]
+ ],
+ [
+ [
+ "Я"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "Ё",
+ "Е"
+ ],
+ [
+ "С"
+ ],
+ [
+ "М"
+ ],
+ [
+ "И"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ь",
+ "Ъ"
+ ],
+ [
+ "В",
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "₮",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "mn",
+ "name": "Mongolian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/my.json b/data/osk-layouts/my.json
new file mode 100644
index 0000000..dfd5e09
--- /dev/null
+++ b/data/osk-layouts/my.json
@@ -0,0 +1,507 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ms",
+ "name": "Malay"
+} \ No newline at end of file
diff --git a/data/osk-layouts/nl.json b/data/osk-layouts/nl.json
new file mode 100644
index 0000000..7a630b4
--- /dev/null
+++ b/data/osk-layouts/nl.json
@@ -0,0 +1,584 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ë",
+ "ê",
+ "è",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "ij"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "ī",
+ "ij"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ä",
+ "â",
+ "à",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ë",
+ "Ê",
+ "È",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "IJ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Ï",
+ "Ì",
+ "Î",
+ "Į",
+ "Ī",
+ "IJ"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "Ä",
+ "Â",
+ "À",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "nl",
+ "name": "Dutch"
+} \ No newline at end of file
diff --git a/data/osk-layouts/no.json b/data/osk-layouts/no.json
new file mode 100644
index 0000000..a70be9c
--- /dev/null
+++ b/data/osk-layouts/no.json
@@ -0,0 +1,590 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ë"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "ï"
+ ],
+ [
+ "o",
+ "ó",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ō"
+ ],
+ [
+ "p"
+ ],
+ [
+ "å"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ä",
+ "à",
+ "â",
+ "ã",
+ "ā"
+ ],
+ [
+ "s",
+ "ß",
+ "ś",
+ "š"
+ ],
+ [
+ "d",
+ "ð"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l",
+ "ł"
+ ],
+ [
+ "ø",
+ "ö"
+ ],
+ [
+ "æ",
+ "ä"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ë"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Ï"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ō"
+ ],
+ [
+ "P"
+ ],
+ [
+ "Å"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "Ä",
+ "À",
+ "Â",
+ "Ã",
+ "Ā"
+ ],
+ [
+ "S",
+ "SS",
+ "Ś",
+ "Š"
+ ],
+ [
+ "D",
+ "Ð"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L",
+ "Ł"
+ ],
+ [
+ "Ø",
+ "Ö"
+ ],
+ [
+ "Æ",
+ "Ä"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "nb",
+ "name": "Norwegian Bokmål"
+}
diff --git a/data/osk-layouts/ph.json b/data/osk-layouts/ph.json
new file mode 100644
index 0000000..8d127b5
--- /dev/null
+++ b/data/osk-layouts/ph.json
@@ -0,0 +1,507 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "fil",
+ "name": "Filipino"
+} \ No newline at end of file
diff --git a/data/osk-layouts/pl.json b/data/osk-layouts/pl.json
new file mode 100644
index 0000000..4b08cd5
--- /dev/null
+++ b/data/osk-layouts/pl.json
@@ -0,0 +1,579 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "ę",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "ą",
+ "á",
+ "à",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ],
+ [
+ "s",
+ "ś",
+ "ß",
+ "š"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l",
+ "ł"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ż",
+ "ź",
+ "ž"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ć",
+ "ç",
+ "č"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ń",
+ "ñ"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "Ę",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ą",
+ "Á",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ],
+ [
+ "S",
+ "Ś",
+ "SS",
+ "Š"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L",
+ "Ł"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ż",
+ "Ź",
+ "Ž"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ć",
+ "Ç",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ń",
+ "Ñ"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "pl",
+ "name": "Polish"
+} \ No newline at end of file
diff --git a/data/osk-layouts/pt.json b/data/osk-layouts/pt.json
new file mode 100644
index 0000000..efd857a
--- /dev/null
+++ b/data/osk-layouts/pt.json
@@ -0,0 +1,584 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ê",
+ "è",
+ "ę",
+ "ė",
+ "ē",
+ "ë"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "î",
+ "ì",
+ "ï",
+ "į",
+ "ī"
+ ],
+ [
+ "o",
+ "ó",
+ "õ",
+ "ô",
+ "ò",
+ "ö",
+ "œ",
+ "ø",
+ "ō",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ã",
+ "à",
+ "â",
+ "ä",
+ "å",
+ "æ",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "č",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ê",
+ "È",
+ "Ę",
+ "Ė",
+ "Ē",
+ "Ë"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Î",
+ "Ì",
+ "Ï",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Õ",
+ "Ô",
+ "Ò",
+ "Ö",
+ "Œ",
+ "Ø",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "Ã",
+ "À",
+ "Â",
+ "Ä",
+ "Å",
+ "Æ",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Č",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "pt-PT",
+ "name": "Portuguese Portugal"
+} \ No newline at end of file
diff --git a/data/osk-layouts/ro.json b/data/osk-layouts/ro.json
new file mode 100644
index 0000000..c690f4e
--- /dev/null
+++ b/data/osk-layouts/ro.json
@@ -0,0 +1,547 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t",
+ "ț"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i",
+ "î",
+ "ï",
+ "ì",
+ "í",
+ "į",
+ "ī"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "â",
+ "ã",
+ "ă",
+ "à",
+ "á",
+ "ä",
+ "æ",
+ "å",
+ "ā"
+ ],
+ [
+ "s",
+ "ș",
+ "ß",
+ "ś",
+ "š"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T",
+ "Ț"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I",
+ "Î",
+ "Ï",
+ "Ì",
+ "Í",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Â",
+ "Ã",
+ "Ă",
+ "À",
+ "Á",
+ "Ä",
+ "Æ",
+ "Å",
+ "Ā"
+ ],
+ [
+ "S",
+ "Ș",
+ "SS",
+ "Ś",
+ "Š"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ro",
+ "name": "Romanian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/rs.json b/data/osk-layouts/rs.json
new file mode 100644
index 0000000..7bdab9f
--- /dev/null
+++ b/data/osk-layouts/rs.json
@@ -0,0 +1,541 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "љ"
+ ],
+ [
+ "њ"
+ ],
+ [
+ "е",
+ "ѐ"
+ ],
+ [
+ "р"
+ ],
+ [
+ "т"
+ ],
+ [
+ "з"
+ ],
+ [
+ "у"
+ ],
+ [
+ "и",
+ "ѝ"
+ ],
+ [
+ "о"
+ ],
+ [
+ "п"
+ ],
+ [
+ "ш"
+ ]
+ ],
+ [
+ [
+ "а"
+ ],
+ [
+ "с"
+ ],
+ [
+ "д"
+ ],
+ [
+ "ф"
+ ],
+ [
+ "г"
+ ],
+ [
+ "х"
+ ],
+ [
+ "ј"
+ ],
+ [
+ "к"
+ ],
+ [
+ "л"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "ћ"
+ ]
+ ],
+ [
+ [
+ "ѕ"
+ ],
+ [
+ "џ"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "в"
+ ],
+ [
+ "б"
+ ],
+ [
+ "н"
+ ],
+ [
+ "м"
+ ],
+ [
+ "ђ"
+ ],
+ [
+ "ж"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Љ"
+ ],
+ [
+ "Њ"
+ ],
+ [
+ "Е",
+ "Ѐ"
+ ],
+ [
+ "Р"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "З"
+ ],
+ [
+ "У"
+ ],
+ [
+ "И",
+ "Ѝ"
+ ],
+ [
+ "О"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Ш"
+ ]
+ ],
+ [
+ [
+ "А"
+ ],
+ [
+ "С"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ф"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Х"
+ ],
+ [
+ "Ј"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "Ћ"
+ ]
+ ],
+ [
+ [
+ "Ѕ"
+ ],
+ [
+ "Џ"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "В"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Н"
+ ],
+ [
+ "М"
+ ],
+ [
+ "Ђ"
+ ],
+ [
+ "Ж"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "sr",
+ "name": "Serbian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/ru.json b/data/osk-layouts/ru.json
new file mode 100644
index 0000000..9126cb0
--- /dev/null
+++ b/data/osk-layouts/ru.json
@@ -0,0 +1,541 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "й"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "у"
+ ],
+ [
+ "к"
+ ],
+ [
+ "е",
+ "ё"
+ ],
+ [
+ "н"
+ ],
+ [
+ "г"
+ ],
+ [
+ "ш"
+ ],
+ [
+ "щ"
+ ],
+ [
+ "з"
+ ],
+ [
+ "х"
+ ]
+ ],
+ [
+ [
+ "ф"
+ ],
+ [
+ "ы"
+ ],
+ [
+ "в"
+ ],
+ [
+ "а"
+ ],
+ [
+ "п"
+ ],
+ [
+ "р"
+ ],
+ [
+ "о"
+ ],
+ [
+ "л"
+ ],
+ [
+ "д"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "э"
+ ]
+ ],
+ [
+ [
+ "я"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "с"
+ ],
+ [
+ "м"
+ ],
+ [
+ "и"
+ ],
+ [
+ "т"
+ ],
+ [
+ "ь",
+ "ъ"
+ ],
+ [
+ "б"
+ ],
+ [
+ "ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Й"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "У"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Е",
+ "Ё"
+ ],
+ [
+ "Н"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Ш"
+ ],
+ [
+ "Щ"
+ ],
+ [
+ "З"
+ ],
+ [
+ "Х"
+ ]
+ ],
+ [
+ [
+ "Ф"
+ ],
+ [
+ "Ы"
+ ],
+ [
+ "В"
+ ],
+ [
+ "А"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Р"
+ ],
+ [
+ "О"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Э"
+ ]
+ ],
+ [
+ [
+ "Я"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "С"
+ ],
+ [
+ "М"
+ ],
+ [
+ "И"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ь",
+ "Ъ"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ru",
+ "name": "Russian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/se.json b/data/osk-layouts/se.json
new file mode 100644
index 0000000..513a0b8
--- /dev/null
+++ b/data/osk-layouts/se.json
@@ -0,0 +1,624 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ę"
+ ],
+ [
+ "r",
+ "ř"
+ ],
+ [
+ "t",
+ "ť",
+ "þ"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ",
+ "ü"
+ ],
+ [
+ "u",
+ "ü",
+ "ú",
+ "ù",
+ "û",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "ì",
+ "î",
+ "ï"
+ ],
+ [
+ "o",
+ "ó",
+ "ò",
+ "ô",
+ "õ",
+ "ō"
+ ],
+ [
+ "p"
+ ],
+ [
+ "å"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "à",
+ "â",
+ "ą",
+ "ã"
+ ],
+ [
+ "s",
+ "ś",
+ "š",
+ "ş",
+ "ß"
+ ],
+ [
+ "d",
+ "ð",
+ "ď"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l",
+ "ł"
+ ],
+ [
+ "ö",
+ "ø",
+ "œ"
+ ],
+ [
+ "ä",
+ "æ"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ź",
+ "ž",
+ "ż"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ń",
+ "ñ",
+ "ň"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę"
+ ],
+ [
+ "R",
+ "Ř"
+ ],
+ [
+ "T",
+ "Ť",
+ "Þ"
+ ],
+ [
+ "Y",
+ "Ý",
+ "Ÿ",
+ "Ü"
+ ],
+ [
+ "U",
+ "Ü",
+ "Ú",
+ "Ù",
+ "Û",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Ì",
+ "Î",
+ "Ï"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ò",
+ "Ô",
+ "Õ",
+ "Ō"
+ ],
+ [
+ "P"
+ ],
+ [
+ "Å"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "À",
+ "Â",
+ "Ą",
+ "Ã"
+ ],
+ [
+ "S",
+ "Ś",
+ "Š",
+ "Ş",
+ "SS"
+ ],
+ [
+ "D",
+ "Ð",
+ "Ď"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L",
+ "Ł"
+ ],
+ [
+ "Ö",
+ "Ø",
+ "Œ"
+ ],
+ [
+ "Ä",
+ "Æ"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ź",
+ "Ž",
+ "Ż"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ń",
+ "Ñ",
+ "Ň"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "sv",
+ "name": "Swedish"
+} \ No newline at end of file
diff --git a/data/osk-layouts/si.json b/data/osk-layouts/si.json
new file mode 100644
index 0000000..f5c99c0
--- /dev/null
+++ b/data/osk-layouts/si.json
@@ -0,0 +1,518 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a"
+ ],
+ [
+ "s",
+ "š"
+ ],
+ [
+ "d",
+ "đ"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "č",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A"
+ ],
+ [
+ "S",
+ "Š"
+ ],
+ [
+ "D",
+ "Đ"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "sl",
+ "name": "Slovenian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/sk.json b/data/osk-layouts/sk.json
new file mode 100644
index 0000000..678232b
--- /dev/null
+++ b/data/osk-layouts/sk.json
@@ -0,0 +1,648 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ě",
+ "ē",
+ "ė",
+ "è",
+ "ê",
+ "ë",
+ "ę"
+ ],
+ [
+ "r",
+ "ŕ",
+ "ř",
+ "ŗ"
+ ],
+ [
+ "t",
+ "ť",
+ "ţ"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ú",
+ "ů",
+ "ü",
+ "ū",
+ "ų",
+ "ù",
+ "û",
+ "ű"
+ ],
+ [
+ "i",
+ "í",
+ "ī",
+ "į",
+ "ì",
+ "î",
+ "ï",
+ "ı"
+ ],
+ [
+ "o",
+ "ô",
+ "ó",
+ "ö",
+ "ò",
+ "õ",
+ "œ",
+ "ő",
+ "ø"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ä",
+ "ā",
+ "à",
+ "â",
+ "ã",
+ "å",
+ "æ",
+ "ą"
+ ],
+ [
+ "s",
+ "š",
+ "ß",
+ "ś",
+ "ş"
+ ],
+ [
+ "d",
+ "ď"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "ģ",
+ "ğ"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k",
+ "ķ"
+ ],
+ [
+ "l",
+ "ľ",
+ "ĺ",
+ "ļ",
+ "ł"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "č",
+ "ç",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ň",
+ "ņ",
+ "ñ",
+ "ń",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ě",
+ "Ē",
+ "Ė",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę"
+ ],
+ [
+ "R",
+ "Ŕ",
+ "Ř",
+ "Ŗ"
+ ],
+ [
+ "T",
+ "Ť",
+ "Ţ"
+ ],
+ [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ů",
+ "Ü",
+ "Ū",
+ "Ų",
+ "Ù",
+ "Û",
+ "Ű"
+ ],
+ [
+ "I",
+ "Í",
+ "Ī",
+ "Į",
+ "Ì",
+ "Î",
+ "Ï",
+ "I"
+ ],
+ [
+ "O",
+ "Ô",
+ "Ó",
+ "Ö",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ő",
+ "Ø"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "Ä",
+ "Ā",
+ "À",
+ "Â",
+ "Ã",
+ "Å",
+ "Æ",
+ "Ą"
+ ],
+ [
+ "S",
+ "Š",
+ "SS",
+ "Ś",
+ "Ş"
+ ],
+ [
+ "D",
+ "Ď"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Ģ",
+ "Ğ"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K",
+ "Ķ"
+ ],
+ [
+ "L",
+ "Ľ",
+ "Ĺ",
+ "Ļ",
+ "Ł"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž",
+ "Ż",
+ "Ź"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ň",
+ "Ņ",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "sk",
+ "name": "Slovak"
+} \ No newline at end of file
diff --git a/data/osk-layouts/th.json b/data/osk-layouts/th.json
new file mode 100644
index 0000000..c229a64
--- /dev/null
+++ b/data/osk-layouts/th.json
@@ -0,0 +1,472 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ๅ"
+ ],
+ [
+ "/",
+ "๑"
+ ],
+ [
+ "_",
+ "๒"
+ ],
+ [
+ "ภ",
+ "๓"
+ ],
+ [
+ "ถ",
+ "๔"
+ ],
+ [
+ "ุ"
+ ],
+ [
+ "ึ"
+ ],
+ [
+ "ค",
+ "๕"
+ ],
+ [
+ "ต",
+ "๖"
+ ],
+ [
+ "จ",
+ "๗"
+ ],
+ [
+ "ข",
+ "๘"
+ ],
+ [
+ "ช",
+ "๙"
+ ]
+ ],
+ [
+ [
+ "ๆ",
+ "๐"
+ ],
+ [
+ "ไ"
+ ],
+ [
+ "ำ"
+ ],
+ [
+ "พ"
+ ],
+ [
+ "ะ"
+ ],
+ [
+ "ั"
+ ],
+ [
+ "ี"
+ ],
+ [
+ "ร"
+ ],
+ [
+ "น"
+ ],
+ [
+ "ย"
+ ],
+ [
+ "บ"
+ ],
+ [
+ "ล"
+ ]
+ ],
+ [
+ [
+ "ฟ"
+ ],
+ [
+ "ห"
+ ],
+ [
+ "ก"
+ ],
+ [
+ "ด"
+ ],
+ [
+ "เ"
+ ],
+ [
+ "้"
+ ],
+ [
+ "่"
+ ],
+ [
+ "า"
+ ],
+ [
+ "ส"
+ ],
+ [
+ "ว"
+ ],
+ [
+ "ง"
+ ],
+ [
+ "ฃ"
+ ]
+ ],
+ [
+ [
+ "ผ"
+ ],
+ [
+ "ป"
+ ],
+ [
+ "แ"
+ ],
+ [
+ "อ"
+ ],
+ [
+ "ิ"
+ ],
+ [
+ "ื"
+ ],
+ [
+ "ท"
+ ],
+ [
+ "ม"
+ ],
+ [
+ "ใ"
+ ],
+ [
+ "ฝ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "฿",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "th",
+ "name": "Thai"
+} \ No newline at end of file
diff --git a/data/osk-layouts/tr.json b/data/osk-layouts/tr.json
new file mode 100644
index 0000000..b3786cc
--- /dev/null
+++ b/data/osk-layouts/tr.json
@@ -0,0 +1,566 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ü",
+ "û",
+ "ù",
+ "ú",
+ "ū"
+ ],
+ [
+ "i",
+ "ı",
+ "î",
+ "ï",
+ "ì",
+ "í",
+ "į",
+ "ī"
+ ],
+ [
+ "o",
+ "ö",
+ "ô",
+ "œ",
+ "ò",
+ "ó",
+ "õ",
+ "ø",
+ "ō"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "â"
+ ],
+ [
+ "s",
+ "ş",
+ "ß",
+ "ś",
+ "š"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "ğ"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "İ",
+ "I",
+ "Î",
+ "Ï",
+ "Ì",
+ "Í",
+ "Į",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ö",
+ "Ô",
+ "Œ",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Â"
+ ],
+ [
+ "S",
+ "Ş",
+ "SS",
+ "Ś",
+ "Š"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Ğ"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "tr",
+ "name": "Turkish"
+} \ No newline at end of file
diff --git a/data/osk-layouts/ua.json b/data/osk-layouts/ua.json
new file mode 100644
index 0000000..1185687
--- /dev/null
+++ b/data/osk-layouts/ua.json
@@ -0,0 +1,545 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "й"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "у"
+ ],
+ [
+ "к"
+ ],
+ [
+ "е"
+ ],
+ [
+ "н"
+ ],
+ [
+ "г",
+ "ґ"
+ ],
+ [
+ "ш"
+ ],
+ [
+ "щ"
+ ],
+ [
+ "з"
+ ],
+ [
+ "х"
+ ]
+ ],
+ [
+ [
+ "ф"
+ ],
+ [
+ "і",
+ "ї"
+ ],
+ [
+ "в"
+ ],
+ [
+ "а"
+ ],
+ [
+ "п"
+ ],
+ [
+ "р"
+ ],
+ [
+ "о"
+ ],
+ [
+ "л"
+ ],
+ [
+ "д"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "є"
+ ]
+ ],
+ [
+ [
+ "я"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "с"
+ ],
+ [
+ "м"
+ ],
+ [
+ "и"
+ ],
+ [
+ "т"
+ ],
+ [
+ "ь",
+ "ъ"
+ ],
+ [
+ "б"
+ ],
+ [
+ "ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Й"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "У"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Е"
+ ],
+ [
+ "Н"
+ ],
+ [
+ "Г",
+ "Ґ"
+ ],
+ [
+ "Ш"
+ ],
+ [
+ "Щ"
+ ],
+ [
+ "З"
+ ],
+ [
+ "Х"
+ ]
+ ],
+ [
+ [
+ "Ф"
+ ],
+ [
+ "І",
+ "Ї"
+ ],
+ [
+ "В"
+ ],
+ [
+ "А"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Р"
+ ],
+ [
+ "О"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Є"
+ ]
+ ],
+ [
+ [
+ "Я"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "С"
+ ],
+ [
+ "М"
+ ],
+ [
+ "И"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ь",
+ "Ъ"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "₴",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "uk",
+ "name": "Ukrainian"
+} \ No newline at end of file
diff --git a/data/osk-layouts/uk.json b/data/osk-layouts/uk.json
new file mode 100644
index 0000000..c36a723
--- /dev/null
+++ b/data/osk-layouts/uk.json
@@ -0,0 +1,576 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "û",
+ "ü",
+ "ù",
+ "ú",
+ "ū"
+ ],
+ [
+ "i",
+ "î",
+ "ï",
+ "í",
+ "ī",
+ "ì"
+ ],
+ [
+ "o",
+ "ô",
+ "ö",
+ "ò",
+ "ó",
+ "œ",
+ "ø",
+ "ō",
+ "õ"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "à",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ],
+ [
+ "s",
+ "ß"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "I",
+ "Î",
+ "Ï",
+ "Í",
+ "Ī",
+ "Ì"
+ ],
+ [
+ "O",
+ "Ô",
+ "Ö",
+ "Ò",
+ "Ó",
+ "Œ",
+ "Ø",
+ "Ō",
+ "Õ"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Á",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ],
+ [
+ "S",
+ "SS"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "£",
+ "¢",
+ "$",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "en-GB",
+ "name": "English Great Britain"
+} \ No newline at end of file
diff --git a/data/osk-layouts/us.json b/data/osk-layouts/us.json
new file mode 100644
index 0000000..94dd6d3
--- /dev/null
+++ b/data/osk-layouts/us.json
@@ -0,0 +1,575 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "û",
+ "ü",
+ "ù",
+ "ú",
+ "ū"
+ ],
+ [
+ "i",
+ "î",
+ "ï",
+ "í",
+ "ī",
+ "ì"
+ ],
+ [
+ "o",
+ "ô",
+ "ö",
+ "ò",
+ "ó",
+ "œ",
+ "ø",
+ "ō",
+ "õ"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "à",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ],
+ [
+ "s",
+ "ß"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "I",
+ "Î",
+ "Ï",
+ "Í",
+ "Ī",
+ "Ì"
+ ],
+ [
+ "O",
+ "Ô",
+ "Ö",
+ "Ò",
+ "Ó",
+ "Œ",
+ "Ø",
+ "Ō",
+ "Õ"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Á",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ],
+ [
+ "S",
+ "SS"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "en",
+ "name": "English United States"
+} \ No newline at end of file
diff --git a/data/osk-layouts/vn.json b/data/osk-layouts/vn.json
new file mode 100644
index 0000000..4c7c9b4
--- /dev/null
+++ b/data/osk-layouts/vn.json
@@ -0,0 +1,643 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ẻ",
+ "ẽ",
+ "ẹ",
+ "ê",
+ "ề",
+ "ế",
+ "ể",
+ "ễ",
+ "ệ"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "ỳ",
+ "ý",
+ "ỷ",
+ "ỹ",
+ "ỵ"
+ ],
+ [
+ "u",
+ "ù",
+ "ú",
+ "ủ",
+ "ũ",
+ "ụ",
+ "ư",
+ "ừ",
+ "ứ",
+ "ử",
+ "ữ",
+ "ự"
+ ],
+ [
+ "i",
+ "ì",
+ "í",
+ "ỉ",
+ "ĩ",
+ "ị"
+ ],
+ [
+ "o",
+ "ò",
+ "ó",
+ "ỏ",
+ "õ",
+ "ọ",
+ "ô",
+ "ồ",
+ "ố",
+ "ổ",
+ "ỗ",
+ "ộ",
+ "ơ",
+ "ờ",
+ "ớ",
+ "ở",
+ "ỡ",
+ "ợ"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "à",
+ "á",
+ "ả",
+ "ã",
+ "ạ",
+ "ă",
+ "ằ",
+ "ắ",
+ "ẳ",
+ "ẵ",
+ "ặ",
+ "â",
+ "ầ",
+ "ấ",
+ "ẩ",
+ "ẫ",
+ "ậ"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d",
+ "đ"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ẻ",
+ "Ẽ",
+ "Ẹ",
+ "Ê",
+ "Ề",
+ "Ế",
+ "Ể",
+ "Ễ",
+ "Ệ"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "Ỳ",
+ "Ý",
+ "Ỷ",
+ "Ỹ",
+ "Ỵ"
+ ],
+ [
+ "U",
+ "Ù",
+ "Ú",
+ "Ủ",
+ "Ũ",
+ "Ụ",
+ "Ư",
+ "Ừ",
+ "Ứ",
+ "Ử",
+ "Ữ",
+ "Ự"
+ ],
+ [
+ "I",
+ "Ì",
+ "Í",
+ "Ỉ",
+ "Ĩ",
+ "Ị"
+ ],
+ [
+ "O",
+ "Ò",
+ "Ó",
+ "Ỏ",
+ "Õ",
+ "Ọ",
+ "Ô",
+ "Ồ",
+ "Ố",
+ "Ổ",
+ "Ỗ",
+ "Ộ",
+ "Ơ",
+ "Ờ",
+ "Ớ",
+ "Ở",
+ "Ỡ",
+ "Ợ"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Á",
+ "Ả",
+ "Ã",
+ "Ạ",
+ "Ă",
+ "Ằ",
+ "Ắ",
+ "Ẳ",
+ "Ẵ",
+ "Ặ",
+ "Â",
+ "Ầ",
+ "Ấ",
+ "Ẩ",
+ "Ẫ",
+ "Ậ"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D",
+ "Đ"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "₫",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "vi",
+ "name": "Vietnamese"
+} \ No newline at end of file
diff --git a/data/osk-layouts/za.json b/data/osk-layouts/za.json
new file mode 100644
index 0000000..ccd2447
--- /dev/null
+++ b/data/osk-layouts/za.json
@@ -0,0 +1,589 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ę",
+ "ė",
+ "ē"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "ý",
+ "ŷ",
+ "ÿ",
+ "ij"
+ ],
+ [
+ "u",
+ "ú",
+ "û",
+ "ü",
+ "ù",
+ "ū"
+ ],
+ [
+ "i",
+ "í",
+ "ì",
+ "ï",
+ "î",
+ "į",
+ "ī",
+ "ij"
+ ],
+ [
+ "o",
+ "ó",
+ "ô",
+ "ö",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "â",
+ "ä",
+ "à",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "ń"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ė",
+ "Ē"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "Ý",
+ "Ŷ",
+ "Ÿ",
+ "IJ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Í",
+ "Ì",
+ "Ï",
+ "Î",
+ "Į",
+ "Ī",
+ "IJ"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ô",
+ "Ö",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Á",
+ "Â",
+ "Ä",
+ "À",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ],
+ [
+ "2",
+ "²",
+ "⅔"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "⁴"
+ ],
+ [
+ "5",
+ "⅝"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "⅞"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Π",
+ "π"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "™"
+ ],
+ [
+ "℅"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "af",
+ "name": "Afrikaans"
+} \ No newline at end of file