diff --git a/data/keyboards/Makefile.am b/data/keyboards/Makefile.am
index 2902e407..bf80cae4 100644
--- a/data/keyboards/Makefile.am
+++ b/data/keyboards/Makefile.am
@@ -1,32 +1,38 @@
-keyboarddir = $(pkgdatadir)/keyboards
-dist_keyboard_DATA = \
- ar.xml \
- be.xml \
- fa.xml \
- he.xml \
- jp-kana.xml \
- kk.xml \
- ks.xml \
- my.xml \
- ru.xml \
- th.xml \
- ua.xml \
- ug.xml \
- us.xml \
- zh-bopomofo.xml \
- $(inscript_keyboards)
-inscript_keyboards = \
- as-inscript.xml \
- bn-inscript.xml \
- gu-inscript.xml \
- hi-inscript.xml \
- kn-inscript.xml \
- ks-inscript.xml \
- mai-inscript.xml \
- ml-inscript.xml \
- mr-inscript.xml \
- or-inscript.xml \
- pa-inscript.xml \
- sd-inscript.xml \
- ta-inscript.xml \
- te-inscript.xml
+keyboardsdir = $(pkgdatadir)/keyboards
+
+nobase_dist_keyboards_DATA = \
+ keyboards.xml \
+ geometry/compact.xml \
+ symbols/ar.xml \
+ symbols/be.xml \
+ symbols/fa.xml \
+ symbols/he.xml \
+ symbols/ja-kana.xml \
+ symbols/kk.xml \
+ symbols/ks.xml \
+ symbols/my.xml \
+ symbols/ru.xml \
+ symbols/th.xml \
+ symbols/ua.xml \
+ symbols/ug.xml \
+ symbols/us.xml \
+ symbols/zh-bopomofo.xml \
+ $(inscript_symbols) \
+ $(NULL)
+
+inscript_symbols = \
+ symbols/as-inscript.xml \
+ symbols/bn-inscript.xml \
+ symbols/gu-inscript.xml \
+ symbols/hi-inscript.xml \
+ symbols/kn-inscript.xml \
+ symbols/ks-inscript.xml \
+ symbols/mai-inscript.xml \
+ symbols/ml-inscript.xml \
+ symbols/mr-inscript.xml \
+ symbols/or-inscript.xml \
+ symbols/pa-inscript.xml \
+ symbols/sd-inscript.xml \
+ symbols/ta-inscript.xml \
+ symbols/te-inscript.xml \
+ $(NULL)
diff --git a/data/keyboards/ar.xml b/data/keyboards/ar.xml
deleted file mode 100644
index 10e892e9..00000000
--- a/data/keyboards/ar.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ّ
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ١
- exclam
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ٢
- at
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ٣
- numbersign
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ٤
- dollar
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ٥
- percent
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ٦
- asciicircum
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ٧
- ampersand
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ٨
- asterisk
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ٩
- )
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ٠
- (
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- minus
- underscore
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- equal
- plus
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ض
- َ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ص
- ً
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ث
- ُ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ق
- ٌ
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ف
- لإ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- غ
- إ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ع
- `
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ه
- ÷
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- خ
- ×
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ح
- ؛
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ج
- >
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- د
- <
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- backslash
- bar
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ش
- ِ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- س
- ٍ
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ي
- ]
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ب
- [
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ل
- لأ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- ا
- أ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ت
- ـ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ن
- ،
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- م
- /
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ك
- colon
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- quotedbl
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ئ
- ~
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ء
- ْ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- ؤ
- }
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ر
- {
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- لا
- لآ
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ى
- آ
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- ة
- '
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- و
- ,
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- ز
- .
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- ظ
- ؟
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/as-inscript.xml b/data/keyboards/as-inscript.xml
deleted file mode 100644
index 7946a591..00000000
--- a/data/keyboards/as-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ~
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ১
- !
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ২
- @
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ৩
- ্ৰ
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ৪
- ৰ্
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ৫
- জ্ঞ
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ৬
- ত্ৰ
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ৭
- ক্ষ
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ৮
- শ্ৰ
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ৯
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ০
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ঃ
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ৃ
- ঋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ৌ
- ঔ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ৈ
- ঐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- া
- আ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ী
- ঈ
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ূ
- ঊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ব
- ভ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- হ
- ঙ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- গ
- ঘ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- দ
- ধ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- জ
- ঝ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ড
- ঢ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ়
- ঞ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- য
- |
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ো
- ও
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ে
- এ
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ্
- অ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ি
- ই
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ু
- উ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- প
- ফ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ৰ
- J
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ক
- খ
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ত
- থ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- চ
- ছ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ঠ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ৎ
- ৺
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ং
- ঁ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- ম
- ণ
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ন
- V
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- ৱ
- B
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ল
- N
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- স
- শ
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ষ
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- ।
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- য়
- question
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/be.xml b/data/keyboards/be.xml
deleted file mode 100644
index 4ad49363..00000000
--- a/data/keyboards/be.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- Ё
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- 1
- !
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- 2
- "
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- 3
- №
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- 4
- ;
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- 5
- %
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- 6
- :
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- 7
- ?
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- 8
- *
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- 9
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- 0
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- minus
- _
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- equal
- +
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- й
- Й
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ц
- Ц
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- у
- У
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- к
- К
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- е
- Е
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- н
- Н
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- г
- Г
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ш
- Ш
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- ў
- Ў
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- з
- З
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- х
- Х
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- '
- '
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- \
- |
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ф
- Ф
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ы
- Ы
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- в
- В
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- а
- А
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- п
- П
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- р
- Р
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- о
- О
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- л
- Л
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- д
- Д
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ж
- Ж
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- Э
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- я
- Я
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ч
- Ч
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- с
- С
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- м
- М
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- і
- І
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- т
- Т
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- ь
- Ь
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- б
- Б
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- ю
- Ю
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- .
- ,
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/bn-inscript.xml b/data/keyboards/bn-inscript.xml
deleted file mode 100644
index 0eccc65e..00000000
--- a/data/keyboards/bn-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ~
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ১
- !
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ২
- @
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ৩
- #
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ৪
- $
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ৫
- %
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ৬
- ^
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ৭
- &
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ৮
- *
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ৯
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ০
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ঃ
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ৃ
- ঋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ৌ
- ঔ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ৈ
- ঐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- া
- আ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ী
- ঈ
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ূ
- ঊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ব
- ভ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- হ
- ঙ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- গ
- ঘ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- দ
- ধ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- জ
- ঝ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ড
- ঢ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ়
- ঞ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- \
- |
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ো
- ও
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ে
- এ
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ্
- অ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ি
- ই
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ু
- উ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- প
- ফ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- র
- J
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ক
- খ
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ত
- থ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- চ
- ছ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ঠ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- z
- Z
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ং
- ঁ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- ম
- ণ
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ন
- V
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- ব
- B
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ল
- N
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- স
- শ
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ষ
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- ।
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- য়
- য
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/fa.xml b/data/keyboards/fa.xml
deleted file mode 100644
index a4fb9bcc..00000000
--- a/data/keyboards/fa.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- asciitilde
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ۱
- exclam
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ۲
- ٬
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ۳
- ٫
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ۴
- dollar
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ۵
- ٪
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ۶
- ×
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ۷
- ،
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ۸
- asterisk
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ۹
- )
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ۰
- (
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- minus
- underscore
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- equal
- plus
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ض
- ْ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ص
- ٌ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ث
- ٍ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ق
- ً
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ف
- ُ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- غ
- ِ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ع
- َ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ه
- ّ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- خ
- ]
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ح
- [
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ج
- }
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- چ
- {
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- backslash
- bar
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ش
- ؤ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- س
- ئ
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ی
- ي
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ب
- إ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ل
- أ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- ا
- آ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ت
- ة
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ن
- »
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- م
- «
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ک
- colon
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ؛
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ظ
- ك
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ط
- X
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- ز
- ژ
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ر
- V
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- ذ
-
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- د
-
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- پ
- ء
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- و
- >
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- period
- <
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- slash
- ؟
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/geometry/compact.xml b/data/keyboards/geometry/compact.xml
new file mode 100644
index 00000000..440d9402
--- /dev/null
+++ b/data/keyboards/geometry/compact.xml
@@ -0,0 +1,304 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/keyboards/gu-inscript.xml b/data/keyboards/gu-inscript.xml
deleted file mode 100644
index e35f7956..00000000
--- a/data/keyboards/gu-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ~
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ૧
- ઍ
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ૨
- ૅ
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ૩
- ૠ
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ૪
- ૄ
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ૫
- જ્ઞ
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ૬
- ત્ર
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ૭
- ક્ષ
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ૮
- શ્ર
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ૯
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ૦
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ઃ
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ૃ
- ઋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ૌ
- ઔ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ૈ
- ઐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ા
- આ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ી
- ઈ
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ૂ
- ઊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- બ
- ભ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- હ
- ઙ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ગ
- ઘ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- દ
- ધ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- જ
- ઝ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ડ
- ઢ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ઼
- ઞ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- ૉ
- ઑ
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ો
- ઓ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ે
- એ
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ્
- અ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- િ
- ઇ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ુ
- ઉ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- પ
- ફ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ર
- ઽ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ક
- ખ
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ત
- થ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ચ
- છ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ઠ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ૱
- ૐ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ં
- ઁ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- મ
- ણ
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ન
- "
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- વ
- '
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- લ
- ળ
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- સ
- શ
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ષ
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- ।
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- ય
- ?
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/he.xml b/data/keyboards/he.xml
deleted file mode 100644
index bc9fdb22..00000000
--- a/data/keyboards/he.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- asciitilde
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- 1
- exclam
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- 2
- at
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- 3
- numbersign
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- 4
- dollar
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- 5
- percent
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- 6
- asciicircum
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- 7
- ampersand
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- 8
- asterisk
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- 9
- )
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- 0
- (
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- minus
- underscore
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- equal
- plus
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- /
- Q
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- '
- W
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ק
- E
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ר
- R
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- א
- T
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ט
- Y
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ו
- U
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ן
- I
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- ם
- O
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- פ
- P
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ]
- }
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- [
- {
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- backslash
- bar
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ש
- A
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ד
- S
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ג
- D
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- כ
- F
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ע
- G
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- י
- H
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ח
- J
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ל
- K
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ך
- L
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ף
- colon
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- quotedbl
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ז
- Z
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ס
- X
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- ב
- C
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ה
- V
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- נ
- B
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- מ
- N
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- צ
- M
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ת
- >
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- ץ
- <
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- .
- question
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/hi-inscript.xml b/data/keyboards/hi-inscript.xml
deleted file mode 100644
index 9739f8a6..00000000
--- a/data/keyboards/hi-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ऒ
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- १
- ऍ
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- २
- ॅ
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ३
- #
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ४
- $
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ५
- ज्ञ
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ६
- त्र
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ७
- क्ष
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ८
- श्र
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ९
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ०
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ः
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ृ
- ऋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ौ
- औ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ै
- ऐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ा
- आ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ी
- ई
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ू
- ऊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ब
- भ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ह
- ङ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ग
- घ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- द
- ध
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ज
- झ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ड
- ढ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ़
- ञ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- ॉ
- ऑ
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ो
- ओ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- े
- ए
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ्
- अ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ि
- इ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ु
- उ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- प
- फ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- र
- ऱ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- क
- ख
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- त
- थ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- च
- छ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ठ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ॆ
- ऎ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ं
- ँ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- म
- ण
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- न
- ऩ
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- व
- ऴ
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ल
- ळ
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- स
- श
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ष
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- ।
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- य
- य़
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/jp-kana.xml b/data/keyboards/jp-kana.xml
deleted file mode 100644
index a8952873..00000000
--- a/data/keyboards/jp-kana.xml
+++ /dev/null
@@ -1,697 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 16.000000,78.048780,94.000000,202.000000
- 0
-
- 5
- 0
-
-
- 5
- 0
-
-
- 5
- 0
-
-
- 4.000000,43.000000,80.000000,38.000000
- outline2
-
- Tab
- ISO_Left_Tab
-
-
-
- 4.000000,83.000000,80.000000,38.000000
- outline2
-
- Control_L
-
-
-
- 4.000000,122.000000,80.000000,38.000000
- outline2
-
- Shift_L
-
-
-
- 4.000000,162.341463,57.000000,38.000000
- outline9
-
- cycle-keyboard
- preferences
-
-
-
- 517.000000,44.000000,80.000000,38.000000
- outline2
-
- BackSpace
-
-
-
- 517.000000,83.000000,80.000000,38.000000
- outline2
-
- Return
-
-
-
- 517.000000,122.000000,80.000000,38.000000
- outline2
-
- Shift_R
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline14
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline10
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline10
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline10
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline10
-
- Right
-
-
-
-
- 99.000000,16.000000,469.000000,202.000000
- 0
-
- 5
- 0
-
-
- 5
- 0
-
-
- 5
- 0
-
-
- 5
- 0
-
-
- 5
- 0
-
-
- 5
- 0
-
-
- 5
- 0
-
-
- 5
- 0
-
-
- 5
- 0
-
-
- 5
- 0
-
-
- 5
- 0
-
-
- 4.000000,4.000000,38.000000,38.000000
- outline1
-
- 3
- numbersign
- 3
- numbersign
-
-
-
- 4.000000,43.000000,38.000000,38.000000
- outline1
-
- e
- E
- e
- E
-
-
-
- 4.000000,82.000000,38.000000,38.000000
- outline1
-
- 4
- dollar
- 4
- dollar
-
-
-
- 4.000000,121.000000,38.000000,38.000000
- outline1
-
- 5
- percent
- 5
- percent
-
-
-
- 4.000000,160.000000,38.000000,38.000000
- outline1
-
- 6
- ampersand
- 6
- ampersand
-
-
-
-
- 43.000000,4.000000,38.000000,38.000000
- outline1
-
- t
- t
-
-
-
- 43.000000,43.000000,38.000000,38.000000
- outline1
-
- g
- g
-
-
-
- 43.000000,82.000000,38.000000,38.000000
- outline1
-
- h
- h
-
-
-
- 43.000000,121.000000,38.000000,38.000000
- outline1
-
- colon
- colon
-
-
-
- 43.000000,160.000000,38.000000,38.000000
- outline1
-
- b
- b
-
-
-
-
- 82.000000,4.000000,38.000000,38.000000
- outline1
-
- x
- x
-
-
-
- 82.000000,43.000000,38.000000,38.000000
- outline1
-
- d
- d
-
-
-
- 82.000000,82.000000,38.000000,38.000000
- outline1
-
- r
- r
-
-
-
- 82.000000,121.000000,38.000000,38.000000
- outline1
-
- p
- p
-
-
-
- 82.000000,160.000000,38.000000,38.000000
- outline1
-
- c
- c
-
-
-
-
- 121.000000,4.000000,38.000000,38.000000
- outline1
-
- q
- q
-
-
-
- 121.000000,43.000000,38.000000,38.000000
- outline1
-
- a
- a
-
-
-
- 121.000000,82.000000,38.000000,38.000000
- outline1
-
- z
- Z
- z
- Z
-
-
-
- 121.000000,121.000000,38.000000,38.000000
- outline1
-
- w
- w
-
-
-
- 121.000000,160.000000,38.000000,38.000000
- outline1
-
- s
- s
-
-
-
-
- 160.000000,4.000000,38.000000,38.000000
- outline1
-
- u
- u
-
-
-
- 160.000000,43.000000,38.000000,38.000000
- outline1
-
- i
- i
-
-
-
- 160.000000,82.000000,38.000000,38.000000
- outline1
-
- exclam
- exclam
-
-
-
- 160.000000,121.000000,38.000000,38.000000
- outline1
-
- comma
- comma
-
-
-
- 160.000000,160.000000,38.000000,38.000000
- outline1
-
- k
- k
-
-
-
-
- 199.000000,4.000000,38.000000,38.000000
- outline1
-
- f
- f
-
-
-
- 199.000000,43.000000,38.000000,38.000000
- outline1
-
- v
- v
-
-
-
- 199.000000,82.000000,38.000000,38.000000
- outline1
-
- quotedbl
- quotedbl
-
-
-
- 199.000000,121.000000,38.000000,38.000000
- outline1
-
- asciicircum
- asciicircum
-
-
-
- 199.000000,160.000000,38.000000,38.000000
- outline1
-
- equal
- equal
-
-
-
-
- 238.000000,4.000000,38.000000,38.000000
- outline1
-
- j
- j
-
-
-
- 238.000000,43.000000,38.000000,38.000000
- outline1
-
- n
- n
-
-
-
- 238.000000,82.000000,38.000000,38.000000
- outline1
-
- bracketright
- bracketright
-
-
-
- 238.000000,121.000000,38.000000,38.000000
- outline1
-
- slash
- slash
-
-
-
- 238.000000,160.000000,38.000000,38.000000
- outline1
-
- m
- m
-
-
-
-
- 277.000000,4.000000,38.000000,38.000000
- outline1
-
- 7
- quoteright
- 7
- quoteright
-
-
-
- 277.000000,43.000000,38.000000,38.000000
- outline1
-
- 8
- parenleft
- 8
- parenleft
-
-
-
- 277.000000,82.000000,38.000000,38.000000
- outline1
-
- 9
- parenright
- 9
- parenright
-
-
-
- 316.000000,4.000000,38.000000,38.000000
- outline1
-
- o
- o
-
-
-
- 316.000000,43.000000,38.000000,38.000000
- outline1
-
- l
- l
-
-
-
- 316.000000,82.000000,38.000000,38.000000
- outline1
-
- period
- period
-
-
-
- 316.000000,121.000000,38.000000,38.000000
- outline1
-
- semicolon
- semicolon
-
-
-
- 316.000000,160.000000,38.000000,38.000000
- outline1
-
- backslash
- backslash
-
-
-
-
- 355.000000,4.000000,38.000000,38.000000
- outline1
-
- 0
- 0
-
-
-
- 355.000000,43.000000,38.000000,38.000000
- outline1
-
- asciitilde
- asciitilde
-
-
-
- 355.000000,82.000000,38.000000,38.000000
- outline1
-
- y
- y
-
-
-
- 355.000000,121.000000,38.000000,38.000000
- outline1
-
- braceleft
- 0
- braceleft
- 0
-
-
-
- 355.000000,160.000000,38.000000,38.000000
- outline1
-
- braceright
- 0
- braceright
- 0
-
-
-
-
- 394.000000,4.000000,38.000000,38.000000
- outline1
-
- at
- at
-
-
-
- 394.000000,43.000000,38.000000,38.000000
- outline1
-
- bracketleft
- bracketleft
-
-
-
- 394.000000,82.000000,38.000000,38.000000
- outline1
-
- bar
- bar
-
-
-
- 394.000000,121.000000,38.000000,38.000000
- outline1
-
- less
- less
-
-
-
- 394.000000,160.000000,38.000000,38.000000
- outline1
-
- greater
- question
- greater
- question
-
-
-
-
- 0.000000,0.000000
- 38.000000,0.000000
- 38.000000,38.000000
- 0.000000,38.000000
-
-
- 0.000000,0.000000
- 60.000000,0.000000
- 60.000000,38.000000
- 0.000000,38.000000
-
-
- 0.000000,0.000000
- 60.000000,0.000000
- 60.000000,38.000000
- 0.000000,38.000000
-
-
- 0.000000,0.000000
- 69.000000,0.000000
- 69.000000,38.000000
- 0.000000,38.000000
-
-
- 0.000000,0.000000
- 89.000000,0.000000
- 89.000000,38.000000
- 0.000000,38.000000
-
-
- 0.000000,0.000000
- 89.000000,0.000000
- 89.000000,38.000000
- 0.000000,38.000000
-
-
- 0.000000,0.000000
- 110.000000,0.000000
- 110.000000,38.000000
- 0.000000,38.000000
-
-
- 0.000000,0.000000
- 57.000000,0.000000
- 57.000000,38.000000
- 0.000000,38.000000
-
-
- 0.000000,0.000000
- 49.000000,0.000000
- 49.000000,38.000000
- 0.000000,38.000000
-
-
- 0.000000,0.000000
- 239.000000,0.000000
- 239.000000,38.000000
- 0.000000,38.000000
-
-
- 0.000000,0.000000
- 38.000000,0.000000
- 38.000000,79.000000
- 0.000000,79.000000
-
-
- 0.000000,0.000000
- 79.000000,0.000000
- 79.000000,38.000000
- 0.000000,38.000000
-
-
- 0.000000,0.000000
- 80.000000,0.000000
- 80.000000,38.000000
- 0.000000,38.000000
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/keyboards.xml b/data/keyboards/keyboards.xml
new file mode 100644
index 00000000..8b71cb48
--- /dev/null
+++ b/data/keyboards/keyboards.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/keyboards/kk.xml b/data/keyboards/kk.xml
deleted file mode 100644
index df075515..00000000
--- a/data/keyboards/kk.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- )
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- "
- exclam
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ә
- Ә
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- і
- І
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ӊ
- Ӊ
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ғ
- Ғ
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ,
- ;
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- .
- :
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ү
- Ү
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ұ
- Ұ
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- қ
- Қ
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- ө
- Ө
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- һ
- Һ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- й
- Й
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ц
- Ц
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- у
- У
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- к
- К
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- е
- Е
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- н
- Н
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- г
- Г
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ш
- Ш
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- щ
- Щ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- з
- З
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- х
- Х
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ъ
- Ъ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- backslash
- bar
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ф
- Ф
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ы
- Ы
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- в
- В
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- а
- А
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- п
- П
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- р
- Р
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- о
- О
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- л
- Л
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- д
- Д
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ж
- Ж
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- Э
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- я
- Я
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ч
- Ч
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- с
- С
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- м
- М
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- и
- И
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- т
- Т
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- ь
- Ь
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- б
- Б
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- ю
- Ю
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- №
- question
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/kn-inscript.xml b/data/keyboards/kn-inscript.xml
deleted file mode 100644
index a2c0fde9..00000000
--- a/data/keyboards/kn-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ಒ
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ೧
- !
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ೨
- @
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ೩
- #
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ೪
- $
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ೫
- ಜ್ಞ
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ೬
- ತ್ರ
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ೭
- ಕ್ಷ
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ೮
- ಶ್ರ
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ೯
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ೦
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ಃ
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ೃ
- ಋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ೌ
- ಔ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ೈ
- ಐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ಾ
- ಆ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ೀ
- ಈ
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ೂ
- ಊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ಬ
- ಭ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ಹ
- ಙ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ಗ
- ಘ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- ದ
- ಧ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ಜ
- ಝ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ಡ
- ಢ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ]
- ಞ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
-
- |
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ೋ
- ಓ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ೇ
- ಏ
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ್
- ಅ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ಿ
- ಇ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ು
- ಉ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- ಪ
- ಫ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ರ
- ಱ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ಕ
- ಖ
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ತ
- ಥ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ಚ
- ಛ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ಠ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ೆ
- ಎ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ಂ
-
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- ಮ
- ಣ
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ನ
-
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- ವ
- B
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ಲ
- ಳ
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- ಸ
- ಶ
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ಷ
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- ಾ
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- ಯ
- question
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/ks-inscript.xml b/data/keyboards/ks-inscript.xml
deleted file mode 100644
index cf174062..00000000
--- a/data/keyboards/ks-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ऒ
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- १
- ऍ
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- २
- ॅ
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ३
- #
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ४
- $
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ५
- ज्ञ
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ६
- त्र
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ७
- क्ष
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ८
- श्र
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ९
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ०
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ः
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ृ
- ऋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ौ
- औ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ै
- ऐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ा
- आ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ी
- ई
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ू
- ऊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ॿ
- भ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ह
- ङ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ॻ
- घ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- द
- ध
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ॼ
- झ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ॾ
- ढ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ़
- ञ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- ॉ
- ऑ
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ो
- ओ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- े
- ए
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ्
- अ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ि
- इ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- g
- G
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- प
- फ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- र
- ऱ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- क
- ख
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- त
- थ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- च
- छ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ठ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ॆ
- ऎ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ं
- ँ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- म
- ण
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- न
- ऩ
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- व
- ऴ
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ल
- ळ
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- स
- श
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ष
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- ।
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- य
- य़
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/ks.xml b/data/keyboards/ks.xml
deleted file mode 100644
index 65605568..00000000
--- a/data/keyboards/ks.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ً
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ۱
- !
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ۲
- @
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ۳
- #
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ۴
- $
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ۵
- %
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ۶
- ^
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ۷
- &
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ۸
- *
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ۹
- )
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ۰
- (
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ّ
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- =
- +
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ق
- ﷺ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- و
- ؤ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ع
- ئ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ر
- ڑ
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ت
- ٹ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ے
-
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ء
- ،
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ی
- ۆ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- ہ
- ۃ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- پ
- إ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ]
- ٰ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- [
- ٰ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- ؎
- أ
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ا
- آ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- س
- ش
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- د
- ڈ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ف
- ُ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- گ
- غ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- ھ
- ح
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ج
- ژ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ک
- خ
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ل
- ؓ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ؛
- :
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- "
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ز
- ذ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ص
- ض
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- چ
- ث
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ط
- ظ
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- ب
- أ
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ن
- ں
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- م
- ٔ
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ،
- ِ
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- ۔
- َ
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- /
- ؟
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/mai-inscript.xml b/data/keyboards/mai-inscript.xml
deleted file mode 100644
index 9739f8a6..00000000
--- a/data/keyboards/mai-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ऒ
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- १
- ऍ
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- २
- ॅ
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ३
- #
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ४
- $
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ५
- ज्ञ
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ६
- त्र
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ७
- क्ष
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ८
- श्र
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ९
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ०
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ः
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ृ
- ऋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ौ
- औ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ै
- ऐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ा
- आ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ी
- ई
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ू
- ऊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ब
- भ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ह
- ङ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ग
- घ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- द
- ध
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ज
- झ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ड
- ढ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ़
- ञ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- ॉ
- ऑ
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ो
- ओ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- े
- ए
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ्
- अ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ि
- इ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ु
- उ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- प
- फ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- र
- ऱ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- क
- ख
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- त
- थ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- च
- छ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ठ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ॆ
- ऎ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ं
- ँ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- म
- ण
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- न
- ऩ
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- व
- ऴ
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ल
- ळ
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- स
- श
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ष
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- ।
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- य
- य़
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/ml-inscript.xml b/data/keyboards/ml-inscript.xml
deleted file mode 100644
index 0130cebc..00000000
--- a/data/keyboards/ml-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ഒ
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ൧
- !
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ൨
- @
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ൩
- ്ര
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ൪
- $
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ൫
- %
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ൬
- ^
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ൭
- ക്ഷ
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ൮
- *
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ൯
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ൦
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ഃ
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ൃ
- ഋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ൌ
- ഔ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ൈ
- ഐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ാ
- ആ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ീ
- ഈ
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ൂ
- ഊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ബ
- ഭ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ഹ
- ങ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ഗ
- ഘ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- ദ
- ധ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ജ
- ഝ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ഡ
- ഢ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
-
- ഞ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
-
- |
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ോ
- ഓ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- േ
- ഏ
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ്
- അ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ി
- ഇ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ു
- ഉ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- പ
- ഫ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ര
- റ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ക
- ഖ
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ത
- ഥ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ച
- ഛ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ഠ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- െ
- എ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ം
- X
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- മ
- ണ
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ന
- V
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- വ
- ഴ
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ല
- ള
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- സ
- ശ
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ഷ
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- >
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- യ
- question
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/mr-inscript.xml b/data/keyboards/mr-inscript.xml
deleted file mode 100644
index 9998fbc9..00000000
--- a/data/keyboards/mr-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ऒ
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- १
- ऍ
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- २
- ॅ
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ३
- #
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ४
- $
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ५
- ज्ञ
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ६
- त्र
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ७
- क्ष
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ८
- श्र
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ९
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ०
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ः
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ृ
- ऋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ौ
- औ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ै
- ऐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ा
- आ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ी
- ई
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ू
- ऊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ब
- भ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ह
- ङ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ग
- घ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- द
- ध
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ज
- झ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ड
- ढ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ़
- ञ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- ॉ
- ऑ
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ो
- ओ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- े
- ए
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ्
- अ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ि
- इ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ु
- उ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- प
- फ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- र
- ऱ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- क
- ख
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- त
- थ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- च
- छ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ठ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ॆ
- ऎ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ं
- ँ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- म
- ण
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- न
- ऩ
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- व
- ऴ
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ल
- ळ
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- स
- श
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ष
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- ।
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- य
- य़
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/my.xml b/data/keyboards/my.xml
deleted file mode 100644
index 0e748897..00000000
--- a/data/keyboards/my.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- asciitilde
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ၁
- ဍ
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ၂
- at
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ၃
- ဋ
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ၄
- dollar
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ၅
- percent
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ၆
- asciicircum
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ၇
- ရ
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ၈
- ဂ
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ၉
- parenleft
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ၀
- ဝ
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- minus
- underscore
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- equal
- plus
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ဆ
- ၍
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- တ
- W
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- န
- E
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- မ
- R
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- အ
- T
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ပ
- Y
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- က
- U
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- င
- I
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- သ
- ဥ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- စ
- ဏ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ဟ
- ဎ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ဉ
- ဧ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- ၏
- bar
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ေ
- ဗ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ္
- ္
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ိ
- ီ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ္
-
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
-
- ္
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- ့
- ံ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ္
- ဲ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ု
- K
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ူ
- L
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- း
- colon
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ဓ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ဖ
- ဇ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ထ
- ဌ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- ခ
- ဃ
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- လ
- ဠ
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- ဘ
- B
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ည
- N
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- ာ
- M
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ယ
- ၍
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- ဈ
- ဤ
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- ။
- question
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/or-inscript.xml b/data/keyboards/or-inscript.xml
deleted file mode 100644
index a4e44eac..00000000
--- a/data/keyboards/or-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ୰
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ୧
- !
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ୨
- @
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ୩
- ୍ର
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ୪
- ର୍
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ୫
- ଜ୍ଞ
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ୬
- ତ୍ର
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ୭
- କ୍ଷ
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ୮
- ଶ୍ର
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ୯
-
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ୦
-
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ଃ
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ୃ
- ଋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ୌ
- ଔ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ୈ
- ଐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ା
- ଆ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ୀ
- ଈ
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ୂ
- ଊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ବ
- ଭ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ହ
- ଙ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ଗ
- ଘ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- ଦ
- ଧ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ଜ
- ଝ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ଡ
- ଢ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ଼
- ଞ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- \
- |
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ୋ
- ଓ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- େ
- ଏ
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ୍
- ଅ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ି
- ଇ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ୁ
- ଉ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- ପ
- ଫ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ର
- J
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- କ
- ଖ
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ତ
- ଥ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ଚ
- ଛ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ଠ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- z
- Z
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ଂ
- ଁ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- ମ
- ଣ
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ନ
- V
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- ୱ
- ଵ
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ଲ
- ଳ
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- ସ
- ଶ
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ଷ
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- ।
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- ୟ
- ଯ
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/pa-inscript.xml b/data/keyboards/pa-inscript.xml
deleted file mode 100644
index 5c0b6465..00000000
--- a/data/keyboards/pa-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- asciitilde
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ੧
- exclam
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ੨
- at
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ੩
- numbersign
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ੪
- dollar
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ੫
- percent
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ੬
- asciicircum
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ੭
- ampersand
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ੮
- asterisk
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ੯
- parenleft
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ੦
- parenright
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- _
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- =
- +
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ੌ
- ਔ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ੈ
- ਐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ਾ
- ਆ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ੀ
- ਈ
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ੂ
- ਊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ਬ
- ਭ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ਹ
- ਙ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ਗ
- ਘ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- ਦ
- ਧ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ਜ
- ਝ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ਡ
- ਢ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ਼
- ਞ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- \
- ।
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ੋ
- ਓ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ੇ
- ਏ
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ੍
- ਅ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ਿ
- ਇ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ੁ
- ਉ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- ਪ
- ਫ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ਰ
- ੜ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ਕ
- ਖ
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ਤ
- ਥ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ਚ
- ਛ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ਠ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ੰ
- ੱ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ਜ਼
- ਫ਼
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- ਮ
- ਣ
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ਨ
- ਂ
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- ਵ
- ਞ
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ਲ
- ਲ਼
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- ਸ
- ਸ਼
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ੳ
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- ੲ
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- ਯ
- ?
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/ru.xml b/data/keyboards/ru.xml
deleted file mode 100644
index 3e126b17..00000000
--- a/data/keyboards/ru.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- Ё
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- 1
- !
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- 2
- "
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- 3
- №
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- 4
- ;
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- 5
- %
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- 6
- :
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- 7
- ?
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- 8
- *
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- 9
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- 0
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- minus
- _
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- equal
- +
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- й
- Й
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ц
- Ц
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- у
- У
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- к
- К
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- е
- Е
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- н
- Н
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- г
- Г
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ш
- Ш
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- щ
- Щ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- з
- З
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- х
- Х
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ъ
- Ъ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- \
- |
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ф
- Ф
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ы
- Ы
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- в
- В
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- а
- А
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- п
- П
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- р
- Р
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- о
- О
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- л
- Л
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- д
- Д
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ж
- Ж
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- Э
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- я
- Я
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ч
- Ч
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- с
- С
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- м
- М
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- и
- И
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- т
- Т
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- ь
- Ь
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- б
- Б
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- ю
- Ю
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- .
- ,
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/sd-inscript.xml b/data/keyboards/sd-inscript.xml
deleted file mode 100644
index 8452910a..00000000
--- a/data/keyboards/sd-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ऒ
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- १
- ऍ
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- २
- ॅ
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ३
- #
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ४
- $
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ५
- ज्ञ
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ६
- त्र
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ७
- क्ष
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ८
- श्र
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ९
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ०
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ः
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ृ
- ऋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ौ
- औ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ै
- ऐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ा
- आ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ी
- ई
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ू
- ऊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ॿ
- भ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ह
- ङ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ॻ
- घ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- द
- ध
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ॼ
- झ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- ॾ
- ढ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ़
- ञ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- ॉ
- ऑ
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ो
- ओ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- े
- ए
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ्
- अ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ि
- इ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ु
- उ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- प
- फ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- र
- ऱ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- क
- ख
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- त
- थ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- च
- छ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ठ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ॆ
- ऎ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ं
- ँ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- म
- ण
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- न
- ऩ
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- व
- ऴ
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ल
- ळ
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- स
- श
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ष
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- ।
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- य
- य़
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/symbols/ar.xml b/data/keyboards/symbols/ar.xml
new file mode 100644
index 00000000..c92baa37
--- /dev/null
+++ b/data/keyboards/symbols/ar.xml
@@ -0,0 +1,181 @@
+
+
+ us
+
+ quoteleft
+ ّ
+
+
+ ١
+ exclam
+
+
+ ٢
+ at
+
+
+ ٣
+ numbersign
+
+
+ ٤
+ dollar
+
+
+ ٥
+ percent
+ EuroSign
+
+
+ ٦
+ asciicircum
+
+
+ ٧
+ ampersand
+
+
+ ٨
+ asterisk
+
+
+ ٩
+ )
+
+
+ ٠
+ (
+
+
+ ض
+ َ
+
+
+ ص
+ ً
+
+
+ ث
+ ُ
+
+
+ ق
+ ٌ
+
+
+ ف
+ لإ
+
+
+ غ
+ إ
+
+
+ ع
+ `
+
+
+ ه
+ ÷
+
+
+ خ
+ ×
+
+
+ ح
+ ؛
+
+
+ ج
+ >
+
+
+ د
+ <
+
+
+ ش
+ ِ
+
+
+ س
+ ٍ
+
+
+ ي
+ ]
+
+
+ ب
+ [
+
+
+ ل
+ لأ
+
+
+ ا
+ أ
+
+
+ ت
+ ـ
+
+
+ ن
+ ،
+
+
+ م
+ /
+
+
+ ك
+ colon
+
+
+ quoteright
+ quotedbl
+
+
+ ئ
+ ~
+
+
+ ء
+ ْ
+
+
+ ؤ
+ }
+
+
+ ر
+ {
+
+
+ لا
+ لآ
+
+
+ ى
+ آ
+
+
+ ة
+ '
+
+
+ و
+ ,
+
+
+ ز
+ .
+
+
+ ظ
+ ؟
+
+
diff --git a/data/keyboards/symbols/as-inscript.xml b/data/keyboards/symbols/as-inscript.xml
new file mode 100644
index 00000000..fbb6b177
--- /dev/null
+++ b/data/keyboards/symbols/as-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ~
+
+
+ ১
+ !
+
+
+ ২
+ @
+
+
+ ৩
+ ্ৰ
+
+
+ ৪
+ ৰ্
+
+
+ ৫
+ জ্ঞ
+ EuroSign
+
+
+ ৬
+ ত্ৰ
+
+
+ ৭
+ ক্ষ
+
+
+ ৮
+ শ্ৰ
+
+
+ ৯
+ (
+
+
+ ০
+ )
+
+
+ -
+ ঃ
+
+
+ ৃ
+ ঋ
+
+
+ ৌ
+ ঔ
+
+
+ ৈ
+ ঐ
+
+
+ া
+ আ
+
+
+ ী
+ ঈ
+
+
+ ূ
+ ঊ
+
+
+ ব
+ ভ
+
+
+ হ
+ ঙ
+
+
+ গ
+ ঘ
+
+
+ দ
+ ধ
+
+
+ জ
+ ঝ
+
+
+ ড
+ ঢ
+
+
+ ়
+ ঞ
+
+
+ য
+ |
+
+
+ ো
+ ও
+
+
+ ে
+ এ
+
+
+ ্
+ অ
+
+
+ ি
+ ই
+
+
+ ু
+ উ
+
+
+ প
+ ফ
+
+
+ ৰ
+ J
+
+
+ ক
+ খ
+
+
+ ত
+ থ
+
+
+ চ
+ ছ
+
+
+ quoteright
+ ঠ
+
+
+ ৎ
+ ৺
+
+
+ ং
+ ঁ
+
+
+ ম
+ ণ
+
+
+ ন
+ V
+
+
+ ৱ
+ B
+
+
+ ল
+ N
+
+
+ স
+ শ
+
+
+ ,
+ ষ
+
+
+ .
+ ।
+
+
+ য়
+ question
+
+
diff --git a/data/keyboards/symbols/be.xml b/data/keyboards/symbols/be.xml
new file mode 100644
index 00000000..e082296e
--- /dev/null
+++ b/data/keyboards/symbols/be.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ Ё
+
+
+ 1
+ !
+
+
+ 2
+ "
+
+
+ 3
+ №
+
+
+ 4
+ ;
+
+
+ 5
+ %
+ EuroSign
+
+
+ 6
+ :
+
+
+ 7
+ ?
+
+
+ 8
+ *
+
+
+ 9
+ (
+
+
+ 0
+ )
+
+
+ minus
+ _
+
+
+ equal
+ +
+
+
+ й
+ Й
+
+
+ ц
+ Ц
+
+
+ у
+ У
+
+
+ к
+ К
+
+
+ е
+ Е
+
+
+ н
+ Н
+
+
+ г
+ Г
+
+
+ ш
+ Ш
+
+
+ ў
+ Ў
+
+
+ з
+ З
+
+
+ х
+ Х
+
+
+ '
+ '
+
+
+ \
+ |
+
+
+ ф
+ Ф
+
+
+ ы
+ Ы
+
+
+ в
+ В
+
+
+ а
+ А
+
+
+ п
+ П
+
+
+ р
+ Р
+
+
+ о
+ О
+
+
+ л
+ Л
+
+
+ д
+ Д
+
+
+ ж
+ Ж
+
+
+ quoteright
+ Э
+
+
+ я
+ Я
+
+
+ ч
+ Ч
+
+
+ с
+ С
+
+
+ м
+ М
+
+
+ і
+ І
+
+
+ т
+ Т
+
+
+ ь
+ Ь
+
+
+ б
+ Б
+
+
+ ю
+ Ю
+
+
+ .
+ ,
+
+
diff --git a/data/keyboards/symbols/bn-inscript.xml b/data/keyboards/symbols/bn-inscript.xml
new file mode 100644
index 00000000..5091256b
--- /dev/null
+++ b/data/keyboards/symbols/bn-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ~
+
+
+ ১
+ !
+
+
+ ২
+ @
+
+
+ ৩
+ #
+
+
+ ৪
+ $
+
+
+ ৫
+ %
+ EuroSign
+
+
+ ৬
+ ^
+
+
+ ৭
+ &
+
+
+ ৮
+ *
+
+
+ ৯
+ (
+
+
+ ০
+ )
+
+
+ -
+ ঃ
+
+
+ ৃ
+ ঋ
+
+
+ ৌ
+ ঔ
+
+
+ ৈ
+ ঐ
+
+
+ া
+ আ
+
+
+ ী
+ ঈ
+
+
+ ূ
+ ঊ
+
+
+ ব
+ ভ
+
+
+ হ
+ ঙ
+
+
+ গ
+ ঘ
+
+
+ দ
+ ধ
+
+
+ জ
+ ঝ
+
+
+ ড
+ ঢ
+
+
+ ়
+ ঞ
+
+
+ \
+ |
+
+
+ ো
+ ও
+
+
+ ে
+ এ
+
+
+ ্
+ অ
+
+
+ ি
+ ই
+
+
+ ু
+ উ
+
+
+ প
+ ফ
+
+
+ র
+ J
+
+
+ ক
+ খ
+
+
+ ত
+ থ
+
+
+ চ
+ ছ
+
+
+ quoteright
+ ঠ
+
+
+ z
+ Z
+
+
+ ং
+ ঁ
+
+
+ ম
+ ণ
+
+
+ ন
+ V
+
+
+ ব
+ B
+
+
+ ল
+ N
+
+
+ স
+ শ
+
+
+ ,
+ ষ
+
+
+ .
+ ।
+
+
+ য়
+ য
+
+
diff --git a/data/keyboards/symbols/fa.xml b/data/keyboards/symbols/fa.xml
new file mode 100644
index 00000000..7ea421e4
--- /dev/null
+++ b/data/keyboards/symbols/fa.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ asciitilde
+
+
+ ۱
+ exclam
+
+
+ ۲
+ ٬
+
+
+ ۳
+ ٫
+
+
+ ۴
+ dollar
+
+
+ ۵
+ ٪
+ EuroSign
+
+
+ ۶
+ ×
+
+
+ ۷
+ ،
+
+
+ ۸
+ asterisk
+
+
+ ۹
+ )
+
+
+ ۰
+ (
+
+
+ minus
+ underscore
+
+
+ equal
+ plus
+
+
+ ض
+ ْ
+
+
+ ص
+ ٌ
+
+
+ ث
+ ٍ
+
+
+ ق
+ ً
+
+
+ ف
+ ُ
+
+
+ غ
+ ِ
+
+
+ ع
+ َ
+
+
+ ه
+ ّ
+
+
+ خ
+ ]
+
+
+ ح
+ [
+
+
+ ج
+ }
+
+
+ چ
+ {
+
+
+ backslash
+ bar
+
+
+ ش
+ ؤ
+
+
+ س
+ ئ
+
+
+ ی
+ ي
+
+
+ ب
+ إ
+
+
+ ل
+ أ
+
+
+ ا
+ آ
+
+
+ ت
+ ة
+
+
+ ن
+ »
+
+
+ م
+ «
+
+
+ ک
+ colon
+
+
+ quoteright
+ ؛
+
+
+ ظ
+ ك
+
+
+ ط
+ X
+
+
+ ز
+ ژ
+
+
+ ر
+ V
+
+
+ ذ
+
+
+
+ د
+
+
+
+ پ
+ ء
+
+
+ و
+ >
+
+
+ period
+ <
+
+
+ slash
+ ؟
+
+
diff --git a/data/keyboards/symbols/gu-inscript.xml b/data/keyboards/symbols/gu-inscript.xml
new file mode 100644
index 00000000..d5e43c41
--- /dev/null
+++ b/data/keyboards/symbols/gu-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ~
+
+
+ ૧
+ ઍ
+
+
+ ૨
+ ૅ
+
+
+ ૩
+ ૠ
+
+
+ ૪
+ ૄ
+
+
+ ૫
+ જ્ઞ
+ EuroSign
+
+
+ ૬
+ ત્ર
+
+
+ ૭
+ ક્ષ
+
+
+ ૮
+ શ્ર
+
+
+ ૯
+ (
+
+
+ ૦
+ )
+
+
+ -
+ ઃ
+
+
+ ૃ
+ ઋ
+
+
+ ૌ
+ ઔ
+
+
+ ૈ
+ ઐ
+
+
+ ા
+ આ
+
+
+ ી
+ ઈ
+
+
+ ૂ
+ ઊ
+
+
+ બ
+ ભ
+
+
+ હ
+ ઙ
+
+
+ ગ
+ ઘ
+
+
+ દ
+ ધ
+
+
+ જ
+ ઝ
+
+
+ ડ
+ ઢ
+
+
+ ઼
+ ઞ
+
+
+ ૉ
+ ઑ
+
+
+ ો
+ ઓ
+
+
+ ે
+ એ
+
+
+ ્
+ અ
+
+
+ િ
+ ઇ
+
+
+ ુ
+ ઉ
+
+
+ પ
+ ફ
+
+
+ ર
+ ઽ
+
+
+ ક
+ ખ
+
+
+ ત
+ થ
+
+
+ ચ
+ છ
+
+
+ quoteright
+ ઠ
+
+
+ ૱
+ ૐ
+
+
+ ં
+ ઁ
+
+
+ મ
+ ણ
+
+
+ ન
+ "
+
+
+ વ
+ '
+
+
+ લ
+ ળ
+
+
+ સ
+ શ
+
+
+ ,
+ ષ
+
+
+ .
+ ।
+
+
+ ય
+ ?
+
+
diff --git a/data/keyboards/symbols/he.xml b/data/keyboards/symbols/he.xml
new file mode 100644
index 00000000..ada00e6d
--- /dev/null
+++ b/data/keyboards/symbols/he.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ asciitilde
+
+
+ 1
+ exclam
+
+
+ 2
+ at
+
+
+ 3
+ numbersign
+
+
+ 4
+ dollar
+
+
+ 5
+ percent
+ EuroSign
+
+
+ 6
+ asciicircum
+
+
+ 7
+ ampersand
+
+
+ 8
+ asterisk
+
+
+ 9
+ )
+
+
+ 0
+ (
+
+
+ minus
+ underscore
+
+
+ equal
+ plus
+
+
+ /
+ Q
+
+
+ '
+ W
+
+
+ ק
+ E
+
+
+ ר
+ R
+
+
+ א
+ T
+
+
+ ט
+ Y
+
+
+ ו
+ U
+
+
+ ן
+ I
+
+
+ ם
+ O
+
+
+ פ
+ P
+
+
+ ]
+ }
+
+
+ [
+ {
+
+
+ backslash
+ bar
+
+
+ ש
+ A
+
+
+ ד
+ S
+
+
+ ג
+ D
+
+
+ כ
+ F
+
+
+ ע
+ G
+
+
+ י
+ H
+
+
+ ח
+ J
+
+
+ ל
+ K
+
+
+ ך
+ L
+
+
+ ף
+ colon
+
+
+ quoteright
+ quotedbl
+
+
+ ז
+ Z
+
+
+ ס
+ X
+
+
+ ב
+ C
+
+
+ ה
+ V
+
+
+ נ
+ B
+
+
+ מ
+ N
+
+
+ צ
+ M
+
+
+ ת
+ >
+
+
+ ץ
+ <
+
+
+ .
+ question
+
+
diff --git a/data/keyboards/symbols/hi-inscript.xml b/data/keyboards/symbols/hi-inscript.xml
new file mode 100644
index 00000000..f08396ee
--- /dev/null
+++ b/data/keyboards/symbols/hi-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ऒ
+
+
+ १
+ ऍ
+
+
+ २
+ ॅ
+
+
+ ३
+ #
+
+
+ ४
+ $
+
+
+ ५
+ ज्ञ
+ EuroSign
+
+
+ ६
+ त्र
+
+
+ ७
+ क्ष
+
+
+ ८
+ श्र
+
+
+ ९
+ (
+
+
+ ०
+ )
+
+
+ -
+ ः
+
+
+ ृ
+ ऋ
+
+
+ ौ
+ औ
+
+
+ ै
+ ऐ
+
+
+ ा
+ आ
+
+
+ ी
+ ई
+
+
+ ू
+ ऊ
+
+
+ ब
+ भ
+
+
+ ह
+ ङ
+
+
+ ग
+ घ
+
+
+ द
+ ध
+
+
+ ज
+ झ
+
+
+ ड
+ ढ
+
+
+ ़
+ ञ
+
+
+ ॉ
+ ऑ
+
+
+ ो
+ ओ
+
+
+ े
+ ए
+
+
+ ्
+ अ
+
+
+ ि
+ इ
+
+
+ ु
+ उ
+
+
+ प
+ फ
+
+
+ र
+ ऱ
+
+
+ क
+ ख
+
+
+ त
+ थ
+
+
+ च
+ छ
+
+
+ quoteright
+ ठ
+
+
+ ॆ
+ ऎ
+
+
+ ं
+ ँ
+
+
+ म
+ ण
+
+
+ न
+ ऩ
+
+
+ व
+ ऴ
+
+
+ ल
+ ळ
+
+
+ स
+ श
+
+
+ ,
+ ष
+
+
+ .
+ ।
+
+
+ य
+ य़
+
+
diff --git a/data/keyboards/symbols/ja-kana.xml b/data/keyboards/symbols/ja-kana.xml
new file mode 100644
index 00000000..9ad121c9
--- /dev/null
+++ b/data/keyboards/symbols/ja-kana.xml
@@ -0,0 +1,250 @@
+
+
+ us
+
+ 3
+ numbersign
+ 3
+ numbersign
+
+
+ e
+ E
+ e
+ E
+
+
+ 4
+ dollar
+ 4
+ dollar
+
+
+ 5
+ percent
+ 5
+ percent
+
+
+ 6
+ ampersand
+ 6
+ ampersand
+
+
+
+ t
+ t
+
+
+ g
+ g
+
+
+ h
+ h
+
+
+ colon
+ colon
+
+
+ b
+ b
+
+
+
+ x
+ x
+
+
+ d
+ d
+
+
+ r
+ r
+
+
+ p
+ p
+
+
+ c
+ c
+
+
+
+ q
+ q
+
+
+ a
+ a
+
+
+ z
+ Z
+ z
+ Z
+
+
+ w
+ w
+
+
+ s
+ s
+
+
+
+ u
+ u
+
+
+ i
+ i
+
+
+ exclam
+ exclam
+
+
+ comma
+ comma
+
+
+ k
+ k
+
+
+
+ f
+ f
+
+
+ v
+ v
+
+
+ quotedbl
+ quotedbl
+
+
+ asciicircum
+ asciicircum
+
+
+ equal
+ equal
+
+
+
+ j
+ j
+
+
+ n
+ n
+
+
+ bracketright
+ bracketright
+
+
+ slash
+ slash
+
+
+ m
+ m
+
+
+
+ 7
+ quoteright
+ 7
+ quoteright
+
+
+ 8
+ parenleft
+ 8
+ parenleft
+
+
+ 9
+ parenright
+ 9
+ parenright
+
+
+ o
+ o
+
+
+ l
+ l
+
+
+ period
+ period
+
+
+ semicolon
+ semicolon
+
+
+ backslash
+ backslash
+
+
+
+ 0
+ 0
+
+
+ asciitilde
+ asciitilde
+
+
+ y
+ y
+
+
+ braceleft
+ 0
+ braceleft
+ 0
+
+
+ braceright
+ 0
+ braceright
+ 0
+
+
+
+ at
+ at
+
+
+ bracketleft
+ bracketleft
+
+
+ bar
+ bar
+
+
+ less
+ less
+
+
+ greater
+ question
+ greater
+ question
+
+
+
diff --git a/data/keyboards/symbols/kk.xml b/data/keyboards/symbols/kk.xml
new file mode 100644
index 00000000..c106e65a
--- /dev/null
+++ b/data/keyboards/symbols/kk.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ )
+
+
+ "
+ exclam
+
+
+ ә
+ Ә
+
+
+ і
+ І
+
+
+ ӊ
+ Ӊ
+
+
+ ғ
+ Ғ
+ EuroSign
+
+
+ ,
+ ;
+
+
+ .
+ :
+
+
+ ү
+ Ү
+
+
+ ұ
+ Ұ
+
+
+ қ
+ Қ
+
+
+ ө
+ Ө
+
+
+ һ
+ Һ
+
+
+ й
+ Й
+
+
+ ц
+ Ц
+
+
+ у
+ У
+
+
+ к
+ К
+
+
+ е
+ Е
+
+
+ н
+ Н
+
+
+ г
+ Г
+
+
+ ш
+ Ш
+
+
+ щ
+ Щ
+
+
+ з
+ З
+
+
+ х
+ Х
+
+
+ ъ
+ Ъ
+
+
+ backslash
+ bar
+
+
+ ф
+ Ф
+
+
+ ы
+ Ы
+
+
+ в
+ В
+
+
+ а
+ А
+
+
+ п
+ П
+
+
+ р
+ Р
+
+
+ о
+ О
+
+
+ л
+ Л
+
+
+ д
+ Д
+
+
+ ж
+ Ж
+
+
+ quoteright
+ Э
+
+
+ я
+ Я
+
+
+ ч
+ Ч
+
+
+ с
+ С
+
+
+ м
+ М
+
+
+ и
+ И
+
+
+ т
+ Т
+
+
+ ь
+ Ь
+
+
+ б
+ Б
+
+
+ ю
+ Ю
+
+
+ №
+ question
+
+
diff --git a/data/keyboards/symbols/kn-inscript.xml b/data/keyboards/symbols/kn-inscript.xml
new file mode 100644
index 00000000..05b9f822
--- /dev/null
+++ b/data/keyboards/symbols/kn-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ಒ
+
+
+ ೧
+ !
+
+
+ ೨
+ @
+
+
+ ೩
+ #
+
+
+ ೪
+ $
+
+
+ ೫
+ ಜ್ಞ
+ EuroSign
+
+
+ ೬
+ ತ್ರ
+
+
+ ೭
+ ಕ್ಷ
+
+
+ ೮
+ ಶ್ರ
+
+
+ ೯
+ (
+
+
+ ೦
+ )
+
+
+ -
+ ಃ
+
+
+ ೃ
+ ಋ
+
+
+ ೌ
+ ಔ
+
+
+ ೈ
+ ಐ
+
+
+ ಾ
+ ಆ
+
+
+ ೀ
+ ಈ
+
+
+ ೂ
+ ಊ
+
+
+ ಬ
+ ಭ
+
+
+ ಹ
+ ಙ
+
+
+ ಗ
+ ಘ
+
+
+ ದ
+ ಧ
+
+
+ ಜ
+ ಝ
+
+
+ ಡ
+ ಢ
+
+
+ ]
+ ಞ
+
+
+
+ |
+
+
+ ೋ
+ ಓ
+
+
+ ೇ
+ ಏ
+
+
+ ್
+ ಅ
+
+
+ ಿ
+ ಇ
+
+
+ ು
+ ಉ
+
+
+ ಪ
+ ಫ
+
+
+ ರ
+ ಱ
+
+
+ ಕ
+ ಖ
+
+
+ ತ
+ ಥ
+
+
+ ಚ
+ ಛ
+
+
+ quoteright
+ ಠ
+
+
+ ೆ
+ ಎ
+
+
+ ಂ
+
+
+
+ ಮ
+ ಣ
+
+
+ ನ
+
+
+
+ ವ
+ B
+
+
+ ಲ
+ ಳ
+
+
+ ಸ
+ ಶ
+
+
+ ,
+ ಷ
+
+
+ .
+ ಾ
+
+
+ ಯ
+ question
+
+
diff --git a/data/keyboards/symbols/ks-inscript.xml b/data/keyboards/symbols/ks-inscript.xml
new file mode 100644
index 00000000..7baad07f
--- /dev/null
+++ b/data/keyboards/symbols/ks-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ऒ
+
+
+ १
+ ऍ
+
+
+ २
+ ॅ
+
+
+ ३
+ #
+
+
+ ४
+ $
+
+
+ ५
+ ज्ञ
+ EuroSign
+
+
+ ६
+ त्र
+
+
+ ७
+ क्ष
+
+
+ ८
+ श्र
+
+
+ ९
+ (
+
+
+ ०
+ )
+
+
+ -
+ ः
+
+
+ ृ
+ ऋ
+
+
+ ौ
+ औ
+
+
+ ै
+ ऐ
+
+
+ ा
+ आ
+
+
+ ी
+ ई
+
+
+ ू
+ ऊ
+
+
+ ॿ
+ भ
+
+
+ ह
+ ङ
+
+
+ ॻ
+ घ
+
+
+ द
+ ध
+
+
+ ॼ
+ झ
+
+
+ ॾ
+ ढ
+
+
+ ़
+ ञ
+
+
+ ॉ
+ ऑ
+
+
+ ो
+ ओ
+
+
+ े
+ ए
+
+
+ ्
+ अ
+
+
+ ि
+ इ
+
+
+ g
+ G
+
+
+ प
+ फ
+
+
+ र
+ ऱ
+
+
+ क
+ ख
+
+
+ त
+ थ
+
+
+ च
+ छ
+
+
+ quoteright
+ ठ
+
+
+ ॆ
+ ऎ
+
+
+ ं
+ ँ
+
+
+ म
+ ण
+
+
+ न
+ ऩ
+
+
+ व
+ ऴ
+
+
+ ल
+ ळ
+
+
+ स
+ श
+
+
+ ,
+ ष
+
+
+ .
+ ।
+
+
+ य
+ य़
+
+
diff --git a/data/keyboards/symbols/ks.xml b/data/keyboards/symbols/ks.xml
new file mode 100644
index 00000000..b5b8d14b
--- /dev/null
+++ b/data/keyboards/symbols/ks.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ً
+
+
+ ۱
+ !
+
+
+ ۲
+ @
+
+
+ ۳
+ #
+
+
+ ۴
+ $
+
+
+ ۵
+ %
+ EuroSign
+
+
+ ۶
+ ^
+
+
+ ۷
+ &
+
+
+ ۸
+ *
+
+
+ ۹
+ )
+
+
+ ۰
+ (
+
+
+ -
+ ّ
+
+
+ =
+ +
+
+
+ ق
+ ﷺ
+
+
+ و
+ ؤ
+
+
+ ع
+ ئ
+
+
+ ر
+ ڑ
+
+
+ ت
+ ٹ
+
+
+ ے
+
+
+
+ ء
+ ،
+
+
+ ی
+ ۆ
+
+
+ ہ
+ ۃ
+
+
+ پ
+ إ
+
+
+ ]
+ ٰ
+
+
+ [
+ ٰ
+
+
+ ؎
+ أ
+
+
+ ا
+ آ
+
+
+ س
+ ش
+
+
+ د
+ ڈ
+
+
+ ف
+ ُ
+
+
+ گ
+ غ
+
+
+ ھ
+ ح
+
+
+ ج
+ ژ
+
+
+ ک
+ خ
+
+
+ ل
+ ؓ
+
+
+ ؛
+ :
+
+
+ quoteright
+ "
+
+
+ ز
+ ذ
+
+
+ ص
+ ض
+
+
+ چ
+ ث
+
+
+ ط
+ ظ
+
+
+ ب
+ أ
+
+
+ ن
+ ں
+
+
+ م
+ ٔ
+
+
+ ،
+ ِ
+
+
+ ۔
+ َ
+
+
+ /
+ ؟
+
+
diff --git a/data/keyboards/symbols/mai-inscript.xml b/data/keyboards/symbols/mai-inscript.xml
new file mode 100644
index 00000000..f08396ee
--- /dev/null
+++ b/data/keyboards/symbols/mai-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ऒ
+
+
+ १
+ ऍ
+
+
+ २
+ ॅ
+
+
+ ३
+ #
+
+
+ ४
+ $
+
+
+ ५
+ ज्ञ
+ EuroSign
+
+
+ ६
+ त्र
+
+
+ ७
+ क्ष
+
+
+ ८
+ श्र
+
+
+ ९
+ (
+
+
+ ०
+ )
+
+
+ -
+ ः
+
+
+ ृ
+ ऋ
+
+
+ ौ
+ औ
+
+
+ ै
+ ऐ
+
+
+ ा
+ आ
+
+
+ ी
+ ई
+
+
+ ू
+ ऊ
+
+
+ ब
+ भ
+
+
+ ह
+ ङ
+
+
+ ग
+ घ
+
+
+ द
+ ध
+
+
+ ज
+ झ
+
+
+ ड
+ ढ
+
+
+ ़
+ ञ
+
+
+ ॉ
+ ऑ
+
+
+ ो
+ ओ
+
+
+ े
+ ए
+
+
+ ्
+ अ
+
+
+ ि
+ इ
+
+
+ ु
+ उ
+
+
+ प
+ फ
+
+
+ र
+ ऱ
+
+
+ क
+ ख
+
+
+ त
+ थ
+
+
+ च
+ छ
+
+
+ quoteright
+ ठ
+
+
+ ॆ
+ ऎ
+
+
+ ं
+ ँ
+
+
+ म
+ ण
+
+
+ न
+ ऩ
+
+
+ व
+ ऴ
+
+
+ ल
+ ळ
+
+
+ स
+ श
+
+
+ ,
+ ष
+
+
+ .
+ ।
+
+
+ य
+ य़
+
+
diff --git a/data/keyboards/symbols/ml-inscript.xml b/data/keyboards/symbols/ml-inscript.xml
new file mode 100644
index 00000000..0677edc7
--- /dev/null
+++ b/data/keyboards/symbols/ml-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ഒ
+
+
+ ൧
+ !
+
+
+ ൨
+ @
+
+
+ ൩
+ ്ര
+
+
+ ൪
+ $
+
+
+ ൫
+ %
+ EuroSign
+
+
+ ൬
+ ^
+
+
+ ൭
+ ക്ഷ
+
+
+ ൮
+ *
+
+
+ ൯
+ (
+
+
+ ൦
+ )
+
+
+ -
+ ഃ
+
+
+ ൃ
+ ഋ
+
+
+ ൌ
+ ഔ
+
+
+ ൈ
+ ഐ
+
+
+ ാ
+ ആ
+
+
+ ീ
+ ഈ
+
+
+ ൂ
+ ഊ
+
+
+ ബ
+ ഭ
+
+
+ ഹ
+ ങ
+
+
+ ഗ
+ ഘ
+
+
+ ദ
+ ധ
+
+
+ ജ
+ ഝ
+
+
+ ഡ
+ ഢ
+
+
+
+ ഞ
+
+
+
+ |
+
+
+ ോ
+ ഓ
+
+
+ േ
+ ഏ
+
+
+ ്
+ അ
+
+
+ ി
+ ഇ
+
+
+ ു
+ ഉ
+
+
+ പ
+ ഫ
+
+
+ ര
+ റ
+
+
+ ക
+ ഖ
+
+
+ ത
+ ഥ
+
+
+ ച
+ ഛ
+
+
+ quoteright
+ ഠ
+
+
+ െ
+ എ
+
+
+ ം
+ X
+
+
+ മ
+ ണ
+
+
+ ന
+ V
+
+
+ വ
+ ഴ
+
+
+ ല
+ ള
+
+
+ സ
+ ശ
+
+
+ ,
+ ഷ
+
+
+ .
+ >
+
+
+ യ
+ question
+
+
diff --git a/data/keyboards/symbols/mr-inscript.xml b/data/keyboards/symbols/mr-inscript.xml
new file mode 100644
index 00000000..99794c01
--- /dev/null
+++ b/data/keyboards/symbols/mr-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ऒ
+
+
+ १
+ ऍ
+
+
+ २
+ ॅ
+
+
+ ३
+ #
+
+
+ ४
+ $
+
+
+ ५
+ ज्ञ
+ EuroSign
+
+
+ ६
+ त्र
+
+
+ ७
+ क्ष
+
+
+ ८
+ श्र
+
+
+ ९
+ (
+
+
+ ०
+ )
+
+
+ -
+ ः
+
+
+ ृ
+ ऋ
+
+
+ ौ
+ औ
+
+
+ ै
+ ऐ
+
+
+ ा
+ आ
+
+
+ ी
+ ई
+
+
+ ू
+ ऊ
+
+
+ ब
+ भ
+
+
+ ह
+ ङ
+
+
+ ग
+ घ
+
+
+ द
+ ध
+
+
+ ज
+ झ
+
+
+ ड
+ ढ
+
+
+ ़
+ ञ
+
+
+ ॉ
+ ऑ
+
+
+ ो
+ ओ
+
+
+ े
+ ए
+
+
+ ्
+ अ
+
+
+ ि
+ इ
+
+
+ ु
+ उ
+
+
+ प
+ फ
+
+
+ र
+ ऱ
+
+
+ क
+ ख
+
+
+ त
+ थ
+
+
+ च
+ छ
+
+
+ quoteright
+ ठ
+
+
+ ॆ
+ ऎ
+
+
+ ं
+ ँ
+
+
+ म
+ ण
+
+
+ न
+ ऩ
+
+
+ व
+ ऴ
+
+
+ ल
+ ळ
+
+
+ स
+ श
+
+
+ ,
+ ष
+
+
+ .
+ ।
+
+
+ य
+ य़
+
+
diff --git a/data/keyboards/symbols/my.xml b/data/keyboards/symbols/my.xml
new file mode 100644
index 00000000..b0e19198
--- /dev/null
+++ b/data/keyboards/symbols/my.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ asciitilde
+
+
+ ၁
+ ဍ
+
+
+ ၂
+ at
+
+
+ ၃
+ ဋ
+
+
+ ၄
+ dollar
+
+
+ ၅
+ percent
+ EuroSign
+
+
+ ၆
+ asciicircum
+
+
+ ၇
+ ရ
+
+
+ ၈
+ ဂ
+
+
+ ၉
+ parenleft
+
+
+ ၀
+ ဝ
+
+
+ minus
+ underscore
+
+
+ equal
+ plus
+
+
+ ဆ
+ ၍
+
+
+ တ
+ W
+
+
+ န
+ E
+
+
+ မ
+ R
+
+
+ အ
+ T
+
+
+ ပ
+ Y
+
+
+ က
+ U
+
+
+ င
+ I
+
+
+ သ
+ ဥ
+
+
+ စ
+ ဏ
+
+
+ ဟ
+ ဎ
+
+
+ ဉ
+ ဧ
+
+
+ ၏
+ bar
+
+
+ ေ
+ ဗ
+
+
+ ္
+ ္
+
+
+ ိ
+ ီ
+
+
+ ္
+
+
+
+
+ ္
+
+
+ ့
+ ံ
+
+
+ ္
+ ဲ
+
+
+ ု
+ K
+
+
+ ူ
+ L
+
+
+ း
+ colon
+
+
+ quoteright
+ ဓ
+
+
+ ဖ
+ ဇ
+
+
+ ထ
+ ဌ
+
+
+ ခ
+ ဃ
+
+
+ လ
+ ဠ
+
+
+ ဘ
+ B
+
+
+ ည
+ N
+
+
+ ာ
+ M
+
+
+ ယ
+ ၍
+
+
+ ဈ
+ ဤ
+
+
+ ။
+ question
+
+
diff --git a/data/keyboards/symbols/or-inscript.xml b/data/keyboards/symbols/or-inscript.xml
new file mode 100644
index 00000000..b1ffdc3d
--- /dev/null
+++ b/data/keyboards/symbols/or-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ୰
+
+
+ ୧
+ !
+
+
+ ୨
+ @
+
+
+ ୩
+ ୍ର
+
+
+ ୪
+ ର୍
+
+
+ ୫
+ ଜ୍ଞ
+ EuroSign
+
+
+ ୬
+ ତ୍ର
+
+
+ ୭
+ କ୍ଷ
+
+
+ ୮
+ ଶ୍ର
+
+
+ ୯
+
+
+
+ ୦
+
+
+
+ -
+ ଃ
+
+
+ ୃ
+ ଋ
+
+
+ ୌ
+ ଔ
+
+
+ ୈ
+ ଐ
+
+
+ ା
+ ଆ
+
+
+ ୀ
+ ଈ
+
+
+ ୂ
+ ଊ
+
+
+ ବ
+ ଭ
+
+
+ ହ
+ ଙ
+
+
+ ଗ
+ ଘ
+
+
+ ଦ
+ ଧ
+
+
+ ଜ
+ ଝ
+
+
+ ଡ
+ ଢ
+
+
+ ଼
+ ଞ
+
+
+ \
+ |
+
+
+ ୋ
+ ଓ
+
+
+ େ
+ ଏ
+
+
+ ୍
+ ଅ
+
+
+ ି
+ ଇ
+
+
+ ୁ
+ ଉ
+
+
+ ପ
+ ଫ
+
+
+ ର
+ J
+
+
+ କ
+ ଖ
+
+
+ ତ
+ ଥ
+
+
+ ଚ
+ ଛ
+
+
+ quoteright
+ ଠ
+
+
+ z
+ Z
+
+
+ ଂ
+ ଁ
+
+
+ ମ
+ ଣ
+
+
+ ନ
+ V
+
+
+ ୱ
+ ଵ
+
+
+ ଲ
+ ଳ
+
+
+ ସ
+ ଶ
+
+
+ ,
+ ଷ
+
+
+ .
+ ।
+
+
+ ୟ
+ ଯ
+
+
diff --git a/data/keyboards/symbols/pa-inscript.xml b/data/keyboards/symbols/pa-inscript.xml
new file mode 100644
index 00000000..4e732871
--- /dev/null
+++ b/data/keyboards/symbols/pa-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ asciitilde
+
+
+ ੧
+ exclam
+
+
+ ੨
+ at
+
+
+ ੩
+ numbersign
+
+
+ ੪
+ dollar
+
+
+ ੫
+ percent
+ EuroSign
+
+
+ ੬
+ asciicircum
+
+
+ ੭
+ ampersand
+
+
+ ੮
+ asterisk
+
+
+ ੯
+ parenleft
+
+
+ ੦
+ parenright
+
+
+ -
+ _
+
+
+ =
+ +
+
+
+ ੌ
+ ਔ
+
+
+ ੈ
+ ਐ
+
+
+ ਾ
+ ਆ
+
+
+ ੀ
+ ਈ
+
+
+ ੂ
+ ਊ
+
+
+ ਬ
+ ਭ
+
+
+ ਹ
+ ਙ
+
+
+ ਗ
+ ਘ
+
+
+ ਦ
+ ਧ
+
+
+ ਜ
+ ਝ
+
+
+ ਡ
+ ਢ
+
+
+ ਼
+ ਞ
+
+
+ \
+ ।
+
+
+ ੋ
+ ਓ
+
+
+ ੇ
+ ਏ
+
+
+ ੍
+ ਅ
+
+
+ ਿ
+ ਇ
+
+
+ ੁ
+ ਉ
+
+
+ ਪ
+ ਫ
+
+
+ ਰ
+ ੜ
+
+
+ ਕ
+ ਖ
+
+
+ ਤ
+ ਥ
+
+
+ ਚ
+ ਛ
+
+
+ quoteright
+ ਠ
+
+
+ ੰ
+ ੱ
+
+
+ ਜ਼
+ ਫ਼
+
+
+ ਮ
+ ਣ
+
+
+ ਨ
+ ਂ
+
+
+ ਵ
+ ਞ
+
+
+ ਲ
+ ਲ਼
+
+
+ ਸ
+ ਸ਼
+
+
+ ,
+ ੳ
+
+
+ .
+ ੲ
+
+
+ ਯ
+ ?
+
+
diff --git a/data/keyboards/symbols/ru.xml b/data/keyboards/symbols/ru.xml
new file mode 100644
index 00000000..535100ce
--- /dev/null
+++ b/data/keyboards/symbols/ru.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ Ё
+
+
+ 1
+ !
+
+
+ 2
+ "
+
+
+ 3
+ №
+
+
+ 4
+ ;
+
+
+ 5
+ %
+ EuroSign
+
+
+ 6
+ :
+
+
+ 7
+ ?
+
+
+ 8
+ *
+
+
+ 9
+ (
+
+
+ 0
+ )
+
+
+ minus
+ _
+
+
+ equal
+ +
+
+
+ й
+ Й
+
+
+ ц
+ Ц
+
+
+ у
+ У
+
+
+ к
+ К
+
+
+ е
+ Е
+
+
+ н
+ Н
+
+
+ г
+ Г
+
+
+ ш
+ Ш
+
+
+ щ
+ Щ
+
+
+ з
+ З
+
+
+ х
+ Х
+
+
+ ъ
+ Ъ
+
+
+ \
+ |
+
+
+ ф
+ Ф
+
+
+ ы
+ Ы
+
+
+ в
+ В
+
+
+ а
+ А
+
+
+ п
+ П
+
+
+ р
+ Р
+
+
+ о
+ О
+
+
+ л
+ Л
+
+
+ д
+ Д
+
+
+ ж
+ Ж
+
+
+ quoteright
+ Э
+
+
+ я
+ Я
+
+
+ ч
+ Ч
+
+
+ с
+ С
+
+
+ м
+ М
+
+
+ и
+ И
+
+
+ т
+ Т
+
+
+ ь
+ Ь
+
+
+ б
+ Б
+
+
+ ю
+ Ю
+
+
+ .
+ ,
+
+
diff --git a/data/keyboards/symbols/sd-inscript.xml b/data/keyboards/symbols/sd-inscript.xml
new file mode 100644
index 00000000..38d0769e
--- /dev/null
+++ b/data/keyboards/symbols/sd-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ऒ
+
+
+ १
+ ऍ
+
+
+ २
+ ॅ
+
+
+ ३
+ #
+
+
+ ४
+ $
+
+
+ ५
+ ज्ञ
+ EuroSign
+
+
+ ६
+ त्र
+
+
+ ७
+ क्ष
+
+
+ ८
+ श्र
+
+
+ ९
+ (
+
+
+ ०
+ )
+
+
+ -
+ ः
+
+
+ ृ
+ ऋ
+
+
+ ौ
+ औ
+
+
+ ै
+ ऐ
+
+
+ ा
+ आ
+
+
+ ी
+ ई
+
+
+ ू
+ ऊ
+
+
+ ॿ
+ भ
+
+
+ ह
+ ङ
+
+
+ ॻ
+ घ
+
+
+ द
+ ध
+
+
+ ॼ
+ झ
+
+
+ ॾ
+ ढ
+
+
+ ़
+ ञ
+
+
+ ॉ
+ ऑ
+
+
+ ो
+ ओ
+
+
+ े
+ ए
+
+
+ ्
+ अ
+
+
+ ि
+ इ
+
+
+ ु
+ उ
+
+
+ प
+ फ
+
+
+ र
+ ऱ
+
+
+ क
+ ख
+
+
+ त
+ थ
+
+
+ च
+ छ
+
+
+ quoteright
+ ठ
+
+
+ ॆ
+ ऎ
+
+
+ ं
+ ँ
+
+
+ म
+ ण
+
+
+ न
+ ऩ
+
+
+ व
+ ऴ
+
+
+ ल
+ ळ
+
+
+ स
+ श
+
+
+ ,
+ ष
+
+
+ .
+ ।
+
+
+ य
+ य़
+
+
diff --git a/data/keyboards/symbols/ta-inscript.xml b/data/keyboards/symbols/ta-inscript.xml
new file mode 100644
index 00000000..bb1ca33c
--- /dev/null
+++ b/data/keyboards/symbols/ta-inscript.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ ஒ
+
+
+ 1
+ !
+
+
+ 2
+ @
+
+
+ 3
+ #
+
+
+ 4
+ $
+
+
+ 5
+ %
+ EuroSign
+
+
+ 6
+ ^
+
+
+ 7
+ க்ஷ
+
+
+ 8
+ ஷ்ர
+
+
+ 9
+ (
+
+
+ 0
+ )
+
+
+ -
+ ஃ
+
+
+ =
+ +
+
+
+ ௌ
+ ஔ
+
+
+ ை
+ ஐ
+
+
+ ா
+ ஆ
+
+
+ ீ
+ ஈ
+
+
+ ூ
+ ஊ
+
+
+ y
+ Y
+
+
+ ஹ
+ ங
+
+
+ i
+ I
+
+
+ o
+ O
+
+
+ ஜ
+ P
+
+
+ [
+ {
+
+
+ ]
+ ஞ
+
+
+ \
+ |
+
+
+ ோ
+ ஓ
+
+
+ ே
+ ஏ
+
+
+ ்
+ அ
+
+
+ ி
+ இ
+
+
+ ு
+ உ
+
+
+ ப
+ H
+
+
+ ர
+ ற
+
+
+ க
+ K
+
+
+ த
+ L
+
+
+ ச
+ :
+
+
+ quoteright
+ "
+
+
+ ெ
+ எ
+
+
+ x
+ X
+
+
+ ம
+ ண
+
+
+ ந
+ ன
+
+
+ வ
+ ழ
+
+
+ ல
+ ள
+
+
+ ஸ
+ M
+
+
+ ,
+ ஷ
+
+
+ .
+ >
+
+
+ ய
+ question
+
+
diff --git a/data/keyboards/symbols/te-inscript.xml b/data/keyboards/symbols/te-inscript.xml
new file mode 100644
index 00000000..a2220e37
--- /dev/null
+++ b/data/keyboards/symbols/te-inscript.xml
@@ -0,0 +1,194 @@
+
+
+ us
+
+ quoteleft
+ ఒ
+
+
+ ౧
+ !
+
+
+ ౨
+ @
+
+
+ ౩
+ #
+
+
+ ౪
+ $
+
+
+ ౫
+ జ్ఞ
+ EuroSign
+
+
+ ౬
+ త్ర
+
+
+ ౭
+ క్ష
+
+
+ ౮
+ శ్ర
+
+
+ ౯
+ (
+
+
+ ౦
+ )
+
+
+ -
+ _
+
+
+ ృ
+ ఋ
+
+
+ ౌ
+ ఔ
+
+
+ ై
+ ఐ
+
+
+ ా
+ ఆ
+
+
+ ీ
+ ఈ
+
+
+ ూ
+ ఊ
+
+
+ బ
+ భ
+
+
+ హ
+ ఙ
+
+
+ గ
+ ఘ
+
+
+ ద
+ ధ
+
+
+ జ
+ ఝ
+
+
+ డ
+ ఢ
+
+
+
+ ఞ
+
+
+ ౄ
+ ౠ
+
+
+ ో
+ ఓ
+
+
+ ే
+ ఏ
+
+
+ ్
+ అ
+
+
+ ి
+ ఇ
+
+
+ ు
+ ఉ
+
+
+ ప
+ ఫ
+
+
+ ర
+ ఱ
+
+
+ క
+ ఖ
+
+
+ త
+ థ
+
+
+ చ
+ ఛ
+
+
+ quoteright
+ ఠ
+
+
+ ె
+ ఎ
+
+
+ ం
+ ఁ
+
+
+ మ
+ ణ
+
+
+ న
+ ః
+
+
+ వ
+
+
+
+ ల
+ ళ
+
+
+ స
+ శ
+
+
+ ,
+ ష
+
+
+ .
+ >
+
+
+ య
+ ?
+
+
+
diff --git a/data/keyboards/symbols/th.xml b/data/keyboards/symbols/th.xml
new file mode 100644
index 00000000..f456255b
--- /dev/null
+++ b/data/keyboards/symbols/th.xml
@@ -0,0 +1,192 @@
+
+
+ us
+
+ underscore
+ percent
+
+
+ Thai_lakkhangyao
+ plus
+
+
+ slash
+ Thai_leknung
+
+
+ minus
+ Thai_leksong
+
+
+ Thai_phosamphao
+ Thai_leksam
+
+
+ Thai_thothung
+ Thai_leksi
+
+
+ Thai_sarau
+ Thai_sarauu
+
+
+ Thai_saraue
+ Thai_baht
+
+
+ Thai_khokhwai
+ Thai_lekha
+
+
+ Thai_totao
+ Thai_lekhok
+
+
+ Thai_chochan
+ Thai_lekchet
+
+
+ Thai_khokhai
+ Thai_lekpaet
+
+
+ Thai_chochang
+ Thai_lekkao
+
+
+ Thai_maiyamok
+ Thai_leksun
+
+
+ Thai_saraaimaimalai
+ quotedbl
+
+
+ Thai_saraam
+ Thai_dochada
+
+
+ Thai_phophan
+ Thai_thonangmontho
+
+
+ Thai_saraa
+ Thai_thothong
+
+
+ Thai_maihanakat
+ Thai_nikhahit
+
+
+ Thai_saraii
+ Thai_maitri
+
+
+ Thai_rorua
+ Thai_nonen
+
+
+ Thai_nonu
+ Thai_paiyannoi
+
+
+ Thai_yoyak
+ Thai_yoying
+
+
+ Thai_bobaimai
+ Thai_thothan
+
+
+ Thai_loling
+ comma
+
+
+ Thai_khokhuat
+ Thai_khokhon
+
+
+ Thai_fofan
+ Thai_ru
+
+
+ Thai_hohip
+ Thai_khorakhang
+
+
+ Thai_kokai
+ Thai_topatak
+
+
+ Thai_dodek
+ Thai_sarao
+
+
+ Thai_sarae
+ Thai_chochoe
+
+
+ Thai_maitho
+ Thai_maitaikhu
+
+
+ Thai_maiek
+ Thai_maichattawa
+
+
+ Thai_saraaa
+ Thai_sorusi
+
+
+ Thai_sosua
+ Thai_sosala
+
+
+ Thai_wowaen
+ Thai_soso
+
+
+ Thai_ngongu
+ period
+
+
+ Thai_phophung
+ parenleft
+
+
+ Thai_popla
+ parenright
+
+
+ Thai_saraae
+ Thai_choching
+
+
+ Thai_oang
+ Thai_honokhuk
+
+
+ Thai_sarai
+ Thai_phinthu
+
+
+ Thai_sarauee
+ Thai_thanthakhat
+
+
+ Thai_thothahan
+ question
+
+
+ Thai_moma
+ Thai_thophuthao
+
+
+ Thai_saraaimaimuan
+ Thai_lochula
+
+
+ Thai_fofa
+ Thai_lu
+
+
diff --git a/data/keyboards/symbols/ua.xml b/data/keyboards/symbols/ua.xml
new file mode 100644
index 00000000..86d760ad
--- /dev/null
+++ b/data/keyboards/symbols/ua.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ Ґ
+
+
+ 1
+ !
+
+
+ 2
+ "
+
+
+ 3
+ №
+
+
+ 4
+ ;
+
+
+ 5
+ %
+ EuroSign
+
+
+ 6
+ :
+
+
+ 7
+ ?
+
+
+ 8
+ *
+
+
+ 9
+ (
+
+
+ 0
+ )
+
+
+ minus
+ _
+
+
+ equal
+ +
+
+
+ й
+ Й
+
+
+ ц
+ Ц
+
+
+ у
+ У
+
+
+ к
+ К
+
+
+ е
+ Е
+
+
+ н
+ Н
+
+
+ г
+ Г
+
+
+ ш
+ Ш
+
+
+ щ
+ Щ
+
+
+ з
+ З
+
+
+ х
+ Х
+
+
+ ї
+ Ї
+
+
+ \
+ |
+
+
+ ф
+ Ф
+
+
+ і
+ І
+
+
+ в
+ В
+
+
+ а
+ А
+
+
+ п
+ П
+
+
+ р
+ Р
+
+
+ о
+ О
+
+
+ л
+ Л
+
+
+ д
+ Д
+
+
+ ж
+ Ж
+
+
+ quoteright
+ Є
+
+
+ я
+ Я
+
+
+ ч
+ Ч
+
+
+ с
+ С
+
+
+ м
+ М
+
+
+ и
+ И
+
+
+ т
+ Т
+
+
+ ь
+ Ь
+
+
+ б
+ Б
+
+
+ ю
+ Ю
+
+
+ .
+ ,
+
+
diff --git a/data/keyboards/symbols/ug.xml b/data/keyboards/symbols/ug.xml
new file mode 100644
index 00000000..09bac435
--- /dev/null
+++ b/data/keyboards/symbols/ug.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ asciitilde
+
+
+ 1
+ exclam
+
+
+ 2
+ at
+
+
+ 3
+ numbersign
+
+
+ 4
+ dollar
+
+
+ 5
+ percent
+ EuroSign
+
+
+ 6
+ asciicircum
+
+
+ 7
+ ampersand
+
+
+ 8
+ asterisk
+
+
+ 9
+ parenleft
+
+
+ 0
+ parenright
+
+
+ minus
+ —
+
+
+ equal
+ plus
+
+
+ چ
+ چ
+
+
+ ۋ
+ ۋ
+
+
+ ې
+ ې
+
+
+ ر
+ ر
+
+
+ ت
+ ت
+
+
+ ي
+ ي
+
+
+ ۇ
+ ۇ
+
+
+ ڭ
+ ڭ
+
+
+ و
+ و
+
+
+ پ
+ پ
+
+
+ bracketleft
+ «
+
+
+ bracketright
+ »
+
+
+ backslash
+ bar
+
+
+ ھ
+ ھ
+
+
+ س
+ س
+
+
+ د
+ ژ
+
+
+ ا
+ ف
+
+
+ ە
+ گ
+
+
+ ى
+ خ
+
+
+ ق
+ ج
+
+
+ ك
+ ۆ
+
+
+ ل
+ ل
+
+
+ ؛
+ colon
+
+
+ quoteright
+ quotedbl
+
+
+ ز
+ ز
+
+
+ ش
+ ش
+
+
+ غ
+ غ
+
+
+ ۈ
+ ۈ
+
+
+ ب
+ ب
+
+
+ ن
+ ن
+
+
+ م
+ م
+
+
+ ،
+ ‹
+
+
+ period
+ ›
+
+
+ ئ
+ ؟
+
+
diff --git a/data/keyboards/symbols/us.xml b/data/keyboards/symbols/us.xml
new file mode 100644
index 00000000..98d405b2
--- /dev/null
+++ b/data/keyboards/symbols/us.xml
@@ -0,0 +1,276 @@
+
+
+
+ Escape
+
+
+ F1
+
+
+ F2
+
+
+ F3
+
+
+ F4
+
+
+ F5
+
+
+ F6
+
+
+ F7
+
+
+ F8
+
+
+ F9
+
+
+ F10
+
+
+ F11
+
+
+ F12
+
+
+ quoteleft
+ asciitilde
+
+
+ 1
+ exclam
+
+
+ 2
+ at
+
+
+ 3
+ numbersign
+
+
+ 4
+ dollar
+
+
+ 5
+ percent
+ EuroSign
+
+
+ 6
+ asciicircum
+
+
+ 7
+ ampersand
+
+
+ 8
+ asterisk
+
+
+ 9
+ parenleft
+
+
+ 0
+ parenright
+
+
+ minus
+ underscore
+
+
+ equal
+ plus
+
+
+ BackSpace
+
+
+ Tab
+ ISO_Left_Tab
+
+
+ q
+ Q
+
+
+ w
+ W
+
+
+ e
+ E
+
+
+ r
+ R
+
+
+ t
+ T
+
+
+ y
+ Y
+
+
+ u
+ U
+
+
+ i
+ I
+
+
+ o
+ O
+
+
+ p
+ P
+
+
+ bracketleft
+ braceleft
+
+
+ bracketright
+ braceright
+
+
+ backslash
+ bar
+
+
+ ISO_Level3_Shift
+
+
+ a
+ A
+
+
+ s
+ S
+
+
+ d
+ D
+
+
+ f
+ F
+
+
+ g
+ G
+
+
+ h
+ H
+
+
+ j
+ J
+
+
+ k
+ K
+
+
+ l
+ L
+
+
+ semicolon
+ colon
+
+
+ quoteright
+ quotedbl
+
+
+ Return
+
+
+ Shift_L
+
+
+ z
+ Z
+
+
+ x
+ X
+
+
+ c
+ C
+
+
+ v
+ V
+
+
+ b
+ B
+
+
+ n
+ N
+
+
+ m
+ M
+
+
+ comma
+ less
+
+
+ period
+ greater
+
+
+ slash
+ question
+
+
+ Shift_R
+
+
+ cycle-keyboard
+ preferences
+
+
+ Control_L
+
+
+ Alt_L
+ Meta_L
+
+
+ space
+
+
+ Left
+
+
+ Up
+
+
+ Down
+
+
+ Right
+
+
diff --git a/data/keyboards/symbols/zh-bopomofo.xml b/data/keyboards/symbols/zh-bopomofo.xml
new file mode 100644
index 00000000..406be06b
--- /dev/null
+++ b/data/keyboards/symbols/zh-bopomofo.xml
@@ -0,0 +1,193 @@
+
+
+ us
+
+ quoteleft
+ asciitilde
+
+
+ ㄅ
+ exclam
+
+
+ ㄉ
+ at
+
+
+ ˇ
+ numbersign
+
+
+ ˋ
+ dollar
+
+
+ ㄓ
+ percent
+ EuroSign
+
+
+ ˊ
+ asciicircum
+
+
+ ˙
+ ampersand
+
+
+ ㄚ
+ asterisk
+
+
+ ㄞ
+ parenleft
+
+
+ ㄢ
+ parenright
+
+
+ ㄦ
+ underscore
+
+
+ equal
+ plus
+
+
+ ㄆ
+ Q
+
+
+ ㄊ
+ W
+
+
+ ㄍ
+ E
+
+
+ ㄐ
+ R
+
+
+ ㄔ
+ T
+
+
+ ㄗ
+ Y
+
+
+ ㄧ
+ U
+
+
+ ㄛ
+ I
+
+
+ ㄟ
+ O
+
+
+ ㄣ
+ P
+
+
+ bracketleft
+ braceleft
+
+
+ bracketright
+ braceright
+
+
+ backslash
+ bar
+
+
+ ㄇ
+ A
+
+
+ ㄋ
+ S
+
+
+ ㄎ
+ D
+
+
+ ㄑ
+ F
+
+
+ ㄕ
+ G
+
+
+ ㄘ
+ H
+
+
+ ㄨ
+ J
+
+
+ ㄜ
+ K
+
+
+ ㄠ
+ L
+
+
+ ㄤ
+ colon
+
+
+ quoteright
+ quotedbl
+
+
+ ㄈ
+ Z
+
+
+ ㄌ
+ X
+
+
+ ㄏ
+ C
+
+
+ ㄒ
+ V
+
+
+ ㄖ
+ B
+
+
+ ㄙ
+ N
+
+
+ ㄩ
+ M
+
+
+ ㄝ
+ less
+
+
+ ㄡ
+ greater
+
+
+ ㄥ
+ question
+
+
diff --git a/data/keyboards/ta-inscript.xml b/data/keyboards/ta-inscript.xml
deleted file mode 100644
index e1d5eb4c..00000000
--- a/data/keyboards/ta-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ஒ
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- 1
- !
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- 2
- @
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- 3
- #
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- 4
- $
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- 5
- %
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- 6
- ^
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- 7
- க்ஷ
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- 8
- ஷ்ர
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- 9
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- 0
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- ஃ
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- =
- +
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ௌ
- ஔ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ை
- ஐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ா
- ஆ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ீ
- ஈ
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ூ
- ஊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- y
- Y
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ஹ
- ங
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- i
- I
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- o
- O
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ஜ
- P
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- [
- {
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ]
- ஞ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- \
- |
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ோ
- ஓ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ே
- ஏ
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ்
- அ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ி
- இ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ு
- உ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- ப
- H
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ர
- ற
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- க
- K
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- த
- L
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ச
- :
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- "
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ெ
- எ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- x
- X
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- ம
- ண
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ந
- ன
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- வ
- ழ
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ல
- ள
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- ஸ
- M
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ஷ
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- >
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- ய
- question
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/te-inscript.xml b/data/keyboards/te-inscript.xml
deleted file mode 100644
index 4bf5abc4..00000000
--- a/data/keyboards/te-inscript.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- ఒ
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ౧
- !
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ౨
- @
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ౩
- #
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ౪
- $
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ౫
- జ్ఞ
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ౬
- త్ర
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ౭
- క్ష
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ౮
- శ్ర
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ౯
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ౦
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- -
- _
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- ృ
- ఋ
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ౌ
- ఔ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ై
- ఐ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ా
- ఆ
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ీ
- ఈ
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ూ
- ఊ
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- బ
- భ
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- హ
- ఙ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- గ
- ఘ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- ద
- ధ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- జ
- ఝ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- డ
- ఢ
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
-
- ఞ
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- ౄ
- ౠ
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ో
- ఓ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ే
- ఏ
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ్
- అ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ి
- ఇ
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ు
- ఉ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- ప
- ఫ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ర
- ఱ
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- క
- ఖ
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- త
- థ
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- చ
- ఛ
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- ఠ
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ె
- ఎ
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ం
- ఁ
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- మ
- ణ
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- న
- ః
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- వ
-
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ల
- ళ
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- స
- శ
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ,
- ష
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- .
- >
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- య
- ?
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/th.xml b/data/keyboards/th.xml
deleted file mode 100644
index 4f3adc99..00000000
--- a/data/keyboards/th.xml
+++ /dev/null
@@ -1,681 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline2
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline2
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline2
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline2
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline2
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline2
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline2
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline2
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline2
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline2
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline2
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline2
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline2
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline2
-
- underscore
- percent
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline2
-
- Thai_lakkhangyao
- plus
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline2
-
- slash
- Thai_leknung
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline2
-
- minus
- Thai_leksong
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline2
-
- Thai_phosamphao
- Thai_leksam
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline2
-
- Thai_thothung
- Thai_leksi
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline2
-
- Thai_sarau
- Thai_sarauu
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline2
-
- Thai_saraue
- Thai_baht
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline2
-
- Thai_khokhwai
- Thai_lekha
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline2
-
- Thai_totao
- Thai_lekhok
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline2
-
- Thai_chochan
- Thai_lekchet
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline2
-
- Thai_khokhai
- Thai_lekpaet
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline2
-
- Thai_chochang
- Thai_lekkao
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline13
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline4
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline2
-
- Thai_maiyamok
- Thai_leksun
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline2
-
- Thai_saraaimaimalai
- quotedbl
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline2
-
- Thai_saraam
- Thai_dochada
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline2
-
- Thai_phophan
- Thai_thonangmontho
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline2
-
- Thai_saraa
- Thai_thothong
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline2
-
- Thai_maihanakat
- Thai_nikhahit
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline2
-
- Thai_saraii
- Thai_maitri
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline2
-
- Thai_rorua
- Thai_nonen
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline2
-
- Thai_nonu
- Thai_paiyannoi
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline2
-
- Thai_yoyak
- Thai_yoying
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline2
-
- Thai_bobaimai
- Thai_thothan
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline2
-
- Thai_loling
- comma
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline5
-
- Thai_khokhuat
- Thai_khokhon
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline6
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline2
-
- Thai_fofan
- Thai_ru
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline2
-
- Thai_hohip
- Thai_khorakhang
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline2
-
- Thai_kokai
- Thai_topatak
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline2
-
- Thai_dodek
- Thai_sarao
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline2
-
- Thai_sarae
- Thai_chochoe
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline2
-
- Thai_maitho
- Thai_maitaikhu
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline2
-
- Thai_maiek
- Thai_maichattawa
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline2
-
- Thai_saraaa
- Thai_sorusi
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline2
-
- Thai_sosua
- Thai_sosala
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline2
-
- Thai_wowaen
- Thai_soso
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline2
-
- Thai_ngongu
- period
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline7
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline8
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline2
-
- Thai_phophung
- parenleft
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline2
-
- Thai_popla
- parenright
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline2
-
- Thai_saraae
- Thai_choching
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline2
-
- Thai_oang
- Thai_honokhuk
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline2
-
- Thai_sarai
- Thai_phinthu
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline2
-
- Thai_sarauee
- Thai_thanthakhat
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline2
-
- Thai_thothahan
- question
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline2
-
- Thai_moma
- Thai_thophuthao
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline2
-
- Thai_saraaimaimuan
- Thai_lochula
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline2
-
- Thai_fofa
- Thai_lu
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline9
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline10
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline1
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline1
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline3
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline1
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline1
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline1
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline1
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
diff --git a/data/keyboards/ua.xml b/data/keyboards/ua.xml
deleted file mode 100644
index e12533ba..00000000
--- a/data/keyboards/ua.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- Ґ
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- 1
- !
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- 2
- "
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- 3
- №
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- 4
- ;
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- 5
- %
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- 6
- :
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- 7
- ?
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- 8
- *
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- 9
- (
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- 0
- )
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- minus
- _
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- equal
- +
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- й
- Й
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ц
- Ц
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- у
- У
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- к
- К
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- е
- Е
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- н
- Н
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- г
- Г
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ш
- Ш
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- щ
- Щ
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- з
- З
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- х
- Х
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- ї
- Ї
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- \
- |
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ф
- Ф
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- і
- І
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- в
- В
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- а
- А
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- п
- П
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- р
- Р
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- о
- О
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- л
- Л
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- д
- Д
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ж
- Ж
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- Є
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- я
- Я
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ч
- Ч
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- с
- С
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- м
- М
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- и
- И
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- т
- Т
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- ь
- Ь
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- б
- Б
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- ю
- Ю
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- .
- ,
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/ug.xml b/data/keyboards/ug.xml
deleted file mode 100644
index 2e0fa2b0..00000000
--- a/data/keyboards/ug.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- asciitilde
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- 1
- exclam
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- 2
- at
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- 3
- numbersign
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- 4
- dollar
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- 5
- percent
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- 6
- asciicircum
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- 7
- ampersand
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- 8
- asterisk
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- 9
- parenleft
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- 0
- parenright
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- minus
- —
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- equal
- plus
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- چ
- چ
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ۋ
- ۋ
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ې
- ې
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ر
- ر
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ت
- ت
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ي
- ي
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ۇ
- ۇ
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ڭ
- ڭ
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- و
- و
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- پ
- پ
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- bracketleft
- «
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- bracketright
- »
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- backslash
- bar
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ھ
- ھ
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- س
- س
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- د
- ژ
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ا
- ف
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ە
- گ
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- ى
- خ
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ق
- ج
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ك
- ۆ
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ل
- ل
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ؛
- colon
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- quotedbl
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ز
- ز
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ش
- ش
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- غ
- غ
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ۈ
- ۈ
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- ب
- ب
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ن
- ن
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- م
- م
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ،
- ‹
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- period
- ›
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- ئ
- ؟
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/data/keyboards/us.xml b/data/keyboards/us.xml
deleted file mode 100644
index 74e54eb9..00000000
--- a/data/keyboards/us.xml
+++ /dev/null
@@ -1,682 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline2
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline2
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline2
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline2
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline2
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline2
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline2
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline2
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline2
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline2
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline2
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline2
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline2
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline2
-
- quoteleft
- asciitilde
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline2
-
- 1
- exclam
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline2
-
- 2
- at
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline2
-
- 3
- numbersign
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline2
-
- 4
- dollar
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline2
-
- 5
- percent
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline2
-
- 6
- asciicircum
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline2
-
- 7
- ampersand
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline2
-
- 8
- asterisk
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline2
-
- 9
- parenleft
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline2
-
- 0
- parenright
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline2
-
- minus
- underscore
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline2
-
- equal
- plus
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline13
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline4
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline2
-
- q
- Q
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline2
-
- w
- W
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline2
-
- e
- E
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline2
-
- r
- R
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline2
-
- t
- T
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline2
-
- y
- Y
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline2
-
- u
- U
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline2
-
- i
- I
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline2
-
- o
- O
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline2
-
- p
- P
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline2
-
- bracketleft
- braceleft
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline2
-
- bracketright
- braceright
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline5
-
- backslash
- bar
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline6
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline2
-
- a
- A
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline2
-
- s
- S
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline2
-
- d
- D
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline2
-
- f
- F
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline2
-
- g
- G
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline2
-
- h
- H
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline2
-
- j
- J
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline2
-
- k
- K
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline2
-
- l
- L
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline2
-
- semicolon
- colon
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline2
-
- quoteright
- quotedbl
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline7
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline8
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline2
-
- z
- Z
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline2
-
- x
- X
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline2
-
- c
- C
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline2
-
- v
- V
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline2
-
- b
- B
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline2
-
- n
- N
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline2
-
- m
- M
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline2
-
- comma
- less
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline2
-
- period
- greater
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline2
-
- slash
- question
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline9
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline10
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline1
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline1
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline3
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline1
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline1
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline1
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline1
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
diff --git a/data/keyboards/zh-bopomofo.xml b/data/keyboards/zh-bopomofo.xml
deleted file mode 100644
index 19005965..00000000
--- a/data/keyboards/zh-bopomofo.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
- 0.000000,0.000000,640.000000,296.585366
-
- 15.609756,15.609756,640.000000,39.024390
- 0
-
- 16
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- Escape
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- F1
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- F2
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- F3
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- F4
-
-
-
- 266.926829,1.560976,37.463415,37.463415
- outline3
-
- F5
-
-
-
- 307.512195,1.560976,37.463415,37.463415
- outline3
-
- F6
-
-
-
- 348.097561,1.560976,37.463415,37.463415
- outline3
-
- F7
-
-
-
- 388.682927,1.560976,37.463415,37.463415
- outline3
-
- F8
-
-
-
- 449.560976,1.560976,37.463415,37.463415
- outline3
-
- F9
-
-
-
- 490.146341,1.560976,37.463415,37.463415
- outline3
-
- F10
-
-
-
- 530.731707,1.560976,37.463415,37.463415
- outline3
-
- F11
-
-
-
- 571.317073,1.560976,37.463415,37.463415
- outline3
-
- F12
-
-
-
-
- 15.609756,78.048780,608.780488,201.365854
- 0
-
- 14
- 1
-
-
- 14
- 1
-
-
- 13
- 1
-
-
- 12
- 1
-
-
- 8
- 1
-
-
- 3.121951,1.560976,37.463415,37.463415
- outline3
-
- quoteleft
- asciitilde
-
-
-
- 43.707317,1.560976,37.463415,37.463415
- outline3
-
- ㄅ
- exclam
-
-
-
- 84.292683,1.560976,37.463415,37.463415
- outline3
-
- ㄉ
- at
-
-
-
- 124.878049,1.560976,37.463415,37.463415
- outline3
-
- ˇ
- numbersign
-
-
-
- 165.463415,1.560976,37.463415,37.463415
- outline3
-
- ˋ
- dollar
-
-
-
- 206.048780,1.560976,37.463415,37.463415
- outline3
-
- ㄓ
- percent
- EuroSign
-
-
-
- 245.073171,1.560976,37.463415,37.463415
- outline3
-
- ˊ
- asciicircum
-
-
-
- 285.658537,1.560976,37.463415,37.463415
- outline3
-
- ˙
- ampersand
-
-
-
- 326.243902,1.560976,37.463415,37.463415
- outline3
-
- ㄚ
- asterisk
-
-
-
- 366.829268,1.560976,37.463415,37.463415
- outline3
-
- ㄞ
- parenleft
-
-
-
- 407.414634,1.560976,37.463415,37.463415
- outline3
-
- ㄢ
- parenright
-
-
-
- 448.000000,1.560976,37.463415,37.463415
- outline3
-
- ㄦ
- underscore
-
-
-
- 488.585366,1.560976,37.463415,37.463415
- outline3
-
- equal
- plus
-
-
-
- 529.170732,1.560976,79.609756,37.463415
- outline4
-
- BackSpace
-
-
-
- 3.121951,42.146341,59.317073,37.463415
- outline5
-
- Tab
- ISO_Left_Tab
-
-
-
- 65.560976,42.146341,37.463415,37.463415
- outline3
-
- ㄆ
- Q
-
-
-
- 106.146341,42.146341,37.463415,37.463415
- outline3
-
- ㄊ
- W
-
-
-
- 145.170732,42.146341,37.463415,37.463415
- outline3
-
- ㄍ
- E
-
-
-
- 185.756098,42.146341,37.463415,37.463415
- outline3
-
- ㄐ
- R
-
-
-
- 226.341463,42.146341,37.463415,37.463415
- outline3
-
- ㄔ
- T
-
-
-
- 266.926829,42.146341,37.463415,37.463415
- outline3
-
- ㄗ
- Y
-
-
-
- 307.512195,42.146341,37.463415,37.463415
- outline3
-
- ㄧ
- U
-
-
-
- 348.097561,42.146341,37.463415,37.463415
- outline3
-
- ㄛ
- I
-
-
-
- 388.682927,42.146341,37.463415,37.463415
- outline3
-
- ㄟ
- O
-
-
-
- 429.268293,42.146341,37.463415,37.463415
- outline3
-
- ㄣ
- P
-
-
-
- 468.292683,42.146341,37.463415,37.463415
- outline3
-
- bracketleft
- braceleft
-
-
-
- 508.878049,42.146341,37.463415,37.463415
- outline3
-
- bracketright
- braceright
-
-
-
- 549.463415,42.146341,59.317073,37.463415
- outline6
-
- backslash
- bar
-
-
-
- 3.121951,82.731707,68.682927,37.463415
- outline7
-
- ISO_Level3_Shift
-
-
-
- 76.487805,82.731707,37.463415,37.463415
- outline3
-
- ㄇ
- A
-
-
-
- 115.512195,82.731707,37.463415,37.463415
- outline3
-
- ㄋ
- S
-
-
-
- 156.097561,82.731707,37.463415,37.463415
- outline3
-
- ㄎ
- D
-
-
-
- 196.682927,82.731707,37.463415,37.463415
- outline3
-
- ㄑ
- F
-
-
-
- 237.268293,82.731707,37.463415,37.463415
- outline3
-
- ㄕ
- G
-
-
-
- 277.853659,82.731707,37.463415,37.463415
- outline3
-
- ㄘ
- H
-
-
-
- 318.439024,82.731707,37.463415,37.463415
- outline3
-
- ㄨ
- J
-
-
-
- 359.024390,82.731707,37.463415,37.463415
- outline3
-
- ㄜ
- K
-
-
-
- 399.609756,82.731707,37.463415,37.463415
- outline3
-
- ㄠ
- L
-
-
-
- 438.634146,82.731707,37.463415,37.463415
- outline3
-
- ㄤ
- colon
-
-
-
- 479.219512,82.731707,37.463415,37.463415
- outline3
-
- quoteright
- quotedbl
-
-
-
- 519.804878,82.731707,88.975610,37.463415
- outline8
-
- Return
-
-
-
- 3.121951,121.756098,88.975610,37.463415
- outline9
-
- Shift_L
-
-
-
- 95.219512,121.756098,37.463415,37.463415
- outline3
-
- ㄈ
- Z
-
-
-
- 135.804878,121.756098,37.463415,37.463415
- outline3
-
- ㄌ
- X
-
-
-
- 176.390244,121.756098,37.463415,37.463415
- outline3
-
- ㄏ
- C
-
-
-
- 215.414634,121.756098,37.463415,37.463415
- outline3
-
- ㄒ
- V
-
-
-
- 256.000000,121.756098,37.463415,37.463415
- outline3
-
- ㄖ
- B
-
-
-
- 296.585366,121.756098,37.463415,37.463415
- outline3
-
- ㄙ
- N
-
-
-
- 337.170732,121.756098,37.463415,37.463415
- outline3
-
- ㄩ
- M
-
-
-
- 377.756098,121.756098,37.463415,37.463415
- outline3
-
- ㄝ
- less
-
-
-
- 418.341463,121.756098,37.463415,37.463415
- outline3
-
- ㄡ
- greater
-
-
-
- 458.926829,121.756098,37.463415,37.463415
- outline3
-
- ㄥ
- question
-
-
-
- 499.512195,121.756098,109.268293,37.463415
- outline10
-
- Shift_R
-
-
-
- 3.121951,162.341463,56.195122,37.463415
- outline1
-
- cycle-keyboard
- preferences
-
-
-
- 62.439024,162.341463,48.390244,37.463415
- outline2
-
- Control_L
-
-
-
- 113.951220,162.341463,48.390244,37.463415
- outline2
-
- Alt_L
- Meta_L
-
-
-
- 165.463415,162.341463,238.829268,37.463415
- outline11
-
- space
-
-
-
- 407.414634,162.341463,48.390244,37.463415
- outline2
-
- Left
-
-
-
- 458.926829,162.341463,48.390244,37.463415
- outline2
-
- Up
-
-
-
- 508.878049,162.341463,48.390244,37.463415
- outline2
-
- Down
-
-
-
- 560.390244,162.341463,48.390244,37.463415
- outline2
-
- Right
-
-
-
-
- 1.000000
- 0.000000,0.000000
- 56.195122,0.000000
- 56.195122,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 37.463415,0.000000
- 37.463415,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 79.609756,0.000000
- 79.609756,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 59.317073,0.000000
- 59.317073,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 68.682927,0.000000
- 68.682927,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 88.975610,0.000000
- 88.975610,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 109.268293,0.000000
- 109.268293,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 238.829268,0.000000
- 238.829268,37.463415
- 0.000000,37.463415
-
-
- 1.000000
- 0.000000,0.000000
- 48.390244,0.000000
- 48.390244,37.463415
- 0.000000,37.463415
-
-
-
diff --git a/eek/Makefile.am b/eek/Makefile.am
index 885cdd62..c548c708 100644
--- a/eek/Makefile.am
+++ b/eek/Makefile.am
@@ -94,8 +94,20 @@ libeek_la_SOURCES = \
$(srcdir)/eek-enumtypes.c \
$(srcdir)/eek-marshalers.c
-libeek_la_CFLAGS = -DEEK_COMPILATION=1 $(GIO2_CFLAGS) $(PANGOCAIRO_CFLAGS) $(LIBCROCO_CFLAGS)
-libeek_la_LIBADD = $(GIO2_LIBS) $(PANGOCAIRO_LIBS) $(LIBCROCO_LIBS) -lm
+libeek_la_CFLAGS = \
+ -DEEK_COMPILATION=1 \
+ -DKEYBOARDSDIR=\"$(pkgdatadir)/keyboards\" \
+ $(GIO2_CFLAGS) \
+ $(PANGOCAIRO_CFLAGS) \
+ $(LIBCROCO_CFLAGS) \
+ $(NULL)
+
+libeek_la_LIBADD = \
+ $(GIO2_LIBS) \
+ $(PANGOCAIRO_LIBS) \
+ $(LIBCROCO_LIBS) \
+ -lm \
+ $(NULL)
libeek_gtk_public_headers = \
$(srcdir)/eek-gtk-keyboard.h \
diff --git a/eek/eek-key.c b/eek/eek-key.c
index ad08edc1..6196a9cc 100644
--- a/eek/eek-key.c
+++ b/eek/eek-key.c
@@ -629,7 +629,7 @@ eek_key_get_index (EekKey *key,
*/
void
eek_key_set_oref (EekKey *key,
- gulong oref)
+ guint oref)
{
g_return_if_fail (EEK_IS_KEY(key));
if (key->priv->oref != oref) {
@@ -643,9 +643,9 @@ eek_key_set_oref (EekKey *key,
* @key: an #EekKey
*
* Get the outline id of @key.
- * Returns: a non-zero unsigned integer on success, 0 if the id is not set
+ * Returns: unsigned integer
*/
-gulong
+guint
eek_key_get_oref (EekKey *key)
{
g_return_val_if_fail (EEK_IS_KEY (key), 0);
diff --git a/eek/eek-key.h b/eek/eek-key.h
index 2adc7442..81b7969a 100644
--- a/eek/eek-key.h
+++ b/eek/eek-key.h
@@ -105,8 +105,8 @@ void eek_key_get_index (EekKey *key,
gint *row);
void eek_key_set_oref (EekKey *key,
- gulong oref);
-gulong eek_key_get_oref (EekKey *key);
+ guint oref);
+guint eek_key_get_oref (EekKey *key);
gboolean eek_key_is_pressed (EekKey *key);
gboolean eek_key_is_locked (EekKey *key);
diff --git a/eek/eek-renderer.c b/eek/eek-renderer.c
index 533f1264..266266d9 100644
--- a/eek/eek-renderer.c
+++ b/eek/eek-renderer.c
@@ -206,7 +206,7 @@ render_key_outline (EekRenderer *renderer,
EekBounds bounds;
gdouble scale;
gint i;
- gulong oref;
+ guint oref;
EekThemeNode *theme_node;
EekColor foreground, background, gradient_start, gradient_end, border_color;
EekGradientType gradient_type;
@@ -214,9 +214,10 @@ render_key_outline (EekRenderer *renderer,
gint border_radius;
oref = eek_key_get_oref (key);
- if (oref == 0)
+ outline = eek_keyboard_get_outline (priv->keyboard, oref);
+ if (outline == NULL)
return;
-
+
theme_node = g_object_get_data (G_OBJECT(key),
active ?
"theme-node-pressed" :
@@ -252,7 +253,6 @@ render_key_outline (EekRenderer *renderer,
scale = MIN((bounds.width - border_width * 2) / bounds.width,
(bounds.height - border_width * 2) / bounds.height);
- outline = eek_keyboard_get_outline (priv->keyboard, oref);
outline = eek_outline_copy (outline);
for (i = 0; i < outline->num_points; i++) {
outline->points[i].x *= priv->scale * scale;
@@ -437,28 +437,28 @@ render_key (EekRenderer *self,
EekOutline *outline;
cairo_surface_t *outline_surface;
EekBounds bounds;
- gulong oref;
+ guint oref;
EekSymbol *symbol;
GHashTable *outline_surface_cache;
PangoLayout *layout;
PangoRectangle extents = { 0, };
EekColor foreground;
+ oref = eek_key_get_oref (key);
+ outline = eek_keyboard_get_outline (priv->keyboard, oref);
+ if (outline == NULL)
+ return;
+
/* render outline */
eek_element_get_bounds (EEK_ELEMENT(key), &bounds);
bounds.width *= priv->scale;
bounds.height *= priv->scale;
- oref = eek_key_get_oref (key);
- if (oref == 0)
- return;
-
if (active)
outline_surface_cache = priv->active_outline_surface_cache;
else
outline_surface_cache = priv->outline_surface_cache;
- outline = eek_keyboard_get_outline (priv->keyboard, oref);
outline_surface = g_hash_table_lookup (outline_surface_cache, outline);
if (!outline_surface) {
cairo_t *cr;
diff --git a/eek/eek-xkb-layout.c b/eek/eek-xkb-layout.c
index db764329..3b3e6c1b 100644
--- a/eek/eek-xkb-layout.c
+++ b/eek/eek-xkb-layout.c
@@ -134,12 +134,15 @@ create_key (EekXkbLayout *layout,
gchar name[XkbKeyNameLength + 1];
KeyCode keycode;
gint num_groups, num_levels;
- gulong oref;
+ guint oref;
+ gpointer v;
xkbgeometry = priv->xkb->geom;
xkbshape = &xkbgeometry->shapes[xkbkey->shape_ndx];
- oref = (gulong)g_hash_table_lookup (priv->shape_oref_hash, xkbshape);
- if (oref == 0) {
+ if (g_hash_table_lookup_extended (priv->shape_oref_hash, xkbshape,
+ NULL, &v)) {
+ oref = GPOINTER_TO_UINT(v);
+ } else {
EekOutline *outline;
xkboutline = xkbshape->primary == NULL ? &xkbshape->outlines[0] :
@@ -183,7 +186,8 @@ create_key (EekXkbLayout *layout,
}
oref = eek_keyboard_add_outline (keyboard, outline);
eek_outline_free (outline);
- g_hash_table_insert (priv->shape_oref_hash, xkbshape, (gpointer)oref);
+ g_hash_table_insert (priv->shape_oref_hash, xkbshape,
+ GUINT_TO_POINTER(oref));
}
memset (name, 0, sizeof name);
diff --git a/eek/eek-xml-layout.c b/eek/eek-xml-layout.c
index c8f696b3..133e52a6 100644
--- a/eek/eek-xml-layout.c
+++ b/eek/eek-xml-layout.c
@@ -37,27 +37,201 @@
enum {
PROP_0,
- PROP_SOURCE,
+ PROP_ID,
PROP_LAST
};
-G_DEFINE_TYPE (EekXmlLayout, eek_xml_layout, EEK_TYPE_LAYOUT);
+static void initable_iface_init (GInitableIface *initable_iface);
+
+G_DEFINE_TYPE_WITH_CODE (EekXmlLayout, eek_xml_layout, EEK_TYPE_LAYOUT,
+ G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE,
+ initable_iface_init));
#define EEK_XML_LAYOUT_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE ((obj), EEK_TYPE_XML_LAYOUT, EekXmlLayoutPrivate))
struct _EekXmlLayoutPrivate
{
- GInputStream *source;
+ gchar *id;
+ EekXmlKeyboardDesc *desc;
};
#define BUFSIZE 8192
-struct _ParseCallbackData {
- GSList *element_stack;
- GString *text;
- EekLayout *layout;
+static GSList *parse_keyboards (const gchar *path,
+ GError **error);
+static GSList *parse_prerequisites
+ (const gchar *path,
+ GError **error);
+static gboolean parse_geometry (const gchar *path,
+ EekKeyboard *keyboard,
+ GError **error);
+static gboolean parse_symbols_with_prerequisites
+ (const gchar *name,
+ EekKeyboard *keyboard,
+ GSList **loaded,
+ GError **error);
+static gboolean parse_symbols (const gchar *path,
+ EekKeyboard *keyboard,
+ GError **error);
+static void scale_keyboard (EekKeyboard *keyboard,
+ gdouble width,
+ gdouble height);
+
+static gboolean validate (const gchar **valid_path_list,
+ gsize valid_path_list_len,
+ const gchar *element_name,
+ GSList *element_stack,
+ GError **error);
+
+static gboolean parse (GMarkupParseContext *pcontext,
+ GInputStream *input,
+ GError **error);
+static const gchar * get_attribute (const gchar **names,
+ const gchar **values,
+ const gchar *name);
+
+static void
+keyboard_desc_free (EekXmlKeyboardDesc *desc)
+{
+ g_free (desc->id);
+ g_free (desc->name);
+ g_free (desc->geometry);
+ g_free (desc->symbols);
+ g_free (desc->longname);
+ g_free (desc->language);
+ g_slice_free (EekXmlKeyboardDesc, desc);
+}
+
+struct _KeyboardsParseData {
+ GSList *element_stack;
+
+ GSList *keyboards;
+};
+typedef struct _KeyboardsParseData KeyboardsParseData;
+
+static KeyboardsParseData *
+keyboards_parse_data_new (void)
+{
+ return g_slice_new0 (KeyboardsParseData);
+}
+
+static void
+keyboards_parse_data_free (KeyboardsParseData *data)
+{
+ g_slist_free_full (data->keyboards, (GDestroyNotify) keyboard_desc_free);
+ g_slice_free (KeyboardsParseData, data);
+}
+
+static const gchar *keyboards_valid_path_list[] = {
+ "keyboards",
+ "keyboard/keyboards",
+};
+
+static void
+keyboards_start_element_callback (GMarkupParseContext *pcontext,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data,
+ GError **error)
+{
+ KeyboardsParseData *data = user_data;
+
+ if (!validate (keyboards_valid_path_list,
+ G_N_ELEMENTS (keyboards_valid_path_list),
+ element_name,
+ data->element_stack,
+ error))
+ return;
+
+ if (g_strcmp0 (element_name, "keyboard") == 0) {
+ EekXmlKeyboardDesc *desc = g_slice_new0 (EekXmlKeyboardDesc);
+ const gchar *attribute;
+
+ data->keyboards = g_slist_prepend (data->keyboards, desc);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "id");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"id\" attribute for \"keyboard\"");
+ return;
+ }
+ desc->id = g_strdup (attribute);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "name");
+ if (attribute)
+ desc->name = g_strdup (attribute);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "geometry");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"geometry\" attribute for \"keyboard\"");
+ return;
+ }
+ desc->geometry = g_strdup (attribute);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "symbols");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"symbols\" attribute for \"keyboard\"");
+ goto out;
+ }
+ desc->symbols = g_strdup (attribute);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "longname");
+ if (attribute)
+ desc->longname = g_strdup (attribute);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "language");
+ if (attribute)
+ desc->language = g_strdup (attribute);
+ }
+
+ out:
+ data->element_stack = g_slist_prepend (data->element_stack,
+ g_strdup (element_name));
+}
+
+static void
+keyboards_end_element_callback (GMarkupParseContext *pcontext,
+ const gchar *element_name,
+ gpointer user_data,
+ GError **error)
+{
+ KeyboardsParseData *data = user_data;
+ GSList *head = data->element_stack;
+
+ g_free (head->data);
+ data->element_stack = g_slist_next (data->element_stack);
+ g_slist_free1 (head);
+}
+
+static const GMarkupParser keyboards_parser = {
+ keyboards_start_element_callback,
+ keyboards_end_element_callback,
+ 0,
+ 0,
+ 0
+};
+
+struct _GeometryParseData {
+ GSList *element_stack;
+
+ EekBounds bounds;
EekKeyboard *keyboard;
EekSection *section;
EekKey *key;
@@ -65,247 +239,301 @@ struct _ParseCallbackData {
EekOrientation orientation;
gdouble corner_radius;
GSList *points;
- GSList *symbols;
gchar *name;
- gchar *label;
- gchar *icon;
- EekSymbolCategory category;
- guint keyval;
- gint groups, levels;
EekOutline outline;
gchar *oref;
GHashTable *key_oref_hash;
GHashTable *oref_outline_hash;
};
-typedef struct _ParseCallbackData ParseCallbackData;
+typedef struct _GeometryParseData GeometryParseData;
-static const gchar *valid_path_list[] = {
- "keyboard",
- "bounds/keyboard",
- "section/keyboard",
- "outline/keyboard",
- "bounds/section/keyboard",
- "angle/section/keyboard",
- "row/section/keyboard",
- "columns/row/section/keyboard",
- "orientation/row/section/keyboard",
- "key/section/keyboard",
- "bounds/key/section/keyboard",
- "oref/key/section/keyboard",
- "symbols/key/section/keyboard",
- "groups/symbols/key/section/keyboard",
- "levels/symbols/key/section/keyboard",
- "text/symbols/key/section/keyboard",
- "keysym/symbols/key/section/keyboard",
- "symbol/symbols/key/section/keyboard",
- "invalid/symbols/key/section/keyboard",
- "index/key/section/keyboard",
- "point/outline/keyboard",
- "corner-radius/outline/keyboard",
+static GeometryParseData *
+geometry_parse_data_new (EekKeyboard *keyboard)
+{
+ GeometryParseData *data = g_slice_new0 (GeometryParseData);
+
+ data->keyboard = g_object_ref (keyboard);
+ data->key_oref_hash =
+ g_hash_table_new_full (g_direct_hash,
+ g_direct_equal,
+ NULL,
+ g_free);
+ data->oref_outline_hash =
+ g_hash_table_new_full (g_str_hash,
+ g_str_equal,
+ g_free,
+ (GDestroyNotify)eek_outline_free);
+ return data;
+}
+
+static void
+geometry_parse_data_free (GeometryParseData *data)
+{
+ g_object_unref (data->keyboard);
+ g_hash_table_destroy (data->key_oref_hash);
+ g_hash_table_destroy (data->oref_outline_hash);
+ g_slice_free (GeometryParseData, data);
+}
+
+static const gchar *geometry_valid_path_list[] = {
+ "geometry",
+ "bounds/geometry",
+ "section/geometry",
+ "outline/geometry",
+ "bounds/section/geometry",
+ "row/section/geometry",
+ "key/section/geometry",
+ "bounds/key/section/geometry",
+ "point/outline/geometry",
};
-static gchar *
-strjoin_slist (GSList *slist, const gchar *delimiter)
+static void
+geometry_start_element_callback (GMarkupParseContext *pcontext,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data,
+ GError **error)
{
- GString *string = g_string_sized_new (64);
+ GeometryParseData *data = user_data;
+ const gchar *attribute;
- if (slist == NULL)
- return g_strdup ("");
- else
- for (; slist; slist = g_slist_next (slist)) {
- g_string_append (string, slist->data);
- if (g_slist_next (slist))
- g_string_append (string, delimiter);
+ if (!validate (geometry_valid_path_list,
+ G_N_ELEMENTS (geometry_valid_path_list),
+ element_name,
+ data->element_stack,
+ error)) {
+ return;
+ }
+
+ if (g_strcmp0 (element_name, "bounds") == 0) {
+ EekBounds bounds;
+
+ attribute = get_attribute (attribute_names, attribute_values, "x");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"x\" attribute for \"bounds\"");
+ return;
}
- return g_string_free (string, FALSE);
-}
+ bounds.x = g_strtod (attribute, NULL);
-static void
-validate (const gchar *element_name,
- GSList *element_stack,
- GError **error)
-{
- gint i;
- gchar *element_path;
- GSList *head;
+ attribute = get_attribute (attribute_names, attribute_values,
+ "y");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"y\" attribute for \"bounds\"");
+ return;
+ }
+ bounds.y = g_strtod (attribute, NULL);
- head = g_slist_prepend (element_stack, (gchar *)element_name);
- element_path = strjoin_slist (head, "/");
- g_slist_free1 (head);
+ attribute = get_attribute (attribute_names, attribute_values,
+ "width");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"width\" attribute for \"bounds\"");
+ return;
+ }
+ bounds.width = g_strtod (attribute, NULL);
- for (i = 0; i < G_N_ELEMENTS(valid_path_list); i++) {
- if (*valid_path_list[i] == '@')
- continue;
- if (g_strcmp0 (element_path, valid_path_list[i]) == 0)
- break;
- }
+ attribute = get_attribute (attribute_names, attribute_values,
+ "height");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"height\" attribute for \"bounds\"");
+ return;
+ }
+ bounds.height = g_strtod (attribute, NULL);
- if (i == G_N_ELEMENTS(valid_path_list)) {
- g_set_error (error,
- G_MARKUP_ERROR,
- G_MARKUP_ERROR_UNKNOWN_ELEMENT,
- "%s cannot appear under %s",
- element_name,
- element_path);
- g_free (element_path);
- return;
- }
- g_free (element_path);
-}
+ if (g_strcmp0 (data->element_stack->data, "geometry") == 0)
+ eek_element_set_bounds (EEK_ELEMENT(data->keyboard), &bounds);
+ else if (g_strcmp0 (data->element_stack->data, "section") == 0)
+ eek_element_set_bounds (EEK_ELEMENT(data->section), &bounds);
+ else if (g_strcmp0 (data->element_stack->data, "key") == 0)
+ eek_element_set_bounds (EEK_ELEMENT(data->key), &bounds);
-static void
-start_element_callback (GMarkupParseContext *pcontext,
- const gchar *element_name,
- const gchar **attribute_names,
- const gchar **attribute_values,
- gpointer user_data,
- GError **error)
-{
- ParseCallbackData *data = user_data;
- const gchar **names = attribute_names;
- const gchar **values = attribute_values;
- gint column = -1, row = -1, groups = -1, levels = -1;
- guint keyval = EEK_INVALID_KEYSYM;
- gchar *name = NULL, *label = NULL, *icon = NULL, *id = NULL, *version = NULL;
- EekSymbolCategory category;
-
- validate (element_name, data->element_stack, error);
- if (error && *error)
- return;
-
- while (*names && *values) {
- if (g_strcmp0 (*names, "column") == 0)
- column = strtol (*values, NULL, 10);
- else if (g_strcmp0 (*names, "row") == 0)
- row = strtol (*values, NULL, 10);
- else if (g_strcmp0 (*names, "id") == 0)
- id = g_strdup (*values);
- else if (g_strcmp0 (*names, "name") == 0)
- name = g_strdup (*values);
- else if (g_strcmp0 (*names, "label") == 0)
- label = g_strdup (*values);
- else if (g_strcmp0 (*names, "icon") == 0)
- icon = g_strdup (*values);
- else if (g_strcmp0 (*names, "category") == 0)
- category = eek_symbol_category_from_name (*values);
- else if (g_strcmp0 (*names, "keyval") == 0)
- keyval = strtoul (*values, NULL, 10);
- else if (g_strcmp0 (*names, "version") == 0)
- version = g_strdup (*values);
- else if (g_strcmp0 (*names, "groups") == 0)
- groups = strtol (*values, NULL, 10);
- else if (g_strcmp0 (*names, "levels") == 0)
- levels = strtol (*values, NULL, 10);
- names++;
- values++;
- }
-
- if (g_strcmp0 (element_name, "keyboard") == 0) {
- data->keyboard = g_object_new (EEK_TYPE_KEYBOARD,
- "layout", data->layout,
- NULL);
- if (id)
- eek_element_set_name (EEK_ELEMENT(data->keyboard), id);
goto out;
}
if (g_strcmp0 (element_name, "section") == 0) {
data->section = eek_keyboard_create_section (data->keyboard);
- if (id)
- eek_element_set_name (EEK_ELEMENT(data->section), id);
- goto out;
- }
-
- if (g_strcmp0 (element_name, "key") == 0) {
- data->key = eek_section_create_key (data->section, column, row);
- if (id) {
- eek_element_set_name (EEK_ELEMENT(data->key), id);
- if (g_str_has_prefix (id, "keycode"))
- eek_key_set_keycode (data->key, strtoul (id + 7, NULL, 10));
+ attribute = get_attribute (attribute_names, attribute_values,
+ "id");
+ if (attribute != NULL)
+ eek_element_set_name (EEK_ELEMENT(data->section), attribute);
+ attribute = get_attribute (attribute_names, attribute_values,
+ "angle");
+ if (attribute != NULL) {
+ gint angle;
+ angle = strtol (attribute, NULL, 10);
+ eek_section_set_angle (data->section, angle);
}
goto out;
}
- if (g_strcmp0 (element_name, "symbols") == 0) {
- data->groups = groups;
- data->levels = levels;
- data->symbols = NULL;
+ if (g_strcmp0 (element_name, "row") == 0) {
+ attribute = get_attribute (attribute_names, attribute_values,
+ "columns");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"columns\" attribute for \"row\"");
+ return;
+ }
+ data->num_columns = strtol (attribute, NULL, 10);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "orientation");
+ if (attribute != NULL)
+ data->orientation = strtol (attribute, NULL, 10);
goto out;
}
- if (g_strcmp0 (element_name, "symbol") == 0 ||
- g_strcmp0 (element_name, "keysym") == 0 ||
- g_strcmp0 (element_name, "text") == 0) {
- data->label = g_strdup (label);
- data->icon = g_strdup (icon);
- data->category = category;
- if (g_strcmp0 (element_name, "keysym") == 0)
- data->keyval = keyval;
+ if (g_strcmp0 (element_name, "key") == 0) {
+ guint column, row;
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "column");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"column\" attribute for \"key\"");
+ return;
+ }
+ column = strtoul (attribute, NULL, 10);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "row");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"row\" attribute for \"row\"");
+ return;
+ }
+ row = strtoul (attribute, NULL, 10);
+
+ data->key = eek_section_create_key (data->section, column, row);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "keycode");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"keycode\" attribute for \"key\"");
+ return;
+ }
+ eek_key_set_keycode (data->key, strtoul (attribute, NULL, 10));
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "name");
+ if (attribute != NULL)
+ eek_element_set_name (EEK_ELEMENT(data->key), attribute);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "oref");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"oref\" attribute for \"key\"");
+ return;
+ }
+ g_hash_table_insert (data->key_oref_hash,
+ data->key,
+ g_strdup (attribute));
+ goto out;
}
if (g_strcmp0 (element_name, "outline") == 0) {
- data->oref = g_strdup (id);
+ attribute = get_attribute (attribute_names, attribute_values, "id");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"id\" attribute for \"outline\"");
+ return;
+ }
+ data->oref = g_strdup (attribute);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "corner-radius");
+ if (attribute != NULL)
+ data->corner_radius = g_strtod (attribute, NULL);
+
goto out;
}
- out:
- g_free (name);
- g_free (label);
- g_free (icon);
- g_free (id);
- g_free (version);
+ if (g_strcmp0 (element_name, "point") == 0) {
+ EekPoint *point;
+ gdouble x, y;
+
+ attribute = get_attribute (attribute_names, attribute_values, "x");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"x\" attribute for \"bounds\"");
+ return;
+ }
+ x = g_strtod (attribute, NULL);
+
+ attribute = get_attribute (attribute_names, attribute_values, "y");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"y\" attribute for \"bounds\"");
+ return;
+ }
+ y = g_strtod (attribute, NULL);
+
+ point = g_slice_new (EekPoint);
+ point->x = x;
+ point->y = y;
+
+ data->points = g_slist_prepend (data->points, point);
+ goto out;
+ }
+
+ out:
data->element_stack = g_slist_prepend (data->element_stack,
g_strdup (element_name));
- data->text->len = 0;
}
static void
-end_element_callback (GMarkupParseContext *pcontext,
- const gchar *element_name,
- gpointer user_data,
- GError **error)
+geometry_end_element_callback (GMarkupParseContext *pcontext,
+ const gchar *element_name,
+ gpointer user_data,
+ GError **error)
{
- ParseCallbackData *data = user_data;
+ GeometryParseData *data = user_data;
GSList *head = data->element_stack;
- gchar *text, **strv;
gint i;
g_free (head->data);
data->element_stack = g_slist_next (data->element_stack);
g_slist_free1 (head);
- text = g_strndup (data->text->str, data->text->len);
-
if (g_strcmp0 (element_name, "section") == 0) {
data->section = NULL;
- goto out;
+ return;
}
if (g_strcmp0 (element_name, "key") == 0) {
data->key = NULL;
- goto out;
- }
-
- if (g_strcmp0 (element_name, "symbols") == 0) {
- gint num_symbols = data->groups * data->levels;
- EekSymbolMatrix *matrix = eek_symbol_matrix_new (data->groups,
- data->levels);
-
- head = data->symbols = g_slist_reverse (data->symbols);
- for (i = 0; i < num_symbols; i++) {
- if (head && head->data) {
- matrix->data[i] = head->data;
- head = g_slist_next (head);
- } else
- matrix->data[i] = NULL;
- }
- g_slist_free (data->symbols);
- data->symbols = NULL;
-
- eek_key_set_symbol_matrix (data->key, matrix);
- eek_symbol_matrix_free (matrix);
- goto out;
+ return;
}
if (g_strcmp0 (element_name, "outline") == 0) {
@@ -329,85 +557,9 @@ end_element_callback (GMarkupParseContext *pcontext,
g_hash_table_insert (data->oref_outline_hash,
g_strdup (data->oref),
outline);
+
g_free (data->oref);
- goto out;
- }
-
- if (g_strcmp0 (element_name, "corner-radius") == 0) {
- data->corner_radius = g_strtod (text, NULL);
- goto out;
- }
-
- if (g_strcmp0 (element_name, "point") == 0) {
- EekPoint *point;
-
- strv = g_strsplit (text, ",", -1);
-
- if (g_strv_length (strv) != 2) {
- g_set_error (error,
- G_MARKUP_ERROR,
- G_MARKUP_ERROR_UNKNOWN_ELEMENT,
- "invalid format for %s \"%s\"",
- element_name,
- text);
- goto out;
- }
-
- point = g_slice_new (EekPoint);
- point->x = g_strtod (strv[0], NULL);
- point->y = g_strtod (strv[1], NULL);
-
- g_strfreev (strv);
-
- data->points = g_slist_prepend (data->points, point);
- goto out;
- }
-
- if (g_strcmp0 (element_name, "bounds") == 0) {
- EekBounds bounds;
-
- strv = g_strsplit (text, ",", -1);
-
- if (g_strv_length (strv) != 4) {
- g_set_error (error,
- G_MARKUP_ERROR,
- G_MARKUP_ERROR_UNKNOWN_ELEMENT,
- "invalid format for %s \"%s\"",
- element_name,
- text);
- goto out;
- }
-
- bounds.x = g_strtod (strv[0], NULL);
- bounds.y = g_strtod (strv[1], NULL);
- bounds.width = g_strtod (strv[2], NULL);
- bounds.height = g_strtod (strv[3], NULL);
-
- g_strfreev (strv);
-
- if (g_strcmp0 (data->element_stack->data, "keyboard") == 0)
- eek_element_set_bounds (EEK_ELEMENT(data->keyboard), &bounds);
- else if (g_strcmp0 (data->element_stack->data, "section") == 0)
- eek_element_set_bounds (EEK_ELEMENT(data->section), &bounds);
- else if (g_strcmp0 (data->element_stack->data, "key") == 0)
- eek_element_set_bounds (EEK_ELEMENT(data->key), &bounds);
-
- goto out;
- }
-
- if (g_strcmp0 (element_name, "angle") == 0) {
- eek_section_set_angle (data->section, strtol (text, NULL, 10));
- goto out;
- }
-
- if (g_strcmp0 (element_name, "orientation") == 0) {
- data->orientation = strtol (text, NULL, 10);
- goto out;
- }
-
- if (g_strcmp0 (element_name, "columns") == 0) {
- data->num_columns = strtol (text, NULL, 10);
- goto out;
+ return;
}
if (g_strcmp0 (element_name, "row") == 0) {
@@ -416,6 +568,190 @@ end_element_callback (GMarkupParseContext *pcontext,
data->orientation);
data->num_columns = 0;
data->orientation = EEK_ORIENTATION_HORIZONTAL;
+ return;
+ }
+}
+
+static const GMarkupParser geometry_parser = {
+ geometry_start_element_callback,
+ geometry_end_element_callback,
+ 0,
+ 0,
+ 0
+};
+
+struct _SymbolsParseData {
+ GSList *element_stack;
+ GString *text;
+
+ EekKeyboard *keyboard;
+ EekKey *key;
+ GSList *symbols;
+ gchar *label;
+ gchar *icon;
+ EekSymbolCategory category;
+ guint keyval;
+ gint groups;
+};
+typedef struct _SymbolsParseData SymbolsParseData;
+
+static SymbolsParseData *
+symbols_parse_data_new (EekKeyboard *keyboard)
+{
+ SymbolsParseData *data = g_slice_new0 (SymbolsParseData);
+
+ data->keyboard = g_object_ref (keyboard);
+ data->text = g_string_sized_new (BUFSIZE);
+ return data;
+}
+
+static void
+symbols_parse_data_free (SymbolsParseData *data)
+{
+ g_object_unref (data->keyboard);
+ g_string_free (data->text, TRUE);
+ g_slice_free (SymbolsParseData, data);
+}
+
+static const gchar *symbols_valid_path_list[] = {
+ "symbols",
+ "include/symbols",
+ "key/symbols",
+ "text/key/symbols",
+ "keysym/key/symbols",
+ "symbol/key/symbols",
+ "invalid/key/symbols",
+};
+
+static void
+symbols_start_element_callback (GMarkupParseContext *pcontext,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data,
+ GError **error)
+{
+ SymbolsParseData *data = user_data;
+ const gchar *attribute;
+
+ if (!validate (symbols_valid_path_list,
+ G_N_ELEMENTS (symbols_valid_path_list),
+ element_name,
+ data->element_stack,
+ error))
+ return;
+
+ if (g_strcmp0 (element_name, "key") == 0) {
+ guint keycode;
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "keycode");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"keycode\" attribute for \"key\"");
+ return;
+ }
+ keycode = strtoul (attribute, NULL, 10);
+
+ data->key = eek_keyboard_find_key_by_keycode (data->keyboard,
+ keycode);
+ if (data->key == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_INVALID_CONTENT,
+ "no such keycode %u", keycode);
+ return;
+ }
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "groups");
+ if (attribute != NULL)
+ data->groups = strtol (attribute, NULL, 10);
+ else
+ data->groups = 1;
+ data->symbols = NULL;
+ goto out;
+ }
+
+ if (g_strcmp0 (element_name, "keysym") == 0) {
+ attribute = get_attribute (attribute_names, attribute_values,
+ "keyval");
+ if (attribute == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE,
+ "no \"keyval\" attribute for \"keysym\"");
+ return;
+ }
+ data->keyval = strtoul (attribute, NULL, 0);
+ }
+
+ if (g_strcmp0 (element_name, "symbol") == 0 ||
+ g_strcmp0 (element_name, "keysym") == 0 ||
+ g_strcmp0 (element_name, "text") == 0) {
+ attribute = get_attribute (attribute_names, attribute_values,
+ "label");
+ if (attribute != NULL)
+ data->label = g_strdup (attribute);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "icon");
+ if (attribute != NULL)
+ data->icon = g_strdup (attribute);
+
+ attribute = get_attribute (attribute_names, attribute_values,
+ "category");
+ if (attribute != NULL)
+ data->category = strtoul (attribute, NULL, 10);
+ else
+ data->category = EEK_SYMBOL_CATEGORY_KEYNAME;
+ }
+
+ out:
+ data->element_stack = g_slist_prepend (data->element_stack,
+ g_strdup (element_name));
+ data->text->len = 0;
+}
+
+static void
+symbols_end_element_callback (GMarkupParseContext *pcontext,
+ const gchar *element_name,
+ gpointer user_data,
+ GError **error)
+{
+ SymbolsParseData *data = user_data;
+ GSList *head = data->element_stack;
+ gchar *text;
+ gint i;
+
+ g_free (head->data);
+ data->element_stack = g_slist_next (data->element_stack);
+ g_slist_free1 (head);
+
+ text = g_strndup (data->text->str, data->text->len);
+
+ if (g_strcmp0 (element_name, "key") == 0) {
+ gint num_symbols = g_slist_length (data->symbols);
+ gint levels = num_symbols / data->groups;
+ EekSymbolMatrix *matrix = eek_symbol_matrix_new (data->groups,
+ levels);
+
+ head = data->symbols = g_slist_reverse (data->symbols);
+ for (i = 0; i < num_symbols; i++) {
+ if (head && head->data) {
+ matrix->data[i] = head->data;
+ head = g_slist_next (head);
+ } else
+ matrix->data[i] = NULL;
+ }
+ g_slist_free (data->symbols);
+ data->symbols = NULL;
+
+ eek_key_set_symbol_matrix (data->key, matrix);
+ eek_symbol_matrix_free (matrix);
+ data->key = NULL;
goto out;
}
@@ -441,10 +777,12 @@ end_element_callback (GMarkupParseContext *pcontext,
if (data->label) {
eek_symbol_set_label (symbol, data->label);
g_free (data->label);
+ data->label = NULL;
}
if (data->icon) {
eek_symbol_set_icon_name (symbol, data->icon);
g_free (data->icon);
+ data->icon = NULL;
}
data->symbols = g_slist_prepend (data->symbols, symbol);
@@ -456,34 +794,526 @@ end_element_callback (GMarkupParseContext *pcontext,
goto out;
}
- if (g_strcmp0 (element_name, "oref") == 0) {
- g_hash_table_insert (data->key_oref_hash, data->key, g_strdup (text));
- goto out;
- }
-
out:
g_free (text);
}
static void
-text_callback (GMarkupParseContext *pcontext,
- const gchar *text,
- gsize text_len,
- gpointer user_data,
- GError **error)
+symbols_text_callback (GMarkupParseContext *pcontext,
+ const gchar *text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error)
{
- ParseCallbackData *data = user_data;
+ SymbolsParseData *data = user_data;
g_string_append_len (data->text, text, text_len);
}
-static const GMarkupParser parser = {
- start_element_callback,
- end_element_callback,
- text_callback,
+static const GMarkupParser symbols_parser = {
+ symbols_start_element_callback,
+ symbols_end_element_callback,
+ symbols_text_callback,
0,
0
};
+struct _PrerequisitesParseData {
+ GSList *element_stack;
+ GString *text;
+
+ GSList *prerequisites;
+};
+typedef struct _PrerequisitesParseData PrerequisitesParseData;
+
+static PrerequisitesParseData *
+prerequisites_parse_data_new (void)
+{
+ PrerequisitesParseData *data = g_slice_new0 (PrerequisitesParseData);
+ data->text = g_string_sized_new (BUFSIZE);
+ return data;
+}
+
+static void
+prerequisites_parse_data_free (PrerequisitesParseData *data)
+{
+ g_slist_free_full (data->prerequisites, g_free);
+ g_string_free (data->text, TRUE);
+ g_slice_free (PrerequisitesParseData, data);
+}
+
+static void
+prerequisites_start_element_callback (GMarkupParseContext *pcontext,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data,
+ GError **error)
+{
+ PrerequisitesParseData *data = user_data;
+
+ if (!validate (symbols_valid_path_list,
+ G_N_ELEMENTS (symbols_valid_path_list),
+ element_name,
+ data->element_stack,
+ error))
+ return;
+
+ data->element_stack = g_slist_prepend (data->element_stack,
+ g_strdup (element_name));
+ data->text->len = 0;
+}
+
+static void
+prerequisites_end_element_callback (GMarkupParseContext *pcontext,
+ const gchar *element_name,
+ gpointer user_data,
+ GError **error)
+{
+ PrerequisitesParseData *data = user_data;
+ GSList *head = data->element_stack;
+
+ g_free (head->data);
+ data->element_stack = g_slist_next (data->element_stack);
+ g_slist_free1 (head);
+
+ if (g_strcmp0 (element_name, "include") == 0) {
+ data->prerequisites = g_slist_append (data->prerequisites,
+ g_strndup (data->text->str,
+ data->text->len));
+ }
+}
+
+static void
+prerequisites_text_callback (GMarkupParseContext *pcontext,
+ const gchar *text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error)
+{
+ PrerequisitesParseData *data = user_data;
+ g_string_append_len (data->text, text, text_len);
+}
+
+static const GMarkupParser prerequisites_parser = {
+ prerequisites_start_element_callback,
+ prerequisites_end_element_callback,
+ prerequisites_text_callback,
+ 0,
+ 0
+};
+
+static EekKeyboard *
+eek_xml_layout_real_create_keyboard (EekLayout *self,
+ gdouble initial_width,
+ gdouble initial_height)
+{
+ EekXmlLayout *layout = EEK_XML_LAYOUT (self);
+ EekKeyboard *keyboard;
+ gchar *filename, *path;
+ GSList *loaded;
+ GError *error;
+ gboolean retval;
+
+ /* Create an empty keyboard to which geometry and symbols
+ information are applied. */
+ keyboard = g_object_new (EEK_TYPE_KEYBOARD, "layout", layout, NULL);
+
+ /* Read geometry information. */
+ filename = g_strdup_printf ("%s.xml", layout->priv->desc->geometry);
+ path = g_build_filename (KEYBOARDSDIR, "geometry", filename, NULL);
+ g_free (filename);
+
+ error = NULL;
+ retval = parse_geometry (path, keyboard, &error);
+ g_free (path);
+ if (!retval) {
+ g_object_unref (keyboard);
+ g_warning ("can't parse geometry file %s: %s",
+ layout->priv->desc->geometry,
+ error->message);
+ g_error_free (error);
+ return NULL;
+ }
+
+ EekKey *key = eek_keyboard_find_key_by_keycode (keyboard,
+ 149);
+ /* Read symbols information. */
+ loaded = NULL;
+ retval = parse_symbols_with_prerequisites (layout->priv->desc->symbols,
+ keyboard,
+ &loaded,
+ &error);
+ g_slist_free_full (loaded, g_free);
+ if (!retval) {
+ g_object_unref (keyboard);
+ g_warning ("can't parse symbols file %s: %s",
+ layout->priv->desc->symbols,
+ error->message);
+ g_error_free (error);
+ return NULL;
+ }
+
+ /* Fit keyboard in the given width and hight. */
+ scale_keyboard (keyboard, initial_width, initial_height);
+
+ /* Use pre-defined modifier mask here. */
+ eek_keyboard_set_num_lock_mask (keyboard, EEK_MOD2_MASK);
+ eek_keyboard_set_alt_gr_mask (keyboard, EEK_MOD5_MASK);
+
+ return keyboard;
+}
+
+static void
+eek_xml_layout_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ EekXmlLayout *layout = EEK_XML_LAYOUT (object);
+ switch (prop_id) {
+ case PROP_ID:
+ g_free (layout->priv->id);
+ layout->priv->id = g_value_dup_string (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+eek_xml_layout_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ EekXmlLayout *layout = EEK_XML_LAYOUT (object);
+ switch (prop_id) {
+ case PROP_ID:
+ g_value_set_string (value, layout->priv->id);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+eek_xml_layout_finalize (GObject *object)
+{
+ EekXmlLayoutPrivate *priv = EEK_XML_LAYOUT_GET_PRIVATE (object);
+
+ g_free (priv->id);
+
+ if (priv->desc)
+ keyboard_desc_free (priv->desc);
+
+ G_OBJECT_CLASS (eek_xml_layout_parent_class)->finalize (object);
+}
+
+static void
+eek_xml_layout_class_init (EekXmlLayoutClass *klass)
+{
+ EekLayoutClass *layout_class = EEK_LAYOUT_CLASS (klass);
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ GParamSpec *pspec;
+
+ g_type_class_add_private (gobject_class, sizeof (EekXmlLayoutPrivate));
+
+ layout_class->create_keyboard = eek_xml_layout_real_create_keyboard;
+
+ gobject_class->set_property = eek_xml_layout_set_property;
+ gobject_class->get_property = eek_xml_layout_get_property;
+ gobject_class->finalize = eek_xml_layout_finalize;
+
+ pspec = g_param_spec_string ("id",
+ "ID",
+ "ID",
+ NULL,
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_READWRITE);
+ g_object_class_install_property (gobject_class, PROP_ID, pspec);
+}
+
+static void
+eek_xml_layout_init (EekXmlLayout *self)
+{
+ self->priv = EEK_XML_LAYOUT_GET_PRIVATE (self);
+}
+
+EekLayout *
+eek_xml_layout_new (const gchar *id, GError **error)
+{
+ return (EekLayout *) g_initable_new (EEK_TYPE_XML_LAYOUT,
+ NULL,
+ error,
+ "id", id,
+ NULL);
+}
+
+static gboolean
+initable_init (GInitable *initable,
+ GCancellable *cancellable,
+ GError **error)
+{
+ EekXmlLayout *layout = EEK_XML_LAYOUT (initable);
+ GSList *keyboards, *p;
+ gchar *path;
+ EekXmlKeyboardDesc *desc;
+
+ path = g_build_filename (KEYBOARDSDIR, "keyboards.xml", NULL);
+ keyboards = parse_keyboards (path, error);
+ g_free (path);
+ if (error && *error)
+ return FALSE;
+
+ for (p = keyboards; p; p = p->next) {
+ desc = p->data;
+ if (g_strcmp0 (desc->id, layout->priv->id) == 0)
+ break;
+ }
+ if (p == NULL) {
+ g_set_error (error,
+ EEK_ERROR,
+ EEK_ERROR_LAYOUT_ERROR,
+ "no such keyboard %s",
+ layout->priv->id);
+ return FALSE;
+ }
+
+ keyboards = g_slist_remove_link (keyboards, p);
+ layout->priv->desc = p->data;
+ g_slist_free_1 (p);
+ g_slist_free_full (keyboards, (GDestroyNotify) keyboard_desc_free);
+
+ return TRUE;
+}
+
+static void
+initable_iface_init (GInitableIface *initable_iface)
+{
+ initable_iface->init = initable_init;
+}
+
+GSList *
+eek_xml_layout_list_keyboards (void)
+{
+ gchar *path;
+ GSList *keyboards;
+
+ path = g_build_filename (KEYBOARDSDIR, "keyboards.xml", NULL);
+ return parse_keyboards (path, NULL);
+}
+
+static gboolean
+parse_geometry (const gchar *path, EekKeyboard *keyboard, GError **error)
+{
+ GeometryParseData *data;
+ GMarkupParseContext *pcontext;
+ GHashTable *oref_hash;
+ GHashTableIter iter;
+ gpointer k, v;
+ GFile *file;
+ GFileInputStream *input;
+ gboolean retval;
+
+ file = g_file_new_for_path (path);
+
+ input = g_file_read (file, NULL, error);
+ g_object_unref (file);
+ if (input == NULL)
+ return FALSE;
+
+ data = geometry_parse_data_new (keyboard);
+ pcontext = g_markup_parse_context_new (&geometry_parser,
+ 0,
+ data,
+ NULL);
+
+ retval = parse (pcontext, G_INPUT_STREAM (input), error);
+ g_markup_parse_context_free (pcontext);
+ g_object_unref (input);
+ if (!retval) {
+ geometry_parse_data_free (data);
+ return FALSE;
+ }
+
+ /* Resolve outline references. */
+ oref_hash = g_hash_table_new (g_str_hash, g_str_equal);
+ g_hash_table_iter_init (&iter, data->oref_outline_hash);
+ while (g_hash_table_iter_next (&iter, &k, &v)) {
+ EekOutline *outline = v;
+ gulong oref;
+
+ oref = eek_keyboard_add_outline (data->keyboard, outline);
+ g_hash_table_insert (oref_hash, k, GUINT_TO_POINTER(oref));
+ }
+
+ g_hash_table_iter_init (&iter, data->key_oref_hash);
+ while (g_hash_table_iter_next (&iter, &k, &v)) {
+ gpointer oref;
+ if (g_hash_table_lookup_extended (oref_hash, v, NULL, &oref))
+ eek_key_set_oref (EEK_KEY(k), GPOINTER_TO_UINT(oref));
+ }
+ g_hash_table_destroy (oref_hash);
+
+ geometry_parse_data_free (data);
+ return TRUE;
+}
+
+static gboolean
+parse_symbols_with_prerequisites (const gchar *name,
+ EekKeyboard *keyboard,
+ GSList **loaded,
+ GError **error)
+{
+ gchar *filename, *path;
+ GSList *prerequisites, *p;
+ GError *prerequisites_error;
+ gboolean retval;
+
+ for (p = *loaded; p; p = p->next) {
+ if (g_strcmp0 (p->data, name) == 0) {
+ g_set_error (error,
+ EEK_ERROR,
+ EEK_ERROR_LAYOUT_ERROR,
+ "%s already loaded",
+ name);
+ return FALSE;
+ }
+ }
+ *loaded = g_slist_prepend (*loaded, g_strdup (name));
+
+ filename = g_strdup_printf ("%s.xml", name);
+ path = g_build_filename (KEYBOARDSDIR, "symbols", filename, NULL);
+ g_free (filename);
+
+ prerequisites_error = NULL;
+ prerequisites = parse_prerequisites (path, &prerequisites_error);
+ if (prerequisites_error != NULL) {
+ g_propagate_error (error, prerequisites_error);
+ return FALSE;
+ }
+
+ for (p = prerequisites; p; p = p->next) {
+ retval = parse_symbols_with_prerequisites (p->data,
+ keyboard,
+ loaded,
+ error);
+ if (!retval)
+ return FALSE;
+ }
+ g_slist_free_full (prerequisites, (GDestroyNotify)g_free);
+
+ retval = parse_symbols (path, keyboard, error);
+ g_free (path);
+
+ return retval;
+}
+
+static gboolean
+parse_symbols (const gchar *path, EekKeyboard *keyboard, GError **error)
+{
+ SymbolsParseData *data;
+ GMarkupParseContext *pcontext;
+ GFile *file;
+ GFileInputStream *input;
+ gboolean retval;
+
+ file = g_file_new_for_path (path);
+
+ input = g_file_read (file, NULL, error);
+ g_object_unref (file);
+ if (input == NULL)
+ return FALSE;
+
+ data = symbols_parse_data_new (keyboard);
+ pcontext = g_markup_parse_context_new (&symbols_parser,
+ 0,
+ data,
+ NULL);
+ retval = parse (pcontext, G_INPUT_STREAM (input), error);
+ g_markup_parse_context_free (pcontext);
+ g_object_unref (input);
+ if (!retval) {
+ symbols_parse_data_free (data);
+ return FALSE;
+ }
+ symbols_parse_data_free (data);
+ return TRUE;
+}
+
+static GSList *
+parse_prerequisites (const gchar *path, GError **error)
+{
+ PrerequisitesParseData *data;
+ GMarkupParseContext *pcontext;
+ GFile *file;
+ GFileInputStream *input;
+ GSList *prerequisites;
+ gboolean retval;
+
+ file = g_file_new_for_path (path);
+
+ input = g_file_read (file, NULL, error);
+ g_object_unref (file);
+ if (input == NULL)
+ return FALSE;
+
+ data = prerequisites_parse_data_new ();
+ pcontext = g_markup_parse_context_new (&prerequisites_parser,
+ 0,
+ data,
+ NULL);
+ retval = parse (pcontext, G_INPUT_STREAM (input), error);
+ g_markup_parse_context_free (pcontext);
+ g_object_unref (input);
+ if (!retval) {
+ prerequisites_parse_data_free (data);
+ return NULL;
+ }
+ prerequisites = data->prerequisites;
+ data->prerequisites = NULL;
+ prerequisites_parse_data_free (data);
+ return prerequisites;
+}
+
+static GSList *
+parse_keyboards (const gchar *path, GError **error)
+{
+ KeyboardsParseData *data;
+ GMarkupParseContext *pcontext;
+ GFile *file;
+ GFileInputStream *input;
+ GSList *keyboards;
+ gboolean retval;
+
+ file = g_file_new_for_path (path);
+
+ input = g_file_read (file, NULL, error);
+ g_object_unref (file);
+ if (input == NULL)
+ return NULL;
+
+ data = keyboards_parse_data_new ();
+ pcontext = g_markup_parse_context_new (&keyboards_parser,
+ 0,
+ data,
+ NULL);
+ retval = parse (pcontext, G_INPUT_STREAM (input), error);
+ g_object_unref (input);
+ g_markup_parse_context_free (pcontext);
+ if (!retval) {
+ keyboards_parse_data_free (data);
+ return NULL;
+ }
+
+ keyboards = data->keyboards;
+ data->keyboards = NULL;
+ keyboards_parse_data_free (data);
+ return keyboards;
+}
+
static void scale_bounds_callback (EekElement *element,
gpointer user_data);
@@ -513,226 +1343,121 @@ scale_bounds_callback (EekElement *element,
scale_bounds (element, *(gdouble *)user_data);
}
-static EekKeyboard *
-eek_xml_layout_real_create_keyboard (EekLayout *self,
- gdouble initial_width,
- gdouble initial_height)
+static void scale_keyboard (EekKeyboard *keyboard,
+ gdouble width,
+ gdouble height)
{
- EekXmlLayoutPrivate *priv = EEK_XML_LAYOUT_GET_PRIVATE (self);
- GMarkupParseContext *pcontext;
- GError *error;
- gchar buffer[BUFSIZE];
- ParseCallbackData data;
- EekBounds bounds;
gdouble scale;
- GHashTableIter iter;
- gpointer k, v;
- GHashTable *oref_hash;
+ EekBounds bounds;
+ gsize n_outlines;
+ guint i;
- g_return_val_if_fail (priv->source, NULL);
+ eek_element_get_bounds (EEK_ELEMENT(keyboard), &bounds);
- memset (&data, 0, sizeof data);
- data.layout = self;
- data.text = g_string_sized_new (BUFSIZE);
- data.key_oref_hash = g_hash_table_new_full (g_direct_hash,
- g_direct_equal,
- NULL,
- g_free);
- data.oref_outline_hash =
- g_hash_table_new_full (g_str_hash,
- g_str_equal,
- g_free,
- (GDestroyNotify)eek_outline_free);
+ if (width * bounds.height < height * bounds.width)
+ scale = width / bounds.width;
+ else
+ scale = height / bounds.height;
+
+ scale_bounds (EEK_ELEMENT(keyboard), scale);
+
+ n_outlines = eek_keyboard_get_n_outlines (keyboard);
+ for (i = 0; i < n_outlines; i++) {
+ EekOutline *outline = eek_keyboard_get_outline (keyboard, i);
+ gint j;
+
+ for (j = 0; j < outline->num_points; j++) {
+ outline->points[j].x *= scale;
+ outline->points[j].y *= scale;
+ }
+ }
+}
+
+static gboolean
+validate (const gchar **valid_path_list,
+ gsize valid_path_list_len,
+ const gchar *element_name,
+ GSList *element_stack,
+ GError **error)
+{
+ gint i;
+ gchar *element_path;
+ GSList *head, *p;
+ GString *string;
+
+ head = g_slist_prepend (element_stack, (gchar *)element_name);
+ string = g_string_sized_new (64);
+ for (p = head; p; p = p->next) {
+ g_string_append (string, p->data);
+ if (g_slist_next (p))
+ g_string_append (string, "/");
+ }
+ element_path = g_string_free (string, FALSE);
+ g_slist_free1 (head);
+
+ for (i = 0; i < valid_path_list_len; i++)
+ if (g_strcmp0 (element_path, valid_path_list[i]) == 0)
+ break;
+ g_free (element_path);
+
+ if (i == valid_path_list_len) {
+ gchar *reverse_element_path;
+
+ head = g_slist_reverse (g_slist_copy (element_stack));
+ string = g_string_sized_new (64);
+ for (p = head; p; p = p->next) {
+ g_string_append (string, p->data);
+ if (g_slist_next (p))
+ g_string_append (string, "/");
+ }
+ reverse_element_path = g_string_free (string, FALSE);
+
+ abort ();
+ g_set_error (error,
+ G_MARKUP_ERROR,
+ G_MARKUP_ERROR_UNKNOWN_ELEMENT,
+ "%s cannot appear as %s",
+ element_name,
+ reverse_element_path);
+ g_free (reverse_element_path);
+
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static gboolean
+parse (GMarkupParseContext *pcontext,
+ GInputStream *input,
+ GError **error)
+{
+ gchar buffer[BUFSIZE];
- pcontext = g_markup_parse_context_new (&parser, 0, &data, NULL);
while (1) {
- gssize nread;
-
- error = NULL;
- nread = g_input_stream_read (G_INPUT_STREAM(priv->source),
- buffer, sizeof buffer, NULL,
- &error);
- if (nread < 0) {
- g_warning ("error reading XML layout: %s",
- error->message);
- g_clear_error (&error);
- }
+ gssize nread = g_input_stream_read (input,
+ buffer,
+ sizeof (buffer),
+ NULL,
+ error);
+ if (nread < 0)
+ return FALSE;
- if (nread <= 0)
+ if (nread == 0)
break;
- error = NULL;
- if (!g_markup_parse_context_parse (pcontext, buffer, nread,
- &error)) {
- g_warning ("can't parse XML layout: %s", error->message);
- g_clear_error (&error);
- break;
- }
+ if (!g_markup_parse_context_parse (pcontext, buffer, nread, error))
+ return FALSE;
}
- error = NULL;
- if (!g_markup_parse_context_end_parse (pcontext, &error)) {
- g_warning ("can't finish parsing XML layout: %s",
- error->message);
- g_error_free (error);
+ return g_markup_parse_context_end_parse (pcontext, error);
+}
+
+static const gchar *
+get_attribute (const gchar **names, const gchar **values, const gchar *name)
+{
+ for (; *names && *values; names++, values++) {
+ if (g_strcmp0 (*names, name) == 0)
+ return *values;
}
-
- g_markup_parse_context_free (pcontext);
-
- if (!data.keyboard)
- goto out;
-
- eek_element_get_bounds (EEK_ELEMENT(data.keyboard), &bounds);
- scale = initial_width * bounds.height < initial_height * bounds.width ?
- initial_width / bounds.width :
- initial_height / bounds.height;
-
- oref_hash = g_hash_table_new (g_str_hash, g_str_equal);
- g_hash_table_iter_init (&iter, data.oref_outline_hash);
- while (g_hash_table_iter_next (&iter, &k, &v)) {
- EekOutline *outline = v;
- gulong oref;
- gint i;
-
- for (i = 0; i < outline->num_points; i++) {
- outline->points[i].x *= scale;
- outline->points[i].y *= scale;
- }
-
- oref = eek_keyboard_add_outline (data.keyboard, outline);
- g_hash_table_insert (oref_hash, k, (gpointer) oref);
- }
-
- g_hash_table_iter_init (&iter, data.key_oref_hash);
- while (g_hash_table_iter_next (&iter, &k, &v)) {
- gulong oref;
-
- oref = (gulong) g_hash_table_lookup (oref_hash, v);
- eek_key_set_oref (EEK_KEY(k), oref);
- }
- g_hash_table_destroy (oref_hash);
-
- scale_bounds (EEK_ELEMENT(data.keyboard), scale);
-
- out:
- g_string_free (data.text, TRUE);
- if (data.key_oref_hash)
- g_hash_table_destroy (data.key_oref_hash);
- if (data.oref_outline_hash)
- g_hash_table_destroy (data.oref_outline_hash);
-
- /* use pre-defined modifier mask here */
- eek_keyboard_set_num_lock_mask (data.keyboard, EEK_MOD2_MASK);
- eek_keyboard_set_alt_gr_mask (data.keyboard, EEK_MOD5_MASK);
-
- return data.keyboard;
-}
-
-static void
-eek_xml_layout_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- switch (prop_id) {
- case PROP_SOURCE:
- eek_xml_layout_set_source (EEK_XML_LAYOUT(object),
- g_value_get_object (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-eek_xml_layout_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- switch (prop_id) {
- case PROP_SOURCE:
- g_value_set_object (value,
- eek_xml_layout_get_source (EEK_XML_LAYOUT(object)));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-eek_xml_layout_dispose (GObject *object)
-{
- EekXmlLayoutPrivate *priv = EEK_XML_LAYOUT_GET_PRIVATE (object);
-
- if (priv->source) {
- g_object_unref (priv->source);
- priv->source = NULL;
- }
- G_OBJECT_CLASS (eek_xml_layout_parent_class)->dispose (object);
-}
-
-static void
-eek_xml_layout_class_init (EekXmlLayoutClass *klass)
-{
- EekLayoutClass *layout_class = EEK_LAYOUT_CLASS (klass);
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GParamSpec *pspec;
-
- g_type_class_add_private (gobject_class, sizeof (EekXmlLayoutPrivate));
-
- layout_class->create_keyboard = eek_xml_layout_real_create_keyboard;
-
- gobject_class->set_property = eek_xml_layout_set_property;
- gobject_class->get_property = eek_xml_layout_get_property;
- gobject_class->dispose = eek_xml_layout_dispose;
-
- pspec = g_param_spec_object ("source",
- "Source",
- "XML source input stram",
- G_TYPE_INPUT_STREAM,
- G_PARAM_READWRITE);
- g_object_class_install_property (gobject_class, PROP_SOURCE, pspec);
-
-
-
-}
-
-static void
-eek_xml_layout_init (EekXmlLayout *self)
-{
- self->priv = EEK_XML_LAYOUT_GET_PRIVATE (self);
-}
-
-EekLayout *
-eek_xml_layout_new (GInputStream *source)
-{
- return g_object_new (EEK_TYPE_XML_LAYOUT, "source", source, NULL);
-}
-
-void
-eek_xml_layout_set_source (EekXmlLayout *layout,
- GInputStream *source)
-{
- EekXmlLayoutPrivate *priv;
-
- g_return_if_fail (EEK_IS_XML_LAYOUT(layout));
- g_return_if_fail (G_IS_INPUT_STREAM(source));
-
- priv = EEK_XML_LAYOUT_GET_PRIVATE(layout);
- if (priv->source)
- g_object_unref (priv->source);
- priv->source = g_object_ref (source);
-}
-
-GInputStream *
-eek_xml_layout_get_source (EekXmlLayout *layout)
-{
- EekXmlLayoutPrivate *priv;
-
- g_assert (EEK_IS_XML_LAYOUT(layout));
- priv = EEK_XML_LAYOUT_GET_PRIVATE(layout);
- return priv->source;
+ return NULL;
}
diff --git a/eek/eek-xml-layout.h b/eek/eek-xml-layout.h
index 4fa64710..54dfaf58 100644
--- a/eek/eek-xml-layout.h
+++ b/eek/eek-xml-layout.h
@@ -65,14 +65,21 @@ struct _EekXmlLayoutClass
gpointer pdummy[24];
};
-GType eek_xml_layout_get_type (void) G_GNUC_CONST;
+struct _EekXmlKeyboardDesc
+{
+ gchar *id;
+ gchar *name;
+ gchar *geometry;
+ gchar *symbols;
+ gchar *language;
+ gchar *longname;
+};
+typedef struct _EekXmlKeyboardDesc EekXmlKeyboardDesc;
-EekLayout *eek_xml_layout_new (GInputStream *source);
-
-void eek_xml_layout_set_source (EekXmlLayout *layout,
- GInputStream *source);
-
-GInputStream * eek_xml_layout_get_source (EekXmlLayout *layout);
+GType eek_xml_layout_get_type (void) G_GNUC_CONST;
+EekLayout *eek_xml_layout_new (const gchar *id,
+ GError **error);
+GSList *eek_xml_layout_list_keyboards (void);
G_END_DECLS
#endif /* EEK_XML_LAYOUT_H */
diff --git a/eekboard/eekboard-context-service.c b/eekboard/eekboard-context-service.c
index 66282228..df4cd076 100644
--- a/eekboard/eekboard-context-service.c
+++ b/eekboard/eekboard-context-service.c
@@ -161,11 +161,11 @@ eekboard_context_service_real_create_keyboard (EekboardContextService *self,
{
EekKeyboard *keyboard;
EekLayout *layout;
+ GError *error;
if (g_str_has_prefix (keyboard_type, "xkb:")) {
XklConfigRec *rec =
eekboard_xkl_config_rec_from_string (&keyboard_type[4]);
- GError *error;
if (display == NULL)
display = XOpenDisplay (NULL);
@@ -173,7 +173,8 @@ eekboard_context_service_real_create_keyboard (EekboardContextService *self,
error = NULL;
layout = eek_xkl_layout_new (display, &error);
if (layout == NULL) {
- g_warning ("can't create keyboard: %s", error->message);
+ g_warning ("can't create keyboard %s: %s",
+ keyboard_type, error->message);
g_error_free (error);
return NULL;
}
@@ -183,25 +184,14 @@ eekboard_context_service_real_create_keyboard (EekboardContextService *self,
return NULL;
}
} else {
- gchar *path;
- GFile *file;
- GFileInputStream *input;
- GError *error;
-
- path = g_strdup_printf ("%s/%s.xml", KEYBOARDDIR, keyboard_type);
- file = g_file_new_for_path (path);
- g_free (path);
-
error = NULL;
- input = g_file_read (file, NULL, &error);
- g_object_unref (file);
- if (input == NULL) {
- g_warning ("can't read keyboard file %s: %s",
+ layout = eek_xml_layout_new (keyboard_type, &error);
+ if (layout == NULL) {
+ g_warning ("can't create keyboard: %s",
keyboard_type, error->message);
g_error_free (error);
return NULL;
}
- layout = eek_xml_layout_new (G_INPUT_STREAM(input));
}
keyboard = eek_keyboard_new (layout, CSW, CSH);
g_object_unref (layout);