diff --git a/data/keyboards/Makefile.am b/data/keyboards/Makefile.am
index 2803d8e5..2902e407 100644
--- a/data/keyboards/Makefile.am
+++ b/data/keyboards/Makefile.am
@@ -1,8 +1,19 @@
keyboarddir = $(pkgdatadir)/keyboards
dist_keyboard_DATA = \
- us.xml \
- th.xml \
+ 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 \
diff --git a/data/keyboards/ar.xml b/data/keyboards/ar.xml
new file mode 100644
index 00000000..e920683d
--- /dev/null
+++ b/data/keyboards/ar.xml
@@ -0,0 +1,683 @@
+
+
+ 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/be.xml b/data/keyboards/be.xml
new file mode 100644
index 00000000..0e2d2bd4
--- /dev/null
+++ b/data/keyboards/be.xml
@@ -0,0 +1,683 @@
+
+
+ 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/fa.xml b/data/keyboards/fa.xml
new file mode 100644
index 00000000..c346362e
--- /dev/null
+++ b/data/keyboards/fa.xml
@@ -0,0 +1,683 @@
+
+
+ 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/he.xml b/data/keyboards/he.xml
new file mode 100644
index 00000000..705ea145
--- /dev/null
+++ b/data/keyboards/he.xml
@@ -0,0 +1,683 @@
+
+
+ 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/kk.xml b/data/keyboards/kk.xml
new file mode 100644
index 00000000..ecfce6c1
--- /dev/null
+++ b/data/keyboards/kk.xml
@@ -0,0 +1,683 @@
+
+
+ 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/ks.xml b/data/keyboards/ks.xml
new file mode 100644
index 00000000..626ff49f
--- /dev/null
+++ b/data/keyboards/ks.xml
@@ -0,0 +1,683 @@
+
+
+ 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
new file mode 100644
index 00000000..040a0069
--- /dev/null
+++ b/data/keyboards/my.xml
@@ -0,0 +1,683 @@
+
+
+ 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/ru.xml b/data/keyboards/ru.xml
new file mode 100644
index 00000000..d036745d
--- /dev/null
+++ b/data/keyboards/ru.xml
@@ -0,0 +1,683 @@
+
+
+ 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/ua.xml b/data/keyboards/ua.xml
new file mode 100644
index 00000000..d6fd35aa
--- /dev/null
+++ b/data/keyboards/ua.xml
@@ -0,0 +1,683 @@
+
+
+ 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
new file mode 100644
index 00000000..8352a945
--- /dev/null
+++ b/data/keyboards/ug.xml
@@ -0,0 +1,683 @@
+
+
+ 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/zh-bopomofo.xml b/data/keyboards/zh-bopomofo.xml
new file mode 100644
index 00000000..7b9cfeda
--- /dev/null
+++ b/data/keyboards/zh-bopomofo.xml
@@ -0,0 +1,683 @@
+
+
+ 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
+
+
+