[gnome-shell/wip/carlosg/osk-cldr: 148/154] data: Add keyboard layout JSON files
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/carlosg/osk-cldr: 148/154] data: Add keyboard layout JSON files
- Date: Fri, 10 Nov 2017 18:31:13 +0000 (UTC)
commit 69cb8570f4fe48492baea22fcfeef6991631a9af
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Aug 10 21:06:25 2017 +0200
data: Add keyboard layout JSON files
These have been created with the script at
git://repo.or.cz/cldr2json.git to translate the XML android
keymaps at http://www.unicode.org/Public/cldr/latest/keyboards.zip
into JSON, easier to parse from gnome-shell.
data/gnome-shell-osk-layouts.gresource.xml | 57 +++
data/meson.build | 8 +
data/osk-layouts/am.json | 599 +++++++++++++++++++++++
data/osk-layouts/ara.json | 488 +++++++++++++++++++
data/osk-layouts/be.json | 584 +++++++++++++++++++++++
data/osk-layouts/bg.json | 533 +++++++++++++++++++++
data/osk-layouts/by.json | 541 +++++++++++++++++++++
data/osk-layouts/cz.json | 613 ++++++++++++++++++++++++
data/osk-layouts/de.json | 570 ++++++++++++++++++++++
data/osk-layouts/dk.json | 590 +++++++++++++++++++++++
data/osk-layouts/ee.json | 666 ++++++++++++++++++++++++++
data/osk-layouts/epo.json | 711 ++++++++++++++++++++++++++++
data/osk-layouts/es+cat.json | 602 +++++++++++++++++++++++
data/osk-layouts/es.json | 604 +++++++++++++++++++++++
data/osk-layouts/fi.json | 570 ++++++++++++++++++++++
data/osk-layouts/fr.json | 599 +++++++++++++++++++++++
data/osk-layouts/ge.json | 409 ++++++++++++++++
data/osk-layouts/gr.json | 532 +++++++++++++++++++++
data/osk-layouts/hr.json | 531 +++++++++++++++++++++
data/osk-layouts/hu.json | 579 ++++++++++++++++++++++
data/osk-layouts/id.json | 507 ++++++++++++++++++++
data/osk-layouts/il.json | 419 ++++++++++++++++
data/osk-layouts/in+bolnagri.json | 439 +++++++++++++++++
data/osk-layouts/ir.json | 495 +++++++++++++++++++
data/osk-layouts/is.json | 583 +++++++++++++++++++++++
data/osk-layouts/it.json | 580 +++++++++++++++++++++++
data/osk-layouts/ke.json | 577 ++++++++++++++++++++++
data/osk-layouts/kg.json | 547 +++++++++++++++++++++
data/osk-layouts/kh.json | 481 +++++++++++++++++++
data/osk-layouts/la.json | 472 ++++++++++++++++++
data/osk-layouts/latam.json | 603 +++++++++++++++++++++++
data/osk-layouts/lt.json | 647 +++++++++++++++++++++++++
data/osk-layouts/lv.json | 645 +++++++++++++++++++++++++
data/osk-layouts/mk.json | 541 +++++++++++++++++++++
data/osk-layouts/mn.json | 547 +++++++++++++++++++++
data/osk-layouts/my.json | 507 ++++++++++++++++++++
data/osk-layouts/nl.json | 584 +++++++++++++++++++++++
data/osk-layouts/no.json | 507 ++++++++++++++++++++
data/osk-layouts/ph.json | 507 ++++++++++++++++++++
data/osk-layouts/pl.json | 579 ++++++++++++++++++++++
data/osk-layouts/pt.json | 584 +++++++++++++++++++++++
data/osk-layouts/ro.json | 547 +++++++++++++++++++++
data/osk-layouts/rs.json | 541 +++++++++++++++++++++
data/osk-layouts/ru.json | 541 +++++++++++++++++++++
data/osk-layouts/se.json | 624 ++++++++++++++++++++++++
data/osk-layouts/si.json | 518 ++++++++++++++++++++
data/osk-layouts/sk.json | 648 +++++++++++++++++++++++++
data/osk-layouts/th.json | 472 ++++++++++++++++++
data/osk-layouts/tr.json | 566 ++++++++++++++++++++++
data/osk-layouts/ua.json | 545 +++++++++++++++++++++
data/osk-layouts/uk.json | 576 ++++++++++++++++++++++
data/osk-layouts/us.json | 575 ++++++++++++++++++++++
data/osk-layouts/vn.json | 643 +++++++++++++++++++++++++
data/osk-layouts/za.json | 589 +++++++++++++++++++++++
54 files changed, 29122 insertions(+), 0 deletions(-)
---
diff --git a/data/gnome-shell-osk-layouts.gresource.xml b/data/gnome-shell-osk-layouts.gresource.xml
new file mode 100644
index 0000000..86d6cb9
--- /dev/null
+++ b/data/gnome-shell-osk-layouts.gresource.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/gnome/shell/osk-layouts">
+ <file>am.json</file>
+ <file>ara.json</file>
+ <file>be.json</file>
+ <file>bg.json</file>
+ <file>by.json</file>
+ <file>cz.json</file>
+ <file>de.json</file>
+ <file>dk.json</file>
+ <file>ee.json</file>
+ <file>epo.json</file>
+ <file>es+cat.json</file>
+ <file>es.json</file>
+ <file>fi.json</file>
+ <file>fr.json</file>
+ <file>ge.json</file>
+ <file>gr.json</file>
+ <file>hr.json</file>
+ <file>hu.json</file>
+ <file>id.json</file>
+ <file>il.json</file>
+ <file>in+bolnagri.json</file>
+ <file>ir.json</file>
+ <file>is.json</file>
+ <file>it.json</file>
+ <file>ke.json</file>
+ <file>kg.json</file>
+ <file>kh.json</file>
+ <file>la.json</file>
+ <file>latam.json</file>
+ <file>lt.json</file>
+ <file>lv.json</file>
+ <file>mk.json</file>
+ <file>mn.json</file>
+ <file>my.json</file>
+ <file>nl.json</file>
+ <file>no.json</file>
+ <file>ph.json</file>
+ <file>pl.json</file>
+ <file>pt.json</file>
+ <file>ro.json</file>
+ <file>rs.json</file>
+ <file>ru.json</file>
+ <file>se.json</file>
+ <file>si.json</file>
+ <file>sk.json</file>
+ <file>th.json</file>
+ <file>tr.json</file>
+ <file>ua.json</file>
+ <file>uk.json</file>
+ <file>us.json</file>
+ <file>vn.json</file>
+ <file>za.json</file>
+ </gresource>
+</gresources>
diff --git a/data/meson.build b/data/meson.build
index 032e3f0..7c98077 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -62,6 +62,14 @@ theme_resources = gnome.compile_resources(
install_dir: pkgdatadir
)
+osk_layout_resources = gnome.compile_resources(
+ 'gnome-shell-osk-layouts', 'gnome-shell-osk-layouts.gresource.xml',
+ source_dir: 'osk-layouts',
+ gresource_bundle: true,
+ install: true,
+ install_dir: pkgdatadir
+)
+
perfconf = configuration_data()
perfconf.set('datadir', datadir)
configure_file(
diff --git a/data/osk-layouts/am.json b/data/osk-layouts/am.json
new file mode 100644
index 0000000..23c86ba
--- /dev/null
+++ b/data/osk-layouts/am.json
@@ -0,0 +1,599 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "Õ§"
+ ],
+ [
+ "Õ©"
+ ],
+ [
+ "Öƒ"
+ ],
+ [
+ "Õ±"
+ ],
+ [
+ "Õ»"
+ ],
+ [
+ "Ö€"
+ ],
+ [
+ "Õ¹"
+ ],
+ [
+ "Õ³"
+ ],
+ [
+ "Õª"
+ ],
+ [
+ "Õ®"
+ ]
+ ],
+ [
+ [
+ "Ö„"
+ ],
+ [
+ "Õ¸"
+ ],
+ [
+ "Õ¥",
+ "Ö‡"
+ ],
+ [
+ "Õ¼"
+ ],
+ [
+ "Õ¿"
+ ],
+ [
+ "Õ¨"
+ ],
+ [
+ "Ö‚"
+ ],
+ [
+ "Õ«"
+ ],
+ [
+ "Ö…"
+ ],
+ [
+ "Õº"
+ ]
+ ],
+ [
+ [
+ "Õ¡"
+ ],
+ [
+ "Õ½"
+ ],
+ [
+ "Õ¤"
+ ],
+ [
+ "Ö†"
+ ],
+ [
+ "Õ£"
+ ],
+ [
+ "Õ°"
+ ],
+ [
+ "Õµ"
+ ],
+ [
+ "Õ¯"
+ ],
+ [
+ "Õ¬"
+ ],
+ [
+ "Õ"
+ ]
+ ],
+ [
+ [
+ "Õ¦"
+ ],
+ [
+ "Õ²"
+ ],
+ [
+ "Ö"
+ ],
+ [
+ "Õ¾"
+ ],
+ [
+ "Õ¢"
+ ],
+ [
+ "Õ¶"
+ ],
+ [
+ "Õ´"
+ ],
+ [
+ "Õ·"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ "Ö‰"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Ô·"
+ ],
+ [
+ "Ô¹"
+ ],
+ [
+ "Õ“"
+ ],
+ [
+ "Õ"
+ ],
+ [
+ "Õ‹"
+ ],
+ [
+ "Õ"
+ ],
+ [
+ "Õ‰"
+ ],
+ [
+ "Õƒ"
+ ],
+ [
+ "Ôº"
+ ],
+ [
+ "Ô¾"
+ ]
+ ],
+ [
+ [
+ "Õ”"
+ ],
+ [
+ "Õˆ"
+ ],
+ [
+ "Ôµ",
+ "ÔµÕ’"
+ ],
+ [
+ "Ռ"
+ ],
+ [
+ "Õ"
+ ],
+ [
+ "Ô¸"
+ ],
+ [
+ "Õ’"
+ ],
+ [
+ "Ô»"
+ ],
+ [
+ "Õ•"
+ ],
+ [
+ "ÕŠ"
+ ]
+ ],
+ [
+ [
+ "Ô±"
+ ],
+ [
+ "Õ"
+ ],
+ [
+ "Ô´"
+ ],
+ [
+ "Õ–"
+ ],
+ [
+ "Ô³"
+ ],
+ [
+ "Õ€"
+ ],
+ [
+ "Õ…"
+ ],
+ [
+ "Ô¿"
+ ],
+ [
+ "Ô¼"
+ ],
+ [
+ "Ô½"
+ ]
+ ],
+ [
+ [
+ "Ô¶"
+ ],
+ [
+ "Õ‚"
+ ],
+ [
+ "Õ‘"
+ ],
+ [
+ "ÕŽ"
+ ],
+ [
+ "Ô²"
+ ],
+ [
+ "Õ†"
+ ],
+ [
+ "Õ„"
+ ],
+ [
+ "Õ‡"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ "Ö‰"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "՜",
+ "¡"
+ ],
+ [
+ "?",
+ "Õž",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ "Õ"
+ ],
+ [
+ "Ö‰",
+ "!",
+ "?",
+ ",",
+ ".",
+ "ÖŠ",
+ "՜",
+ "Õ",
+ "Õž",
+ ":",
+ ";",
+ "@",
+ "Õ™",
+ "Õš",
+ "Õ›",
+ "ÕŸ"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ "Õ"
+ ],
+ [
+ "Ö‰",
+ "!",
+ "?",
+ ",",
+ ".",
+ "ÖŠ",
+ "՜",
+ "Õ",
+ "Õž",
+ ":",
+ ";",
+ "@",
+ "Õ™",
+ "Õš",
+ "Õ›",
+ "ÕŸ"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "hy",
+ "name": "Armenian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/ara.json b/data/osk-layouts/ara.json
new file mode 100644
index 0000000..0a4900c
--- /dev/null
+++ b/data/osk-layouts/ara.json
@@ -0,0 +1,488 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ض"
+ ],
+ [
+ "ص"
+ ],
+ [
+ "Ø«"
+ ],
+ [
+ "Ù‚",
+ "Ú¨"
+ ],
+ [
+ "Ù",
+ "Ú¤",
+ "Ú¢",
+ "Ú¥"
+ ],
+ [
+ "غ"
+ ],
+ [
+ "ع"
+ ],
+ [
+ "Ù‡",
+ "Ù‡â€"
+ ],
+ [
+ "Ø®"
+ ],
+ [
+ "Ø"
+ ],
+ [
+ "ج",
+ "Ú†"
+ ]
+ ],
+ [
+ [
+ "Ø´",
+ "ڜ"
+ ],
+ [
+ "س"
+ ],
+ [
+ "ÙŠ",
+ "ئ",
+ "Ù‰"
+ ],
+ [
+ "ب",
+ "Ù¾"
+ ],
+ [
+ "Ù„",
+ "لا",
+ "لأ",
+ "لإ",
+ "لآ"
+ ],
+ [
+ "ا",
+ "Ø¢",
+ "Ø¡",
+ "Ø£",
+ "Ø¥",
+ "Ù±"
+ ],
+ [
+ "ت"
+ ],
+ [
+ "Ù†"
+ ],
+ [
+ "Ù…"
+ ],
+ [
+ "Ùƒ",
+ "Ú¯",
+ "Ú©"
+ ],
+ [
+ "Ø·"
+ ]
+ ],
+ [
+ [
+ "Ø°"
+ ],
+ [
+ "Ø¡"
+ ],
+ [
+ "ؤ"
+ ],
+ [
+ "ر"
+ ],
+ [
+ "Ù‰",
+ "ئ"
+ ],
+ [
+ "Ø©"
+ ],
+ [
+ "Ùˆ"
+ ],
+ [
+ "ز",
+ "Ú˜"
+ ],
+ [
+ "ظ"
+ ],
+ [
+ "د"
+ ]
+ ],
+ [
+ [
+ "،"
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "\"",
+ "'",
+ "#",
+ "-",
+ ":",
+ "!",
+ "،",
+ "ØŸ",
+ "@",
+ "&",
+ "%",
+ "+",
+ "Ø›",
+ "/",
+ ")",
+ "("
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "Ù¡",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "Ù¢",
+ "²",
+ "â…”"
+ ],
+ [
+ "Ù£",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "Ù¤",
+ "â´"
+ ],
+ [
+ "Ù¥",
+ "â…"
+ ],
+ [
+ "Ù¦"
+ ],
+ [
+ "Ù§",
+ "â…ž"
+ ],
+ [
+ "Ù¨"
+ ],
+ [
+ "Ù©"
+ ],
+ [
+ "Ù ",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "Ùª",
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "ï´¿",
+ ">",
+ "}",
+ "]"
+ ],
+ [
+ ")",
+ "ï´¾",
+ "<",
+ "{",
+ "["
+ ]
+ ],
+ [
+ [
+ "*",
+ "★",
+ "Ù"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ "Ø›",
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "ØŸ",
+ "?"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ "،",
+ "ØŸ",
+ "Ø›",
+ "!",
+ ":",
+ "-",
+ "/",
+ "'",
+ "\""
+ ],
+ [
+ ".",
+ "Ù•",
+ "Ù”",
+ "Ù’",
+ "Ù",
+ "ٌ",
+ "Ù‹",
+ "Ù‘",
+ "Ù–",
+ "Ù°",
+ "Ù“",
+ "Ù",
+ "Ù",
+ "ÙŽ",
+ "Ù€"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ ">",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ " "
+ ],
+ [
+ "،",
+ "ØŸ",
+ "Ø›",
+ "!",
+ ":",
+ "-",
+ "/",
+ "'",
+ "\""
+ ],
+ [
+ ".",
+ "Ù•",
+ "Ù”",
+ "Ù’",
+ "Ù",
+ "ٌ",
+ "Ù‹",
+ "Ù‘",
+ "Ù–",
+ "Ù°",
+ "Ù“",
+ "Ù",
+ "Ù",
+ "ÙŽ",
+ "Ù€"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ar",
+ "name": "Arabic"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/be.json b/data/osk-layouts/be.json
new file mode 100644
index 0000000..2427916
--- /dev/null
+++ b/data/osk-layouts/be.json
@@ -0,0 +1,584 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ë",
+ "ê",
+ "è",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "ij"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "Ä«",
+ "ij"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "Å“",
+ "ø",
+ "Å"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ä",
+ "â",
+ "Ã ",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ë",
+ "Ê",
+ "È",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "IJ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "Ã",
+ "Ì",
+ "ÃŽ",
+ "Ä®",
+ "Ī",
+ "IJ"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ã’",
+ "Õ",
+ "Å’",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "Ä",
+ "Â",
+ "À",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "nl-BE",
+ "name": "Dutch (Belgium)"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/bg.json b/data/osk-layouts/bg.json
new file mode 100644
index 0000000..5c8528f
--- /dev/null
+++ b/data/osk-layouts/bg.json
@@ -0,0 +1,533 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "Ñ"
+ ],
+ [
+ "в"
+ ],
+ [
+ "е"
+ ],
+ [
+ "Ñ€"
+ ],
+ [
+ "Ñ‚"
+ ],
+ [
+ "ÑŠ"
+ ],
+ [
+ "у"
+ ],
+ [
+ "и",
+ "Ñ"
+ ],
+ [
+ "о"
+ ],
+ [
+ "п"
+ ],
+ [
+ "ч"
+ ]
+ ],
+ [
+ [
+ "а"
+ ],
+ [
+ "Ñ"
+ ],
+ [
+ "д"
+ ],
+ [
+ "Ñ„"
+ ],
+ [
+ "г"
+ ],
+ [
+ "Ñ…"
+ ],
+ [
+ "й"
+ ],
+ [
+ "к"
+ ],
+ [
+ "л"
+ ],
+ [
+ "ш"
+ ],
+ [
+ "щ"
+ ]
+ ],
+ [
+ [
+ "з"
+ ],
+ [
+ "ь"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "б"
+ ],
+ [
+ "н"
+ ],
+ [
+ "м"
+ ],
+ [
+ "ÑŽ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Я"
+ ],
+ [
+ "Ð’"
+ ],
+ [
+ "Е"
+ ],
+ [
+ "Ð "
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ъ"
+ ],
+ [
+ "У"
+ ],
+ [
+ "И",
+ "Ð"
+ ],
+ [
+ "О"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Ч"
+ ]
+ ],
+ [
+ [
+ "Ð"
+ ],
+ [
+ "С"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ф"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Ð¥"
+ ],
+ [
+ "Й"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Ш"
+ ],
+ [
+ "Щ"
+ ]
+ ],
+ [
+ [
+ "З"
+ ],
+ [
+ "Ь"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "М"
+ ],
+ [
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "bg",
+ "name": "Bulgarian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/by.json b/data/osk-layouts/by.json
new file mode 100644
index 0000000..1f98cd2
--- /dev/null
+++ b/data/osk-layouts/by.json
@@ -0,0 +1,541 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "й"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "у"
+ ],
+ [
+ "к"
+ ],
+ [
+ "е",
+ "Ñ‘"
+ ],
+ [
+ "н"
+ ],
+ [
+ "г"
+ ],
+ [
+ "ш"
+ ],
+ [
+ "Ñž"
+ ],
+ [
+ "з"
+ ],
+ [
+ "Ñ…"
+ ]
+ ],
+ [
+ [
+ "Ñ„"
+ ],
+ [
+ "Ñ‹"
+ ],
+ [
+ "в"
+ ],
+ [
+ "а"
+ ],
+ [
+ "п"
+ ],
+ [
+ "Ñ€"
+ ],
+ [
+ "о"
+ ],
+ [
+ "л"
+ ],
+ [
+ "д"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "Ñ"
+ ]
+ ],
+ [
+ [
+ "Ñ"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "Ñ"
+ ],
+ [
+ "м"
+ ],
+ [
+ "Ñ–"
+ ],
+ [
+ "Ñ‚"
+ ],
+ [
+ "ь",
+ "ÑŠ"
+ ],
+ [
+ "б"
+ ],
+ [
+ "ÑŽ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Й"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "У"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Е",
+ "Ð"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Ш"
+ ],
+ [
+ "ÐŽ"
+ ],
+ [
+ "З"
+ ],
+ [
+ "Ð¥"
+ ]
+ ],
+ [
+ [
+ "Ф"
+ ],
+ [
+ "Ы"
+ ],
+ [
+ "Ð’"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Ð "
+ ],
+ [
+ "О"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Ð"
+ ]
+ ],
+ [
+ [
+ "Я"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "С"
+ ],
+ [
+ "М"
+ ],
+ [
+ "І"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ь",
+ "Ъ"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "be",
+ "name": "Belarusian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/cz.json b/data/osk-layouts/cz.json
new file mode 100644
index 0000000..9bad074
--- /dev/null
+++ b/data/osk-layouts/cz.json
@@ -0,0 +1,613 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "Ä›",
+ "è",
+ "ê",
+ "ë",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r",
+ "Å™"
+ ],
+ [
+ "t",
+ "Å¥"
+ ],
+ [
+ "z",
+ "ž",
+ "ź",
+ "ż"
+ ],
+ [
+ "u",
+ "ú",
+ "ů",
+ "û",
+ "ü",
+ "ù",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "î",
+ "ï",
+ "ì",
+ "į",
+ "Ä«"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "Å“",
+ "ø",
+ "Å"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "Ã ",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä"
+ ],
+ [
+ "s",
+ "Å¡",
+ "ß",
+ "Å›"
+ ],
+ [
+ "d",
+ "Ä"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "Ä",
+ "ç",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ň",
+ "ñ",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Äš",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R",
+ "Ř"
+ ],
+ [
+ "T",
+ "Ť"
+ ],
+ [
+ "Z",
+ "Ž",
+ "Ź",
+ "Å»"
+ ],
+ [
+ "U",
+ "Ú",
+ "Å®",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "ÃŽ",
+ "Ã",
+ "Ì",
+ "Ä®",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ã’",
+ "Õ",
+ "Å’",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€"
+ ],
+ [
+ "S",
+ "Å ",
+ "SS",
+ "Åš"
+ ],
+ [
+ "D",
+ "ÄŽ"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Y",
+ "Ã",
+ "Ÿ"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ň",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "cs",
+ "name": "Czech"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/de.json b/data/osk-layouts/de.json
new file mode 100644
index 0000000..751a856
--- /dev/null
+++ b/data/osk-layouts/de.json
@@ -0,0 +1,570 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "Ä—"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "z"
+ ],
+ [
+ "u",
+ "ü",
+ "û",
+ "ù",
+ "ú",
+ "Å«"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o",
+ "ö",
+ "ô",
+ "ò",
+ "ó",
+ "õ",
+ "Å“",
+ "ø",
+ "Å"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "ä",
+ "â",
+ "Ã ",
+ "á",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä"
+ ],
+ [
+ "s",
+ "ß",
+ "Å›",
+ "Å¡"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "y"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ä–"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Z"
+ ],
+ [
+ "U",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O",
+ "Ö",
+ "Ô",
+ "Ã’",
+ "Ó",
+ "Õ",
+ "Å’",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ä",
+ "Â",
+ "À",
+ "Ã",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€"
+ ],
+ [
+ "S",
+ "SS",
+ "Åš",
+ "Å "
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Y"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "de",
+ "name": "German"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/dk.json b/data/osk-layouts/dk.json
new file mode 100644
index 0000000..80df9ae
--- /dev/null
+++ b/data/osk-layouts/dk.json
@@ -0,0 +1,590 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ë"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "ï"
+ ],
+ [
+ "o",
+ "ó",
+ "ô",
+ "ò",
+ "õ",
+ "Å“",
+ "Å"
+ ],
+ [
+ "p"
+ ],
+ [
+ "Ã¥"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ä",
+ "Ã ",
+ "â",
+ "ã",
+ "Ä"
+ ],
+ [
+ "s",
+ "ß",
+ "Å›",
+ "Å¡"
+ ],
+ [
+ "d",
+ "ð"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l",
+ "Å‚"
+ ],
+ [
+ "æ",
+ "ä"
+ ],
+ [
+ "ø",
+ "ö"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ë"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "Ã",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "Ã"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ô",
+ "Ã’",
+ "Õ",
+ "Å’",
+ "Ō"
+ ],
+ [
+ "P"
+ ],
+ [
+ "Ã…"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "Ä",
+ "À",
+ "Â",
+ "Ã",
+ "Ä€"
+ ],
+ [
+ "S",
+ "SS",
+ "Åš",
+ "Å "
+ ],
+ [
+ "D",
+ "Ã"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L",
+ "Å"
+ ],
+ [
+ "Æ",
+ "Ä"
+ ],
+ [
+ "Ø",
+ "Ö"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "da",
+ "name": "Danish"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/ee.json b/data/osk-layouts/ee.json
new file mode 100644
index 0000000..5fd2f11
--- /dev/null
+++ b/data/osk-layouts/ee.json
@@ -0,0 +1,666 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "Ä“",
+ "è",
+ "Ä—",
+ "é",
+ "ê",
+ "ë",
+ "Ä™",
+ "Ä›"
+ ],
+ [
+ "r",
+ "Å—",
+ "Å™",
+ "Å•"
+ ],
+ [
+ "t",
+ "Å£",
+ "Å¥"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ü",
+ "Å«",
+ "ų",
+ "ù",
+ "ú",
+ "û",
+ "ů",
+ "ű"
+ ],
+ [
+ "i",
+ "Ä«",
+ "ì",
+ "į",
+ "Ã",
+ "î",
+ "ï",
+ "ı"
+ ],
+ [
+ "o",
+ "ö",
+ "õ",
+ "ò",
+ "ó",
+ "ô",
+ "Å“",
+ "Å‘",
+ "ø"
+ ],
+ [
+ "p"
+ ],
+ [
+ "ü"
+ ]
+ ],
+ [
+ [
+ "a",
+ "ä",
+ "Ä",
+ "Ã ",
+ "á",
+ "â",
+ "ã",
+ "Ã¥",
+ "æ",
+ "Ä…"
+ ],
+ [
+ "s",
+ "Å¡",
+ "ß",
+ "Å›",
+ "ÅŸ"
+ ],
+ [
+ "d",
+ "Ä"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "Ä£",
+ "ÄŸ"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k",
+ "Ä·"
+ ],
+ [
+ "l",
+ "ļ",
+ "Å‚",
+ "ĺ",
+ "ľ"
+ ],
+ [
+ "ö",
+ "õ"
+ ],
+ [
+ "ä"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "Ä",
+ "ç",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ņ",
+ "ñ",
+ "Å„",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "Ä’",
+ "È",
+ "Ä–",
+ "É",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Äš"
+ ],
+ [
+ "R",
+ "Å–",
+ "Ř",
+ "Å”"
+ ],
+ [
+ "T",
+ "Å¢",
+ "Ť"
+ ],
+ [
+ "Y",
+ "Ã",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ü",
+ "Ū",
+ "Ų",
+ "Ù",
+ "Ú",
+ "Û",
+ "Å®",
+ "Å°"
+ ],
+ [
+ "I",
+ "Ī",
+ "Ì",
+ "Ä®",
+ "Ã",
+ "ÃŽ",
+ "Ã",
+ "I"
+ ],
+ [
+ "O",
+ "Ö",
+ "Õ",
+ "Ã’",
+ "Ó",
+ "Ô",
+ "Å’",
+ "Å",
+ "Ø"
+ ],
+ [
+ "P"
+ ],
+ [
+ "Ü"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ä",
+ "Ä€",
+ "À",
+ "Ã",
+ "Â",
+ "Ã",
+ "Ã…",
+ "Æ",
+ "Ä„"
+ ],
+ [
+ "S",
+ "Å ",
+ "SS",
+ "Åš",
+ "Åž"
+ ],
+ [
+ "D",
+ "ÄŽ"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Ä¢",
+ "Äž"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K",
+ "Ķ"
+ ],
+ [
+ "L",
+ "Ä»",
+ "Å",
+ "Ĺ",
+ "Ľ"
+ ],
+ [
+ "Ö",
+ "Õ"
+ ],
+ [
+ "Ä"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž",
+ "Å»",
+ "Ź"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Å…",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "et",
+ "name": "Estonian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/epo.json b/data/osk-layouts/epo.json
new file mode 100644
index 0000000..71f9ef8
--- /dev/null
+++ b/data/osk-layouts/epo.json
@@ -0,0 +1,711 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "Å",
+ "q"
+ ],
+ [
+ "Ä",
+ "w",
+ "ŵ"
+ ],
+ [
+ "e",
+ "é",
+ "Ä›",
+ "è",
+ "ê",
+ "ë",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r",
+ "Å™",
+ "Å•",
+ "Å—"
+ ],
+ [
+ "t",
+ "Å¥",
+ "È›",
+ "Å£",
+ "ŧ"
+ ],
+ [
+ "Å",
+ "y",
+ "ý",
+ "Å·",
+ "ÿ",
+ "þ"
+ ],
+ [
+ "u",
+ "ú",
+ "ů",
+ "û",
+ "ü",
+ "ù",
+ "Å«",
+ "Å©",
+ "ű",
+ "ų",
+ "µ"
+ ],
+ [
+ "i",
+ "Ã",
+ "î",
+ "ï",
+ "Ä©",
+ "ì",
+ "į",
+ "Ä«",
+ "ı",
+ "ij"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "Å“",
+ "ø",
+ "Å",
+ "Å‘",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "Ã ",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä",
+ "ă",
+ "Ä…",
+ "ª"
+ ],
+ [
+ "s",
+ "ß",
+ "Å¡",
+ "Å›",
+ "È™",
+ "ÅŸ"
+ ],
+ [
+ "d",
+ "ð",
+ "Ä",
+ "Ä‘"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "ÄŸ",
+ "Ä¡",
+ "Ä£"
+ ],
+ [
+ "h",
+ "Ä¥",
+ "ħ"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k",
+ "Ä·",
+ "ĸ"
+ ],
+ [
+ "l",
+ "ĺ",
+ "ļ",
+ "ľ",
+ "Å€",
+ "Å‚"
+ ],
+ [
+ "ĵ"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ź",
+ "ż",
+ "ž"
+ ],
+ [
+ "ĉ",
+ "x"
+ ],
+ [
+ "c",
+ "ć",
+ "Ä",
+ "ç",
+ "Ä‹"
+ ],
+ [
+ "v",
+ "w",
+ "ŵ"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "Å„",
+ "ņ",
+ "ň",
+ "ʼn",
+ "Å‹"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Ŝ",
+ "Q"
+ ],
+ [
+ "Ĝ",
+ "W",
+ "Å´"
+ ],
+ [
+ "E",
+ "É",
+ "Äš",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R",
+ "Ř",
+ "Å”",
+ "Å–"
+ ],
+ [
+ "T",
+ "Ť",
+ "Èš",
+ "Å¢",
+ "Ŧ"
+ ],
+ [
+ "Ŭ",
+ "Y",
+ "Ã",
+ "Ŷ",
+ "Ÿ",
+ "Þ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Å®",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ū",
+ "Ũ",
+ "Å°",
+ "Ų",
+ "Μ"
+ ],
+ [
+ "I",
+ "Ã",
+ "ÃŽ",
+ "Ã",
+ "Ĩ",
+ "Ì",
+ "Ä®",
+ "Ī",
+ "I",
+ "IJ"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ã’",
+ "Õ",
+ "Å’",
+ "Ø",
+ "Ō",
+ "Å",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€",
+ "Ä‚",
+ "Ä„",
+ "ª"
+ ],
+ [
+ "S",
+ "SS",
+ "Å ",
+ "Åš",
+ "Ș",
+ "Åž"
+ ],
+ [
+ "D",
+ "Ã",
+ "ÄŽ",
+ "Ä"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Äž",
+ "Ä ",
+ "Ä¢"
+ ],
+ [
+ "H",
+ "Ĥ",
+ "Ħ"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K",
+ "Ķ",
+ "ĸ"
+ ],
+ [
+ "L",
+ "Ĺ",
+ "Ä»",
+ "Ľ",
+ "Ä¿",
+ "Å"
+ ],
+ [
+ "Ä´"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ź",
+ "Å»",
+ "Ž"
+ ],
+ [
+ "Ĉ",
+ "X"
+ ],
+ [
+ "C",
+ "Ć",
+ "Č",
+ "Ç",
+ "ÄŠ"
+ ],
+ [
+ "V",
+ "W",
+ "Å´"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń",
+ "Å…",
+ "Ň",
+ "ʼN",
+ "ÅŠ"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "eo",
+ "name": "Esperanto"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/es+cat.json b/data/osk-layouts/es+cat.json
new file mode 100644
index 0000000..d0bd125
--- /dev/null
+++ b/data/osk-layouts/es+cat.json
@@ -0,0 +1,602 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ë",
+ "ê",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "Ä«"
+ ],
+ [
+ "o",
+ "ò",
+ "ó",
+ "ö",
+ "ô",
+ "õ",
+ "ø",
+ "Å“",
+ "Å",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "Ã ",
+ "á",
+ "ä",
+ "â",
+ "ã",
+ "Ã¥",
+ "Ä…",
+ "æ",
+ "Ä",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l",
+ "l·l",
+ "Å‚"
+ ],
+ [
+ "ç"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "Ä"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "·",
+ "!",
+ ",",
+ "?",
+ ":",
+ ";",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ë",
+ "Ê",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "Ã",
+ "Ì",
+ "ÃŽ",
+ "Ä®",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ã’",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Õ",
+ "Ø",
+ "Å’",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Ã",
+ "Ä",
+ "Â",
+ "Ã",
+ "Ã…",
+ "Ä„",
+ "Æ",
+ "Ä€",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L",
+ "L·L",
+ "Å"
+ ],
+ [
+ "Ç"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "·",
+ "!",
+ ",",
+ "?",
+ ":",
+ ";",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "?",
+ "·"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "?",
+ "·"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ca",
+ "name": "Catalan"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/es.json b/data/osk-layouts/es.json
new file mode 100644
index 0000000..0bb5d72
--- /dev/null
+++ b/data/osk-layouts/es.json
@@ -0,0 +1,604 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ë",
+ "ê",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "Ä«"
+ ],
+ [
+ "o",
+ "ó",
+ "ò",
+ "ö",
+ "ô",
+ "õ",
+ "ø",
+ "Å“",
+ "Å",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "Ã ",
+ "ä",
+ "â",
+ "ã",
+ "Ã¥",
+ "Ä…",
+ "æ",
+ "Ä",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ],
+ [
+ "ñ"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "Ä"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ë",
+ "Ê",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "Ã",
+ "Ì",
+ "ÃŽ",
+ "Ä®",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ã’",
+ "Ö",
+ "Ô",
+ "Õ",
+ "Ø",
+ "Å’",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "À",
+ "Ä",
+ "Â",
+ "Ã",
+ "Ã…",
+ "Ä„",
+ "Æ",
+ "Ä€",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ],
+ [
+ "Ñ"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!",
+ "¡"
+ ],
+ [
+ ".",
+ "?",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!",
+ "¡"
+ ],
+ [
+ ".",
+ "?",
+ "¿"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "es",
+ "name": "Spanish"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/fi.json b/data/osk-layouts/fi.json
new file mode 100644
index 0000000..3ba5b56
--- /dev/null
+++ b/data/osk-layouts/fi.json
@@ -0,0 +1,570 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ü"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o",
+ "ø",
+ "ô",
+ "ò",
+ "ó",
+ "õ",
+ "Å“",
+ "Å"
+ ],
+ [
+ "p"
+ ],
+ [
+ "Ã¥"
+ ]
+ ],
+ [
+ [
+ "a",
+ "æ",
+ "Ã ",
+ "á",
+ "â",
+ "ã",
+ "Ä"
+ ],
+ [
+ "s",
+ "Å¡",
+ "ß",
+ "Å›"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ],
+ [
+ "ö",
+ "ø"
+ ],
+ [
+ "ä",
+ "æ"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž",
+ "ź",
+ "ż"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ü"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O",
+ "Ø",
+ "Ô",
+ "Ã’",
+ "Ó",
+ "Õ",
+ "Å’",
+ "Ō"
+ ],
+ [
+ "P"
+ ],
+ [
+ "Ã…"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Æ",
+ "À",
+ "Ã",
+ "Â",
+ "Ã",
+ "Ä€"
+ ],
+ [
+ "S",
+ "Å ",
+ "SS",
+ "Åš"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ],
+ [
+ "Ö",
+ "Ø"
+ ],
+ [
+ "Ä",
+ "Æ"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž",
+ "Ź",
+ "Å»"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "fi",
+ "name": "Finnish"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/fr.json b/data/osk-layouts/fr.json
new file mode 100644
index 0000000..2b2bedc
--- /dev/null
+++ b/data/osk-layouts/fr.json
@@ -0,0 +1,599 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "%",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "%",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ù",
+ "û",
+ "%",
+ "ü",
+ "ú",
+ "Å«"
+ ],
+ [
+ "i",
+ "î",
+ "%",
+ "ï",
+ "ì",
+ "Ã",
+ "į",
+ "Ä«"
+ ],
+ [
+ "o",
+ "ô",
+ "Å“",
+ "%",
+ "ö",
+ "ò",
+ "ó",
+ "õ",
+ "ø",
+ "Å",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "Ã ",
+ "â",
+ "%",
+ "æ",
+ "á",
+ "ä",
+ "ã",
+ "Ã¥",
+ "Ä",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "Ä"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "%",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "%",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ù",
+ "Û",
+ "%",
+ "Ü",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "I",
+ "ÃŽ",
+ "%",
+ "Ã",
+ "Ì",
+ "Ã",
+ "Ä®",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ô",
+ "Å’",
+ "%",
+ "Ö",
+ "Ã’",
+ "Ó",
+ "Õ",
+ "Ø",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Â",
+ "%",
+ "Æ",
+ "Ã",
+ "Ä",
+ "Ã",
+ "Ã…",
+ "Ä€",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "fr-CA",
+ "name": "French Canada"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/ge.json b/data/osk-layouts/ge.json
new file mode 100644
index 0000000..a94b3ba
--- /dev/null
+++ b/data/osk-layouts/ge.json
@@ -0,0 +1,409 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ქ"
+ ],
+ [
+ "წ"
+ ],
+ [
+ "ე",
+ "ჱ"
+ ],
+ [
+ "რ"
+ ],
+ [
+ "ტ"
+ ],
+ [
+ "ყ",
+ "ჸ"
+ ],
+ [
+ "უ"
+ ],
+ [
+ "ი",
+ "ჲ"
+ ],
+ [
+ "áƒ"
+ ],
+ [
+ "პ"
+ ]
+ ],
+ [
+ [
+ "áƒ",
+ "ჺ"
+ ],
+ [
+ "ს"
+ ],
+ [
+ "დ"
+ ],
+ [
+ "ფ",
+ "ჶ"
+ ],
+ [
+ "გ",
+ "ჹ"
+ ],
+ [
+ "ჰ",
+ "ჵ"
+ ],
+ [
+ "ჯ",
+ "ჷ"
+ ],
+ [
+ "კ"
+ ],
+ [
+ "ლ"
+ ]
+ ],
+ [
+ [
+ "ზ"
+ ],
+ [
+ "ხ",
+ "ჴ"
+ ],
+ [
+ "ც"
+ ],
+ [
+ "ვ",
+ "ჳ"
+ ],
+ [
+ "ბ"
+ ],
+ [
+ "ნ",
+ "ჼ"
+ ],
+ [
+ "მ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ka",
+ "name": "Georgian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/gr.json b/data/osk-layouts/gr.json
new file mode 100644
index 0000000..b2337e5
--- /dev/null
+++ b/data/osk-layouts/gr.json
@@ -0,0 +1,532 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ ";",
+ ":"
+ ],
+ [
+ "Ï‚"
+ ],
+ [
+ "ε",
+ "Î"
+ ],
+ [
+ "Ï"
+ ],
+ [
+ "Ï„"
+ ],
+ [
+ "Ï…",
+ "Ï",
+ "Ï‹",
+ "ΰ"
+ ],
+ [
+ "θ"
+ ],
+ [
+ "ι",
+ "ί",
+ "ÏŠ",
+ "Î"
+ ],
+ [
+ "ο",
+ "ό"
+ ],
+ [
+ "Ï€"
+ ]
+ ],
+ [
+ [
+ "α",
+ "ά"
+ ],
+ [
+ "σ"
+ ],
+ [
+ "δ"
+ ],
+ [
+ "φ"
+ ],
+ [
+ "γ"
+ ],
+ [
+ "η",
+ "ή"
+ ],
+ [
+ "ξ"
+ ],
+ [
+ "κ"
+ ],
+ [
+ "λ"
+ ]
+ ],
+ [
+ [
+ "ζ"
+ ],
+ [
+ "χ"
+ ],
+ [
+ "ψ"
+ ],
+ [
+ "ω",
+ "ÏŽ"
+ ],
+ [
+ "β"
+ ],
+ [
+ "ν"
+ ],
+ [
+ "μ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ ";",
+ ":"
+ ],
+ [
+ "Σ"
+ ],
+ [
+ "Ε",
+ "Έ"
+ ],
+ [
+ "Ρ"
+ ],
+ [
+ "Τ"
+ ],
+ [
+ "Î¥",
+ "ÎŽ",
+ "Ϋ",
+ "ΫÌ"
+ ],
+ [
+ "Θ"
+ ],
+ [
+ "Ι",
+ "Ί",
+ "Ϊ",
+ "ΪÌ"
+ ],
+ [
+ "Ο",
+ "Ό"
+ ],
+ [
+ "Î "
+ ]
+ ],
+ [
+ [
+ "Α",
+ "Ά"
+ ],
+ [
+ "Σ"
+ ],
+ [
+ "Δ"
+ ],
+ [
+ "Φ"
+ ],
+ [
+ "Γ"
+ ],
+ [
+ "Η",
+ "Ή"
+ ],
+ [
+ "Ξ"
+ ],
+ [
+ "Κ"
+ ],
+ [
+ "Λ"
+ ]
+ ],
+ [
+ [
+ "Ζ"
+ ],
+ [
+ "Χ"
+ ],
+ [
+ "Ψ"
+ ],
+ [
+ "Ω",
+ "Î"
+ ],
+ [
+ "Î’"
+ ],
+ [
+ "Î"
+ ],
+ [
+ "Μ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "el",
+ "name": "Greek"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/hr.json b/data/osk-layouts/hr.json
new file mode 100644
index 0000000..ff0d1d0
--- /dev/null
+++ b/data/osk-layouts/hr.json
@@ -0,0 +1,531 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "z",
+ "ž",
+ "ź",
+ "ż"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a"
+ ],
+ [
+ "s",
+ "Å¡",
+ "Å›",
+ "ß"
+ ],
+ [
+ "d",
+ "Ä‘"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "y"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "Ä",
+ "ć",
+ "ç"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Z",
+ "Ž",
+ "Ź",
+ "Å»"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A"
+ ],
+ [
+ "S",
+ "Å ",
+ "Åš",
+ "SS"
+ ],
+ [
+ "D",
+ "Ä"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Y"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ć",
+ "Ç"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "hr",
+ "name": "Croatian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/hu.json b/data/osk-layouts/hu.json
new file mode 100644
index 0000000..9bcc532
--- /dev/null
+++ b/data/osk-layouts/hu.json
@@ -0,0 +1,579 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "z"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "ű",
+ "û",
+ "ù",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "î",
+ "ï",
+ "ì",
+ "į",
+ "Ä«"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "Å‘",
+ "ô",
+ "ò",
+ "õ",
+ "Å“",
+ "ø",
+ "Å"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "Ã ",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "y"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Z"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Å°",
+ "Û",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "ÃŽ",
+ "Ã",
+ "Ì",
+ "Ä®",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Å",
+ "Ô",
+ "Ã’",
+ "Õ",
+ "Å’",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Y"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "hu",
+ "name": "Hungarian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/id.json b/data/osk-layouts/id.json
new file mode 100644
index 0000000..2342962
--- /dev/null
+++ b/data/osk-layouts/id.json
@@ -0,0 +1,507 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "id",
+ "name": "Indonesian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/il.json b/data/osk-layouts/il.json
new file mode 100644
index 0000000..76dd588
--- /dev/null
+++ b/data/osk-layouts/il.json
@@ -0,0 +1,419 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "'",
+ "\""
+ ],
+ [
+ "-",
+ "_"
+ ],
+ [
+ "ק"
+ ],
+ [
+ "ר"
+ ],
+ [
+ "×"
+ ],
+ [
+ "ט"
+ ],
+ [
+ "ו"
+ ],
+ [
+ "ן"
+ ],
+ [
+ "×"
+ ],
+ [
+ "פ"
+ ]
+ ],
+ [
+ [
+ "ש"
+ ],
+ [
+ "ד"
+ ],
+ [
+ "×’",
+ "ג׳"
+ ],
+ [
+ "×›"
+ ],
+ [
+ "×¢"
+ ],
+ [
+ "×™",
+ "ײַ"
+ ],
+ [
+ "×—",
+ "ח׳"
+ ],
+ [
+ "ל"
+ ],
+ [
+ "ך"
+ ],
+ [
+ "×£"
+ ]
+ ],
+ [
+ [
+ "×–",
+ "ז׳"
+ ],
+ [
+ "ס"
+ ],
+ [
+ "ב"
+ ],
+ [
+ "×”"
+ ],
+ [
+ "× "
+ ],
+ [
+ "מ"
+ ],
+ [
+ "צ",
+ "צ׳"
+ ],
+ [
+ "ת",
+ "ת׳"
+ ],
+ [
+ "×¥",
+ "ץ׳"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "₪",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±",
+ "﬩"
+ ],
+ [
+ "(",
+ ">",
+ "}",
+ "]"
+ ],
+ [
+ ")",
+ "<",
+ "{",
+ "["
+ ]
+ ],
+ [
+ [
+ "*",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!"
+ ],
+ [
+ ".",
+ "?"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ ">",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!"
+ ],
+ [
+ ".",
+ "?"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "he",
+ "name": "Hebrew"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/in+bolnagri.json b/data/osk-layouts/in+bolnagri.json
new file mode 100644
index 0000000..36f10ac
--- /dev/null
+++ b/data/osk-layouts/in+bolnagri.json
@@ -0,0 +1,439 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "◌ौ"
+ ],
+ [
+ "◌ै"
+ ],
+ [
+ "◌ा"
+ ],
+ [
+ "◌ी"
+ ],
+ [
+ "◌ू"
+ ],
+ [
+ "ब",
+ "ब॒",
+ "%"
+ ],
+ [
+ "ह"
+ ],
+ [
+ "ग",
+ "जà¥à¤ž",
+ "ग़",
+ "ग॒",
+ "%"
+ ],
+ [
+ "द"
+ ],
+ [
+ "ज",
+ "ज॒",
+ "जà¥à¤ž",
+ "ज़",
+ "%"
+ ],
+ [
+ "ड",
+ "ड॒",
+ "ड़"
+ ]
+ ],
+ [
+ [
+ "◌ो"
+ ],
+ [
+ "◌े"
+ ],
+ [
+ "â—Œà¥"
+ ],
+ [
+ "◌ि"
+ ],
+ [
+ "â—Œà¥"
+ ],
+ [
+ "प"
+ ],
+ [
+ "र",
+ "ऋ",
+ "ऱ",
+ "ॠ"
+ ],
+ [
+ "क",
+ "क़"
+ ],
+ [
+ "त",
+ "तà¥à¤°"
+ ],
+ [
+ "च"
+ ],
+ [
+ "ट"
+ ]
+ ],
+ [
+ [
+ "◌ॉ"
+ ],
+ [
+ "◌ं"
+ ],
+ [
+ "म",
+ "à¥"
+ ],
+ [
+ "न",
+ "ञ",
+ "ङ",
+ "ऩ"
+ ],
+ [
+ "व"
+ ],
+ [
+ "ल",
+ "ऌ",
+ "ॡ"
+ ],
+ [
+ "स"
+ ],
+ [
+ "य",
+ "य़"
+ ],
+ [
+ "◌़"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "१",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "२",
+ "²",
+ "â…”"
+ ],
+ [
+ "३",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "४",
+ "â´"
+ ],
+ [
+ "५",
+ "â…"
+ ],
+ [
+ "६"
+ ],
+ [
+ "à¥",
+ "â…ž"
+ ],
+ [
+ "८"
+ ],
+ [
+ "९"
+ ],
+ [
+ "०",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "₹",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "hi",
+ "name": "Hindi"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/ir.json b/data/osk-layouts/ir.json
new file mode 100644
index 0000000..a773b14
--- /dev/null
+++ b/data/osk-layouts/ir.json
@@ -0,0 +1,495 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ض"
+ ],
+ [
+ "ص"
+ ],
+ [
+ "Ø«"
+ ],
+ [
+ "Ù‚",
+ "Ú¨"
+ ],
+ [
+ "Ù",
+ "Ú¤",
+ "Ú¢",
+ "Ú¥"
+ ],
+ [
+ "غ"
+ ],
+ [
+ "ع"
+ ],
+ [
+ "Ù‡",
+ "Ù‡â€"
+ ],
+ [
+ "Ø®"
+ ],
+ [
+ "Ø"
+ ],
+ [
+ "ج",
+ "Ú†"
+ ]
+ ],
+ [
+ [
+ "Ø´",
+ "ڜ"
+ ],
+ [
+ "س"
+ ],
+ [
+ "ÙŠ",
+ "ئ",
+ "Ù‰"
+ ],
+ [
+ "ب",
+ "Ù¾"
+ ],
+ [
+ "Ù„",
+ "لا",
+ "لأ",
+ "لإ",
+ "لآ"
+ ],
+ [
+ "ا",
+ "Ø¢",
+ "Ø¡",
+ "Ø£",
+ "Ø¥",
+ "Ù±"
+ ],
+ [
+ "ت"
+ ],
+ [
+ "Ù†"
+ ],
+ [
+ "Ù…"
+ ],
+ [
+ "Ùƒ",
+ "Ú¯",
+ "Ú©"
+ ],
+ [
+ "Ø·"
+ ]
+ ],
+ [
+ [
+ "Ø°"
+ ],
+ [
+ "Ø¡"
+ ],
+ [
+ "ؤ"
+ ],
+ [
+ "ر"
+ ],
+ [
+ "Ù‰",
+ "ئ"
+ ],
+ [
+ "Ø©"
+ ],
+ [
+ "Ùˆ"
+ ],
+ [
+ "ز",
+ "Ú˜"
+ ],
+ [
+ "ظ"
+ ],
+ [
+ "د"
+ ]
+ ],
+ [
+ [
+ "،"
+ ],
+ [
+ " "
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "\"",
+ "'",
+ "#",
+ "-",
+ ":",
+ "!",
+ "،",
+ "ØŸ",
+ "@",
+ "&",
+ "%",
+ "+",
+ "Ø›",
+ "/",
+ ")",
+ "("
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "Û±",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "Û²",
+ "²",
+ "â…”"
+ ],
+ [
+ "Û³",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "Û´",
+ "â´"
+ ],
+ [
+ "Ûµ",
+ "â…"
+ ],
+ [
+ "Û¶"
+ ],
+ [
+ "Û·",
+ "â…ž"
+ ],
+ [
+ "Û¸"
+ ],
+ [
+ "Û¹"
+ ],
+ [
+ "Û°",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "Ù¬",
+ "@"
+ ],
+ [
+ "Ù«",
+ "#"
+ ],
+ [
+ "ï·¼",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "Ùª",
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "ï´¿",
+ ">",
+ "}",
+ "]"
+ ],
+ [
+ ")",
+ "ï´¾",
+ "<",
+ "{",
+ "["
+ ]
+ ],
+ [
+ [
+ "*",
+ "★",
+ "Ù"
+ ],
+ [
+ "«",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "»",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ "Ø›",
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "ØŸ",
+ "?"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ "،",
+ ":",
+ "!",
+ "ØŸ",
+ "Ø›",
+ "-",
+ "/",
+ "»",
+ "«"
+ ],
+ [
+ ".",
+ "Ù•",
+ "Ù”",
+ "Ù’",
+ "Ù",
+ "ٌ",
+ "Ù‹",
+ "Ù‘",
+ "Ù–",
+ "Ù°",
+ "Ù“",
+ "Ù",
+ "Ù",
+ "ÙŽ",
+ "Ù€"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "«",
+ "›",
+ "≥",
+ ">"
+ ],
+ [
+ "»",
+ "‹",
+ "≤",
+ "<"
+ ],
+ [
+ " "
+ ],
+ [
+ "،",
+ ":",
+ "!",
+ "ØŸ",
+ "Ø›",
+ "-",
+ "/",
+ "»",
+ "«"
+ ],
+ [
+ ".",
+ "Ù•",
+ "Ù”",
+ "Ù’",
+ "Ù",
+ "ٌ",
+ "Ù‹",
+ "Ù‘",
+ "Ù–",
+ "Ù°",
+ "Ù“",
+ "Ù",
+ "Ù",
+ "ÙŽ",
+ "Ù€"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "fa",
+ "name": "Persian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/is.json b/data/osk-layouts/is.json
new file mode 100644
index 0000000..b53df32
--- /dev/null
+++ b/data/osk-layouts/is.json
@@ -0,0 +1,583 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ë",
+ "è",
+ "ê",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t",
+ "þ"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "ï",
+ "î",
+ "ì",
+ "į",
+ "Ä«"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "Å“",
+ "ø",
+ "Å"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ä",
+ "æ",
+ "Ã¥",
+ "Ã ",
+ "â",
+ "ã",
+ "Ä"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d",
+ "ð"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ë",
+ "È",
+ "Ê",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T",
+ "Þ"
+ ],
+ [
+ "Y",
+ "Ã",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "Ã",
+ "ÃŽ",
+ "Ì",
+ "Ä®",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ã’",
+ "Õ",
+ "Å’",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "Ä",
+ "Æ",
+ "Ã…",
+ "À",
+ "Â",
+ "Ã",
+ "Ä€"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D",
+ "Ã"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "is",
+ "name": "Icelandic"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/it.json b/data/osk-layouts/it.json
new file mode 100644
index 0000000..d865266
--- /dev/null
+++ b/data/osk-layouts/it.json
@@ -0,0 +1,580 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ù",
+ "ú",
+ "û",
+ "ü",
+ "Å«"
+ ],
+ [
+ "i",
+ "ì",
+ "Ã",
+ "î",
+ "ï",
+ "į",
+ "Ä«"
+ ],
+ [
+ "o",
+ "ò",
+ "ó",
+ "ô",
+ "ö",
+ "õ",
+ "Å“",
+ "ø",
+ "Å",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "Ã ",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ù",
+ "Ú",
+ "Û",
+ "Ü",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ì",
+ "Ã",
+ "ÃŽ",
+ "Ã",
+ "Ä®",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ã’",
+ "Ó",
+ "Ô",
+ "Ö",
+ "Õ",
+ "Å’",
+ "Ø",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Ã",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "it",
+ "name": "Italian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/ke.json b/data/osk-layouts/ke.json
new file mode 100644
index 0000000..9c3e935
--- /dev/null
+++ b/data/osk-layouts/ke.json
@@ -0,0 +1,577 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "û",
+ "ü",
+ "ù",
+ "ú",
+ "Å«"
+ ],
+ [
+ "i",
+ "î",
+ "ï",
+ "Ã",
+ "Ä«",
+ "ì"
+ ],
+ [
+ "o",
+ "ô",
+ "ö",
+ "ò",
+ "ó",
+ "Å“",
+ "ø",
+ "Å",
+ "õ"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "Ã ",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä"
+ ],
+ [
+ "s",
+ "ß"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "g'"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "I",
+ "ÃŽ",
+ "Ã",
+ "Ã",
+ "Ī",
+ "Ì"
+ ],
+ [
+ "O",
+ "Ô",
+ "Ö",
+ "Ã’",
+ "Ó",
+ "Å’",
+ "Ø",
+ "Ō",
+ "Õ"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Ã",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€"
+ ],
+ [
+ "S",
+ "SS"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "G'"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "sw",
+ "name": "Swahili"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/kg.json b/data/osk-layouts/kg.json
new file mode 100644
index 0000000..b56915a
--- /dev/null
+++ b/data/osk-layouts/kg.json
@@ -0,0 +1,547 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "й"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "у",
+ "Ò¯"
+ ],
+ [
+ "к"
+ ],
+ [
+ "е",
+ "Ñ‘"
+ ],
+ [
+ "н",
+ "Ò£"
+ ],
+ [
+ "г"
+ ],
+ [
+ "ш"
+ ],
+ [
+ "щ"
+ ],
+ [
+ "з"
+ ],
+ [
+ "Ñ…"
+ ]
+ ],
+ [
+ [
+ "Ñ„"
+ ],
+ [
+ "Ñ‹"
+ ],
+ [
+ "в"
+ ],
+ [
+ "а"
+ ],
+ [
+ "п"
+ ],
+ [
+ "Ñ€"
+ ],
+ [
+ "о",
+ "Ó©"
+ ],
+ [
+ "л"
+ ],
+ [
+ "д"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "Ñ"
+ ]
+ ],
+ [
+ [
+ "Ñ"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "Ñ"
+ ],
+ [
+ "м"
+ ],
+ [
+ "и"
+ ],
+ [
+ "Ñ‚"
+ ],
+ [
+ "ь",
+ "ÑŠ"
+ ],
+ [
+ "б"
+ ],
+ [
+ "ÑŽ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Й"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "У",
+ "Ò®"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Е",
+ "Ð"
+ ],
+ [
+ "Ð",
+ "Ò¢"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Ш"
+ ],
+ [
+ "Щ"
+ ],
+ [
+ "З"
+ ],
+ [
+ "Ð¥"
+ ]
+ ],
+ [
+ [
+ "Ф"
+ ],
+ [
+ "Ы"
+ ],
+ [
+ "Ð’"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Ð "
+ ],
+ [
+ "О",
+ "Ó¨"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Ð"
+ ]
+ ],
+ [
+ [
+ "Я"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "С"
+ ],
+ [
+ "М"
+ ],
+ [
+ "И"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ь",
+ "Ъ"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ky",
+ "name": "Kirghiz"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/kh.json b/data/osk-layouts/kh.json
new file mode 100644
index 0000000..e5d34cb
--- /dev/null
+++ b/data/osk-layouts/kh.json
@@ -0,0 +1,481 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "១",
+ "៱"
+ ],
+ [
+ "២",
+ "៲"
+ ],
+ [
+ "៣",
+ "៳"
+ ],
+ [
+ "៤",
+ "៴"
+ ],
+ [
+ "៥",
+ "៵"
+ ],
+ [
+ "៦",
+ "៶"
+ ],
+ [
+ "៧",
+ "៷"
+ ],
+ [
+ "៨",
+ "៸"
+ ],
+ [
+ "៩",
+ "៹"
+ ],
+ [
+ "០",
+ "៰"
+ ],
+ [
+ "ឥ",
+ "",
+ "ឦ"
+ ],
+ [
+ "áž²",
+ "áž±"
+ ]
+ ],
+ [
+ [
+ "ឆ"
+ ],
+ [
+ "áž¹"
+ ],
+ [
+ "áŸ"
+ ],
+ [
+ "ážš"
+ ],
+ [
+ "áž"
+ ],
+ [
+ "áž™"
+ ],
+ [
+ "áž»"
+ ],
+ [
+ "áž·"
+ ],
+ [
+ "ោ"
+ ],
+ [
+ "áž•"
+ ],
+ [
+ "ៀ"
+ ],
+ [
+ "ឪ",
+ "ឧ",
+ "áž±",
+ "áž³",
+ "áž©",
+ "ឨ"
+ ]
+ ],
+ [
+ [
+ "ា"
+ ],
+ [
+ "ស"
+ ],
+ [
+ "ដ"
+ ],
+ [
+ "áž"
+ ],
+ [
+ "áž„"
+ ],
+ [
+ "áž "
+ ],
+ [
+ "្"
+ ],
+ [
+ "ក"
+ ],
+ [
+ "áž›"
+ ],
+ [
+ "áž¾"
+ ],
+ [
+ "់"
+ ],
+ [
+ "áž®",
+ "áž",
+ "áž°"
+ ]
+ ],
+ [
+ [
+ "áž‹"
+ ],
+ [
+ "áž"
+ ],
+ [
+ "áž…"
+ ],
+ [
+ "វ"
+ ],
+ [
+ "áž”"
+ ],
+ [
+ "áž“"
+ ],
+ [
+ "ម"
+ ],
+ [
+ "ុំ"
+ ],
+ [
+ "។"
+ ],
+ [
+ "៊"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "៛",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "km",
+ "name": "Khmer"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/la.json b/data/osk-layouts/la.json
new file mode 100644
index 0000000..aedff60
--- /dev/null
+++ b/data/osk-layouts/la.json
@@ -0,0 +1,472 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ຢ",
+ "໑"
+ ],
+ [
+ "ຟ",
+ "à»’"
+ ],
+ [
+ "ໂ",
+ "໓"
+ ],
+ [
+ "ຖ",
+ "à»”"
+ ],
+ [
+ "ຸ"
+ ],
+ [
+ "ູ"
+ ],
+ [
+ "ຄ",
+ "໕"
+ ],
+ [
+ "ຕ",
+ "à»–"
+ ],
+ [
+ "ຈ",
+ "à»—"
+ ],
+ [
+ "ຂ",
+ "໘"
+ ],
+ [
+ "ຊ",
+ "à»™"
+ ],
+ [
+ "à»"
+ ]
+ ],
+ [
+ [
+ "ົ"
+ ],
+ [
+ "ໄ",
+ "à»"
+ ],
+ [
+ "ຳ"
+ ],
+ [
+ "ພ"
+ ],
+ [
+ "ະ"
+ ],
+ [
+ "ິ"
+ ],
+ [
+ "ີ"
+ ],
+ [
+ "ຮ"
+ ],
+ [
+ "ນ"
+ ],
+ [
+ "àº"
+ ],
+ [
+ "ບ"
+ ],
+ [
+ "ລ"
+ ]
+ ],
+ [
+ [
+ "ັ"
+ ],
+ [
+ "ຫ"
+ ],
+ [
+ "àº"
+ ],
+ [
+ "ດ"
+ ],
+ [
+ "ເ"
+ ],
+ [
+ "້"
+ ],
+ [
+ "່"
+ ],
+ [
+ "າ"
+ ],
+ [
+ "ສ"
+ ],
+ [
+ "ວ"
+ ],
+ [
+ "ງ"
+ ],
+ [
+ "“"
+ ]
+ ],
+ [
+ [
+ "ຜ"
+ ],
+ [
+ "ປ"
+ ],
+ [
+ "à»"
+ ],
+ [
+ "àº"
+ ],
+ [
+ "ຶ"
+ ],
+ [
+ "ື"
+ ],
+ [
+ "ທ"
+ ],
+ [
+ "ມ"
+ ],
+ [
+ "ໃ"
+ ],
+ [
+ "àº"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "â‚",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "lo",
+ "name": "Lao"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/latam.json b/data/osk-layouts/latam.json
new file mode 100644
index 0000000..4095c7a
--- /dev/null
+++ b/data/osk-layouts/latam.json
@@ -0,0 +1,603 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ë",
+ "ê",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "Ä«"
+ ],
+ [
+ "o",
+ "ó",
+ "ò",
+ "ö",
+ "ô",
+ "õ",
+ "ø",
+ "Å“",
+ "Å",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "Ã ",
+ "ä",
+ "â",
+ "ã",
+ "Ã¥",
+ "Ä…",
+ "æ",
+ "Ä",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ],
+ [
+ "ñ"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "Ä"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ë",
+ "Ê",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "Ã",
+ "Ì",
+ "ÃŽ",
+ "Ä®",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ã’",
+ "Ö",
+ "Ô",
+ "Õ",
+ "Ø",
+ "Å’",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "À",
+ "Ä",
+ "Â",
+ "Ã",
+ "Ã…",
+ "Ä„",
+ "Æ",
+ "Ä€",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ],
+ [
+ "Ñ"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ ";",
+ "!",
+ ",",
+ "?",
+ ":",
+ "¡",
+ "@",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!",
+ "¡"
+ ],
+ [
+ ".",
+ "?",
+ "¿"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ",",
+ "!",
+ "¡"
+ ],
+ [
+ ".",
+ "?",
+ "¿"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "es-US",
+ "name": "Spanish United States"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/lt.json b/data/osk-layouts/lt.json
new file mode 100644
index 0000000..7cd5352
--- /dev/null
+++ b/data/osk-layouts/lt.json
@@ -0,0 +1,647 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "Ä—",
+ "Ä™",
+ "Ä“",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "Ä›"
+ ],
+ [
+ "r",
+ "Å—",
+ "Å™",
+ "Å•"
+ ],
+ [
+ "t",
+ "Å£",
+ "Å¥"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "Å«",
+ "ų",
+ "ü",
+ "Å«",
+ "ù",
+ "ú",
+ "û",
+ "ů",
+ "ű"
+ ],
+ [
+ "i",
+ "į",
+ "Ä«",
+ "ì",
+ "Ã",
+ "î",
+ "ï",
+ "ı"
+ ],
+ [
+ "o",
+ "ö",
+ "õ",
+ "ò",
+ "ó",
+ "ô",
+ "Å“",
+ "Å‘",
+ "ø"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "Ä…",
+ "ä",
+ "Ä",
+ "Ã ",
+ "á",
+ "â",
+ "ã",
+ "Ã¥",
+ "æ"
+ ],
+ [
+ "s",
+ "Å¡",
+ "ß",
+ "Å›",
+ "ÅŸ"
+ ],
+ [
+ "d",
+ "Ä"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "Ä£",
+ "ÄŸ"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k",
+ "Ä·"
+ ],
+ [
+ "l",
+ "ļ",
+ "Å‚",
+ "ĺ",
+ "ľ"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "Ä",
+ "ç",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ņ",
+ "ñ",
+ "Å„",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "Ä–",
+ "Ę",
+ "Ä’",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Äš"
+ ],
+ [
+ "R",
+ "Å–",
+ "Ř",
+ "Å”"
+ ],
+ [
+ "T",
+ "Å¢",
+ "Ť"
+ ],
+ [
+ "Y",
+ "Ã",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ū",
+ "Ų",
+ "Ü",
+ "Ū",
+ "Ù",
+ "Ú",
+ "Û",
+ "Å®",
+ "Å°"
+ ],
+ [
+ "I",
+ "Ä®",
+ "Ī",
+ "Ì",
+ "Ã",
+ "ÃŽ",
+ "Ã",
+ "I"
+ ],
+ [
+ "O",
+ "Ö",
+ "Õ",
+ "Ã’",
+ "Ó",
+ "Ô",
+ "Å’",
+ "Å",
+ "Ø"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ä„",
+ "Ä",
+ "Ä€",
+ "À",
+ "Ã",
+ "Â",
+ "Ã",
+ "Ã…",
+ "Æ"
+ ],
+ [
+ "S",
+ "Å ",
+ "SS",
+ "Åš",
+ "Åž"
+ ],
+ [
+ "D",
+ "ÄŽ"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Ä¢",
+ "Äž"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K",
+ "Ķ"
+ ],
+ [
+ "L",
+ "Ä»",
+ "Å",
+ "Ĺ",
+ "Ľ"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž",
+ "Å»",
+ "Ź"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Å…",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "lt",
+ "name": "Lithuanian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/lv.json b/data/osk-layouts/lv.json
new file mode 100644
index 0000000..bab6ae3
--- /dev/null
+++ b/data/osk-layouts/lv.json
@@ -0,0 +1,645 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "Ä“",
+ "Ä—",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "Ä™",
+ "Ä›"
+ ],
+ [
+ "r",
+ "Å—",
+ "Å™",
+ "Å•"
+ ],
+ [
+ "t",
+ "Å£",
+ "Å¥"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "Å«",
+ "ų",
+ "ù",
+ "ú",
+ "û",
+ "ü",
+ "ů",
+ "ű"
+ ],
+ [
+ "i",
+ "Ä«",
+ "į",
+ "ì",
+ "Ã",
+ "î",
+ "ï",
+ "ı"
+ ],
+ [
+ "o",
+ "ò",
+ "ó",
+ "ô",
+ "õ",
+ "ö",
+ "Å“",
+ "Å‘",
+ "ø"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "Ä",
+ "Ã ",
+ "á",
+ "â",
+ "ã",
+ "ä",
+ "Ã¥",
+ "æ",
+ "Ä…"
+ ],
+ [
+ "s",
+ "Å¡",
+ "ß",
+ "Å›",
+ "ÅŸ"
+ ],
+ [
+ "d",
+ "Ä"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "Ä£",
+ "ÄŸ"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k",
+ "Ä·"
+ ],
+ [
+ "l",
+ "ļ",
+ "Å‚",
+ "ĺ",
+ "ľ"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "Ä",
+ "ç",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ņ",
+ "ñ",
+ "Å„",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "Ä’",
+ "Ä–",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Äš"
+ ],
+ [
+ "R",
+ "Å–",
+ "Ř",
+ "Å”"
+ ],
+ [
+ "T",
+ "Å¢",
+ "Ť"
+ ],
+ [
+ "Y",
+ "Ã",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ū",
+ "Ų",
+ "Ù",
+ "Ú",
+ "Û",
+ "Ü",
+ "Å®",
+ "Å°"
+ ],
+ [
+ "I",
+ "Ī",
+ "Ä®",
+ "Ì",
+ "Ã",
+ "ÃŽ",
+ "Ã",
+ "I"
+ ],
+ [
+ "O",
+ "Ã’",
+ "Ó",
+ "Ô",
+ "Õ",
+ "Ö",
+ "Å’",
+ "Å",
+ "Ø"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ä€",
+ "À",
+ "Ã",
+ "Â",
+ "Ã",
+ "Ä",
+ "Ã…",
+ "Æ",
+ "Ä„"
+ ],
+ [
+ "S",
+ "Å ",
+ "SS",
+ "Åš",
+ "Åž"
+ ],
+ [
+ "D",
+ "ÄŽ"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Ä¢",
+ "Äž"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K",
+ "Ķ"
+ ],
+ [
+ "L",
+ "Ä»",
+ "Å",
+ "Ĺ",
+ "Ľ"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž",
+ "Å»",
+ "Ź"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Å…",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "lv",
+ "name": "Latvian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/mk.json b/data/osk-layouts/mk.json
new file mode 100644
index 0000000..2815121
--- /dev/null
+++ b/data/osk-layouts/mk.json
@@ -0,0 +1,541 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "Ñ™"
+ ],
+ [
+ "Ñš"
+ ],
+ [
+ "е",
+ "Ñ"
+ ],
+ [
+ "Ñ€"
+ ],
+ [
+ "Ñ‚"
+ ],
+ [
+ "Ñ•"
+ ],
+ [
+ "у"
+ ],
+ [
+ "и",
+ "Ñ"
+ ],
+ [
+ "о"
+ ],
+ [
+ "п"
+ ],
+ [
+ "ш"
+ ]
+ ],
+ [
+ [
+ "а"
+ ],
+ [
+ "Ñ"
+ ],
+ [
+ "д"
+ ],
+ [
+ "Ñ„"
+ ],
+ [
+ "г"
+ ],
+ [
+ "Ñ…"
+ ],
+ [
+ "ј"
+ ],
+ [
+ "к"
+ ],
+ [
+ "л"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "ќ"
+ ]
+ ],
+ [
+ [
+ "з"
+ ],
+ [
+ "ÑŸ"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "в"
+ ],
+ [
+ "б"
+ ],
+ [
+ "н"
+ ],
+ [
+ "м"
+ ],
+ [
+ "Ñ“"
+ ],
+ [
+ "ж"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Љ"
+ ],
+ [
+ "Њ"
+ ],
+ [
+ "Е",
+ "Ѐ"
+ ],
+ [
+ "Ð "
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ð…"
+ ],
+ [
+ "У"
+ ],
+ [
+ "И",
+ "Ð"
+ ],
+ [
+ "О"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Ш"
+ ]
+ ],
+ [
+ [
+ "Ð"
+ ],
+ [
+ "С"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ф"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Ð¥"
+ ],
+ [
+ "Ј"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "Ќ"
+ ]
+ ],
+ [
+ [
+ "З"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "Ð’"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "М"
+ ],
+ [
+ "Ѓ"
+ ],
+ [
+ "Ж"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "mk",
+ "name": "Macedonian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/mn.json b/data/osk-layouts/mn.json
new file mode 100644
index 0000000..88eaa24
--- /dev/null
+++ b/data/osk-layouts/mn.json
@@ -0,0 +1,547 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "Ñ„"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "у"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "Ñ"
+ ],
+ [
+ "н"
+ ],
+ [
+ "г"
+ ],
+ [
+ "ш",
+ "щ"
+ ],
+ [
+ "Ò¯"
+ ],
+ [
+ "з"
+ ],
+ [
+ "к"
+ ]
+ ],
+ [
+ [
+ "й"
+ ],
+ [
+ "Ñ‹"
+ ],
+ [
+ "б"
+ ],
+ [
+ "Ó©"
+ ],
+ [
+ "а"
+ ],
+ [
+ "Ñ…"
+ ],
+ [
+ "Ñ€"
+ ],
+ [
+ "о"
+ ],
+ [
+ "л"
+ ],
+ [
+ "д"
+ ],
+ [
+ "п"
+ ]
+ ],
+ [
+ [
+ "Ñ"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "Ñ‘",
+ "е"
+ ],
+ [
+ "Ñ"
+ ],
+ [
+ "м"
+ ],
+ [
+ "и"
+ ],
+ [
+ "Ñ‚"
+ ],
+ [
+ "ь",
+ "ÑŠ"
+ ],
+ [
+ "в",
+ "ÑŽ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Ф"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "У"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Ш",
+ "Щ"
+ ],
+ [
+ "Ò®"
+ ],
+ [
+ "З"
+ ],
+ [
+ "К"
+ ]
+ ],
+ [
+ [
+ "Й"
+ ],
+ [
+ "Ы"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ó¨"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "Ð¥"
+ ],
+ [
+ "Ð "
+ ],
+ [
+ "О"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "П"
+ ]
+ ],
+ [
+ [
+ "Я"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "Ð",
+ "Е"
+ ],
+ [
+ "С"
+ ],
+ [
+ "М"
+ ],
+ [
+ "И"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ь",
+ "Ъ"
+ ],
+ [
+ "Ð’",
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "â‚®",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "mn",
+ "name": "Mongolian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/my.json b/data/osk-layouts/my.json
new file mode 100644
index 0000000..dfd5e09
--- /dev/null
+++ b/data/osk-layouts/my.json
@@ -0,0 +1,507 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ms",
+ "name": "Malay"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/nl.json b/data/osk-layouts/nl.json
new file mode 100644
index 0000000..7a630b4
--- /dev/null
+++ b/data/osk-layouts/nl.json
@@ -0,0 +1,584 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ë",
+ "ê",
+ "è",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "ij"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "û",
+ "ù",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "ï",
+ "ì",
+ "î",
+ "į",
+ "Ä«",
+ "ij"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "Å“",
+ "ø",
+ "Å"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ä",
+ "â",
+ "Ã ",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ë",
+ "Ê",
+ "È",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "IJ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "Ã",
+ "Ì",
+ "ÃŽ",
+ "Ä®",
+ "Ī",
+ "IJ"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ã’",
+ "Õ",
+ "Å’",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "Ä",
+ "Â",
+ "À",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "nl",
+ "name": "Dutch"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/no.json b/data/osk-layouts/no.json
new file mode 100644
index 0000000..037f12c
--- /dev/null
+++ b/data/osk-layouts/no.json
@@ -0,0 +1,507 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "nb",
+ "name": "Norwegian Bokmål"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/ph.json b/data/osk-layouts/ph.json
new file mode 100644
index 0000000..8d127b5
--- /dev/null
+++ b/data/osk-layouts/ph.json
@@ -0,0 +1,507 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "fil",
+ "name": "Filipino"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/pl.json b/data/osk-layouts/pl.json
new file mode 100644
index 0000000..4b08cd5
--- /dev/null
+++ b/data/osk-layouts/pl.json
@@ -0,0 +1,579 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "Ä™",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o",
+ "ó",
+ "ö",
+ "ô",
+ "ò",
+ "õ",
+ "Å“",
+ "ø",
+ "Å"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "Ä…",
+ "á",
+ "Ã ",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä"
+ ],
+ [
+ "s",
+ "Å›",
+ "ß",
+ "Å¡"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l",
+ "Å‚"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ż",
+ "ź",
+ "ž"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ć",
+ "ç",
+ "Ä"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "Å„",
+ "ñ"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "Ę",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ö",
+ "Ô",
+ "Ã’",
+ "Õ",
+ "Å’",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ä„",
+ "Ã",
+ "À",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€"
+ ],
+ [
+ "S",
+ "Åš",
+ "SS",
+ "Å "
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L",
+ "Å"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Å»",
+ "Ź",
+ "Ž"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ć",
+ "Ç",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ń",
+ "Ñ"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "pl",
+ "name": "Polish"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/pt.json b/data/osk-layouts/pt.json
new file mode 100644
index 0000000..efd857a
--- /dev/null
+++ b/data/osk-layouts/pt.json
@@ -0,0 +1,584 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "ê",
+ "è",
+ "Ä™",
+ "Ä—",
+ "Ä“",
+ "ë"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ú",
+ "ü",
+ "ù",
+ "û",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "î",
+ "ì",
+ "ï",
+ "į",
+ "Ä«"
+ ],
+ [
+ "o",
+ "ó",
+ "õ",
+ "ô",
+ "ò",
+ "ö",
+ "Å“",
+ "ø",
+ "Å",
+ "º"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ã",
+ "Ã ",
+ "â",
+ "ä",
+ "Ã¥",
+ "æ",
+ "ª"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "Ä",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Ê",
+ "È",
+ "Ę",
+ "Ä–",
+ "Ä’",
+ "Ë"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ú",
+ "Ü",
+ "Ù",
+ "Û",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "ÃŽ",
+ "Ì",
+ "Ã",
+ "Ä®",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ó",
+ "Õ",
+ "Ô",
+ "Ã’",
+ "Ö",
+ "Å’",
+ "Ø",
+ "Ō",
+ "º"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "Ã",
+ "À",
+ "Â",
+ "Ä",
+ "Ã…",
+ "Æ",
+ "ª"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Č",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "pt-PT",
+ "name": "Portuguese Portugal"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/ro.json b/data/osk-layouts/ro.json
new file mode 100644
index 0000000..c690f4e
--- /dev/null
+++ b/data/osk-layouts/ro.json
@@ -0,0 +1,547 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t",
+ "È›"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i",
+ "î",
+ "ï",
+ "ì",
+ "Ã",
+ "į",
+ "Ä«"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "â",
+ "ã",
+ "ă",
+ "Ã ",
+ "á",
+ "ä",
+ "æ",
+ "Ã¥",
+ "Ä"
+ ],
+ [
+ "s",
+ "È™",
+ "ß",
+ "Å›",
+ "Å¡"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T",
+ "Èš"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I",
+ "ÃŽ",
+ "Ã",
+ "Ì",
+ "Ã",
+ "Ä®",
+ "Ī"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Â",
+ "Ã",
+ "Ä‚",
+ "À",
+ "Ã",
+ "Ä",
+ "Æ",
+ "Ã…",
+ "Ä€"
+ ],
+ [
+ "S",
+ "Ș",
+ "SS",
+ "Åš",
+ "Å "
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ro",
+ "name": "Romanian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/rs.json b/data/osk-layouts/rs.json
new file mode 100644
index 0000000..7bdab9f
--- /dev/null
+++ b/data/osk-layouts/rs.json
@@ -0,0 +1,541 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "Ñ™"
+ ],
+ [
+ "Ñš"
+ ],
+ [
+ "е",
+ "Ñ"
+ ],
+ [
+ "Ñ€"
+ ],
+ [
+ "Ñ‚"
+ ],
+ [
+ "з"
+ ],
+ [
+ "у"
+ ],
+ [
+ "и",
+ "Ñ"
+ ],
+ [
+ "о"
+ ],
+ [
+ "п"
+ ],
+ [
+ "ш"
+ ]
+ ],
+ [
+ [
+ "а"
+ ],
+ [
+ "Ñ"
+ ],
+ [
+ "д"
+ ],
+ [
+ "Ñ„"
+ ],
+ [
+ "г"
+ ],
+ [
+ "Ñ…"
+ ],
+ [
+ "ј"
+ ],
+ [
+ "к"
+ ],
+ [
+ "л"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "Ñ›"
+ ]
+ ],
+ [
+ [
+ "Ñ•"
+ ],
+ [
+ "ÑŸ"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "в"
+ ],
+ [
+ "б"
+ ],
+ [
+ "н"
+ ],
+ [
+ "м"
+ ],
+ [
+ "Ñ’"
+ ],
+ [
+ "ж"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Љ"
+ ],
+ [
+ "Њ"
+ ],
+ [
+ "Е",
+ "Ѐ"
+ ],
+ [
+ "Ð "
+ ],
+ [
+ "Т"
+ ],
+ [
+ "З"
+ ],
+ [
+ "У"
+ ],
+ [
+ "И",
+ "Ð"
+ ],
+ [
+ "О"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Ш"
+ ]
+ ],
+ [
+ [
+ "Ð"
+ ],
+ [
+ "С"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ф"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Ð¥"
+ ],
+ [
+ "Ј"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "Ћ"
+ ]
+ ],
+ [
+ [
+ "Ð…"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "Ð’"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "М"
+ ],
+ [
+ "Ђ"
+ ],
+ [
+ "Ж"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "sr",
+ "name": "Serbian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/ru.json b/data/osk-layouts/ru.json
new file mode 100644
index 0000000..9126cb0
--- /dev/null
+++ b/data/osk-layouts/ru.json
@@ -0,0 +1,541 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "й"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "у"
+ ],
+ [
+ "к"
+ ],
+ [
+ "е",
+ "Ñ‘"
+ ],
+ [
+ "н"
+ ],
+ [
+ "г"
+ ],
+ [
+ "ш"
+ ],
+ [
+ "щ"
+ ],
+ [
+ "з"
+ ],
+ [
+ "Ñ…"
+ ]
+ ],
+ [
+ [
+ "Ñ„"
+ ],
+ [
+ "Ñ‹"
+ ],
+ [
+ "в"
+ ],
+ [
+ "а"
+ ],
+ [
+ "п"
+ ],
+ [
+ "Ñ€"
+ ],
+ [
+ "о"
+ ],
+ [
+ "л"
+ ],
+ [
+ "д"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "Ñ"
+ ]
+ ],
+ [
+ [
+ "Ñ"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "Ñ"
+ ],
+ [
+ "м"
+ ],
+ [
+ "и"
+ ],
+ [
+ "Ñ‚"
+ ],
+ [
+ "ь",
+ "ÑŠ"
+ ],
+ [
+ "б"
+ ],
+ [
+ "ÑŽ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Й"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "У"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Е",
+ "Ð"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "Г"
+ ],
+ [
+ "Ш"
+ ],
+ [
+ "Щ"
+ ],
+ [
+ "З"
+ ],
+ [
+ "Ð¥"
+ ]
+ ],
+ [
+ [
+ "Ф"
+ ],
+ [
+ "Ы"
+ ],
+ [
+ "Ð’"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Ð "
+ ],
+ [
+ "О"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Ð"
+ ]
+ ],
+ [
+ [
+ "Я"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "С"
+ ],
+ [
+ "М"
+ ],
+ [
+ "И"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ь",
+ "Ъ"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "ru",
+ "name": "Russian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/se.json b/data/osk-layouts/se.json
new file mode 100644
index 0000000..513a0b8
--- /dev/null
+++ b/data/osk-layouts/se.json
@@ -0,0 +1,624 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "Ä™"
+ ],
+ [
+ "r",
+ "Å™"
+ ],
+ [
+ "t",
+ "Å¥",
+ "þ"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ",
+ "ü"
+ ],
+ [
+ "u",
+ "ü",
+ "ú",
+ "ù",
+ "û",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "ì",
+ "î",
+ "ï"
+ ],
+ [
+ "o",
+ "ó",
+ "ò",
+ "ô",
+ "õ",
+ "Å"
+ ],
+ [
+ "p"
+ ],
+ [
+ "Ã¥"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "Ã ",
+ "â",
+ "Ä…",
+ "ã"
+ ],
+ [
+ "s",
+ "Å›",
+ "Å¡",
+ "ÅŸ",
+ "ß"
+ ],
+ [
+ "d",
+ "ð",
+ "Ä"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l",
+ "Å‚"
+ ],
+ [
+ "ö",
+ "ø",
+ "Å“"
+ ],
+ [
+ "ä",
+ "æ"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ź",
+ "ž",
+ "ż"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "Ä"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "Å„",
+ "ñ",
+ "ň"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę"
+ ],
+ [
+ "R",
+ "Ř"
+ ],
+ [
+ "T",
+ "Ť",
+ "Þ"
+ ],
+ [
+ "Y",
+ "Ã",
+ "Ÿ",
+ "Ü"
+ ],
+ [
+ "U",
+ "Ü",
+ "Ú",
+ "Ù",
+ "Û",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "Ì",
+ "ÃŽ",
+ "Ã"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ã’",
+ "Ô",
+ "Õ",
+ "Ō"
+ ],
+ [
+ "P"
+ ],
+ [
+ "Ã…"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "À",
+ "Â",
+ "Ä„",
+ "Ã"
+ ],
+ [
+ "S",
+ "Åš",
+ "Å ",
+ "Åž",
+ "SS"
+ ],
+ [
+ "D",
+ "Ã",
+ "ÄŽ"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L",
+ "Å"
+ ],
+ [
+ "Ö",
+ "Ø",
+ "Å’"
+ ],
+ [
+ "Ä",
+ "Æ"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ź",
+ "Ž",
+ "Å»"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ń",
+ "Ñ",
+ "Ň"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "sv",
+ "name": "Swedish"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/si.json b/data/osk-layouts/si.json
new file mode 100644
index 0000000..f5c99c0
--- /dev/null
+++ b/data/osk-layouts/si.json
@@ -0,0 +1,518 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u"
+ ],
+ [
+ "i"
+ ],
+ [
+ "o"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a"
+ ],
+ [
+ "s",
+ "Å¡"
+ ],
+ [
+ "d",
+ "Ä‘"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "Ä",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U"
+ ],
+ [
+ "I"
+ ],
+ [
+ "O"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A"
+ ],
+ [
+ "S",
+ "Å "
+ ],
+ [
+ "D",
+ "Ä"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "sl",
+ "name": "Slovenian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/sk.json b/data/osk-layouts/sk.json
new file mode 100644
index 0000000..678232b
--- /dev/null
+++ b/data/osk-layouts/sk.json
@@ -0,0 +1,648 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "Ä›",
+ "Ä“",
+ "Ä—",
+ "è",
+ "ê",
+ "ë",
+ "Ä™"
+ ],
+ [
+ "r",
+ "Å•",
+ "Å™",
+ "Å—"
+ ],
+ [
+ "t",
+ "Å¥",
+ "Å£"
+ ],
+ [
+ "y",
+ "ý",
+ "ÿ"
+ ],
+ [
+ "u",
+ "ú",
+ "ů",
+ "ü",
+ "Å«",
+ "ų",
+ "ù",
+ "û",
+ "ű"
+ ],
+ [
+ "i",
+ "Ã",
+ "Ä«",
+ "į",
+ "ì",
+ "î",
+ "ï",
+ "ı"
+ ],
+ [
+ "o",
+ "ô",
+ "ó",
+ "ö",
+ "ò",
+ "õ",
+ "Å“",
+ "Å‘",
+ "ø"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "ä",
+ "Ä",
+ "Ã ",
+ "â",
+ "ã",
+ "Ã¥",
+ "æ",
+ "Ä…"
+ ],
+ [
+ "s",
+ "Å¡",
+ "ß",
+ "Å›",
+ "ÅŸ"
+ ],
+ [
+ "d",
+ "Ä"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "Ä£",
+ "ÄŸ"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k",
+ "Ä·"
+ ],
+ [
+ "l",
+ "ľ",
+ "ĺ",
+ "ļ",
+ "Å‚"
+ ]
+ ],
+ [
+ [
+ "z",
+ "ž",
+ "ż",
+ "ź"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "Ä",
+ "ç",
+ "ć"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ň",
+ "ņ",
+ "ñ",
+ "Å„",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "Äš",
+ "Ä’",
+ "Ä–",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę"
+ ],
+ [
+ "R",
+ "Å”",
+ "Ř",
+ "Å–"
+ ],
+ [
+ "T",
+ "Ť",
+ "Å¢"
+ ],
+ [
+ "Y",
+ "Ã",
+ "Ÿ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Å®",
+ "Ü",
+ "Ū",
+ "Ų",
+ "Ù",
+ "Û",
+ "Å°"
+ ],
+ [
+ "I",
+ "Ã",
+ "Ī",
+ "Ä®",
+ "Ì",
+ "ÃŽ",
+ "Ã",
+ "I"
+ ],
+ [
+ "O",
+ "Ô",
+ "Ó",
+ "Ö",
+ "Ã’",
+ "Õ",
+ "Å’",
+ "Å",
+ "Ø"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "Ä",
+ "Ä€",
+ "À",
+ "Â",
+ "Ã",
+ "Ã…",
+ "Æ",
+ "Ä„"
+ ],
+ [
+ "S",
+ "Å ",
+ "SS",
+ "Åš",
+ "Åž"
+ ],
+ [
+ "D",
+ "ÄŽ"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Ä¢",
+ "Äž"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K",
+ "Ķ"
+ ],
+ [
+ "L",
+ "Ľ",
+ "Ĺ",
+ "Ä»",
+ "Å"
+ ]
+ ],
+ [
+ [
+ "Z",
+ "Ž",
+ "Å»",
+ "Ź"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Č",
+ "Ç",
+ "Ć"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ň",
+ "Å…",
+ "Ñ",
+ "Ń",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "sk",
+ "name": "Slovak"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/th.json b/data/osk-layouts/th.json
new file mode 100644
index 0000000..c229a64
--- /dev/null
+++ b/data/osk-layouts/th.json
@@ -0,0 +1,472 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "ๅ"
+ ],
+ [
+ "/",
+ "๑"
+ ],
+ [
+ "_",
+ "๒"
+ ],
+ [
+ "ภ",
+ "๓"
+ ],
+ [
+ "ถ",
+ "๔"
+ ],
+ [
+ "ุ"
+ ],
+ [
+ "ึ"
+ ],
+ [
+ "ค",
+ "๕"
+ ],
+ [
+ "ต",
+ "๖"
+ ],
+ [
+ "จ",
+ "๗"
+ ],
+ [
+ "ข",
+ "๘"
+ ],
+ [
+ "ช",
+ "๙"
+ ]
+ ],
+ [
+ [
+ "ๆ",
+ "à¹"
+ ],
+ [
+ "ไ"
+ ],
+ [
+ "ำ"
+ ],
+ [
+ "พ"
+ ],
+ [
+ "ะ"
+ ],
+ [
+ "ั"
+ ],
+ [
+ "ี"
+ ],
+ [
+ "ร"
+ ],
+ [
+ "น"
+ ],
+ [
+ "ย"
+ ],
+ [
+ "บ"
+ ],
+ [
+ "ล"
+ ]
+ ],
+ [
+ [
+ "ฟ"
+ ],
+ [
+ "ห"
+ ],
+ [
+ "à¸"
+ ],
+ [
+ "ด"
+ ],
+ [
+ "เ"
+ ],
+ [
+ "้"
+ ],
+ [
+ "่"
+ ],
+ [
+ "า"
+ ],
+ [
+ "ส"
+ ],
+ [
+ "ว"
+ ],
+ [
+ "ง"
+ ],
+ [
+ "ฃ"
+ ]
+ ],
+ [
+ [
+ "ผ"
+ ],
+ [
+ "ป"
+ ],
+ [
+ "à¹"
+ ],
+ [
+ "à¸"
+ ],
+ [
+ "ิ"
+ ],
+ [
+ "ื"
+ ],
+ [
+ "ท"
+ ],
+ [
+ "ม"
+ ],
+ [
+ "ใ"
+ ],
+ [
+ "à¸"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "฿",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "th",
+ "name": "Thai"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/tr.json b/data/osk-layouts/tr.json
new file mode 100644
index 0000000..b3786cc
--- /dev/null
+++ b/data/osk-layouts/tr.json
@@ -0,0 +1,566 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "ü",
+ "û",
+ "ù",
+ "ú",
+ "Å«"
+ ],
+ [
+ "i",
+ "ı",
+ "î",
+ "ï",
+ "ì",
+ "Ã",
+ "į",
+ "Ä«"
+ ],
+ [
+ "o",
+ "ö",
+ "ô",
+ "Å“",
+ "ò",
+ "ó",
+ "õ",
+ "ø",
+ "Å"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "â"
+ ],
+ [
+ "s",
+ "ÅŸ",
+ "ß",
+ "Å›",
+ "Å¡"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g",
+ "ÄŸ"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç",
+ "ć",
+ "Ä"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "Ä°",
+ "I",
+ "ÃŽ",
+ "Ã",
+ "Ì",
+ "Ã",
+ "Ä®",
+ "Ī"
+ ],
+ [
+ "O",
+ "Ö",
+ "Ô",
+ "Å’",
+ "Ã’",
+ "Ó",
+ "Õ",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Â"
+ ],
+ [
+ "S",
+ "Åž",
+ "SS",
+ "Åš",
+ "Å "
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G",
+ "Äž"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç",
+ "Ć",
+ "Č"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "tr",
+ "name": "Turkish"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/ua.json b/data/osk-layouts/ua.json
new file mode 100644
index 0000000..1185687
--- /dev/null
+++ b/data/osk-layouts/ua.json
@@ -0,0 +1,545 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "й"
+ ],
+ [
+ "ц"
+ ],
+ [
+ "у"
+ ],
+ [
+ "к"
+ ],
+ [
+ "е"
+ ],
+ [
+ "н"
+ ],
+ [
+ "г",
+ "Ò‘"
+ ],
+ [
+ "ш"
+ ],
+ [
+ "щ"
+ ],
+ [
+ "з"
+ ],
+ [
+ "Ñ…"
+ ]
+ ],
+ [
+ [
+ "Ñ„"
+ ],
+ [
+ "Ñ–",
+ "Ñ—"
+ ],
+ [
+ "в"
+ ],
+ [
+ "а"
+ ],
+ [
+ "п"
+ ],
+ [
+ "Ñ€"
+ ],
+ [
+ "о"
+ ],
+ [
+ "л"
+ ],
+ [
+ "д"
+ ],
+ [
+ "ж"
+ ],
+ [
+ "Ñ”"
+ ]
+ ],
+ [
+ [
+ "Ñ"
+ ],
+ [
+ "ч"
+ ],
+ [
+ "Ñ"
+ ],
+ [
+ "м"
+ ],
+ [
+ "и"
+ ],
+ [
+ "Ñ‚"
+ ],
+ [
+ "ь",
+ "ÑŠ"
+ ],
+ [
+ "б"
+ ],
+ [
+ "ÑŽ"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Й"
+ ],
+ [
+ "Ц"
+ ],
+ [
+ "У"
+ ],
+ [
+ "К"
+ ],
+ [
+ "Е"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "Г",
+ "Ò"
+ ],
+ [
+ "Ш"
+ ],
+ [
+ "Щ"
+ ],
+ [
+ "З"
+ ],
+ [
+ "Ð¥"
+ ]
+ ],
+ [
+ [
+ "Ф"
+ ],
+ [
+ "І",
+ "Ї"
+ ],
+ [
+ "Ð’"
+ ],
+ [
+ "Ð"
+ ],
+ [
+ "П"
+ ],
+ [
+ "Ð "
+ ],
+ [
+ "О"
+ ],
+ [
+ "Л"
+ ],
+ [
+ "Д"
+ ],
+ [
+ "Ж"
+ ],
+ [
+ "Є"
+ ]
+ ],
+ [
+ [
+ "Я"
+ ],
+ [
+ "Ч"
+ ],
+ [
+ "С"
+ ],
+ [
+ "М"
+ ],
+ [
+ "И"
+ ],
+ [
+ "Т"
+ ],
+ [
+ "Ь",
+ "Ъ"
+ ],
+ [
+ "Б"
+ ],
+ [
+ "Ю"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "â‚´",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "uk",
+ "name": "Ukrainian"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/uk.json b/data/osk-layouts/uk.json
new file mode 100644
index 0000000..c36a723
--- /dev/null
+++ b/data/osk-layouts/uk.json
@@ -0,0 +1,576 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "û",
+ "ü",
+ "ù",
+ "ú",
+ "Å«"
+ ],
+ [
+ "i",
+ "î",
+ "ï",
+ "Ã",
+ "Ä«",
+ "ì"
+ ],
+ [
+ "o",
+ "ô",
+ "ö",
+ "ò",
+ "ó",
+ "Å“",
+ "ø",
+ "Å",
+ "õ"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "Ã ",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä"
+ ],
+ [
+ "s",
+ "ß"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "I",
+ "ÃŽ",
+ "Ã",
+ "Ã",
+ "Ī",
+ "Ì"
+ ],
+ [
+ "O",
+ "Ô",
+ "Ö",
+ "Ã’",
+ "Ó",
+ "Å’",
+ "Ø",
+ "Ō",
+ "Õ"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Ã",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€"
+ ],
+ [
+ "S",
+ "SS"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "£",
+ "¢",
+ "$",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "en-GB",
+ "name": "English Great Britain"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/us.json b/data/osk-layouts/us.json
new file mode 100644
index 0000000..94dd6d3
--- /dev/null
+++ b/data/osk-layouts/us.json
@@ -0,0 +1,575 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ê",
+ "ë",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y"
+ ],
+ [
+ "u",
+ "û",
+ "ü",
+ "ù",
+ "ú",
+ "Å«"
+ ],
+ [
+ "i",
+ "î",
+ "ï",
+ "Ã",
+ "Ä«",
+ "ì"
+ ],
+ [
+ "o",
+ "ô",
+ "ö",
+ "ò",
+ "ó",
+ "Å“",
+ "ø",
+ "Å",
+ "õ"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "Ã ",
+ "á",
+ "â",
+ "ä",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä"
+ ],
+ [
+ "s",
+ "ß"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c",
+ "ç"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ê",
+ "Ë",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y"
+ ],
+ [
+ "U",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ú",
+ "Ū"
+ ],
+ [
+ "I",
+ "ÃŽ",
+ "Ã",
+ "Ã",
+ "Ī",
+ "Ì"
+ ],
+ [
+ "O",
+ "Ô",
+ "Ö",
+ "Ã’",
+ "Ó",
+ "Å’",
+ "Ø",
+ "Ō",
+ "Õ"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Ã",
+ "Â",
+ "Ä",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€"
+ ],
+ [
+ "S",
+ "SS"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C",
+ "Ç"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "en",
+ "name": "English United States"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/vn.json b/data/osk-layouts/vn.json
new file mode 100644
index 0000000..4c7c9b4
--- /dev/null
+++ b/data/osk-layouts/vn.json
@@ -0,0 +1,643 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "è",
+ "é",
+ "ẻ",
+ "ẽ",
+ "ẹ",
+ "ê",
+ "á»",
+ "ế",
+ "ể",
+ "á»…",
+ "ệ"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "ỳ",
+ "ý",
+ "á»·",
+ "ỹ",
+ "ỵ"
+ ],
+ [
+ "u",
+ "ù",
+ "ú",
+ "ủ",
+ "Å©",
+ "ụ",
+ "Æ°",
+ "ừ",
+ "ứ",
+ "á»",
+ "ữ",
+ "á»±"
+ ],
+ [
+ "i",
+ "ì",
+ "Ã",
+ "ỉ",
+ "Ä©",
+ "ị"
+ ],
+ [
+ "o",
+ "ò",
+ "ó",
+ "á»",
+ "õ",
+ "á»",
+ "ô",
+ "ồ",
+ "ố",
+ "ổ",
+ "á»—",
+ "á»™",
+ "Æ¡",
+ "á»",
+ "á»›",
+ "ở",
+ "ỡ",
+ "ợ"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "Ã ",
+ "á",
+ "ả",
+ "ã",
+ "ạ",
+ "ă",
+ "ằ",
+ "ắ",
+ "ẳ",
+ "ẵ",
+ "ặ",
+ "â",
+ "ầ",
+ "ấ",
+ "ẩ",
+ "ẫ",
+ "áº"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d",
+ "Ä‘"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "È",
+ "É",
+ "Ẻ",
+ "Ẽ",
+ "Ẹ",
+ "Ê",
+ "Ề",
+ "Ế",
+ "Ể",
+ "Ễ",
+ "Ệ"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "Ỳ",
+ "Ã",
+ "Ỷ",
+ "Ỹ",
+ "á»´"
+ ],
+ [
+ "U",
+ "Ù",
+ "Ú",
+ "Ủ",
+ "Ũ",
+ "Ụ",
+ "Ư",
+ "Ừ",
+ "Ứ",
+ "Ử",
+ "á»®",
+ "á»°"
+ ],
+ [
+ "I",
+ "Ì",
+ "Ã",
+ "Ỉ",
+ "Ĩ",
+ "Ị"
+ ],
+ [
+ "O",
+ "Ã’",
+ "Ó",
+ "Ỏ",
+ "Õ",
+ "Ọ",
+ "Ô",
+ "á»’",
+ "á»",
+ "á»”",
+ "á»–",
+ "Ộ",
+ "Æ ",
+ "Ờ",
+ "Ớ",
+ "Ở",
+ "á» ",
+ "Ợ"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "À",
+ "Ã",
+ "Ả",
+ "Ã",
+ "Ạ",
+ "Ä‚",
+ "Ằ",
+ "Ắ",
+ "Ẳ",
+ "Ẵ",
+ "Ặ",
+ "Â",
+ "Ầ",
+ "Ấ",
+ "Ẩ",
+ "Ẫ",
+ "Ậ"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D",
+ "Ä"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "â‚«",
+ "$",
+ "¢",
+ "€",
+ "£",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "€"
+ ],
+ [
+ "$",
+ "¢"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "vi",
+ "name": "Vietnamese"
+}
\ No newline at end of file
diff --git a/data/osk-layouts/za.json b/data/osk-layouts/za.json
new file mode 100644
index 0000000..ccd2447
--- /dev/null
+++ b/data/osk-layouts/za.json
@@ -0,0 +1,589 @@
+{
+ "levels": [
+ {
+ "level": "",
+ "mode": "default",
+ "rows": [
+ [
+ [
+ "q"
+ ],
+ [
+ "w"
+ ],
+ [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "Ä™",
+ "Ä—",
+ "Ä“"
+ ],
+ [
+ "r"
+ ],
+ [
+ "t"
+ ],
+ [
+ "y",
+ "ý",
+ "Å·",
+ "ÿ",
+ "ij"
+ ],
+ [
+ "u",
+ "ú",
+ "û",
+ "ü",
+ "ù",
+ "Å«"
+ ],
+ [
+ "i",
+ "Ã",
+ "ì",
+ "ï",
+ "î",
+ "į",
+ "Ä«",
+ "ij"
+ ],
+ [
+ "o",
+ "ó",
+ "ô",
+ "ö",
+ "ò",
+ "õ",
+ "Å“",
+ "ø",
+ "Å"
+ ],
+ [
+ "p"
+ ]
+ ],
+ [
+ [
+ "a",
+ "á",
+ "â",
+ "ä",
+ "Ã ",
+ "æ",
+ "ã",
+ "Ã¥",
+ "Ä"
+ ],
+ [
+ "s"
+ ],
+ [
+ "d"
+ ],
+ [
+ "f"
+ ],
+ [
+ "g"
+ ],
+ [
+ "h"
+ ],
+ [
+ "j"
+ ],
+ [
+ "k"
+ ],
+ [
+ "l"
+ ]
+ ],
+ [
+ [
+ "z"
+ ],
+ [
+ "x"
+ ],
+ [
+ "c"
+ ],
+ [
+ "v"
+ ],
+ [
+ "b"
+ ],
+ [
+ "n",
+ "ñ",
+ "Å„"
+ ],
+ [
+ "m"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ [
+ "Q"
+ ],
+ [
+ "W"
+ ],
+ [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ę",
+ "Ä–",
+ "Ä’"
+ ],
+ [
+ "R"
+ ],
+ [
+ "T"
+ ],
+ [
+ "Y",
+ "Ã",
+ "Ŷ",
+ "Ÿ",
+ "IJ"
+ ],
+ [
+ "U",
+ "Ú",
+ "Û",
+ "Ü",
+ "Ù",
+ "Ū"
+ ],
+ [
+ "I",
+ "Ã",
+ "Ì",
+ "Ã",
+ "ÃŽ",
+ "Ä®",
+ "Ī",
+ "IJ"
+ ],
+ [
+ "O",
+ "Ó",
+ "Ô",
+ "Ö",
+ "Ã’",
+ "Õ",
+ "Å’",
+ "Ø",
+ "Ō"
+ ],
+ [
+ "P"
+ ]
+ ],
+ [
+ [
+ "A",
+ "Ã",
+ "Â",
+ "Ä",
+ "À",
+ "Æ",
+ "Ã",
+ "Ã…",
+ "Ä€"
+ ],
+ [
+ "S"
+ ],
+ [
+ "D"
+ ],
+ [
+ "F"
+ ],
+ [
+ "G"
+ ],
+ [
+ "H"
+ ],
+ [
+ "J"
+ ],
+ [
+ "K"
+ ],
+ [
+ "L"
+ ]
+ ],
+ [
+ [
+ "Z"
+ ],
+ [
+ "X"
+ ],
+ [
+ "C"
+ ],
+ [
+ "V"
+ ],
+ [
+ "B"
+ ],
+ [
+ "N",
+ "Ñ",
+ "Ń"
+ ],
+ [
+ "M"
+ ]
+ ],
+ [
+ [
+ ","
+ ],
+ [
+ " "
+ ],
+ [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "1",
+ "¹",
+ "½",
+ "â…“",
+ "¼",
+ "â…›"
+ ],
+ [
+ "2",
+ "²",
+ "â…”"
+ ],
+ [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ],
+ [
+ "4",
+ "â´"
+ ],
+ [
+ "5",
+ "â…"
+ ],
+ [
+ "6"
+ ],
+ [
+ "7",
+ "â…ž"
+ ],
+ [
+ "8"
+ ],
+ [
+ "9"
+ ],
+ [
+ "0",
+ "â¿",
+ "∅"
+ ]
+ ],
+ [
+ [
+ "@"
+ ],
+ [
+ "#"
+ ],
+ [
+ "$",
+ "¢",
+ "£",
+ "€",
+ "Â¥",
+ "₱"
+ ],
+ [
+ "%",
+ "‰"
+ ],
+ [
+ "&"
+ ],
+ [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ],
+ [
+ "+",
+ "±"
+ ],
+ [
+ "(",
+ "<",
+ "{",
+ "["
+ ],
+ [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ ],
+ [
+ [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ],
+ [
+ "\"",
+ "“",
+ "â€",
+ "«",
+ "»"
+ ],
+ [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ],
+ [
+ ":"
+ ],
+ [
+ ";"
+ ],
+ [
+ "!",
+ "¡"
+ ],
+ [
+ "?",
+ "¿"
+ ]
+ ],
+ [
+ [
+ "_"
+ ],
+ [
+ "/"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ [
+ "~"
+ ],
+ [
+ "`"
+ ],
+ [
+ "|"
+ ],
+ [
+ "•",
+ "♪",
+ "♥",
+ "â™ ",
+ "♦",
+ "♣"
+ ],
+ [
+ "√"
+ ],
+ [
+ "Î ",
+ "Ï€"
+ ],
+ [
+ "÷"
+ ],
+ [
+ "×"
+ ],
+ [
+ "¶",
+ "§"
+ ],
+ [
+ "∆"
+ ]
+ ],
+ [
+ [
+ "£"
+ ],
+ [
+ "¢"
+ ],
+ [
+ "€"
+ ],
+ [
+ "Â¥"
+ ],
+ [
+ "^",
+ "↑",
+ "↓",
+ "â†",
+ "→"
+ ],
+ [
+ "°",
+ "′",
+ "″"
+ ],
+ [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ],
+ [
+ "{"
+ ],
+ [
+ "}"
+ ]
+ ],
+ [
+ [
+ "\\"
+ ],
+ [
+ "©"
+ ],
+ [
+ "®"
+ ],
+ [
+ "â„¢"
+ ],
+ [
+ "â„…"
+ ],
+ [
+ "["
+ ],
+ [
+ "]"
+ ]
+ ],
+ [
+ [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ],
+ [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ],
+ [
+ " "
+ ],
+ [
+ ","
+ ],
+ [
+ ".",
+ "…"
+ ]
+ ]
+ ]
+ }
+ ],
+ "locale": "af",
+ "name": "Afrikaans"
+}
\ No newline at end of file
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]