summaryrefslogtreecommitdiffstats
path: root/data/osk-layouts
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:54:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:54:43 +0000
commite4283f6d48b98e764b988b43bbc86b9d52e6ec94 (patch)
treec8f7f7a6c2f5faa2942d27cefc6fd46cca492656 /data/osk-layouts
parentInitial commit. (diff)
downloadgnome-shell-54cc9b72c7f1eca5c7acbdf783df9cfc8e4c2680.tar.xz
gnome-shell-54cc9b72c7f1eca5c7acbdf783df9cfc8e4c2680.zip
Adding upstream version 43.9.upstream/43.9upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--data/osk-layouts/am.json1051
-rw-r--r--data/osk-layouts/ara.json793
-rw-r--r--data/osk-layouts/at.json978
-rw-r--r--data/osk-layouts/be.json1021
-rw-r--r--data/osk-layouts/bg.json955
-rw-r--r--data/osk-layouts/by.json965
-rw-r--r--data/osk-layouts/ca.json1007
-rw-r--r--data/osk-layouts/ch+fr.json978
-rw-r--r--data/osk-layouts/ch.json978
-rw-r--r--data/osk-layouts/cz.json1021
-rw-r--r--data/osk-layouts/de.json978
-rw-r--r--data/osk-layouts/dk.json1012
-rw-r--r--data/osk-layouts/ee.json1088
-rw-r--r--data/osk-layouts/epo.json1123
-rw-r--r--data/osk-layouts/es+cat.json1014
-rw-r--r--data/osk-layouts/es.json1016
-rw-r--r--data/osk-layouts/fi.json992
-rw-r--r--data/osk-layouts/fr.json1026
-rw-r--r--data/osk-layouts/ge.json705
-rw-r--r--data/osk-layouts/gr.json940
-rw-r--r--data/osk-layouts/hr.json939
-rw-r--r--data/osk-layouts/hu.json987
-rw-r--r--data/osk-layouts/id.json915
-rw-r--r--data/osk-layouts/il.json718
-rw-r--r--data/osk-layouts/in+bolnagri.json745
-rw-r--r--data/osk-layouts/in+mal.json986
-rw-r--r--data/osk-layouts/ir.json797
-rw-r--r--data/osk-layouts/is.json991
-rw-r--r--data/osk-layouts/it.json988
-rw-r--r--data/osk-layouts/ke.json985
-rw-r--r--data/osk-layouts/kg.json971
-rw-r--r--data/osk-layouts/kh.json817
-rw-r--r--data/osk-layouts/kr.json720
-rw-r--r--data/osk-layouts/la.json808
-rw-r--r--data/osk-layouts/latam.json1015
-rw-r--r--data/osk-layouts/lt.json1055
-rw-r--r--data/osk-layouts/lv.json1053
-rw-r--r--data/osk-layouts/mk.json965
-rw-r--r--data/osk-layouts/mn.json971
-rw-r--r--data/osk-layouts/my.json915
-rw-r--r--data/osk-layouts/nl.json992
-rw-r--r--data/osk-layouts/no.json1012
-rw-r--r--data/osk-layouts/ph.json915
-rw-r--r--data/osk-layouts/pl.json987
-rw-r--r--data/osk-layouts/pt.json992
-rw-r--r--data/osk-layouts/ro.json955
-rw-r--r--data/osk-layouts/rs.json965
-rw-r--r--data/osk-layouts/ru.json965
-rw-r--r--data/osk-layouts/se.json1046
-rw-r--r--data/osk-layouts/si.json926
-rw-r--r--data/osk-layouts/sk.json1056
-rw-r--r--data/osk-layouts/th.json1135
-rw-r--r--data/osk-layouts/tr.json974
-rw-r--r--data/osk-layouts/ua.json969
-rw-r--r--data/osk-layouts/uk.json984
-rw-r--r--data/osk-layouts/us-extended.json1043
-rw-r--r--data/osk-layouts/us.json983
-rw-r--r--data/osk-layouts/vn.json1051
-rw-r--r--data/osk-layouts/za.json997
59 files changed, 56929 insertions, 0 deletions
diff --git a/data/osk-layouts/am.json b/data/osk-layouts/am.json
new file mode 100644
index 0000000..8316774
--- /dev/null
+++ b/data/osk-layouts/am.json
@@ -0,0 +1,1051 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "է"
+ ]
+ },
+ {
+ "strings": [
+ "թ"
+ ]
+ },
+ {
+ "strings": [
+ "փ"
+ ]
+ },
+ {
+ "strings": [
+ "ձ"
+ ]
+ },
+ {
+ "strings": [
+ "ջ"
+ ]
+ },
+ {
+ "strings": [
+ "ր"
+ ]
+ },
+ {
+ "strings": [
+ "չ"
+ ]
+ },
+ {
+ "strings": [
+ "ճ"
+ ]
+ },
+ {
+ "strings": [
+ "ժ"
+ ]
+ },
+ {
+ "strings": [
+ "ծ"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ք"
+ ]
+ },
+ {
+ "strings": [
+ "ո"
+ ]
+ },
+ {
+ "strings": [
+ "ե",
+ "և"
+ ]
+ },
+ {
+ "strings": [
+ "ռ"
+ ]
+ },
+ {
+ "strings": [
+ "տ"
+ ]
+ },
+ {
+ "strings": [
+ "ը"
+ ]
+ },
+ {
+ "strings": [
+ "ւ"
+ ]
+ },
+ {
+ "strings": [
+ "ի"
+ ]
+ },
+ {
+ "strings": [
+ "օ"
+ ]
+ },
+ {
+ "strings": [
+ "պ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ա"
+ ]
+ },
+ {
+ "strings": [
+ "ս"
+ ]
+ },
+ {
+ "strings": [
+ "դ"
+ ]
+ },
+ {
+ "strings": [
+ "ֆ"
+ ]
+ },
+ {
+ "strings": [
+ "գ"
+ ]
+ },
+ {
+ "strings": [
+ "հ"
+ ]
+ },
+ {
+ "strings": [
+ "յ"
+ ]
+ },
+ {
+ "strings": [
+ "կ"
+ ]
+ },
+ {
+ "strings": [
+ "լ"
+ ]
+ },
+ {
+ "strings": [
+ "խ"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "զ"
+ ]
+ },
+ {
+ "strings": [
+ "ղ"
+ ]
+ },
+ {
+ "strings": [
+ "ց"
+ ]
+ },
+ {
+ "strings": [
+ "վ"
+ ]
+ },
+ {
+ "strings": [
+ "բ"
+ ]
+ },
+ {
+ "strings": [
+ "ն"
+ ]
+ },
+ {
+ "strings": [
+ "մ"
+ ]
+ },
+ {
+ "strings": [
+ "շ"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "strings": [
+ "։"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Է"
+ ]
+ },
+ {
+ "strings": [
+ "Թ"
+ ]
+ },
+ {
+ "strings": [
+ "Փ"
+ ]
+ },
+ {
+ "strings": [
+ "Ձ"
+ ]
+ },
+ {
+ "strings": [
+ "Ջ"
+ ]
+ },
+ {
+ "strings": [
+ "Ր"
+ ]
+ },
+ {
+ "strings": [
+ "Չ"
+ ]
+ },
+ {
+ "strings": [
+ "Ճ"
+ ]
+ },
+ {
+ "strings": [
+ "Ժ"
+ ]
+ },
+ {
+ "strings": [
+ "Ծ"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "Ք"
+ ]
+ },
+ {
+ "strings": [
+ "Ո"
+ ]
+ },
+ {
+ "strings": [
+ "Ե",
+ "ԵՒ"
+ ]
+ },
+ {
+ "strings": [
+ "Ռ"
+ ]
+ },
+ {
+ "strings": [
+ "Տ"
+ ]
+ },
+ {
+ "strings": [
+ "Ը"
+ ]
+ },
+ {
+ "strings": [
+ "Ւ"
+ ]
+ },
+ {
+ "strings": [
+ "Ի"
+ ]
+ },
+ {
+ "strings": [
+ "Օ"
+ ]
+ },
+ {
+ "strings": [
+ "Պ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "Ա"
+ ]
+ },
+ {
+ "strings": [
+ "Ս"
+ ]
+ },
+ {
+ "strings": [
+ "Դ"
+ ]
+ },
+ {
+ "strings": [
+ "Ֆ"
+ ]
+ },
+ {
+ "strings": [
+ "Գ"
+ ]
+ },
+ {
+ "strings": [
+ "Հ"
+ ]
+ },
+ {
+ "strings": [
+ "Յ"
+ ]
+ },
+ {
+ "strings": [
+ "Կ"
+ ]
+ },
+ {
+ "strings": [
+ "Լ"
+ ]
+ },
+ {
+ "strings": [
+ "Խ"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Զ"
+ ]
+ },
+ {
+ "strings": [
+ "Ղ"
+ ]
+ },
+ {
+ "strings": [
+ "Ց"
+ ]
+ },
+ {
+ "strings": [
+ "Վ"
+ ]
+ },
+ {
+ "strings": [
+ "Բ"
+ ]
+ },
+ {
+ "strings": [
+ "Ն"
+ ]
+ },
+ {
+ "strings": [
+ "Մ"
+ ]
+ },
+ {
+ "strings": [
+ "Շ"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "strings": [
+ "։"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "՜",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "՞",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ "՝"
+ ]
+ },
+ {
+ "strings": [
+ "։",
+ "!",
+ "?",
+ ",",
+ ".",
+ "֊",
+ "՜",
+ "՝",
+ "՞",
+ ":",
+ ";",
+ "@",
+ "ՙ",
+ "՚",
+ "՛",
+ "՟"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ "՝"
+ ]
+ },
+ {
+ "strings": [
+ "։",
+ "!",
+ "?",
+ ",",
+ ".",
+ "֊",
+ "՜",
+ "՝",
+ "՞",
+ ":",
+ ";",
+ "@",
+ "ՙ",
+ "՚",
+ "՛",
+ "՟"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..10095ce
--- /dev/null
+++ b/data/osk-layouts/ara.json
@@ -0,0 +1,793 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "ض"
+ ]
+ },
+ {
+ "strings": [
+ "ص"
+ ]
+ },
+ {
+ "strings": [
+ "ث"
+ ]
+ },
+ {
+ "strings": [
+ "ق",
+ "ڨ"
+ ]
+ },
+ {
+ "strings": [
+ "ف",
+ "ڤ",
+ "ڢ",
+ "ڥ"
+ ]
+ },
+ {
+ "strings": [
+ "غ"
+ ]
+ },
+ {
+ "strings": [
+ "ع"
+ ]
+ },
+ {
+ "strings": [
+ "ه",
+ "ه‍"
+ ]
+ },
+ {
+ "strings": [
+ "خ"
+ ]
+ },
+ {
+ "strings": [
+ "ح"
+ ]
+ },
+ {
+ "strings": [
+ "ج",
+ "چ"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ش",
+ "ڜ"
+ ]
+ },
+ {
+ "strings": [
+ "س"
+ ]
+ },
+ {
+ "strings": [
+ "ي",
+ "ئ",
+ "ى"
+ ]
+ },
+ {
+ "strings": [
+ "ب",
+ "پ"
+ ]
+ },
+ {
+ "strings": [
+ "ل",
+ "لا",
+ "لأ",
+ "لإ",
+ "لآ"
+ ]
+ },
+ {
+ "strings": [
+ "ا",
+ "آ",
+ "ء",
+ "أ",
+ "إ",
+ "ٱ"
+ ]
+ },
+ {
+ "strings": [
+ "ت"
+ ]
+ },
+ {
+ "strings": [
+ "ن"
+ ]
+ },
+ {
+ "strings": [
+ "م"
+ ]
+ },
+ {
+ "strings": [
+ "ك",
+ "گ",
+ "ک"
+ ]
+ },
+ {
+ "strings": [
+ "ط"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ذ"
+ ]
+ },
+ {
+ "strings": [
+ "ء"
+ ]
+ },
+ {
+ "strings": [
+ "ؤ"
+ ]
+ },
+ {
+ "strings": [
+ "ر"
+ ]
+ },
+ {
+ "strings": [
+ "ى",
+ "ئ"
+ ]
+ },
+ {
+ "strings": [
+ "ة"
+ ]
+ },
+ {
+ "strings": [
+ "و"
+ ]
+ },
+ {
+ "strings": [
+ "ز",
+ "ژ"
+ ]
+ },
+ {
+ "strings": [
+ "ظ"
+ ]
+ },
+ {
+ "strings": [
+ "د"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "،"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "\"",
+ "'",
+ "#",
+ "-",
+ ":",
+ "!",
+ "،",
+ "؟",
+ "@",
+ "&",
+ "%",
+ "+",
+ "؛",
+ "/",
+ ")",
+ "("
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "١",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "٢",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "٣",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "٤",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "٥",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "٦"
+ ]
+ },
+ {
+ "strings": [
+ "٧",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "٨"
+ ]
+ },
+ {
+ "strings": [
+ "٩"
+ ]
+ },
+ {
+ "strings": [
+ "٠",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "٪",
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "﴿",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ "﴾",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "★",
+ "٭"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ "؛",
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "؟",
+ "?"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ "،",
+ "؟",
+ "؛",
+ "!",
+ ":",
+ "-",
+ "/",
+ "'",
+ "\""
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "ٕ",
+ "ٔ",
+ "ْ",
+ "ٍ",
+ "ٌ",
+ "ً",
+ "ّ",
+ "ٖ",
+ "ٰ",
+ "ٓ",
+ "ِ",
+ "ُ",
+ "َ",
+ "ـ"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ "،",
+ "؟",
+ "؛",
+ "!",
+ ":",
+ "-",
+ "/",
+ "'",
+ "\""
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "ٕ",
+ "ٔ",
+ "ْ",
+ "ٍ",
+ "ٌ",
+ "ً",
+ "ّ",
+ "ٖ",
+ "ٰ",
+ "ٓ",
+ "ِ",
+ "ُ",
+ "َ",
+ "ـ"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "ar",
+ "name": "Arabic"
+} \ No newline at end of file
diff --git a/data/osk-layouts/at.json b/data/osk-layouts/at.json
new file mode 100644
index 0000000..511dc90
--- /dev/null
+++ b/data/osk-layouts/at.json
@@ -0,0 +1,978 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ė"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ü",
+ "û",
+ "ù",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ö",
+ "ô",
+ "ò",
+ "ó",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "ä",
+ "â",
+ "à",
+ "á",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß",
+ "ś",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ė"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Ä",
+ "Â",
+ "À",
+ "Á",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "SS",
+ "Ś",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "de-AT",
+ "name": "Austrian German"
+}
diff --git a/data/osk-layouts/be.json b/data/osk-layouts/be.json
new file mode 100644
index 0000000..6e4f75d
--- /dev/null
+++ b/data/osk-layouts/be.json
@@ -0,0 +1,1021 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "ä",
+ "â",
+ "à",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "ë",
+ "ê",
+ "è",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ÿ",
+ "ij"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "ī",
+ "ij"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "Ä",
+ "Â",
+ "À",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "Ë",
+ "Ê",
+ "È",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "Ÿ",
+ "IJ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Ï",
+ "Ì",
+ "Î",
+ "Į",
+ "Ī",
+ "IJ"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "ẞ"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "nl-BE",
+ "name": "Dutch (Belgium)"
+}
diff --git a/data/osk-layouts/bg.json b/data/osk-layouts/bg.json
new file mode 100644
index 0000000..fb7385d
--- /dev/null
+++ b/data/osk-layouts/bg.json
@@ -0,0 +1,955 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "я"
+ ]
+ },
+ {
+ "strings": [
+ "в"
+ ]
+ },
+ {
+ "strings": [
+ "е"
+ ]
+ },
+ {
+ "strings": [
+ "р"
+ ]
+ },
+ {
+ "strings": [
+ "т"
+ ]
+ },
+ {
+ "strings": [
+ "ъ"
+ ]
+ },
+ {
+ "strings": [
+ "у"
+ ]
+ },
+ {
+ "strings": [
+ "и",
+ "ѝ"
+ ]
+ },
+ {
+ "strings": [
+ "о"
+ ]
+ },
+ {
+ "strings": [
+ "п"
+ ]
+ },
+ {
+ "strings": [
+ "ч"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "а"
+ ]
+ },
+ {
+ "strings": [
+ "с"
+ ]
+ },
+ {
+ "strings": [
+ "д"
+ ]
+ },
+ {
+ "strings": [
+ "ф"
+ ]
+ },
+ {
+ "strings": [
+ "г"
+ ]
+ },
+ {
+ "strings": [
+ "х"
+ ]
+ },
+ {
+ "strings": [
+ "й"
+ ]
+ },
+ {
+ "strings": [
+ "к"
+ ]
+ },
+ {
+ "strings": [
+ "л"
+ ]
+ },
+ {
+ "strings": [
+ "ш"
+ ]
+ },
+ {
+ "strings": [
+ "щ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "з"
+ ]
+ },
+ {
+ "strings": [
+ "ь"
+ ]
+ },
+ {
+ "strings": [
+ "ц"
+ ]
+ },
+ {
+ "strings": [
+ "ж"
+ ]
+ },
+ {
+ "strings": [
+ "б"
+ ]
+ },
+ {
+ "strings": [
+ "н"
+ ]
+ },
+ {
+ "strings": [
+ "м"
+ ]
+ },
+ {
+ "strings": [
+ "ю"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Я"
+ ]
+ },
+ {
+ "strings": [
+ "В"
+ ]
+ },
+ {
+ "strings": [
+ "Е"
+ ]
+ },
+ {
+ "strings": [
+ "Р"
+ ]
+ },
+ {
+ "strings": [
+ "Т"
+ ]
+ },
+ {
+ "strings": [
+ "Ъ"
+ ]
+ },
+ {
+ "strings": [
+ "У"
+ ]
+ },
+ {
+ "strings": [
+ "И",
+ "Ѝ"
+ ]
+ },
+ {
+ "strings": [
+ "О"
+ ]
+ },
+ {
+ "strings": [
+ "П"
+ ]
+ },
+ {
+ "strings": [
+ "Ч"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "А"
+ ]
+ },
+ {
+ "strings": [
+ "С"
+ ]
+ },
+ {
+ "strings": [
+ "Д"
+ ]
+ },
+ {
+ "strings": [
+ "Ф"
+ ]
+ },
+ {
+ "strings": [
+ "Г"
+ ]
+ },
+ {
+ "strings": [
+ "Х"
+ ]
+ },
+ {
+ "strings": [
+ "Й"
+ ]
+ },
+ {
+ "strings": [
+ "К"
+ ]
+ },
+ {
+ "strings": [
+ "Л"
+ ]
+ },
+ {
+ "strings": [
+ "Ш"
+ ]
+ },
+ {
+ "strings": [
+ "Щ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "З"
+ ]
+ },
+ {
+ "strings": [
+ "Ь"
+ ]
+ },
+ {
+ "strings": [
+ "Ц"
+ ]
+ },
+ {
+ "strings": [
+ "Ж"
+ ]
+ },
+ {
+ "strings": [
+ "Б"
+ ]
+ },
+ {
+ "strings": [
+ "Н"
+ ]
+ },
+ {
+ "strings": [
+ "М"
+ ]
+ },
+ {
+ "strings": [
+ "Ю"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "bg",
+ "name": "Bulgarian"
+}
diff --git a/data/osk-layouts/by.json b/data/osk-layouts/by.json
new file mode 100644
index 0000000..25543eb
--- /dev/null
+++ b/data/osk-layouts/by.json
@@ -0,0 +1,965 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "й"
+ ]
+ },
+ {
+ "strings": [
+ "ц"
+ ]
+ },
+ {
+ "strings": [
+ "у"
+ ]
+ },
+ {
+ "strings": [
+ "к"
+ ]
+ },
+ {
+ "strings": [
+ "е",
+ "ё"
+ ]
+ },
+ {
+ "strings": [
+ "н"
+ ]
+ },
+ {
+ "strings": [
+ "г"
+ ]
+ },
+ {
+ "strings": [
+ "ш"
+ ]
+ },
+ {
+ "strings": [
+ "ў"
+ ]
+ },
+ {
+ "strings": [
+ "з"
+ ]
+ },
+ {
+ "strings": [
+ "х"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ф"
+ ]
+ },
+ {
+ "strings": [
+ "ы"
+ ]
+ },
+ {
+ "strings": [
+ "в"
+ ]
+ },
+ {
+ "strings": [
+ "а"
+ ]
+ },
+ {
+ "strings": [
+ "п"
+ ]
+ },
+ {
+ "strings": [
+ "р"
+ ]
+ },
+ {
+ "strings": [
+ "о"
+ ]
+ },
+ {
+ "strings": [
+ "л"
+ ]
+ },
+ {
+ "strings": [
+ "д"
+ ]
+ },
+ {
+ "strings": [
+ "ж"
+ ]
+ },
+ {
+ "strings": [
+ "э"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "я"
+ ]
+ },
+ {
+ "strings": [
+ "ч"
+ ]
+ },
+ {
+ "strings": [
+ "с"
+ ]
+ },
+ {
+ "strings": [
+ "м"
+ ]
+ },
+ {
+ "strings": [
+ "і"
+ ]
+ },
+ {
+ "strings": [
+ "т"
+ ]
+ },
+ {
+ "strings": [
+ "ь",
+ "ъ"
+ ]
+ },
+ {
+ "strings": [
+ "б"
+ ]
+ },
+ {
+ "strings": [
+ "ю"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Й"
+ ]
+ },
+ {
+ "strings": [
+ "Ц"
+ ]
+ },
+ {
+ "strings": [
+ "У"
+ ]
+ },
+ {
+ "strings": [
+ "К"
+ ]
+ },
+ {
+ "strings": [
+ "Е",
+ "Ё"
+ ]
+ },
+ {
+ "strings": [
+ "Н"
+ ]
+ },
+ {
+ "strings": [
+ "Г"
+ ]
+ },
+ {
+ "strings": [
+ "Ш"
+ ]
+ },
+ {
+ "strings": [
+ "Ў"
+ ]
+ },
+ {
+ "strings": [
+ "З"
+ ]
+ },
+ {
+ "strings": [
+ "Х"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "Ф"
+ ]
+ },
+ {
+ "strings": [
+ "Ы"
+ ]
+ },
+ {
+ "strings": [
+ "В"
+ ]
+ },
+ {
+ "strings": [
+ "А"
+ ]
+ },
+ {
+ "strings": [
+ "П"
+ ]
+ },
+ {
+ "strings": [
+ "Р"
+ ]
+ },
+ {
+ "strings": [
+ "О"
+ ]
+ },
+ {
+ "strings": [
+ "Л"
+ ]
+ },
+ {
+ "strings": [
+ "Д"
+ ]
+ },
+ {
+ "strings": [
+ "Ж"
+ ]
+ },
+ {
+ "strings": [
+ "Э"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Я"
+ ]
+ },
+ {
+ "strings": [
+ "Ч"
+ ]
+ },
+ {
+ "strings": [
+ "С"
+ ]
+ },
+ {
+ "strings": [
+ "М"
+ ]
+ },
+ {
+ "strings": [
+ "І"
+ ]
+ },
+ {
+ "strings": [
+ "Т"
+ ]
+ },
+ {
+ "strings": [
+ "Ь",
+ "Ъ"
+ ]
+ },
+ {
+ "strings": [
+ "Б"
+ ]
+ },
+ {
+ "strings": [
+ "Ю"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..230a6ba
--- /dev/null
+++ b/data/osk-layouts/ca.json
@@ -0,0 +1,1007 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "%",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "%",
+ "ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ù",
+ "û",
+ "%",
+ "ü",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "î",
+ "%",
+ "ï",
+ "ì",
+ "í",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ô",
+ "œ",
+ "%",
+ "ö",
+ "ò",
+ "ó",
+ "õ",
+ "ø",
+ "ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "à",
+ "â",
+ "%",
+ "æ",
+ "á",
+ "ä",
+ "ã",
+ "å",
+ "ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "%",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "%",
+ "Ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ù",
+ "Û",
+ "%",
+ "Ü",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Î",
+ "%",
+ "Ï",
+ "Ì",
+ "Í",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ô",
+ "Œ",
+ "%",
+ "Ö",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Ø",
+ "Ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "À",
+ "Â",
+ "%",
+ "Æ",
+ "Á",
+ "Ä",
+ "Ã",
+ "Å",
+ "Ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "fr-CA",
+ "name": "French Canada"
+}
diff --git a/data/osk-layouts/ch+fr.json b/data/osk-layouts/ch+fr.json
new file mode 100644
index 0000000..7735c2e
--- /dev/null
+++ b/data/osk-layouts/ch+fr.json
@@ -0,0 +1,978 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ė"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ü",
+ "û",
+ "ù",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ö",
+ "ô",
+ "ò",
+ "ó",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "ä",
+ "â",
+ "à",
+ "á",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß",
+ "ś",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ė"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Ä",
+ "Â",
+ "À",
+ "Á",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "SS",
+ "Ś",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "fr-CH",
+ "name": "Swiss French"
+}
diff --git a/data/osk-layouts/ch.json b/data/osk-layouts/ch.json
new file mode 100644
index 0000000..aa062b0
--- /dev/null
+++ b/data/osk-layouts/ch.json
@@ -0,0 +1,978 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ė"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ü",
+ "û",
+ "ù",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ö",
+ "ô",
+ "ò",
+ "ó",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "ä",
+ "â",
+ "à",
+ "á",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß",
+ "ś",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ė"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Ä",
+ "Â",
+ "À",
+ "Á",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "SS",
+ "Ś",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "de-CH",
+ "name": "Swiss German"
+}
diff --git a/data/osk-layouts/cz.json b/data/osk-layouts/cz.json
new file mode 100644
index 0000000..7a3d09a
--- /dev/null
+++ b/data/osk-layouts/cz.json
@@ -0,0 +1,1021 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "ě",
+ "è",
+ "ê",
+ "ë",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r",
+ "ř"
+ ]
+ },
+ {
+ "strings": [
+ "t",
+ "ť"
+ ]
+ },
+ {
+ "strings": [
+ "z",
+ "ž",
+ "ź",
+ "ż"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ů",
+ "û",
+ "ü",
+ "ù",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "î",
+ "ï",
+ "ì",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "à",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "š",
+ "ß",
+ "ś"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "ď"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "y",
+ "ý",
+ "ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "č",
+ "ç",
+ "ć"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ň",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "Ě",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R",
+ "Ř"
+ ]
+ },
+ {
+ "strings": [
+ "T",
+ "Ť"
+ ]
+ },
+ {
+ "strings": [
+ "Z",
+ "Ž",
+ "Ź",
+ "Ż"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ů",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Î",
+ "Ï",
+ "Ì",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Š",
+ "SS",
+ "Ś"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Ď"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ň",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "cs",
+ "name": "Czech"
+}
diff --git a/data/osk-layouts/de.json b/data/osk-layouts/de.json
new file mode 100644
index 0000000..d36e399
--- /dev/null
+++ b/data/osk-layouts/de.json
@@ -0,0 +1,978 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ė"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ü",
+ "û",
+ "ù",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ö",
+ "ô",
+ "ò",
+ "ó",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "ä",
+ "â",
+ "à",
+ "á",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß",
+ "ś",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ė"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Ä",
+ "Â",
+ "À",
+ "Á",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "SS",
+ "Ś",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "de",
+ "name": "German"
+}
diff --git a/data/osk-layouts/dk.json b/data/osk-layouts/dk.json
new file mode 100644
index 0000000..3b01ac8
--- /dev/null
+++ b/data/osk-layouts/dk.json
@@ -0,0 +1,1012 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "ë"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ý",
+ "ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "ï"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "strings": [
+ "å"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "ä",
+ "à",
+ "â",
+ "ã",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß",
+ "ś",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "ð"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l",
+ "ł"
+ ]
+ },
+ {
+ "strings": [
+ "æ",
+ "ä"
+ ]
+ },
+ {
+ "strings": [
+ "ø",
+ "ö"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "Ë"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Ï"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "strings": [
+ "Å"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "Ä",
+ "À",
+ "Â",
+ "Ã",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "SS",
+ "Ś",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Ð"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L",
+ "Ł"
+ ]
+ },
+ {
+ "strings": [
+ "Æ",
+ "Ä"
+ ]
+ },
+ {
+ "strings": [
+ "Ø",
+ "Ö"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "da",
+ "name": "Danish"
+}
diff --git a/data/osk-layouts/ee.json b/data/osk-layouts/ee.json
new file mode 100644
index 0000000..f858a62
--- /dev/null
+++ b/data/osk-layouts/ee.json
@@ -0,0 +1,1088 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "ē",
+ "è",
+ "ė",
+ "é",
+ "ê",
+ "ë",
+ "ę",
+ "ě"
+ ]
+ },
+ {
+ "strings": [
+ "r",
+ "ŗ",
+ "ř",
+ "ŕ"
+ ]
+ },
+ {
+ "strings": [
+ "t",
+ "ţ",
+ "ť"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ý",
+ "ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ü",
+ "ū",
+ "ų",
+ "ù",
+ "ú",
+ "û",
+ "ů",
+ "ű"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "ī",
+ "ì",
+ "į",
+ "í",
+ "î",
+ "ï",
+ "ı"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ö",
+ "õ",
+ "ò",
+ "ó",
+ "ô",
+ "œ",
+ "ő",
+ "ø"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "strings": [
+ "ü"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "ä",
+ "ā",
+ "à",
+ "á",
+ "â",
+ "ã",
+ "å",
+ "æ",
+ "ą"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "š",
+ "ß",
+ "ś",
+ "ş"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "ď"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g",
+ "ģ",
+ "ğ"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k",
+ "ķ"
+ ]
+ },
+ {
+ "strings": [
+ "l",
+ "ļ",
+ "ł",
+ "ĺ",
+ "ľ"
+ ]
+ },
+ {
+ "strings": [
+ "ö",
+ "õ"
+ ]
+ },
+ {
+ "strings": [
+ "ä"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "č",
+ "ç",
+ "ć"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ņ",
+ "ñ",
+ "ń",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "Ē",
+ "È",
+ "Ė",
+ "É",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ě"
+ ]
+ },
+ {
+ "strings": [
+ "R",
+ "Ŗ",
+ "Ř",
+ "Ŕ"
+ ]
+ },
+ {
+ "strings": [
+ "T",
+ "Ţ",
+ "Ť"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ü",
+ "Ū",
+ "Ų",
+ "Ù",
+ "Ú",
+ "Û",
+ "Ů",
+ "Ű"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Ī",
+ "Ì",
+ "Į",
+ "Í",
+ "Î",
+ "Ï",
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ö",
+ "Õ",
+ "Ò",
+ "Ó",
+ "Ô",
+ "Œ",
+ "Ő",
+ "Ø"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "strings": [
+ "Ü"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Ä",
+ "Ā",
+ "À",
+ "Á",
+ "Â",
+ "Ã",
+ "Å",
+ "Æ",
+ "Ą"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Š",
+ "SS",
+ "Ś",
+ "Ş"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Ď"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G",
+ "Ģ",
+ "Ğ"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K",
+ "Ķ"
+ ]
+ },
+ {
+ "strings": [
+ "L",
+ "Ļ",
+ "Ł",
+ "Ĺ",
+ "Ľ"
+ ]
+ },
+ {
+ "strings": [
+ "Ö",
+ "Õ"
+ ]
+ },
+ {
+ "strings": [
+ "Ä"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Z",
+ "Ž",
+ "Ż",
+ "Ź"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ņ",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "et",
+ "name": "Estonian"
+}
diff --git a/data/osk-layouts/epo.json b/data/osk-layouts/epo.json
new file mode 100644
index 0000000..a6d262c
--- /dev/null
+++ b/data/osk-layouts/epo.json
@@ -0,0 +1,1123 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "ŝ",
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "ĝ",
+ "w",
+ "ŵ"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "ě",
+ "è",
+ "ê",
+ "ë",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r",
+ "ř",
+ "ŕ",
+ "ŗ"
+ ]
+ },
+ {
+ "strings": [
+ "t",
+ "ť",
+ "ț",
+ "ţ",
+ "ŧ"
+ ]
+ },
+ {
+ "strings": [
+ "ŭ",
+ "y",
+ "ý",
+ "ŷ",
+ "ÿ",
+ "þ"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ů",
+ "û",
+ "ü",
+ "ù",
+ "ū",
+ "ũ",
+ "ű",
+ "ų",
+ "µ"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "î",
+ "ï",
+ "ĩ",
+ "ì",
+ "į",
+ "ī",
+ "ı",
+ "ij"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō",
+ "ő",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "à",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā",
+ "ă",
+ "ą",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß",
+ "š",
+ "ś",
+ "ș",
+ "ş"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "ð",
+ "ď",
+ "đ"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g",
+ "ğ",
+ "ġ",
+ "ģ"
+ ]
+ },
+ {
+ "strings": [
+ "h",
+ "ĥ",
+ "ħ"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k",
+ "ķ",
+ "ĸ"
+ ]
+ },
+ {
+ "strings": [
+ "l",
+ "ĺ",
+ "ļ",
+ "ľ",
+ "ŀ",
+ "ł"
+ ]
+ },
+ {
+ "strings": [
+ "ĵ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z",
+ "ź",
+ "ż",
+ "ž"
+ ]
+ },
+ {
+ "strings": [
+ "ĉ",
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ć",
+ "č",
+ "ç",
+ "ċ"
+ ]
+ },
+ {
+ "strings": [
+ "v",
+ "w",
+ "ŵ"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń",
+ "ņ",
+ "ň",
+ "ʼn",
+ "ŋ"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Ŝ",
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "Ĝ",
+ "W",
+ "Ŵ"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "Ě",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R",
+ "Ř",
+ "Ŕ",
+ "Ŗ"
+ ]
+ },
+ {
+ "strings": [
+ "T",
+ "Ť",
+ "Ț",
+ "Ţ",
+ "Ŧ"
+ ]
+ },
+ {
+ "strings": [
+ "Ŭ",
+ "Y",
+ "Ý",
+ "Ŷ",
+ "Ÿ",
+ "Þ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ů",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ū",
+ "Ũ",
+ "Ű",
+ "Ų",
+ "Μ"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Î",
+ "Ï",
+ "Ĩ",
+ "Ì",
+ "Į",
+ "Ī",
+ "I",
+ "IJ"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō",
+ "Ő",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā",
+ "Ă",
+ "Ą",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "SS",
+ "Š",
+ "Ś",
+ "Ș",
+ "Ş"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Ð",
+ "Ď",
+ "Đ"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G",
+ "Ğ",
+ "Ġ",
+ "Ģ"
+ ]
+ },
+ {
+ "strings": [
+ "H",
+ "Ĥ",
+ "Ħ"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K",
+ "Ķ",
+ "ĸ"
+ ]
+ },
+ {
+ "strings": [
+ "L",
+ "Ĺ",
+ "Ļ",
+ "Ľ",
+ "Ŀ",
+ "Ł"
+ ]
+ },
+ {
+ "strings": [
+ "Ĵ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z",
+ "Ź",
+ "Ż",
+ "Ž"
+ ]
+ },
+ {
+ "strings": [
+ "Ĉ",
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ć",
+ "Č",
+ "Ç",
+ "Ċ"
+ ]
+ },
+ {
+ "strings": [
+ "V",
+ "W",
+ "Ŵ"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń",
+ "Ņ",
+ "Ň",
+ "ʼN",
+ "Ŋ"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "eo",
+ "name": "Esperanto"
+}
diff --git a/data/osk-layouts/es+cat.json b/data/osk-layouts/es+cat.json
new file mode 100644
index 0000000..fab8d4e
--- /dev/null
+++ b/data/osk-layouts/es+cat.json
@@ -0,0 +1,1014 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "è",
+ "é",
+ "ë",
+ "ê",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ò",
+ "ó",
+ "ö",
+ "ô",
+ "õ",
+ "ø",
+ "œ",
+ "ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "à",
+ "á",
+ "ä",
+ "â",
+ "ã",
+ "å",
+ "ą",
+ "æ",
+ "ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l",
+ "l·l",
+ "ł"
+ ]
+ },
+ {
+ "strings": [
+ "ç"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "·",
+ "!",
+ ",",
+ "?",
+ ":",
+ ";",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "È",
+ "É",
+ "Ë",
+ "Ê",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Ï",
+ "Ì",
+ "Î",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ò",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Õ",
+ "Ø",
+ "Œ",
+ "Ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "À",
+ "Á",
+ "Ä",
+ "Â",
+ "Ã",
+ "Å",
+ "Ą",
+ "Æ",
+ "Ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L",
+ "L·L",
+ "Ł"
+ ]
+ },
+ {
+ "strings": [
+ "Ç"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "·",
+ "!",
+ ",",
+ "?",
+ ":",
+ ";",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "?",
+ "·"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "?",
+ "·"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "ca",
+ "name": "Catalan"
+}
diff --git a/data/osk-layouts/es.json b/data/osk-layouts/es.json
new file mode 100644
index 0000000..652c07f
--- /dev/null
+++ b/data/osk-layouts/es.json
@@ -0,0 +1,1016 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ë",
+ "ê",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ò",
+ "ö",
+ "ô",
+ "õ",
+ "ø",
+ "œ",
+ "ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "à",
+ "ä",
+ "â",
+ "ã",
+ "å",
+ "ą",
+ "æ",
+ "ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "strings": [
+ "ñ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ë",
+ "Ê",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Ï",
+ "Ì",
+ "Î",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ò",
+ "Ö",
+ "Ô",
+ "Õ",
+ "Ø",
+ "Œ",
+ "Ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "À",
+ "Ä",
+ "Â",
+ "Ã",
+ "Å",
+ "Ą",
+ "Æ",
+ "Ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "strings": [
+ "Ñ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ",",
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ",",
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "es",
+ "name": "Spanish"
+}
diff --git a/data/osk-layouts/fi.json b/data/osk-layouts/fi.json
new file mode 100644
index 0000000..b7d0d81
--- /dev/null
+++ b/data/osk-layouts/fi.json
@@ -0,0 +1,992 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ü"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ø",
+ "ô",
+ "ò",
+ "ó",
+ "õ",
+ "œ",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "strings": [
+ "å"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "æ",
+ "à",
+ "á",
+ "â",
+ "ã",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "š",
+ "ß",
+ "ś"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "strings": [
+ "ö",
+ "ø"
+ ]
+ },
+ {
+ "strings": [
+ "ä",
+ "æ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "z",
+ "ž",
+ "ź",
+ "ż"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ü"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ø",
+ "Ô",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Œ",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "strings": [
+ "Å"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Æ",
+ "À",
+ "Á",
+ "Â",
+ "Ã",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Š",
+ "SS",
+ "Ś"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "strings": [
+ "Ö",
+ "Ø"
+ ]
+ },
+ {
+ "strings": [
+ "Ä",
+ "Æ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Z",
+ "Ž",
+ "Ź",
+ "Ż"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "fi",
+ "name": "Finnish"
+}
diff --git a/data/osk-layouts/fr.json b/data/osk-layouts/fr.json
new file mode 100644
index 0000000..bf1ba86
--- /dev/null
+++ b/data/osk-layouts/fr.json
@@ -0,0 +1,1026 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "a",
+ "à",
+ "â",
+ "%",
+ "æ",
+ "á",
+ "ä",
+ "ã",
+ "å",
+ "ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "%",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "%",
+ "ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ù",
+ "û",
+ "%",
+ "ü",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "î",
+ "%",
+ "ï",
+ "ì",
+ "í",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ô",
+ "œ",
+ "%",
+ "ö",
+ "ò",
+ "ó",
+ "õ",
+ "ø",
+ "ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "A",
+ "À",
+ "Â",
+ "%",
+ "Æ",
+ "Á",
+ "Ä",
+ "Ã",
+ "Å",
+ "Ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "%",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "%",
+ "Ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ù",
+ "Û",
+ "%",
+ "Ü",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Î",
+ "%",
+ "Ï",
+ "Ì",
+ "Í",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ô",
+ "Œ",
+ "%",
+ "Ö",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Ø",
+ "Ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "fr",
+ "name": "French"
+}
diff --git a/data/osk-layouts/ge.json b/data/osk-layouts/ge.json
new file mode 100644
index 0000000..7bc88d5
--- /dev/null
+++ b/data/osk-layouts/ge.json
@@ -0,0 +1,705 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "ქ"
+ ]
+ },
+ {
+ "strings": [
+ "წ"
+ ]
+ },
+ {
+ "strings": [
+ "ე",
+ "ჱ"
+ ]
+ },
+ {
+ "strings": [
+ "რ"
+ ]
+ },
+ {
+ "strings": [
+ "ტ"
+ ]
+ },
+ {
+ "strings": [
+ "ყ",
+ "ჸ"
+ ]
+ },
+ {
+ "strings": [
+ "უ"
+ ]
+ },
+ {
+ "strings": [
+ "ი",
+ "ჲ"
+ ]
+ },
+ {
+ "strings": [
+ "ო"
+ ]
+ },
+ {
+ "strings": [
+ "პ"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ა",
+ "ჺ"
+ ]
+ },
+ {
+ "strings": [
+ "ს"
+ ]
+ },
+ {
+ "strings": [
+ "დ"
+ ]
+ },
+ {
+ "strings": [
+ "ფ",
+ "ჶ"
+ ]
+ },
+ {
+ "strings": [
+ "გ",
+ "ჹ"
+ ]
+ },
+ {
+ "strings": [
+ "ჰ",
+ "ჵ"
+ ]
+ },
+ {
+ "strings": [
+ "ჯ",
+ "ჷ"
+ ]
+ },
+ {
+ "strings": [
+ "კ"
+ ]
+ },
+ {
+ "strings": [
+ "ლ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ზ"
+ ]
+ },
+ {
+ "strings": [
+ "ხ",
+ "ჴ"
+ ]
+ },
+ {
+ "strings": [
+ "ც"
+ ]
+ },
+ {
+ "strings": [
+ "ვ",
+ "ჳ"
+ ]
+ },
+ {
+ "strings": [
+ "ბ"
+ ]
+ },
+ {
+ "strings": [
+ "ნ",
+ "ჼ"
+ ]
+ },
+ {
+ "strings": [
+ "მ"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "ka",
+ "name": "Georgian"
+}
diff --git a/data/osk-layouts/gr.json b/data/osk-layouts/gr.json
new file mode 100644
index 0000000..a60a186
--- /dev/null
+++ b/data/osk-layouts/gr.json
@@ -0,0 +1,940 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ ";",
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ "ς"
+ ]
+ },
+ {
+ "strings": [
+ "ε",
+ "έ"
+ ]
+ },
+ {
+ "strings": [
+ "ρ"
+ ]
+ },
+ {
+ "strings": [
+ "τ"
+ ]
+ },
+ {
+ "strings": [
+ "υ",
+ "ύ",
+ "ϋ",
+ "ΰ"
+ ]
+ },
+ {
+ "strings": [
+ "θ"
+ ]
+ },
+ {
+ "strings": [
+ "ι",
+ "ί",
+ "ϊ",
+ "ΐ"
+ ]
+ },
+ {
+ "strings": [
+ "ο",
+ "ό"
+ ]
+ },
+ {
+ "strings": [
+ "π"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "α",
+ "ά"
+ ]
+ },
+ {
+ "strings": [
+ "σ"
+ ]
+ },
+ {
+ "strings": [
+ "δ"
+ ]
+ },
+ {
+ "strings": [
+ "φ"
+ ]
+ },
+ {
+ "strings": [
+ "γ"
+ ]
+ },
+ {
+ "strings": [
+ "η",
+ "ή"
+ ]
+ },
+ {
+ "strings": [
+ "ξ"
+ ]
+ },
+ {
+ "strings": [
+ "κ"
+ ]
+ },
+ {
+ "strings": [
+ "λ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "ζ"
+ ]
+ },
+ {
+ "strings": [
+ "χ"
+ ]
+ },
+ {
+ "strings": [
+ "ψ"
+ ]
+ },
+ {
+ "strings": [
+ "ω",
+ "ώ"
+ ]
+ },
+ {
+ "strings": [
+ "β"
+ ]
+ },
+ {
+ "strings": [
+ "ν"
+ ]
+ },
+ {
+ "strings": [
+ "μ"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ ";",
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ "Σ"
+ ]
+ },
+ {
+ "strings": [
+ "Ε",
+ "Έ"
+ ]
+ },
+ {
+ "strings": [
+ "Ρ"
+ ]
+ },
+ {
+ "strings": [
+ "Τ"
+ ]
+ },
+ {
+ "strings": [
+ "Υ",
+ "Ύ",
+ "Ϋ",
+ "Ϋ́"
+ ]
+ },
+ {
+ "strings": [
+ "Θ"
+ ]
+ },
+ {
+ "strings": [
+ "Ι",
+ "Ί",
+ "Ϊ",
+ "Ϊ́"
+ ]
+ },
+ {
+ "strings": [
+ "Ο",
+ "Ό"
+ ]
+ },
+ {
+ "strings": [
+ "Π"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "Α",
+ "Ά"
+ ]
+ },
+ {
+ "strings": [
+ "Σ"
+ ]
+ },
+ {
+ "strings": [
+ "Δ"
+ ]
+ },
+ {
+ "strings": [
+ "Φ"
+ ]
+ },
+ {
+ "strings": [
+ "Γ"
+ ]
+ },
+ {
+ "strings": [
+ "Η",
+ "Ή"
+ ]
+ },
+ {
+ "strings": [
+ "Ξ"
+ ]
+ },
+ {
+ "strings": [
+ "Κ"
+ ]
+ },
+ {
+ "strings": [
+ "Λ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Ζ"
+ ]
+ },
+ {
+ "strings": [
+ "Χ"
+ ]
+ },
+ {
+ "strings": [
+ "Ψ"
+ ]
+ },
+ {
+ "strings": [
+ "Ω",
+ "Ώ"
+ ]
+ },
+ {
+ "strings": [
+ "Β"
+ ]
+ },
+ {
+ "strings": [
+ "Ν"
+ ]
+ },
+ {
+ "strings": [
+ "Μ"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "el",
+ "name": "Greek"
+}
diff --git a/data/osk-layouts/hr.json b/data/osk-layouts/hr.json
new file mode 100644
index 0000000..444014b
--- /dev/null
+++ b/data/osk-layouts/hr.json
@@ -0,0 +1,939 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "z",
+ "ž",
+ "ź",
+ "ż"
+ ]
+ },
+ {
+ "strings": [
+ "u"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "š",
+ "ś",
+ "ß"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "đ"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "č",
+ "ć",
+ "ç"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Z",
+ "Ž",
+ "Ź",
+ "Ż"
+ ]
+ },
+ {
+ "strings": [
+ "U"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Š",
+ "Ś",
+ "SS"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Đ"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Č",
+ "Ć",
+ "Ç"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "hr",
+ "name": "Croatian"
+}
diff --git a/data/osk-layouts/hu.json b/data/osk-layouts/hu.json
new file mode 100644
index 0000000..f45f31c
--- /dev/null
+++ b/data/osk-layouts/hu.json
@@ -0,0 +1,987 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ü",
+ "ű",
+ "û",
+ "ù",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "î",
+ "ï",
+ "ì",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ö",
+ "ő",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "à",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ü",
+ "Ű",
+ "Û",
+ "Ù",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Î",
+ "Ï",
+ "Ì",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ö",
+ "Ő",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "hu",
+ "name": "Hungarian"
+}
diff --git a/data/osk-layouts/id.json b/data/osk-layouts/id.json
new file mode 100644
index 0000000..6d57095
--- /dev/null
+++ b/data/osk-layouts/id.json
@@ -0,0 +1,915 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "id",
+ "name": "Indonesian"
+}
diff --git a/data/osk-layouts/il.json b/data/osk-layouts/il.json
new file mode 100644
index 0000000..d797b74
--- /dev/null
+++ b/data/osk-layouts/il.json
@@ -0,0 +1,718 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "'",
+ "\""
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "ק"
+ ]
+ },
+ {
+ "strings": [
+ "ר"
+ ]
+ },
+ {
+ "strings": [
+ "א"
+ ]
+ },
+ {
+ "strings": [
+ "ט"
+ ]
+ },
+ {
+ "strings": [
+ "ו"
+ ]
+ },
+ {
+ "strings": [
+ "ן"
+ ]
+ },
+ {
+ "strings": [
+ "ם"
+ ]
+ },
+ {
+ "strings": [
+ "פ"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ש"
+ ]
+ },
+ {
+ "strings": [
+ "ד"
+ ]
+ },
+ {
+ "strings": [
+ "ג",
+ "ג׳"
+ ]
+ },
+ {
+ "strings": [
+ "כ"
+ ]
+ },
+ {
+ "strings": [
+ "ע"
+ ]
+ },
+ {
+ "strings": [
+ "י",
+ "ײַ"
+ ]
+ },
+ {
+ "strings": [
+ "ח",
+ "ח׳"
+ ]
+ },
+ {
+ "strings": [
+ "ל"
+ ]
+ },
+ {
+ "strings": [
+ "ך"
+ ]
+ },
+ {
+ "strings": [
+ "ף"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ז",
+ "ז׳"
+ ]
+ },
+ {
+ "strings": [
+ "ס"
+ ]
+ },
+ {
+ "strings": [
+ "ב"
+ ]
+ },
+ {
+ "strings": [
+ "ה"
+ ]
+ },
+ {
+ "strings": [
+ "נ"
+ ]
+ },
+ {
+ "strings": [
+ "מ"
+ ]
+ },
+ {
+ "strings": [
+ "צ",
+ "צ׳"
+ ]
+ },
+ {
+ "strings": [
+ "ת",
+ "ת׳"
+ ]
+ },
+ {
+ "strings": [
+ "ץ",
+ "ץ׳"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "₪",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±",
+ "﬩"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ",",
+ "!"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "?"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ",",
+ "!"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "?"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..e280633
--- /dev/null
+++ b/data/osk-layouts/in+bolnagri.json
@@ -0,0 +1,745 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "◌ौ"
+ ]
+ },
+ {
+ "strings": [
+ "◌ै"
+ ]
+ },
+ {
+ "strings": [
+ "◌ा"
+ ]
+ },
+ {
+ "strings": [
+ "◌ी"
+ ]
+ },
+ {
+ "strings": [
+ "◌ू"
+ ]
+ },
+ {
+ "strings": [
+ "ब",
+ "ब॒",
+ "%"
+ ]
+ },
+ {
+ "strings": [
+ "ह"
+ ]
+ },
+ {
+ "strings": [
+ "ग",
+ "ज्ञ",
+ "ग़",
+ "ग॒",
+ "%"
+ ]
+ },
+ {
+ "strings": [
+ "द"
+ ]
+ },
+ {
+ "strings": [
+ "ज",
+ "ज॒",
+ "ज्ञ",
+ "ज़",
+ "%"
+ ]
+ },
+ {
+ "strings": [
+ "ड",
+ "ड॒",
+ "ड़"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "◌ो"
+ ]
+ },
+ {
+ "strings": [
+ "◌े"
+ ]
+ },
+ {
+ "strings": [
+ "◌्"
+ ]
+ },
+ {
+ "strings": [
+ "◌ि"
+ ]
+ },
+ {
+ "strings": [
+ "◌ु"
+ ]
+ },
+ {
+ "strings": [
+ "प"
+ ]
+ },
+ {
+ "strings": [
+ "र",
+ "ऋ",
+ "ऱ",
+ "ॠ"
+ ]
+ },
+ {
+ "strings": [
+ "क",
+ "क़"
+ ]
+ },
+ {
+ "strings": [
+ "त",
+ "त्र"
+ ]
+ },
+ {
+ "strings": [
+ "च"
+ ]
+ },
+ {
+ "strings": [
+ "ट"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "◌ॉ"
+ ]
+ },
+ {
+ "strings": [
+ "◌ं"
+ ]
+ },
+ {
+ "strings": [
+ "म",
+ "ॐ"
+ ]
+ },
+ {
+ "strings": [
+ "न",
+ "ञ",
+ "ङ",
+ "ऩ"
+ ]
+ },
+ {
+ "strings": [
+ "व"
+ ]
+ },
+ {
+ "strings": [
+ "ल",
+ "ऌ",
+ "ॡ"
+ ]
+ },
+ {
+ "strings": [
+ "स"
+ ]
+ },
+ {
+ "strings": [
+ "य",
+ "य़"
+ ]
+ },
+ {
+ "strings": [
+ "◌़"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "१",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "२",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "३",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "४",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "५",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "६"
+ ]
+ },
+ {
+ "strings": [
+ "७",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "८"
+ ]
+ },
+ {
+ "strings": [
+ "९"
+ ]
+ },
+ {
+ "strings": [
+ "०",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "₹",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "hi",
+ "name": "Hindi"
+}
diff --git a/data/osk-layouts/in+mal.json b/data/osk-layouts/in+mal.json
new file mode 100644
index 0000000..49dcd6b
--- /dev/null
+++ b/data/osk-layouts/in+mal.json
@@ -0,0 +1,986 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "ൌ"
+ ]
+ },
+ {
+ "strings": [
+ "ൈ"
+ ]
+ },
+ {
+ "strings": [
+ "ാ"
+ ]
+ },
+ {
+ "strings": [
+ "ീ"
+ ]
+ },
+ {
+ "strings": [
+ "ൂ"
+ ]
+ },
+ {
+ "strings": [
+ "ബ"
+ ]
+ },
+ {
+ "strings": [
+ "ഹ"
+ ]
+ },
+ {
+ "strings": [
+ "ഗ"
+ ]
+ },
+ {
+ "strings": [
+ "ദ"
+ ]
+ },
+ {
+ "strings": [
+ "ജ"
+ ]
+ },
+ {
+ "strings": [
+ "ഡ"
+ ]
+ },
+ {
+ "label": "ZWJ",
+ "strings": [
+ "‍"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ോ"
+ ]
+ },
+ {
+ "strings": [
+ "േ"
+ ]
+ },
+ {
+ "strings": [
+ "്"
+ ]
+ },
+ {
+ "strings": [
+ "ി"
+ ]
+ },
+ {
+ "strings": [
+ "ു"
+ ]
+ },
+ {
+ "strings": [
+ "പ"
+ ]
+ },
+ {
+ "strings": [
+ "ര"
+ ]
+ },
+ {
+ "strings": [
+ "ക"
+ ]
+ },
+ {
+ "strings": [
+ "ത"
+ ]
+ },
+ {
+ "strings": [
+ "ച"
+ ]
+ },
+ {
+ "strings": [
+ "ട"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1
+ },
+ {
+ "strings": [
+ "െ"
+ ]
+ },
+ {
+ "strings": [
+ "ം"
+ ]
+ },
+ {
+ "strings": [
+ "മ",
+ "ç"
+ ]
+ },
+ {
+ "strings": [
+ "ന"
+ ]
+ },
+ {
+ "strings": [
+ "വ"
+ ]
+ },
+ {
+ "strings": [
+ "ല",
+ "ñ"
+ ]
+ },
+ {
+ "strings": [
+ "സ"
+ ]
+ },
+ {
+ "strings": [
+ "ഷ"
+ ]
+ },
+ {
+ "strings": [
+ "യ"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 7
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "ഐ"
+ ]
+ },
+ {
+ "strings": [
+ "ആ"
+ ]
+ },
+ {
+ "strings": [
+ "ഈ"
+ ]
+ },
+ {
+ "strings": [
+ "ഊ"
+ ]
+ },
+ {
+ "strings": [
+ "ഭ"
+ ]
+ },
+ {
+ "strings": [
+ "ങ"
+ ]
+ },
+ {
+ "strings": [
+ "ഘ"
+ ]
+ },
+ {
+ "strings": [
+ "ധ"
+ ]
+ },
+ {
+ "strings": [
+ "ഝ"
+ ]
+ },
+ {
+ "strings": [
+ "ഢ"
+ ]
+ },
+ {
+ "strings": [
+ "ഞ"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 2.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ഓ"
+ ]
+ },
+ {
+ "strings": [
+ "ഏ"
+ ]
+ },
+ {
+ "strings": [
+ "അ"
+ ]
+ },
+ {
+ "strings": [
+ "ഇ"
+ ]
+ },
+ {
+ "strings": [
+ "ഉ"
+ ]
+ },
+ {
+ "strings": [
+ "ഫ"
+ ]
+ },
+ {
+ "strings": [
+ "റ"
+ ]
+ },
+ {
+ "strings": [
+ "ഖ"
+ ]
+ },
+ {
+ "strings": [
+ "ഥ"
+ ]
+ },
+ {
+ "strings": [
+ "ഛ"
+ ]
+ },
+ {
+ "strings": [
+ "ഠ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "എ"
+ ]
+ },
+ {
+ "label": "ZWJ",
+ "strings": [
+ "​"
+ ]
+ },
+ {
+ "strings": [
+ "ണ"
+ ]
+ },
+ {
+ "strings": [
+ "ന"
+ ]
+ },
+ {
+ "strings": [
+ "ഴ"
+ ]
+ },
+ {
+ "strings": [
+ "ള"
+ ]
+ },
+ {
+ "strings": [
+ "ശ"
+ ]
+ },
+ {
+ "strings": [
+ "ഷ"
+ ]
+ },
+ {
+ "strings": [
+ "യ"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 7
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "൧",
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "൨",
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "൩",
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "൪",
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "൫",
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "൬",
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "൭",
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "൮",
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "൯",
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "൦",
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "₹",
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "ml",
+ "name": "Malayalam"
+}
diff --git a/data/osk-layouts/ir.json b/data/osk-layouts/ir.json
new file mode 100644
index 0000000..eab25bb
--- /dev/null
+++ b/data/osk-layouts/ir.json
@@ -0,0 +1,797 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "ض"
+ ]
+ },
+ {
+ "strings": [
+ "ص"
+ ]
+ },
+ {
+ "strings": [
+ "ث"
+ ]
+ },
+ {
+ "strings": [
+ "ق",
+ "ڨ"
+ ]
+ },
+ {
+ "strings": [
+ "ف",
+ "ڤ",
+ "ڢ",
+ "ڥ"
+ ]
+ },
+ {
+ "strings": [
+ "غ"
+ ]
+ },
+ {
+ "strings": [
+ "ع"
+ ]
+ },
+ {
+ "strings": [
+ "ه",
+ "ه‍"
+ ]
+ },
+ {
+ "strings": [
+ "خ"
+ ]
+ },
+ {
+ "strings": [
+ "ح"
+ ]
+ },
+ {
+ "strings": [
+ "ج",
+ "چ"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ش",
+ "ڜ"
+ ]
+ },
+ {
+ "strings": [
+ "س"
+ ]
+ },
+ {
+ "strings": [
+ "ي",
+ "ئ",
+ "ى"
+ ]
+ },
+ {
+ "strings": [
+ "ب",
+ "پ"
+ ]
+ },
+ {
+ "strings": [
+ "ل",
+ "لا",
+ "لأ",
+ "لإ",
+ "لآ"
+ ]
+ },
+ {
+ "strings": [
+ "ا",
+ "آ",
+ "ء",
+ "أ",
+ "إ",
+ "ٱ"
+ ]
+ },
+ {
+ "strings": [
+ "ت"
+ ]
+ },
+ {
+ "strings": [
+ "ن"
+ ]
+ },
+ {
+ "strings": [
+ "م"
+ ]
+ },
+ {
+ "strings": [
+ "ك",
+ "گ",
+ "ک"
+ ]
+ },
+ {
+ "strings": [
+ "ط"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ذ"
+ ]
+ },
+ {
+ "strings": [
+ "ء"
+ ]
+ },
+ {
+ "strings": [
+ "ؤ"
+ ]
+ },
+ {
+ "strings": [
+ "ر"
+ ]
+ },
+ {
+ "strings": [
+ "ى",
+ "ئ"
+ ]
+ },
+ {
+ "strings": [
+ "ة"
+ ]
+ },
+ {
+ "strings": [
+ "و"
+ ]
+ },
+ {
+ "strings": [
+ "ز",
+ "ژ"
+ ]
+ },
+ {
+ "strings": [
+ "ظ"
+ ]
+ },
+ {
+ "strings": [
+ "د"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "،"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "\"",
+ "'",
+ "#",
+ "-",
+ ":",
+ "!",
+ "،",
+ "؟",
+ "@",
+ "&",
+ "%",
+ "+",
+ "؛",
+ "/",
+ ")",
+ "("
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "۱",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "۲",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "۳",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "۴",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "۵",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "۶"
+ ]
+ },
+ {
+ "strings": [
+ "۷",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "۸"
+ ]
+ },
+ {
+ "strings": [
+ "۹"
+ ]
+ },
+ {
+ "strings": [
+ "۰",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "٬",
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "٫",
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "﷼",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "٪",
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "﴿",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ "﴾",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "★",
+ "٭"
+ ]
+ },
+ {
+ "strings": [
+ "«",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "»",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ "؛",
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "؟",
+ "?"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ "،",
+ ":",
+ "!",
+ "؟",
+ "؛",
+ "-",
+ "/",
+ "»",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "ٕ",
+ "ٔ",
+ "ْ",
+ "ٍ",
+ "ٌ",
+ "ً",
+ "ّ",
+ "ٖ",
+ "ٰ",
+ "ٓ",
+ "ِ",
+ "ُ",
+ "َ",
+ "ـ"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "«",
+ "›",
+ "≥",
+ ">"
+ ]
+ },
+ {
+ "strings": [
+ "»",
+ "‹",
+ "≤",
+ "<"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ "،",
+ ":",
+ "!",
+ "؟",
+ "؛",
+ "-",
+ "/",
+ "»",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "ٕ",
+ "ٔ",
+ "ْ",
+ "ٍ",
+ "ٌ",
+ "ً",
+ "ّ",
+ "ٖ",
+ "ٰ",
+ "ٓ",
+ "ِ",
+ "ُ",
+ "َ",
+ "ـ"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..ac3176c
--- /dev/null
+++ b/data/osk-layouts/is.json
@@ -0,0 +1,991 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "ë",
+ "è",
+ "ê",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t",
+ "þ"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ý",
+ "ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "ï",
+ "î",
+ "ì",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "ä",
+ "æ",
+ "å",
+ "à",
+ "â",
+ "ã",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "ð"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "Ë",
+ "È",
+ "Ê",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T",
+ "Þ"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Ï",
+ "Î",
+ "Ì",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "Ä",
+ "Æ",
+ "Å",
+ "À",
+ "Â",
+ "Ã",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Ð"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "is",
+ "name": "Icelandic"
+}
diff --git a/data/osk-layouts/it.json b/data/osk-layouts/it.json
new file mode 100644
index 0000000..781aa0f
--- /dev/null
+++ b/data/osk-layouts/it.json
@@ -0,0 +1,988 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ù",
+ "ú",
+ "û",
+ "ü",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "ì",
+ "í",
+ "î",
+ "ï",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ò",
+ "ó",
+ "ô",
+ "ö",
+ "õ",
+ "œ",
+ "ø",
+ "ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "à",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ù",
+ "Ú",
+ "Û",
+ "Ü",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Ì",
+ "Í",
+ "Î",
+ "Ï",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ò",
+ "Ó",
+ "Ô",
+ "Ö",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "À",
+ "Á",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "it",
+ "name": "Italian"
+}
diff --git a/data/osk-layouts/ke.json b/data/osk-layouts/ke.json
new file mode 100644
index 0000000..de7b8fc
--- /dev/null
+++ b/data/osk-layouts/ke.json
@@ -0,0 +1,985 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "û",
+ "ü",
+ "ù",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "î",
+ "ï",
+ "í",
+ "ī",
+ "ì"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ô",
+ "ö",
+ "ò",
+ "ó",
+ "œ",
+ "ø",
+ "ō",
+ "õ"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "à",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g",
+ "g'"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Î",
+ "Ï",
+ "Í",
+ "Ī",
+ "Ì"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ô",
+ "Ö",
+ "Ò",
+ "Ó",
+ "Œ",
+ "Ø",
+ "Ō",
+ "Õ"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "À",
+ "Á",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "SS"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G",
+ "G'"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "sw",
+ "name": "Swahili"
+}
diff --git a/data/osk-layouts/kg.json b/data/osk-layouts/kg.json
new file mode 100644
index 0000000..1f806ad
--- /dev/null
+++ b/data/osk-layouts/kg.json
@@ -0,0 +1,971 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "й"
+ ]
+ },
+ {
+ "strings": [
+ "ц"
+ ]
+ },
+ {
+ "strings": [
+ "у",
+ "ү"
+ ]
+ },
+ {
+ "strings": [
+ "к"
+ ]
+ },
+ {
+ "strings": [
+ "е",
+ "ё"
+ ]
+ },
+ {
+ "strings": [
+ "н",
+ "ң"
+ ]
+ },
+ {
+ "strings": [
+ "г"
+ ]
+ },
+ {
+ "strings": [
+ "ш"
+ ]
+ },
+ {
+ "strings": [
+ "щ"
+ ]
+ },
+ {
+ "strings": [
+ "з"
+ ]
+ },
+ {
+ "strings": [
+ "х"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ф"
+ ]
+ },
+ {
+ "strings": [
+ "ы"
+ ]
+ },
+ {
+ "strings": [
+ "в"
+ ]
+ },
+ {
+ "strings": [
+ "а"
+ ]
+ },
+ {
+ "strings": [
+ "п"
+ ]
+ },
+ {
+ "strings": [
+ "р"
+ ]
+ },
+ {
+ "strings": [
+ "о",
+ "ө"
+ ]
+ },
+ {
+ "strings": [
+ "л"
+ ]
+ },
+ {
+ "strings": [
+ "д"
+ ]
+ },
+ {
+ "strings": [
+ "ж"
+ ]
+ },
+ {
+ "strings": [
+ "э"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "я"
+ ]
+ },
+ {
+ "strings": [
+ "ч"
+ ]
+ },
+ {
+ "strings": [
+ "с"
+ ]
+ },
+ {
+ "strings": [
+ "м"
+ ]
+ },
+ {
+ "strings": [
+ "и"
+ ]
+ },
+ {
+ "strings": [
+ "т"
+ ]
+ },
+ {
+ "strings": [
+ "ь",
+ "ъ"
+ ]
+ },
+ {
+ "strings": [
+ "б"
+ ]
+ },
+ {
+ "strings": [
+ "ю"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Й"
+ ]
+ },
+ {
+ "strings": [
+ "Ц"
+ ]
+ },
+ {
+ "strings": [
+ "У",
+ "Ү"
+ ]
+ },
+ {
+ "strings": [
+ "К"
+ ]
+ },
+ {
+ "strings": [
+ "Е",
+ "Ё"
+ ]
+ },
+ {
+ "strings": [
+ "Н",
+ "Ң"
+ ]
+ },
+ {
+ "strings": [
+ "Г"
+ ]
+ },
+ {
+ "strings": [
+ "Ш"
+ ]
+ },
+ {
+ "strings": [
+ "Щ"
+ ]
+ },
+ {
+ "strings": [
+ "З"
+ ]
+ },
+ {
+ "strings": [
+ "Х"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "Ф"
+ ]
+ },
+ {
+ "strings": [
+ "Ы"
+ ]
+ },
+ {
+ "strings": [
+ "В"
+ ]
+ },
+ {
+ "strings": [
+ "А"
+ ]
+ },
+ {
+ "strings": [
+ "П"
+ ]
+ },
+ {
+ "strings": [
+ "Р"
+ ]
+ },
+ {
+ "strings": [
+ "О",
+ "Ө"
+ ]
+ },
+ {
+ "strings": [
+ "Л"
+ ]
+ },
+ {
+ "strings": [
+ "Д"
+ ]
+ },
+ {
+ "strings": [
+ "Ж"
+ ]
+ },
+ {
+ "strings": [
+ "Э"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Я"
+ ]
+ },
+ {
+ "strings": [
+ "Ч"
+ ]
+ },
+ {
+ "strings": [
+ "С"
+ ]
+ },
+ {
+ "strings": [
+ "М"
+ ]
+ },
+ {
+ "strings": [
+ "И"
+ ]
+ },
+ {
+ "strings": [
+ "Т"
+ ]
+ },
+ {
+ "strings": [
+ "Ь",
+ "Ъ"
+ ]
+ },
+ {
+ "strings": [
+ "Б"
+ ]
+ },
+ {
+ "strings": [
+ "Ю"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..78591b5
--- /dev/null
+++ b/data/osk-layouts/kh.json
@@ -0,0 +1,817 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "១",
+ "៱"
+ ]
+ },
+ {
+ "strings": [
+ "២",
+ "៲"
+ ]
+ },
+ {
+ "strings": [
+ "៣",
+ "៳"
+ ]
+ },
+ {
+ "strings": [
+ "៤",
+ "៴"
+ ]
+ },
+ {
+ "strings": [
+ "៥",
+ "៵"
+ ]
+ },
+ {
+ "strings": [
+ "៦",
+ "៶"
+ ]
+ },
+ {
+ "strings": [
+ "៧",
+ "៷"
+ ]
+ },
+ {
+ "strings": [
+ "៨",
+ "៸"
+ ]
+ },
+ {
+ "strings": [
+ "៩",
+ "៹"
+ ]
+ },
+ {
+ "strings": [
+ "០",
+ "៰"
+ ]
+ },
+ {
+ "strings": [
+ "ឥ",
+ "",
+ "ឦ"
+ ]
+ },
+ {
+ "strings": [
+ "ឲ",
+ "ឱ"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ឆ"
+ ]
+ },
+ {
+ "strings": [
+ "ឹ"
+ ]
+ },
+ {
+ "strings": [
+ "េ"
+ ]
+ },
+ {
+ "strings": [
+ "រ"
+ ]
+ },
+ {
+ "strings": [
+ "ត"
+ ]
+ },
+ {
+ "strings": [
+ "យ"
+ ]
+ },
+ {
+ "strings": [
+ "ុ"
+ ]
+ },
+ {
+ "strings": [
+ "ិ"
+ ]
+ },
+ {
+ "strings": [
+ "ោ"
+ ]
+ },
+ {
+ "strings": [
+ "ផ"
+ ]
+ },
+ {
+ "strings": [
+ "ៀ"
+ ]
+ },
+ {
+ "strings": [
+ "ឪ",
+ "ឧ",
+ "ឱ",
+ "ឳ",
+ "ឩ",
+ "ឨ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ា"
+ ]
+ },
+ {
+ "strings": [
+ "ស"
+ ]
+ },
+ {
+ "strings": [
+ "ដ"
+ ]
+ },
+ {
+ "strings": [
+ "ថ"
+ ]
+ },
+ {
+ "strings": [
+ "ង"
+ ]
+ },
+ {
+ "strings": [
+ "ហ"
+ ]
+ },
+ {
+ "strings": [
+ "្"
+ ]
+ },
+ {
+ "strings": [
+ "ក"
+ ]
+ },
+ {
+ "strings": [
+ "ល"
+ ]
+ },
+ {
+ "strings": [
+ "ើ"
+ ]
+ },
+ {
+ "strings": [
+ "់"
+ ]
+ },
+ {
+ "strings": [
+ "ឮ",
+ "ឭ",
+ "ឰ"
+ ]
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ឋ"
+ ]
+ },
+ {
+ "strings": [
+ "ខ"
+ ]
+ },
+ {
+ "strings": [
+ "ច"
+ ]
+ },
+ {
+ "strings": [
+ "វ"
+ ]
+ },
+ {
+ "strings": [
+ "ប"
+ ]
+ },
+ {
+ "strings": [
+ "ន"
+ ]
+ },
+ {
+ "strings": [
+ "ម"
+ ]
+ },
+ {
+ "strings": [
+ "ុំ"
+ ]
+ },
+ {
+ "strings": [
+ "។"
+ ]
+ },
+ {
+ "strings": [
+ "៊"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 7
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "៛",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "km",
+ "name": "Khmer"
+}
diff --git a/data/osk-layouts/kr.json b/data/osk-layouts/kr.json
new file mode 100644
index 0000000..d89f8c7
--- /dev/null
+++ b/data/osk-layouts/kr.json
@@ -0,0 +1,720 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "label": "ㅂ",
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "label": "ㅈ",
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "label": "ㄷ",
+ "strings": [
+ "e"
+ ]
+ },
+ {
+ "label": "ㄱ",
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "label": "ㅅ",
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "label": "ㅛ",
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "label": "ㅕ",
+ "strings": [
+ "u"
+ ]
+ },
+ {
+ "label": "ㅑ",
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "label": "ㅐ",
+ "strings": [
+ "o"
+ ]
+ },
+ {
+ "label": "ㅔ",
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "iconName": "edit-clear-symbolic",
+ "keyval": "0xff08",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "label": "ㅁ",
+ "strings": [
+ "a"
+ ]
+ },
+ {
+ "label": "ㄴ",
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "label": "ㅇ",
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "label": "ㄹ",
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "label": "ㅎ",
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "label": "ㅗ",
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "label": "ㅓ",
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "label": "ㅏ",
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "label": "ㅣ",
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "label": "ㅋ",
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "label": "ㅌ",
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "label": "ㅊ",
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "label": "ㅍ",
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "label": "ㅠ",
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "label": "ㅜ",
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "label": "ㅡ",
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "iconName": "edit-clear-symbolic",
+ "keyval": "0xff08",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "iconName": "edit-clear-symbolic",
+ "keyval": "0xff08",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "kr",
+ "name": "Korean (Hangul)"
+}
diff --git a/data/osk-layouts/la.json b/data/osk-layouts/la.json
new file mode 100644
index 0000000..65f0fee
--- /dev/null
+++ b/data/osk-layouts/la.json
@@ -0,0 +1,808 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "ຢ",
+ "໑"
+ ]
+ },
+ {
+ "strings": [
+ "ຟ",
+ "໒"
+ ]
+ },
+ {
+ "strings": [
+ "ໂ",
+ "໓"
+ ]
+ },
+ {
+ "strings": [
+ "ຖ",
+ "໔"
+ ]
+ },
+ {
+ "strings": [
+ "ຸ"
+ ]
+ },
+ {
+ "strings": [
+ "ູ"
+ ]
+ },
+ {
+ "strings": [
+ "ຄ",
+ "໕"
+ ]
+ },
+ {
+ "strings": [
+ "ຕ",
+ "໖"
+ ]
+ },
+ {
+ "strings": [
+ "ຈ",
+ "໗"
+ ]
+ },
+ {
+ "strings": [
+ "ຂ",
+ "໘"
+ ]
+ },
+ {
+ "strings": [
+ "ຊ",
+ "໙"
+ ]
+ },
+ {
+ "strings": [
+ "ໍ"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ົ"
+ ]
+ },
+ {
+ "strings": [
+ "ໄ",
+ "໐"
+ ]
+ },
+ {
+ "strings": [
+ "ຳ"
+ ]
+ },
+ {
+ "strings": [
+ "ພ"
+ ]
+ },
+ {
+ "strings": [
+ "ະ"
+ ]
+ },
+ {
+ "strings": [
+ "ິ"
+ ]
+ },
+ {
+ "strings": [
+ "ີ"
+ ]
+ },
+ {
+ "strings": [
+ "ຮ"
+ ]
+ },
+ {
+ "strings": [
+ "ນ"
+ ]
+ },
+ {
+ "strings": [
+ "ຍ"
+ ]
+ },
+ {
+ "strings": [
+ "ບ"
+ ]
+ },
+ {
+ "strings": [
+ "ລ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ັ"
+ ]
+ },
+ {
+ "strings": [
+ "ຫ"
+ ]
+ },
+ {
+ "strings": [
+ "ກ"
+ ]
+ },
+ {
+ "strings": [
+ "ດ"
+ ]
+ },
+ {
+ "strings": [
+ "ເ"
+ ]
+ },
+ {
+ "strings": [
+ "້"
+ ]
+ },
+ {
+ "strings": [
+ "່"
+ ]
+ },
+ {
+ "strings": [
+ "າ"
+ ]
+ },
+ {
+ "strings": [
+ "ສ"
+ ]
+ },
+ {
+ "strings": [
+ "ວ"
+ ]
+ },
+ {
+ "strings": [
+ "ງ"
+ ]
+ },
+ {
+ "strings": [
+ "“"
+ ]
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ຜ"
+ ]
+ },
+ {
+ "strings": [
+ "ປ"
+ ]
+ },
+ {
+ "strings": [
+ "ແ"
+ ]
+ },
+ {
+ "strings": [
+ "ອ"
+ ]
+ },
+ {
+ "strings": [
+ "ຶ"
+ ]
+ },
+ {
+ "strings": [
+ "ື"
+ ]
+ },
+ {
+ "strings": [
+ "ທ"
+ ]
+ },
+ {
+ "strings": [
+ "ມ"
+ ]
+ },
+ {
+ "strings": [
+ "ໃ"
+ ]
+ },
+ {
+ "strings": [
+ "ຝ"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 7
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "₭",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "lo",
+ "name": "Lao"
+}
diff --git a/data/osk-layouts/latam.json b/data/osk-layouts/latam.json
new file mode 100644
index 0000000..01c67f8
--- /dev/null
+++ b/data/osk-layouts/latam.json
@@ -0,0 +1,1015 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ë",
+ "ê",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ò",
+ "ö",
+ "ô",
+ "õ",
+ "ø",
+ "œ",
+ "ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "à",
+ "ä",
+ "â",
+ "ã",
+ "å",
+ "ą",
+ "æ",
+ "ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "strings": [
+ "ñ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ë",
+ "Ê",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Ï",
+ "Ì",
+ "Î",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ò",
+ "Ö",
+ "Ô",
+ "Õ",
+ "Ø",
+ "Œ",
+ "Ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "À",
+ "Ä",
+ "Â",
+ "Ã",
+ "Å",
+ "Ą",
+ "Æ",
+ "Ā",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "strings": [
+ "Ñ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ",",
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ",",
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "es-US",
+ "name": "Spanish United States"
+}
diff --git a/data/osk-layouts/lt.json b/data/osk-layouts/lt.json
new file mode 100644
index 0000000..3f678b5
--- /dev/null
+++ b/data/osk-layouts/lt.json
@@ -0,0 +1,1055 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "ė",
+ "ę",
+ "ē",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ě"
+ ]
+ },
+ {
+ "strings": [
+ "r",
+ "ŗ",
+ "ř",
+ "ŕ"
+ ]
+ },
+ {
+ "strings": [
+ "t",
+ "ţ",
+ "ť"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ý",
+ "ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ū",
+ "ų",
+ "ü",
+ "ū",
+ "ù",
+ "ú",
+ "û",
+ "ů",
+ "ű"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "į",
+ "ī",
+ "ì",
+ "í",
+ "î",
+ "ï",
+ "ı"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ö",
+ "õ",
+ "ò",
+ "ó",
+ "ô",
+ "œ",
+ "ő",
+ "ø"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "ą",
+ "ä",
+ "ā",
+ "à",
+ "á",
+ "â",
+ "ã",
+ "å",
+ "æ"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "š",
+ "ß",
+ "ś",
+ "ş"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "ď"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g",
+ "ģ",
+ "ğ"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k",
+ "ķ"
+ ]
+ },
+ {
+ "strings": [
+ "l",
+ "ļ",
+ "ł",
+ "ĺ",
+ "ľ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "č",
+ "ç",
+ "ć"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ņ",
+ "ñ",
+ "ń",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "Ė",
+ "Ę",
+ "Ē",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ě"
+ ]
+ },
+ {
+ "strings": [
+ "R",
+ "Ŗ",
+ "Ř",
+ "Ŕ"
+ ]
+ },
+ {
+ "strings": [
+ "T",
+ "Ţ",
+ "Ť"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ū",
+ "Ų",
+ "Ü",
+ "Ū",
+ "Ù",
+ "Ú",
+ "Û",
+ "Ů",
+ "Ű"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Į",
+ "Ī",
+ "Ì",
+ "Í",
+ "Î",
+ "Ï",
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ö",
+ "Õ",
+ "Ò",
+ "Ó",
+ "Ô",
+ "Œ",
+ "Ő",
+ "Ø"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Ą",
+ "Ä",
+ "Ā",
+ "À",
+ "Á",
+ "Â",
+ "Ã",
+ "Å",
+ "Æ"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Š",
+ "SS",
+ "Ś",
+ "Ş"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Ď"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G",
+ "Ģ",
+ "Ğ"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K",
+ "Ķ"
+ ]
+ },
+ {
+ "strings": [
+ "L",
+ "Ļ",
+ "Ł",
+ "Ĺ",
+ "Ľ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z",
+ "Ž",
+ "Ż",
+ "Ź"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ņ",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "lt",
+ "name": "Lithuanian"
+}
diff --git a/data/osk-layouts/lv.json b/data/osk-layouts/lv.json
new file mode 100644
index 0000000..c3141ff
--- /dev/null
+++ b/data/osk-layouts/lv.json
@@ -0,0 +1,1053 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "ē",
+ "ė",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ę",
+ "ě"
+ ]
+ },
+ {
+ "strings": [
+ "r",
+ "ŗ",
+ "ř",
+ "ŕ"
+ ]
+ },
+ {
+ "strings": [
+ "t",
+ "ţ",
+ "ť"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ý",
+ "ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ū",
+ "ų",
+ "ù",
+ "ú",
+ "û",
+ "ü",
+ "ů",
+ "ű"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "ī",
+ "į",
+ "ì",
+ "í",
+ "î",
+ "ï",
+ "ı"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ò",
+ "ó",
+ "ô",
+ "õ",
+ "ö",
+ "œ",
+ "ő",
+ "ø"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "ā",
+ "à",
+ "á",
+ "â",
+ "ã",
+ "ä",
+ "å",
+ "æ",
+ "ą"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "š",
+ "ß",
+ "ś",
+ "ş"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "ď"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g",
+ "ģ",
+ "ğ"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k",
+ "ķ"
+ ]
+ },
+ {
+ "strings": [
+ "l",
+ "ļ",
+ "ł",
+ "ĺ",
+ "ľ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "č",
+ "ç",
+ "ć"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ņ",
+ "ñ",
+ "ń",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "Ē",
+ "Ė",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ě"
+ ]
+ },
+ {
+ "strings": [
+ "R",
+ "Ŗ",
+ "Ř",
+ "Ŕ"
+ ]
+ },
+ {
+ "strings": [
+ "T",
+ "Ţ",
+ "Ť"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ū",
+ "Ų",
+ "Ù",
+ "Ú",
+ "Û",
+ "Ü",
+ "Ů",
+ "Ű"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Ī",
+ "Į",
+ "Ì",
+ "Í",
+ "Î",
+ "Ï",
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ò",
+ "Ó",
+ "Ô",
+ "Õ",
+ "Ö",
+ "Œ",
+ "Ő",
+ "Ø"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Ā",
+ "À",
+ "Á",
+ "Â",
+ "Ã",
+ "Ä",
+ "Å",
+ "Æ",
+ "Ą"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Š",
+ "SS",
+ "Ś",
+ "Ş"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Ď"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G",
+ "Ģ",
+ "Ğ"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K",
+ "Ķ"
+ ]
+ },
+ {
+ "strings": [
+ "L",
+ "Ļ",
+ "Ł",
+ "Ĺ",
+ "Ľ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z",
+ "Ž",
+ "Ż",
+ "Ź"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ņ",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "lv",
+ "name": "Latvian"
+}
diff --git a/data/osk-layouts/mk.json b/data/osk-layouts/mk.json
new file mode 100644
index 0000000..0c20ead
--- /dev/null
+++ b/data/osk-layouts/mk.json
@@ -0,0 +1,965 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "љ"
+ ]
+ },
+ {
+ "strings": [
+ "њ"
+ ]
+ },
+ {
+ "strings": [
+ "е",
+ "ѐ"
+ ]
+ },
+ {
+ "strings": [
+ "р"
+ ]
+ },
+ {
+ "strings": [
+ "т"
+ ]
+ },
+ {
+ "strings": [
+ "ѕ"
+ ]
+ },
+ {
+ "strings": [
+ "у"
+ ]
+ },
+ {
+ "strings": [
+ "и",
+ "ѝ"
+ ]
+ },
+ {
+ "strings": [
+ "о"
+ ]
+ },
+ {
+ "strings": [
+ "п"
+ ]
+ },
+ {
+ "strings": [
+ "ш"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "а"
+ ]
+ },
+ {
+ "strings": [
+ "с"
+ ]
+ },
+ {
+ "strings": [
+ "д"
+ ]
+ },
+ {
+ "strings": [
+ "ф"
+ ]
+ },
+ {
+ "strings": [
+ "г"
+ ]
+ },
+ {
+ "strings": [
+ "х"
+ ]
+ },
+ {
+ "strings": [
+ "ј"
+ ]
+ },
+ {
+ "strings": [
+ "к"
+ ]
+ },
+ {
+ "strings": [
+ "л"
+ ]
+ },
+ {
+ "strings": [
+ "ч"
+ ]
+ },
+ {
+ "strings": [
+ "ќ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "з"
+ ]
+ },
+ {
+ "strings": [
+ "џ"
+ ]
+ },
+ {
+ "strings": [
+ "ц"
+ ]
+ },
+ {
+ "strings": [
+ "в"
+ ]
+ },
+ {
+ "strings": [
+ "б"
+ ]
+ },
+ {
+ "strings": [
+ "н"
+ ]
+ },
+ {
+ "strings": [
+ "м"
+ ]
+ },
+ {
+ "strings": [
+ "ѓ"
+ ]
+ },
+ {
+ "strings": [
+ "ж"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Љ"
+ ]
+ },
+ {
+ "strings": [
+ "Њ"
+ ]
+ },
+ {
+ "strings": [
+ "Е",
+ "Ѐ"
+ ]
+ },
+ {
+ "strings": [
+ "Р"
+ ]
+ },
+ {
+ "strings": [
+ "Т"
+ ]
+ },
+ {
+ "strings": [
+ "Ѕ"
+ ]
+ },
+ {
+ "strings": [
+ "У"
+ ]
+ },
+ {
+ "strings": [
+ "И",
+ "Ѝ"
+ ]
+ },
+ {
+ "strings": [
+ "О"
+ ]
+ },
+ {
+ "strings": [
+ "П"
+ ]
+ },
+ {
+ "strings": [
+ "Ш"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "А"
+ ]
+ },
+ {
+ "strings": [
+ "С"
+ ]
+ },
+ {
+ "strings": [
+ "Д"
+ ]
+ },
+ {
+ "strings": [
+ "Ф"
+ ]
+ },
+ {
+ "strings": [
+ "Г"
+ ]
+ },
+ {
+ "strings": [
+ "Х"
+ ]
+ },
+ {
+ "strings": [
+ "Ј"
+ ]
+ },
+ {
+ "strings": [
+ "К"
+ ]
+ },
+ {
+ "strings": [
+ "Л"
+ ]
+ },
+ {
+ "strings": [
+ "Ч"
+ ]
+ },
+ {
+ "strings": [
+ "Ќ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "З"
+ ]
+ },
+ {
+ "strings": [
+ "Џ"
+ ]
+ },
+ {
+ "strings": [
+ "Ц"
+ ]
+ },
+ {
+ "strings": [
+ "В"
+ ]
+ },
+ {
+ "strings": [
+ "Б"
+ ]
+ },
+ {
+ "strings": [
+ "Н"
+ ]
+ },
+ {
+ "strings": [
+ "М"
+ ]
+ },
+ {
+ "strings": [
+ "Ѓ"
+ ]
+ },
+ {
+ "strings": [
+ "Ж"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..9cf41f5
--- /dev/null
+++ b/data/osk-layouts/mn.json
@@ -0,0 +1,971 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "ф"
+ ]
+ },
+ {
+ "strings": [
+ "ц"
+ ]
+ },
+ {
+ "strings": [
+ "у"
+ ]
+ },
+ {
+ "strings": [
+ "ж"
+ ]
+ },
+ {
+ "strings": [
+ "э"
+ ]
+ },
+ {
+ "strings": [
+ "н"
+ ]
+ },
+ {
+ "strings": [
+ "г"
+ ]
+ },
+ {
+ "strings": [
+ "ш",
+ "щ"
+ ]
+ },
+ {
+ "strings": [
+ "ү"
+ ]
+ },
+ {
+ "strings": [
+ "з"
+ ]
+ },
+ {
+ "strings": [
+ "к"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "й"
+ ]
+ },
+ {
+ "strings": [
+ "ы"
+ ]
+ },
+ {
+ "strings": [
+ "б"
+ ]
+ },
+ {
+ "strings": [
+ "ө"
+ ]
+ },
+ {
+ "strings": [
+ "а"
+ ]
+ },
+ {
+ "strings": [
+ "х"
+ ]
+ },
+ {
+ "strings": [
+ "р"
+ ]
+ },
+ {
+ "strings": [
+ "о"
+ ]
+ },
+ {
+ "strings": [
+ "л"
+ ]
+ },
+ {
+ "strings": [
+ "д"
+ ]
+ },
+ {
+ "strings": [
+ "п"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "я"
+ ]
+ },
+ {
+ "strings": [
+ "ч"
+ ]
+ },
+ {
+ "strings": [
+ "ё",
+ "е"
+ ]
+ },
+ {
+ "strings": [
+ "с"
+ ]
+ },
+ {
+ "strings": [
+ "м"
+ ]
+ },
+ {
+ "strings": [
+ "и"
+ ]
+ },
+ {
+ "strings": [
+ "т"
+ ]
+ },
+ {
+ "strings": [
+ "ь",
+ "ъ"
+ ]
+ },
+ {
+ "strings": [
+ "в",
+ "ю"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Ф"
+ ]
+ },
+ {
+ "strings": [
+ "Ц"
+ ]
+ },
+ {
+ "strings": [
+ "У"
+ ]
+ },
+ {
+ "strings": [
+ "Ж"
+ ]
+ },
+ {
+ "strings": [
+ "Э"
+ ]
+ },
+ {
+ "strings": [
+ "Н"
+ ]
+ },
+ {
+ "strings": [
+ "Г"
+ ]
+ },
+ {
+ "strings": [
+ "Ш",
+ "Щ"
+ ]
+ },
+ {
+ "strings": [
+ "Ү"
+ ]
+ },
+ {
+ "strings": [
+ "З"
+ ]
+ },
+ {
+ "strings": [
+ "К"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "Й"
+ ]
+ },
+ {
+ "strings": [
+ "Ы"
+ ]
+ },
+ {
+ "strings": [
+ "Б"
+ ]
+ },
+ {
+ "strings": [
+ "Ө"
+ ]
+ },
+ {
+ "strings": [
+ "А"
+ ]
+ },
+ {
+ "strings": [
+ "Х"
+ ]
+ },
+ {
+ "strings": [
+ "Р"
+ ]
+ },
+ {
+ "strings": [
+ "О"
+ ]
+ },
+ {
+ "strings": [
+ "Л"
+ ]
+ },
+ {
+ "strings": [
+ "Д"
+ ]
+ },
+ {
+ "strings": [
+ "П"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Я"
+ ]
+ },
+ {
+ "strings": [
+ "Ч"
+ ]
+ },
+ {
+ "strings": [
+ "Ё",
+ "Е"
+ ]
+ },
+ {
+ "strings": [
+ "С"
+ ]
+ },
+ {
+ "strings": [
+ "М"
+ ]
+ },
+ {
+ "strings": [
+ "И"
+ ]
+ },
+ {
+ "strings": [
+ "Т"
+ ]
+ },
+ {
+ "strings": [
+ "Ь",
+ "Ъ"
+ ]
+ },
+ {
+ "strings": [
+ "В",
+ "Ю"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "₮",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..1aedf20
--- /dev/null
+++ b/data/osk-layouts/my.json
@@ -0,0 +1,915 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "ms",
+ "name": "Malay"
+}
diff --git a/data/osk-layouts/nl.json b/data/osk-layouts/nl.json
new file mode 100644
index 0000000..61bd4dd
--- /dev/null
+++ b/data/osk-layouts/nl.json
@@ -0,0 +1,992 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "ë",
+ "ê",
+ "è",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ij"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "ī",
+ "ij"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "ä",
+ "â",
+ "à",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "Ë",
+ "Ê",
+ "È",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "IJ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Ï",
+ "Ì",
+ "Î",
+ "Į",
+ "Ī",
+ "IJ"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "Ä",
+ "Â",
+ "À",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "nl",
+ "name": "Dutch"
+}
diff --git a/data/osk-layouts/no.json b/data/osk-layouts/no.json
new file mode 100644
index 0000000..4be4522
--- /dev/null
+++ b/data/osk-layouts/no.json
@@ -0,0 +1,1012 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "ë"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ý",
+ "ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "ï"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "strings": [
+ "å"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "ä",
+ "à",
+ "â",
+ "ã",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß",
+ "ś",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "ð"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l",
+ "ł"
+ ]
+ },
+ {
+ "strings": [
+ "ø",
+ "ö"
+ ]
+ },
+ {
+ "strings": [
+ "æ",
+ "ä"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "Ë"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Ï"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "strings": [
+ "Å"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "Ä",
+ "À",
+ "Â",
+ "Ã",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "SS",
+ "Ś",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Ð"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L",
+ "Ł"
+ ]
+ },
+ {
+ "strings": [
+ "Ø",
+ "Ö"
+ ]
+ },
+ {
+ "strings": [
+ "Æ",
+ "Ä"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..0dbe4f2
--- /dev/null
+++ b/data/osk-layouts/ph.json
@@ -0,0 +1,915 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "fil",
+ "name": "Filipino"
+}
diff --git a/data/osk-layouts/pl.json b/data/osk-layouts/pl.json
new file mode 100644
index 0000000..b8019b1
--- /dev/null
+++ b/data/osk-layouts/pl.json
@@ -0,0 +1,987 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "ę",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "ą",
+ "á",
+ "à",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ś",
+ "ß",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l",
+ "ł"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z",
+ "ż",
+ "ź",
+ "ž"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ć",
+ "ç",
+ "č"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ń",
+ "ñ"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "Ę",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Ą",
+ "Á",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Ś",
+ "SS",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L",
+ "Ł"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z",
+ "Ż",
+ "Ź",
+ "Ž"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ć",
+ "Ç",
+ "Č"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ń",
+ "Ñ"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "pl",
+ "name": "Polish"
+}
diff --git a/data/osk-layouts/pt.json b/data/osk-layouts/pt.json
new file mode 100644
index 0000000..11c8c6d
--- /dev/null
+++ b/data/osk-layouts/pt.json
@@ -0,0 +1,992 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "ê",
+ "è",
+ "ę",
+ "ė",
+ "ē",
+ "ë"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "î",
+ "ì",
+ "ï",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "õ",
+ "ô",
+ "ò",
+ "ö",
+ "œ",
+ "ø",
+ "ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "ã",
+ "à",
+ "â",
+ "ä",
+ "å",
+ "æ",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç",
+ "č",
+ "ć"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "Ê",
+ "È",
+ "Ę",
+ "Ė",
+ "Ē",
+ "Ë"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Î",
+ "Ì",
+ "Ï",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Õ",
+ "Ô",
+ "Ò",
+ "Ö",
+ "Œ",
+ "Ø",
+ "Ō",
+ "º"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "Ã",
+ "À",
+ "Â",
+ "Ä",
+ "Å",
+ "Æ",
+ "ª"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç",
+ "Č",
+ "Ć"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "pt-PT",
+ "name": "Portuguese Portugal"
+}
diff --git a/data/osk-layouts/ro.json b/data/osk-layouts/ro.json
new file mode 100644
index 0000000..3af77e8
--- /dev/null
+++ b/data/osk-layouts/ro.json
@@ -0,0 +1,955 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t",
+ "ț"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "î",
+ "ï",
+ "ì",
+ "í",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "â",
+ "ã",
+ "ă",
+ "à",
+ "á",
+ "ä",
+ "æ",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ș",
+ "ß",
+ "ś",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T",
+ "Ț"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Î",
+ "Ï",
+ "Ì",
+ "Í",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Â",
+ "Ã",
+ "Ă",
+ "À",
+ "Á",
+ "Ä",
+ "Æ",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Ș",
+ "SS",
+ "Ś",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "ro",
+ "name": "Romanian"
+}
diff --git a/data/osk-layouts/rs.json b/data/osk-layouts/rs.json
new file mode 100644
index 0000000..f0cdb28
--- /dev/null
+++ b/data/osk-layouts/rs.json
@@ -0,0 +1,965 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "љ"
+ ]
+ },
+ {
+ "strings": [
+ "њ"
+ ]
+ },
+ {
+ "strings": [
+ "е",
+ "ѐ"
+ ]
+ },
+ {
+ "strings": [
+ "р"
+ ]
+ },
+ {
+ "strings": [
+ "т"
+ ]
+ },
+ {
+ "strings": [
+ "з"
+ ]
+ },
+ {
+ "strings": [
+ "у"
+ ]
+ },
+ {
+ "strings": [
+ "и",
+ "ѝ"
+ ]
+ },
+ {
+ "strings": [
+ "о"
+ ]
+ },
+ {
+ "strings": [
+ "п"
+ ]
+ },
+ {
+ "strings": [
+ "ш"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "а"
+ ]
+ },
+ {
+ "strings": [
+ "с"
+ ]
+ },
+ {
+ "strings": [
+ "д"
+ ]
+ },
+ {
+ "strings": [
+ "ф"
+ ]
+ },
+ {
+ "strings": [
+ "г"
+ ]
+ },
+ {
+ "strings": [
+ "х"
+ ]
+ },
+ {
+ "strings": [
+ "ј"
+ ]
+ },
+ {
+ "strings": [
+ "к"
+ ]
+ },
+ {
+ "strings": [
+ "л"
+ ]
+ },
+ {
+ "strings": [
+ "ч"
+ ]
+ },
+ {
+ "strings": [
+ "ћ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "ѕ"
+ ]
+ },
+ {
+ "strings": [
+ "џ"
+ ]
+ },
+ {
+ "strings": [
+ "ц"
+ ]
+ },
+ {
+ "strings": [
+ "в"
+ ]
+ },
+ {
+ "strings": [
+ "б"
+ ]
+ },
+ {
+ "strings": [
+ "н"
+ ]
+ },
+ {
+ "strings": [
+ "м"
+ ]
+ },
+ {
+ "strings": [
+ "ђ"
+ ]
+ },
+ {
+ "strings": [
+ "ж"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Љ"
+ ]
+ },
+ {
+ "strings": [
+ "Њ"
+ ]
+ },
+ {
+ "strings": [
+ "Е",
+ "Ѐ"
+ ]
+ },
+ {
+ "strings": [
+ "Р"
+ ]
+ },
+ {
+ "strings": [
+ "Т"
+ ]
+ },
+ {
+ "strings": [
+ "З"
+ ]
+ },
+ {
+ "strings": [
+ "У"
+ ]
+ },
+ {
+ "strings": [
+ "И",
+ "Ѝ"
+ ]
+ },
+ {
+ "strings": [
+ "О"
+ ]
+ },
+ {
+ "strings": [
+ "П"
+ ]
+ },
+ {
+ "strings": [
+ "Ш"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "А"
+ ]
+ },
+ {
+ "strings": [
+ "С"
+ ]
+ },
+ {
+ "strings": [
+ "Д"
+ ]
+ },
+ {
+ "strings": [
+ "Ф"
+ ]
+ },
+ {
+ "strings": [
+ "Г"
+ ]
+ },
+ {
+ "strings": [
+ "Х"
+ ]
+ },
+ {
+ "strings": [
+ "Ј"
+ ]
+ },
+ {
+ "strings": [
+ "К"
+ ]
+ },
+ {
+ "strings": [
+ "Л"
+ ]
+ },
+ {
+ "strings": [
+ "Ч"
+ ]
+ },
+ {
+ "strings": [
+ "Ћ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Ѕ"
+ ]
+ },
+ {
+ "strings": [
+ "Џ"
+ ]
+ },
+ {
+ "strings": [
+ "Ц"
+ ]
+ },
+ {
+ "strings": [
+ "В"
+ ]
+ },
+ {
+ "strings": [
+ "Б"
+ ]
+ },
+ {
+ "strings": [
+ "Н"
+ ]
+ },
+ {
+ "strings": [
+ "М"
+ ]
+ },
+ {
+ "strings": [
+ "Ђ"
+ ]
+ },
+ {
+ "strings": [
+ "Ж"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..154c22e
--- /dev/null
+++ b/data/osk-layouts/ru.json
@@ -0,0 +1,965 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "й"
+ ]
+ },
+ {
+ "strings": [
+ "ц"
+ ]
+ },
+ {
+ "strings": [
+ "у"
+ ]
+ },
+ {
+ "strings": [
+ "к"
+ ]
+ },
+ {
+ "strings": [
+ "е",
+ "ё"
+ ]
+ },
+ {
+ "strings": [
+ "н"
+ ]
+ },
+ {
+ "strings": [
+ "г"
+ ]
+ },
+ {
+ "strings": [
+ "ш"
+ ]
+ },
+ {
+ "strings": [
+ "щ"
+ ]
+ },
+ {
+ "strings": [
+ "з"
+ ]
+ },
+ {
+ "strings": [
+ "х"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ф"
+ ]
+ },
+ {
+ "strings": [
+ "ы"
+ ]
+ },
+ {
+ "strings": [
+ "в"
+ ]
+ },
+ {
+ "strings": [
+ "а"
+ ]
+ },
+ {
+ "strings": [
+ "п"
+ ]
+ },
+ {
+ "strings": [
+ "р"
+ ]
+ },
+ {
+ "strings": [
+ "о"
+ ]
+ },
+ {
+ "strings": [
+ "л"
+ ]
+ },
+ {
+ "strings": [
+ "д"
+ ]
+ },
+ {
+ "strings": [
+ "ж"
+ ]
+ },
+ {
+ "strings": [
+ "э"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "я"
+ ]
+ },
+ {
+ "strings": [
+ "ч"
+ ]
+ },
+ {
+ "strings": [
+ "с"
+ ]
+ },
+ {
+ "strings": [
+ "м"
+ ]
+ },
+ {
+ "strings": [
+ "и"
+ ]
+ },
+ {
+ "strings": [
+ "т"
+ ]
+ },
+ {
+ "strings": [
+ "ь",
+ "ъ"
+ ]
+ },
+ {
+ "strings": [
+ "б"
+ ]
+ },
+ {
+ "strings": [
+ "ю"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Й"
+ ]
+ },
+ {
+ "strings": [
+ "Ц"
+ ]
+ },
+ {
+ "strings": [
+ "У"
+ ]
+ },
+ {
+ "strings": [
+ "К"
+ ]
+ },
+ {
+ "strings": [
+ "Е",
+ "Ё"
+ ]
+ },
+ {
+ "strings": [
+ "Н"
+ ]
+ },
+ {
+ "strings": [
+ "Г"
+ ]
+ },
+ {
+ "strings": [
+ "Ш"
+ ]
+ },
+ {
+ "strings": [
+ "Щ"
+ ]
+ },
+ {
+ "strings": [
+ "З"
+ ]
+ },
+ {
+ "strings": [
+ "Х"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "Ф"
+ ]
+ },
+ {
+ "strings": [
+ "Ы"
+ ]
+ },
+ {
+ "strings": [
+ "В"
+ ]
+ },
+ {
+ "strings": [
+ "А"
+ ]
+ },
+ {
+ "strings": [
+ "П"
+ ]
+ },
+ {
+ "strings": [
+ "Р"
+ ]
+ },
+ {
+ "strings": [
+ "О"
+ ]
+ },
+ {
+ "strings": [
+ "Л"
+ ]
+ },
+ {
+ "strings": [
+ "Д"
+ ]
+ },
+ {
+ "strings": [
+ "Ж"
+ ]
+ },
+ {
+ "strings": [
+ "Э"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Я"
+ ]
+ },
+ {
+ "strings": [
+ "Ч"
+ ]
+ },
+ {
+ "strings": [
+ "С"
+ ]
+ },
+ {
+ "strings": [
+ "М"
+ ]
+ },
+ {
+ "strings": [
+ "И"
+ ]
+ },
+ {
+ "strings": [
+ "Т"
+ ]
+ },
+ {
+ "strings": [
+ "Ь",
+ "Ъ"
+ ]
+ },
+ {
+ "strings": [
+ "Б"
+ ]
+ },
+ {
+ "strings": [
+ "Ю"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..87da9fe
--- /dev/null
+++ b/data/osk-layouts/se.json
@@ -0,0 +1,1046 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ę"
+ ]
+ },
+ {
+ "strings": [
+ "r",
+ "ř"
+ ]
+ },
+ {
+ "strings": [
+ "t",
+ "ť",
+ "þ"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ý",
+ "ÿ",
+ "ü"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ü",
+ "ú",
+ "ù",
+ "û",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "ì",
+ "î",
+ "ï"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ò",
+ "ô",
+ "õ",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "strings": [
+ "å"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "à",
+ "â",
+ "ą",
+ "ã"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ś",
+ "š",
+ "ş",
+ "ß"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "ð",
+ "ď"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l",
+ "ł"
+ ]
+ },
+ {
+ "strings": [
+ "ö",
+ "ø",
+ "œ"
+ ]
+ },
+ {
+ "strings": [
+ "ä",
+ "æ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "z",
+ "ź",
+ "ž",
+ "ż"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ń",
+ "ñ",
+ "ň"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę"
+ ]
+ },
+ {
+ "strings": [
+ "R",
+ "Ř"
+ ]
+ },
+ {
+ "strings": [
+ "T",
+ "Ť",
+ "Þ"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "Ý",
+ "Ÿ",
+ "Ü"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ü",
+ "Ú",
+ "Ù",
+ "Û",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Ì",
+ "Î",
+ "Ï"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ò",
+ "Ô",
+ "Õ",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "strings": [
+ "Å"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "À",
+ "Â",
+ "Ą",
+ "Ã"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Ś",
+ "Š",
+ "Ş",
+ "SS"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Ð",
+ "Ď"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L",
+ "Ł"
+ ]
+ },
+ {
+ "strings": [
+ "Ö",
+ "Ø",
+ "Œ"
+ ]
+ },
+ {
+ "strings": [
+ "Ä",
+ "Æ"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Z",
+ "Ź",
+ "Ž",
+ "Ż"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ń",
+ "Ñ",
+ "Ň"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "sv",
+ "name": "Swedish"
+}
diff --git a/data/osk-layouts/si.json b/data/osk-layouts/si.json
new file mode 100644
index 0000000..7325c40
--- /dev/null
+++ b/data/osk-layouts/si.json
@@ -0,0 +1,926 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "đ"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z",
+ "ž"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "č",
+ "ć"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Đ"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z",
+ "Ž"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Č",
+ "Ć"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "sl",
+ "name": "Slovenian"
+}
diff --git a/data/osk-layouts/sk.json b/data/osk-layouts/sk.json
new file mode 100644
index 0000000..8f834cd
--- /dev/null
+++ b/data/osk-layouts/sk.json
@@ -0,0 +1,1056 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "ě",
+ "ē",
+ "ė",
+ "è",
+ "ê",
+ "ë",
+ "ę"
+ ]
+ },
+ {
+ "strings": [
+ "r",
+ "ŕ",
+ "ř",
+ "ŗ"
+ ]
+ },
+ {
+ "strings": [
+ "t",
+ "ť",
+ "ţ"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ý",
+ "ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "ů",
+ "ü",
+ "ū",
+ "ų",
+ "ù",
+ "û",
+ "ű"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "ī",
+ "į",
+ "ì",
+ "î",
+ "ï",
+ "ı"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ô",
+ "ó",
+ "ö",
+ "ò",
+ "õ",
+ "œ",
+ "ő",
+ "ø"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "ä",
+ "ā",
+ "à",
+ "â",
+ "ã",
+ "å",
+ "æ",
+ "ą"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "š",
+ "ß",
+ "ś",
+ "ş"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "ď"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g",
+ "ģ",
+ "ğ"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k",
+ "ķ"
+ ]
+ },
+ {
+ "strings": [
+ "l",
+ "ľ",
+ "ĺ",
+ "ļ",
+ "ł"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "č",
+ "ç",
+ "ć"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ň",
+ "ņ",
+ "ñ",
+ "ń",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "Ě",
+ "Ē",
+ "Ė",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę"
+ ]
+ },
+ {
+ "strings": [
+ "R",
+ "Ŕ",
+ "Ř",
+ "Ŗ"
+ ]
+ },
+ {
+ "strings": [
+ "T",
+ "Ť",
+ "Ţ"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "Ý",
+ "Ÿ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Ů",
+ "Ü",
+ "Ū",
+ "Ų",
+ "Ù",
+ "Û",
+ "Ű"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Ī",
+ "Į",
+ "Ì",
+ "Î",
+ "Ï",
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ô",
+ "Ó",
+ "Ö",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ő",
+ "Ø"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "Ä",
+ "Ā",
+ "À",
+ "Â",
+ "Ã",
+ "Å",
+ "Æ",
+ "Ą"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Š",
+ "SS",
+ "Ś",
+ "Ş"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Ď"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G",
+ "Ģ",
+ "Ğ"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K",
+ "Ķ"
+ ]
+ },
+ {
+ "strings": [
+ "L",
+ "Ľ",
+ "Ĺ",
+ "Ļ",
+ "Ł"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z",
+ "Ž",
+ "Ż",
+ "Ź"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ň",
+ "Ņ",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "sk",
+ "name": "Slovak"
+}
diff --git a/data/osk-layouts/th.json b/data/osk-layouts/th.json
new file mode 100644
index 0000000..131e5eb
--- /dev/null
+++ b/data/osk-layouts/th.json
@@ -0,0 +1,1135 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "ๅ"
+ ]
+ },
+ {
+ "strings": [
+ "/",
+ "๑"
+ ]
+ },
+ {
+ "strings": [
+ "_",
+ "๒"
+ ]
+ },
+ {
+ "strings": [
+ "ภ",
+ "๓"
+ ]
+ },
+ {
+ "strings": [
+ "ถ",
+ "๔"
+ ]
+ },
+ {
+ "strings": [
+ "ุ"
+ ]
+ },
+ {
+ "strings": [
+ "ึ"
+ ]
+ },
+ {
+ "strings": [
+ "ค",
+ "๕"
+ ]
+ },
+ {
+ "strings": [
+ "ต",
+ "๖"
+ ]
+ },
+ {
+ "strings": [
+ "จ",
+ "๗"
+ ]
+ },
+ {
+ "strings": [
+ "ข",
+ "๘"
+ ]
+ },
+ {
+ "strings": [
+ "ช",
+ "๙"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ๆ",
+ "๐"
+ ]
+ },
+ {
+ "strings": [
+ "ไ"
+ ]
+ },
+ {
+ "strings": [
+ "ำ"
+ ]
+ },
+ {
+ "strings": [
+ "พ"
+ ]
+ },
+ {
+ "strings": [
+ "ะ"
+ ]
+ },
+ {
+ "strings": [
+ "ั"
+ ]
+ },
+ {
+ "strings": [
+ "ี"
+ ]
+ },
+ {
+ "strings": [
+ "ร"
+ ]
+ },
+ {
+ "strings": [
+ "น"
+ ]
+ },
+ {
+ "strings": [
+ "ย"
+ ]
+ },
+ {
+ "strings": [
+ "บ"
+ ]
+ },
+ {
+ "strings": [
+ "ล"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ฟ"
+ ]
+ },
+ {
+ "strings": [
+ "ห"
+ ]
+ },
+ {
+ "strings": [
+ "ก"
+ ]
+ },
+ {
+ "strings": [
+ "ด"
+ ]
+ },
+ {
+ "strings": [
+ "เ"
+ ]
+ },
+ {
+ "strings": [
+ "้"
+ ]
+ },
+ {
+ "strings": [
+ "่"
+ ]
+ },
+ {
+ "strings": [
+ "า"
+ ]
+ },
+ {
+ "strings": [
+ "ส"
+ ]
+ },
+ {
+ "strings": [
+ "ว"
+ ]
+ },
+ {
+ "strings": [
+ "ง"
+ ]
+ },
+ {
+ "strings": [
+ "ฃ"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "ผ"
+ ]
+ },
+ {
+ "strings": [
+ "ป"
+ ]
+ },
+ {
+ "strings": [
+ "แ"
+ ]
+ },
+ {
+ "strings": [
+ "อ"
+ ]
+ },
+ {
+ "strings": [
+ "ิ"
+ ]
+ },
+ {
+ "strings": [
+ "ื"
+ ]
+ },
+ {
+ "strings": [
+ "ท"
+ ]
+ },
+ {
+ "strings": [
+ "ม"
+ ]
+ },
+ {
+ "strings": [
+ "ใ"
+ ]
+ },
+ {
+ "strings": [
+ "ฝ"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 7
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@",
+ " ๎",
+ "๏",
+ "๛",
+ "๚"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "+"
+ ]
+ },
+ {
+ "strings": [
+ "๑"
+ ]
+ },
+ {
+ "strings": [
+ "๒"
+ ]
+ },
+ {
+ "strings": [
+ "๓"
+ ]
+ },
+ {
+ "strings": [
+ "๔"
+ ]
+ },
+ {
+ "strings": [
+ "ู"
+ ]
+ },
+ {
+ "strings": [
+ "฿"
+ ]
+ },
+ {
+ "strings": [
+ "๕"
+ ]
+ },
+ {
+ "strings": [
+ "๖"
+ ]
+ },
+ {
+ "strings": [
+ "๗"
+ ]
+ },
+ {
+ "strings": [
+ "๘"
+ ]
+ },
+ {
+ "strings": [
+ "๙"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "๐"
+ ]
+ },
+ {
+ "strings": [
+ "\""
+ ]
+ },
+ {
+ "strings": [
+ "ฎ"
+ ]
+ },
+ {
+ "strings": [
+ "ฑ"
+ ]
+ },
+ {
+ "strings": [
+ "ธ"
+ ]
+ },
+ {
+ "strings": [
+ "ํ"
+ ]
+ },
+ {
+ "strings": [
+ "๊"
+ ]
+ },
+ {
+ "strings": [
+ "ณ"
+ ]
+ },
+ {
+ "strings": [
+ "ฯ"
+ ]
+ },
+ {
+ "strings": [
+ "ญ"
+ ]
+ },
+ {
+ "strings": [
+ "ฐ"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ฤ"
+ ]
+ },
+ {
+ "strings": [
+ "ฆ"
+ ]
+ },
+ {
+ "strings": [
+ "ฏ"
+ ]
+ },
+ {
+ "strings": [
+ "โ"
+ ]
+ },
+ {
+ "strings": [
+ "ฌ"
+ ]
+ },
+ {
+ "strings": [
+ "็"
+ ]
+ },
+ {
+ "strings": [
+ "๋"
+ ]
+ },
+ {
+ "strings": [
+ "ษ"
+ ]
+ },
+ {
+ "strings": [
+ "ศ"
+ ]
+ },
+ {
+ "strings": [
+ "ซ"
+ ]
+ },
+ {
+ "strings": [
+ "."
+ ]
+ },
+ {
+ "strings": [
+ "ฅ"
+ ]
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "("
+ ]
+ },
+ {
+ "strings": [
+ ")"
+ ]
+ },
+ {
+ "strings": [
+ "ฉ"
+ ]
+ },
+ {
+ "strings": [
+ "ฮ"
+ ]
+ },
+ {
+ "strings": [
+ "ฺ"
+ ]
+ },
+ {
+ "strings": [
+ "์"
+ ]
+ },
+ {
+ "strings": [
+ "?"
+ ]
+ },
+ {
+ "strings": [
+ "ฒ"
+ ]
+ },
+ {
+ "strings": [
+ "ฬ"
+ ]
+ },
+ {
+ "strings": [
+ "ฦ"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 7
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@",
+ " ๎",
+ "๏",
+ "๛",
+ "๚"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "฿",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..e32b3d9
--- /dev/null
+++ b/data/osk-layouts/tr.json
@@ -0,0 +1,974 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ü",
+ "û",
+ "ù",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "ı",
+ "î",
+ "ï",
+ "ì",
+ "í",
+ "į",
+ "ī"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ö",
+ "ô",
+ "œ",
+ "ò",
+ "ó",
+ "õ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "â"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ş",
+ "ß",
+ "ś",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g",
+ "ğ"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç",
+ "ć",
+ "č"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "İ",
+ "I",
+ "Î",
+ "Ï",
+ "Ì",
+ "Í",
+ "Į",
+ "Ī"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ö",
+ "Ô",
+ "Œ",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Â"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "Ş",
+ "SS",
+ "Ś",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G",
+ "Ğ"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "tr",
+ "name": "Turkish"
+}
diff --git a/data/osk-layouts/ua.json b/data/osk-layouts/ua.json
new file mode 100644
index 0000000..b32b6b5
--- /dev/null
+++ b/data/osk-layouts/ua.json
@@ -0,0 +1,969 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "й"
+ ]
+ },
+ {
+ "strings": [
+ "ц"
+ ]
+ },
+ {
+ "strings": [
+ "у"
+ ]
+ },
+ {
+ "strings": [
+ "к"
+ ]
+ },
+ {
+ "strings": [
+ "е"
+ ]
+ },
+ {
+ "strings": [
+ "н"
+ ]
+ },
+ {
+ "strings": [
+ "г",
+ "ґ"
+ ]
+ },
+ {
+ "strings": [
+ "ш"
+ ]
+ },
+ {
+ "strings": [
+ "щ"
+ ]
+ },
+ {
+ "strings": [
+ "з"
+ ]
+ },
+ {
+ "strings": [
+ "х"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "ф"
+ ]
+ },
+ {
+ "strings": [
+ "і",
+ "ї"
+ ]
+ },
+ {
+ "strings": [
+ "в"
+ ]
+ },
+ {
+ "strings": [
+ "а"
+ ]
+ },
+ {
+ "strings": [
+ "п"
+ ]
+ },
+ {
+ "strings": [
+ "р"
+ ]
+ },
+ {
+ "strings": [
+ "о"
+ ]
+ },
+ {
+ "strings": [
+ "л"
+ ]
+ },
+ {
+ "strings": [
+ "д"
+ ]
+ },
+ {
+ "strings": [
+ "ж"
+ ]
+ },
+ {
+ "strings": [
+ "є"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "я"
+ ]
+ },
+ {
+ "strings": [
+ "ч"
+ ]
+ },
+ {
+ "strings": [
+ "с"
+ ]
+ },
+ {
+ "strings": [
+ "м"
+ ]
+ },
+ {
+ "strings": [
+ "и"
+ ]
+ },
+ {
+ "strings": [
+ "т"
+ ]
+ },
+ {
+ "strings": [
+ "ь",
+ "ъ"
+ ]
+ },
+ {
+ "strings": [
+ "б"
+ ]
+ },
+ {
+ "strings": [
+ "ю"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Й"
+ ]
+ },
+ {
+ "strings": [
+ "Ц"
+ ]
+ },
+ {
+ "strings": [
+ "У"
+ ]
+ },
+ {
+ "strings": [
+ "К"
+ ]
+ },
+ {
+ "strings": [
+ "Е"
+ ]
+ },
+ {
+ "strings": [
+ "Н"
+ ]
+ },
+ {
+ "strings": [
+ "Г",
+ "Ґ"
+ ]
+ },
+ {
+ "strings": [
+ "Ш"
+ ]
+ },
+ {
+ "strings": [
+ "Щ"
+ ]
+ },
+ {
+ "strings": [
+ "З"
+ ]
+ },
+ {
+ "strings": [
+ "Х"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "Ф"
+ ]
+ },
+ {
+ "strings": [
+ "І",
+ "Ї"
+ ]
+ },
+ {
+ "strings": [
+ "В"
+ ]
+ },
+ {
+ "strings": [
+ "А"
+ ]
+ },
+ {
+ "strings": [
+ "П"
+ ]
+ },
+ {
+ "strings": [
+ "Р"
+ ]
+ },
+ {
+ "strings": [
+ "О"
+ ]
+ },
+ {
+ "strings": [
+ "Л"
+ ]
+ },
+ {
+ "strings": [
+ "Д"
+ ]
+ },
+ {
+ "strings": [
+ "Ж"
+ ]
+ },
+ {
+ "strings": [
+ "Є"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "Я"
+ ]
+ },
+ {
+ "strings": [
+ "Ч"
+ ]
+ },
+ {
+ "strings": [
+ "С"
+ ]
+ },
+ {
+ "strings": [
+ "М"
+ ]
+ },
+ {
+ "strings": [
+ "И"
+ ]
+ },
+ {
+ "strings": [
+ "Т"
+ ]
+ },
+ {
+ "strings": [
+ "Ь",
+ "Ъ"
+ ]
+ },
+ {
+ "strings": [
+ "Б"
+ ]
+ },
+ {
+ "strings": [
+ "Ю"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 6
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "₴",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "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..91a94b2
--- /dev/null
+++ b/data/osk-layouts/uk.json
@@ -0,0 +1,984 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "û",
+ "ü",
+ "ù",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "î",
+ "ï",
+ "í",
+ "ī",
+ "ì"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ô",
+ "ö",
+ "ò",
+ "ó",
+ "œ",
+ "ø",
+ "ō",
+ "õ"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "à",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Î",
+ "Ï",
+ "Í",
+ "Ī",
+ "Ì"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ô",
+ "Ö",
+ "Ò",
+ "Ó",
+ "Œ",
+ "Ø",
+ "Ō",
+ "Õ"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "À",
+ "Á",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "SS"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "£",
+ "¢",
+ "$",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "en-GB",
+ "name": "English Great Britain"
+}
diff --git a/data/osk-layouts/us-extended.json b/data/osk-layouts/us-extended.json
new file mode 100644
index 0000000..0370edb
--- /dev/null
+++ b/data/osk-layouts/us-extended.json
@@ -0,0 +1,1043 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "keyval": "0xff09",
+ "label": "Tab",
+ "width": 1
+ },
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "û",
+ "ü",
+ "ù",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "î",
+ "ï",
+ "í",
+ "ī",
+ "ì"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ô",
+ "ö",
+ "ò",
+ "ó",
+ "œ",
+ "ø",
+ "ō",
+ "õ"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "iconName": "edit-clear-symbolic",
+ "action": "delete",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-caps-lock-symbolic",
+ "level": 1,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "a",
+ "à",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ ",",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "iconName": "go-up-symbolic",
+ "keyval": "0xff52"
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "modifier",
+ "keyval": "0xffe3",
+ "label": "Ctrl"
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2
+ },
+ {
+ "action": "modifier",
+ "keyval": "0xffe9",
+ "label": "Alt"
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 4
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "iconName": "go-previous-symbolic",
+ "keyval": "0xff51"
+ },
+ {
+ "iconName": "go-down-symbolic",
+ "keyval": "0xff54"
+ },
+ {
+ "iconName": "go-next-symbolic",
+ "keyval": "0xff53"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "keyval": "0xff09",
+ "label": "Tab",
+ "width": 1
+ },
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Î",
+ "Ï",
+ "Í",
+ "Ī",
+ "Ì"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ô",
+ "Ö",
+ "Ò",
+ "Ó",
+ "Œ",
+ "Ø",
+ "Ō",
+ "Õ"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "iconName": "edit-clear-symbolic",
+ "keyval": "0xff08",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-caps-lock-symbolic",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "A",
+ "À",
+ "Á",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "SS"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ ",",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "iconName": "go-up-symbolic",
+ "keyval": "0xff52"
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "modifier",
+ "keyval": "0xffe3",
+ "label": "Ctrl"
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2
+ },
+ {
+ "action": "modifier",
+ "keyval": "0xffe9",
+ "label": "Alt"
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 4
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "iconName": "go-previous-symbolic",
+ "keyval": "0xff51"
+ },
+ {
+ "iconName": "go-down-symbolic",
+ "keyval": "0xff54"
+ },
+ {
+ "iconName": "go-next-symbolic",
+ "keyval": "0xff53"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "iconName": "edit-clear-symbolic",
+ "keyval": "0xff08",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "iconName": "edit-clear-symbolic",
+ "keyval": "0xff08",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "en",
+ "name": "English United States"
+}
diff --git a/data/osk-layouts/us.json b/data/osk-layouts/us.json
new file mode 100644
index 0000000..17c20d9
--- /dev/null
+++ b/data/osk-layouts/us.json
@@ -0,0 +1,983 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "û",
+ "ü",
+ "ù",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "î",
+ "ï",
+ "í",
+ "ī",
+ "ì"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ô",
+ "ö",
+ "ò",
+ "ó",
+ "œ",
+ "ø",
+ "ō",
+ "õ"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "à",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c",
+ "ç"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Î",
+ "Ï",
+ "Í",
+ "Ī",
+ "Ì"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ô",
+ "Ö",
+ "Ò",
+ "Ó",
+ "Œ",
+ "Ø",
+ "Ō",
+ "Õ"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "À",
+ "Á",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "SS"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C",
+ "Ç"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "en",
+ "name": "English United States"
+}
diff --git a/data/osk-layouts/vn.json b/data/osk-layouts/vn.json
new file mode 100644
index 0000000..17c7f0e
--- /dev/null
+++ b/data/osk-layouts/vn.json
@@ -0,0 +1,1051 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "è",
+ "é",
+ "ẻ",
+ "ẽ",
+ "ẹ",
+ "ê",
+ "ề",
+ "ế",
+ "ể",
+ "ễ",
+ "ệ"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ỳ",
+ "ý",
+ "ỷ",
+ "ỹ",
+ "ỵ"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ù",
+ "ú",
+ "ủ",
+ "ũ",
+ "ụ",
+ "ư",
+ "ừ",
+ "ứ",
+ "ử",
+ "ữ",
+ "ự"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "ì",
+ "í",
+ "ỉ",
+ "ĩ",
+ "ị"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ò",
+ "ó",
+ "ỏ",
+ "õ",
+ "ọ",
+ "ô",
+ "ồ",
+ "ố",
+ "ổ",
+ "ỗ",
+ "ộ",
+ "ơ",
+ "ờ",
+ "ớ",
+ "ở",
+ "ỡ",
+ "ợ"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "à",
+ "á",
+ "ả",
+ "ã",
+ "ạ",
+ "ă",
+ "ằ",
+ "ắ",
+ "ẳ",
+ "ẵ",
+ "ặ",
+ "â",
+ "ầ",
+ "ấ",
+ "ẩ",
+ "ẫ",
+ "ậ"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d",
+ "đ"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "È",
+ "É",
+ "Ẻ",
+ "Ẽ",
+ "Ẹ",
+ "Ê",
+ "Ề",
+ "Ế",
+ "Ể",
+ "Ễ",
+ "Ệ"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "Ỳ",
+ "Ý",
+ "Ỷ",
+ "Ỹ",
+ "Ỵ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ù",
+ "Ú",
+ "Ủ",
+ "Ũ",
+ "Ụ",
+ "Ư",
+ "Ừ",
+ "Ứ",
+ "Ử",
+ "Ữ",
+ "Ự"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Ì",
+ "Í",
+ "Ỉ",
+ "Ĩ",
+ "Ị"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ò",
+ "Ó",
+ "Ỏ",
+ "Õ",
+ "Ọ",
+ "Ô",
+ "Ồ",
+ "Ố",
+ "Ổ",
+ "Ỗ",
+ "Ộ",
+ "Ơ",
+ "Ờ",
+ "Ớ",
+ "Ở",
+ "Ỡ",
+ "Ợ"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "À",
+ "Á",
+ "Ả",
+ "Ã",
+ "Ạ",
+ "Ă",
+ "Ằ",
+ "Ắ",
+ "Ẳ",
+ "Ẵ",
+ "Ặ",
+ "Â",
+ "Ầ",
+ "Ấ",
+ "Ẩ",
+ "Ẫ",
+ "Ậ"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D",
+ "Đ"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "₫",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "vi",
+ "name": "Vietnamese"
+}
diff --git a/data/osk-layouts/za.json b/data/osk-layouts/za.json
new file mode 100644
index 0000000..0e8dd96
--- /dev/null
+++ b/data/osk-layouts/za.json
@@ -0,0 +1,997 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ę",
+ "ė",
+ "ē"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "y",
+ "ý",
+ "ŷ",
+ "ÿ",
+ "ij"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ú",
+ "û",
+ "ü",
+ "ù",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i",
+ "í",
+ "ì",
+ "ï",
+ "î",
+ "į",
+ "ī",
+ "ij"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ó",
+ "ô",
+ "ö",
+ "ò",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "a",
+ "á",
+ "â",
+ "ä",
+ "à",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 1,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ė",
+ "Ē"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Y",
+ "Ý",
+ "Ŷ",
+ "Ÿ",
+ "IJ"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ú",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I",
+ "Í",
+ "Ì",
+ "Ï",
+ "Î",
+ "Į",
+ "Ī",
+ "IJ"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ó",
+ "Ô",
+ "Ö",
+ "Ò",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "A",
+ "Á",
+ "Â",
+ "Ä",
+ "À",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "keyboard-shift-symbolic",
+ "level": 0,
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 5
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic",
+ "width": 1.5
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic",
+ "width": 2
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": 3,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "edit-clear-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "€"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "keyboard-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": 2,
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": 0,
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "face-smile-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "keyboard-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "keyboard-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "af",
+ "name": "Afrikaans"
+}