aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorRobert Tari <robert@tari.in>2021-01-24 03:38:44 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2021-01-27 17:10:40 +0100
commitb85daf94830a3ca39d59237fdb07bc33ede1c450 (patch)
tree8d704b1d8614759da71fbe42dca737c0e2261142 /data
parent9b8fb0492c8c05630644d840aef520f3c6b17829 (diff)
downloadayatana-indicator-keyboard-b85daf94830a3ca39d59237fdb07bc33ede1c450.tar.gz
ayatana-indicator-keyboard-b85daf94830a3ca39d59237fdb07bc33ede1c450.tar.bz2
ayatana-indicator-keyboard-b85daf94830a3ca39d59237fdb07bc33ede1c450.zip
100% re-write of the keyboard indicator in plain C.
Diffstat (limited to 'data')
-rw-r--r--data/CMakeLists.txt43
-rw-r--r--data/Makefile.am106
-rwxr-xr-xdata/ayatana-indicator-keyboard-icon-generator122
-rw-r--r--data/ayatana-indicator-keyboard.conf.in9
-rw-r--r--data/ayatana-indicator-keyboard.desktop.in2
-rw-r--r--data/ayatana-indicator-keyboard.service.in11
-rw-r--r--data/icon-1.svg.in1
-rw-r--r--data/icon-generator.vala241
-rw-r--r--data/icon.svg.in1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ak.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-am.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ap.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ar.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-as.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-av.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-az.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-be.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-bg.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-bm.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-bn.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-br.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-bs.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-by.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ca.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ch.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-cm.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-cr.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-cs.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-da.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-de.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-dl.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-dv.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-dz.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ee.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-en.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-eo.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-es.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-et.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-eu.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-fa.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ff.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-fi.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-fo.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-fr.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ga.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-gr.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-gu.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ha.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-he.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-hi.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-hr.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-hu.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-hy.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-id.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ie.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ig.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ik.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-in.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-is.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-it.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ja.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-jv.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ka.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ki.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-kk.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-km.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-kn.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ko.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ku.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-lo.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-lt.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-lv.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-md.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-mi.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-mk.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ml.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-mn.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-mr.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ms.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-mt.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-my.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ne.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-nl.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-no.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ol.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-or.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-pa.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ph.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-pl.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ps.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-pt.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ro.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ru.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-sa.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-sd.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-sh.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-si.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-sk.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-sl.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-sq.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-sr.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-sv.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-sw.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-sy.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ta.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-te.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-tg.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-th.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-tk.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-tn.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-tr.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-uf.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ug.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-uk.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-ur.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-us.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-uz.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-vi.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-wo.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-xs.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-yo.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-zg.svg1
-rw-r--r--data/icons/scalable/status/ayatana-indicator-keyboard-zh.svg1
-rw-r--r--data/org.ayatana.indicator.keyboard14
-rw-r--r--data/org.ayatana.indicator.keyboard.gschema.xml15
-rw-r--r--data/upstart/Makefile.am12
-rw-r--r--data/upstart/ayatana-indicator-keyboard.desktop.in9
127 files changed, 305 insertions, 395 deletions
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
new file mode 100644
index 00000000..ab5bd3f7
--- /dev/null
+++ b/data/CMakeLists.txt
@@ -0,0 +1,43 @@
+
+# Systemd Unit File
+
+pkg_check_modules(SYSTEMD systemd)
+
+if (${SYSTEMD_FOUND})
+
+ pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)
+ message (STATUS "${SYSTEMD_USER_DIR} is the systemd user unit file install dir")
+ set (SYSTEMD_USER_NAME "${CMAKE_PROJECT_NAME}.service")
+ set (SYSTEMD_USER_FILE "${CMAKE_CURRENT_BINARY_DIR}/${SYSTEMD_USER_NAME}")
+ set (SYSTEMD_USER_FILE_IN "${CMAKE_CURRENT_SOURCE_DIR}/${SYSTEMD_USER_NAME}.in")
+ set (pkglibexecdir "${CMAKE_INSTALL_FULL_PKGLIBEXECDIR}")
+ configure_file ("${SYSTEMD_USER_FILE_IN}" "${SYSTEMD_USER_FILE}")
+ install (FILES "${SYSTEMD_USER_FILE}" DESTINATION "${SYSTEMD_USER_DIR}")
+
+endif()
+
+# XDG Autostart File
+
+set (XDG_AUTOSTART_DIR "/etc/xdg/autostart")
+message (STATUS "${XDG_AUTOSTART_DIR} is the DBus Service File install dir")
+set (XDG_AUTOSTART_NAME "${CMAKE_PROJECT_NAME}.desktop")
+set (XDG_AUTOSTART_FILE "${CMAKE_CURRENT_BINARY_DIR}/${XDG_AUTOSTART_NAME}")
+set (XDG_AUTOSTART_FILE_IN "${CMAKE_CURRENT_SOURCE_DIR}/${XDG_AUTOSTART_NAME}.in")
+set (pkglibexecdir "${CMAKE_INSTALL_FULL_PKGLIBEXECDIR}")
+configure_file ("${XDG_AUTOSTART_FILE_IN}" "${XDG_AUTOSTART_FILE}")
+install (FILES "${XDG_AUTOSTART_FILE}" DESTINATION "${XDG_AUTOSTART_DIR}")
+
+# Ayatana Indicators File
+
+set (AYATANA_INDICATOR_DIR "${CMAKE_INSTALL_FULL_DATAROOTDIR}/ayatana/indicators")
+message (STATUS "${AYATANA_INDICATOR_DIR} is the Ayatana Indicators install dir")
+set (AYATANA_INDICATOR_NAME "org.ayatana.indicator.keyboard")
+set (AYATANA_INDICATOR_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${AYATANA_INDICATOR_NAME}")
+install (FILES "${AYATANA_INDICATOR_FILE}" DESTINATION "${AYATANA_INDICATOR_DIR}")
+
+# Icons
+
+set (ICON_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/icons/hicolor")
+message (STATUS "${ICON_DIR} is the Icon install dir")
+install (DIRECTORY icons/scalable DESTINATION "${ICON_DIR}" FILES_MATCHING PATTERN "*.svg")
+install(CODE "execute_process (COMMAND gtk-update-icon-cache -t -f ${ICON_DIR})" CODE "message (STATUS \"Updating icon cache\")")
diff --git a/data/Makefile.am b/data/Makefile.am
deleted file mode 100644
index 6f33aeaf..00000000
--- a/data/Makefile.am
+++ /dev/null
@@ -1,106 +0,0 @@
-
-SUBDIRS = upstart
-
-###########################
-# Icon Generator
-###########################
-
-noinst_PROGRAMS = ayatana-indicator-keyboard-icon-generator
-
-AM_CFLAGS = -w -DGNOME_DESKTOP_USE_UNSTABLE_API
-AM_LDFLAGS = -lm
-AM_VALAFLAGS = --enable-experimental-non-null \
- --metadatadir $(top_srcdir)/deps \
- --vapidir $(top_srcdir)/deps
-
-ayatana_indicator_keyboard_icon_generator_SOURCES = icon-generator.vala \
- $(top_srcdir)/lib/common.vala
-ayatana_indicator_keyboard_icon_generator_VALAFLAGS = $(AM_VALAFLAGS) \
- --pkg gee-1.0 \
- --pkg fontconfig-2.0 \
- --pkg freetype2-2.0 \
- --pkg PangoFT2-1.0 \
- --pkg gtk+-3.0 \
- --pkg GDesktopEnums-3.0 \
- --pkg GnomeDesktop-3.0 \
- --pkg Xkl-1.0
-ayatana_indicator_keyboard_icon_generator_CFLAGS = $(AM_CFLAGS) \
- $(GEE_CFLAGS) \
- $(PANGOFT2_CFLAGS) \
- $(GTK_CFLAGS) \
- $(GNOME_DESKTOP_CFLAGS) \
- $(LIBXKLAVIER_CFLAGS) \
- $(COVERAGE_CFLAGS)
-ayatana_indicator_keyboard_icon_generator_LDFLAGS = $(AM_LDFLAGS) \
- $(GEE_LIBS) \
- $(PANGOFT2_LIBS) \
- $(GTK_LIBS) \
- $(GNOME_DESKTOP_LIBS) \
- $(LIBXKLAVIER_LIBS) \
- $(COVERAGE_LDFLAGS)
-
-###########################
-# Upstart Config
-###########################
-
-upstart_jobsdir = $(datadir)/upstart/sessions/
-upstart_jobs_DATA = ayatana-indicator-keyboard.conf
-
-%.conf: %.conf.in
- $(AM_V_GEN) sed -e "s|\@pkglibexecdir\@|$(pkglibexecdir)|" $< > $@
-
-###########################
-# XDG Autostart File
-###########################
-
-xdg_autostartdir = /etc/xdg/autostart
-xdg_autostart_DATA = ayatana-indicator-keyboard.desktop
-
-%.desktop: %.desktop.in
- $(AM_V_GEN) sed -e "s|\@pkglibexecdir\@|$(pkglibexecdir)|" $< > $@
-
-###########################
-# Indicator Config
-###########################
-
-dist_indicator_DATA = org.ayatana.indicator.keyboard
-indicatordir = $(INDICATOR_DIR)
-
-org.ayatana.indicator.keyboard:
- $(AM_V_GEN) (echo '[Indicator Service]'; \
- echo 'Name=ayatana-indicator-keyboard'; \
- echo 'ObjectPath=/org/ayatana/indicator/keyboard'; \
- echo 'Position=80'; \
- echo ''; \
- echo '[desktop]'; \
- echo 'ObjectPath=/org/ayatana/indicator/keyboard/desktop'; \
- echo ''; \
- echo '[desktop_greeter]'; \
- echo 'ObjectPath=/org/ayatana/indicator/keyboard/desktop_greeter'; \
- echo ''; \
- echo '[desktop_lockscreen]'; \
- echo 'ObjectPath=/org/ayatana/indicator/keyboard/desktop_lockscreen'; \
- echo ''; \
- echo '[ubiquity]'; \
- echo 'ObjectPath=/org/ayatana/indicator/keyboard/desktop') > $@.tmp && \
- mv $@.tmp $@
-
-###########################
-# GSettings Schemas
-###########################
-
-gsettings_SCHEMAS = org.ayatana.indicator.keyboard.gschema.xml
-
-@GSETTINGS_RULES@
-
-check_DATA = gschemas.compiled
-
-gschemas.compiled: $(gsettings_SCHEMAS)
- $(GLIB_COMPILE_SCHEMAS) --strict .
-
-EXTRA_DIST = $(dist_service_DATA) \
- $(dist_indicator_DATA) \
- $(gsettings_SCHEMAS) \
- ayatana-indicator-keyboard.conf.in \
- ayatana-indicator-keyboard.desktop.in
-
diff --git a/data/ayatana-indicator-keyboard-icon-generator b/data/ayatana-indicator-keyboard-icon-generator
new file mode 100755
index 00000000..96c4b1b7
--- /dev/null
+++ b/data/ayatana-indicator-keyboard-icon-generator
@@ -0,0 +1,122 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+import gi
+
+gi.require_version('Xkl', '1.0')
+gi.require_version('PangoFT2', '1.0')
+
+from gi.repository import Xkl, GdkX11, PangoFT2, Pango
+from pathlib import Path
+#from Xlib.display import Display
+import sys
+import getopt
+
+def printHelp():
+
+ print('')
+ print('Usage:')
+ print('')
+ print('ayatana-indicator-keyboard-icon-generator -p <padding> -c <colour> -f <font> -o <outdir>')
+ print('')
+ print('<padding> The padding between the fill and the edges of the image')
+ print(' Defaults to 0 pixels')
+ print('<colour> The colour of the fill')
+ print(' Defaults to "#ffffff"')
+ print('<font> The font family')
+ print(' Defaults to "Sans Regular"')
+ print('<outdir> The output directory')
+ print(' Defaults to the current directory')
+ print('')
+
+def onLanguage(pRegistry, pConfigItem, lParams):
+
+ bCheckVariant = lParams[0]
+ lLanguages = lParams[1]
+ sLanguage = pConfigItem.get_short_description()[0:2]
+
+ if sLanguage and sLanguage not in lLanguages:
+
+ lLanguages.append(sLanguage)
+
+ if bCheckVariant:
+
+ pRegistry.foreach_layout_variant(pConfigItem.get_name(), onLanguage, [False, lLanguages])
+
+if __name__ == '__main__':
+
+ nPadding = 0
+ sColour = '#ffffff'
+ sFont = "Sans Regular"
+ pOutDir = Path.cwd()
+ nFont = 15
+ lOpts = []
+
+ try:
+
+ lOpts = getopt.getopt(sys.argv[1:], 'hp:c:f:o:')[0]
+
+ except getopt.GetoptError:
+
+ printHelp()
+ sys.exit(1)
+
+ for sOpt, sArg in lOpts:
+
+ if sOpt == '-h':
+
+ printHelp()
+ sys.exit(0)
+
+ elif sOpt == '-p':
+
+ nPadding = int(sArg)
+
+ elif sOpt == '-c':
+
+ sColour = sArg
+
+ elif sOpt == '-f':
+
+ sFont = sArg
+
+ elif sOpt == '-o':
+
+ pOutDir = Path(sArg)
+
+ pOutDir.mkdir(parents=True, exist_ok=True)
+ lLanguages = []
+ #pDisplay = Display()
+ pDisplay = GdkX11.x11_get_default_xdisplay()
+ pEngine = Xkl.Engine.get_instance(pDisplay)
+ pRegistry = Xkl.ConfigRegistry.get_instance(pEngine)
+ pRegistry.load(True)
+ pRegistry.foreach_layout(onLanguage, [True, lLanguages])
+
+ nSize = 24 - (2 * nPadding)
+ fIconX = (24 - nSize) / 2
+ fIconY = (24 - nSize) / 2
+ pFontMap = PangoFT2.FontMap.new()
+ pContext = Pango.FontMap.create_context(pFontMap)
+ pFontDescription = Pango.FontDescription.new()
+ pFontDescription.set_family(sFont)
+ pFontDescription.set_weight(500)
+ pFontDescription.set_size(nFont * Pango.SCALE)
+ pLayout = Pango.Layout.new(pContext)
+ pLayout.set_font_description(pFontDescription)
+
+ for sLanguage in lLanguages:
+
+ sOutPath = pOutDir.joinpath('ayatana-indicator-keyboard-' + sLanguage + '.svg')
+
+ with open(sOutPath, 'w') as pFile:
+
+ sLayout = sLanguage[0].upper() + sLanguage[1]
+ pLayout.set_text(sLayout, -1)
+ nLayoutWidth, nLayoutHeight = pLayout.get_size()
+ nBaseline = pLayout.get_baseline()
+ fLayoutX = (24.0 - (nLayoutWidth / Pango.SCALE)) / 2
+ fLayoutY = (24.0 - (nLayoutHeight / Pango.SCALE)) / 2 + (nBaseline / Pango.SCALE)
+ pFile.write('<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="' + str(fLayoutX) + '" y="' + str(fLayoutY) + '" style="font-family:' + sFont + ';font-weight:500;font-size:' + str(nFont) + ';fill:black">' + sLayout + '</text></mask></defs><rect x="' + str(fIconX) + '" y="' + str(fIconY) + '" width="' + str(nSize) + '" height="' + str(nSize) + '" rx="3" mask="url(#m)" style="fill:' + sColour + '"/></svg>')
+
+ sys.exit(0)
diff --git a/data/ayatana-indicator-keyboard.conf.in b/data/ayatana-indicator-keyboard.conf.in
deleted file mode 100644
index 5083a485..00000000
--- a/data/ayatana-indicator-keyboard.conf.in
+++ /dev/null
@@ -1,9 +0,0 @@
-description "Ayatana Indicator Keyboard Backend"
-
-start on ayatana-indicator-services-start
-stop on desktop-end or ayatana-indicator-services-end
-
-respawn
-respawn limit 2 10
-
-exec @pkglibexecdir@/ayatana-indicator-keyboard-service --use-gtk
diff --git a/data/ayatana-indicator-keyboard.desktop.in b/data/ayatana-indicator-keyboard.desktop.in
index b31bec51..f7db9936 100644
--- a/data/ayatana-indicator-keyboard.desktop.in
+++ b/data/ayatana-indicator-keyboard.desktop.in
@@ -2,7 +2,7 @@
Type=Application
Name=Ayatana Indicator Keyboard
Exec=@pkglibexecdir@/ayatana-indicator-keyboard-service
-OnlyShowIn=MATE;
+OnlyShowIn=Unity;MATE;XFCE;
NoDisplay=true
StartupNotify=false
Terminal=false
diff --git a/data/ayatana-indicator-keyboard.service.in b/data/ayatana-indicator-keyboard.service.in
new file mode 100644
index 00000000..4a8e1a5d
--- /dev/null
+++ b/data/ayatana-indicator-keyboard.service.in
@@ -0,0 +1,11 @@
+[Unit]
+Description=Ayatana Indicator Keyboard
+PartOf=graphical-session.target
+PartOf=ayatana-indicators.target
+
+[Service]
+ExecStart=@pkglibexecdir@/ayatana-indicator-keyboard-service
+Restart=on-failure
+
+[Install]
+WantedBy=ayatana-indicators.target
diff --git a/data/icon-1.svg.in b/data/icon-1.svg.in
deleted file mode 100644
index 4f6fbce7..00000000
--- a/data/icon-1.svg.in
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="@WIDTH@" height="@HEIGHT@"><defs><mask id="m"><rect x="0" y="0" width="@WIDTH@" height="@HEIGHT@" style="fill:white"/><text x="@LAYOUT_X@" y="@LAYOUT_Y@" style="@LAYOUT_FONT@;fill:black">@LAYOUT@</text><text x="@SUBSCRIPT_X@" y="@SUBSCRIPT_Y@" style="@SUBSCRIPT_FONT@;fill:black">@SUBSCRIPT@</text></mask></defs><rect x="@ICON_X@" y="@ICON_Y@" width="@ICON_WIDTH@" height="@ICON_HEIGHT@" rx="@RADIUS@" mask="url(#m)" style="fill:@COLOUR@"/></svg>
diff --git a/data/icon-generator.vala b/data/icon-generator.vala
deleted file mode 100644
index 8077f093..00000000
--- a/data/icon-generator.vala
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright 2013 Canonical Ltd.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: William Hua <william.hua@canonical.com>
- */
-
-int main (string[] args) {
- var force = false;
- var width = 22.0;
- var height = 22.0;
- var icon_width = 20.0;
- var icon_height = 20.0;
- var radius = 2.0;
- var colour = "black";
- var font = "Ubuntu";
- var weight = 500;
- var layout_size = 12;
- var subscript_size = 8;
- string? output_path = null;
- string? no_subscript_path = null;
- string? with_subscript_path = null;
-
- OptionEntry[] options = new OptionEntry[15];
- options[0] = { "force", 'f', 0, OptionArg.NONE, ref force, "Overwrite existing files" };
- options[1] = { "width", 'w', 0, OptionArg.DOUBLE, ref width, "Template width", "DOUBLE" };
- options[2] = { "height", 'h', 0, OptionArg.DOUBLE, ref height, "Template height", "DOUBLE" };
- options[3] = { "icon-width", 'W', 0, OptionArg.DOUBLE, ref icon_width, "Icon width", "DOUBLE" };
- options[4] = { "icon-height", 'H', 0, OptionArg.DOUBLE, ref icon_height, "Icon height", "DOUBLE" };
- options[5] = { "radius", 'r', 0, OptionArg.DOUBLE, ref radius, "Icon radius", "DOUBLE" };
- options[6] = { "colour", 'c', 0, OptionArg.STRING, ref colour, "Icon colour", "COLOUR" };
- options[7] = { "font", 'F', 0, OptionArg.STRING, ref font, "Font family", "NAME" };
- options[8] = { "weight", 'G', 0, OptionArg.INT, ref weight, "Font weight (100 to 1000)", "INT" };
- options[9] = { "layout-size", 's', 0, OptionArg.INT, ref layout_size, "Layout font size", "INT" };
- options[10] = { "subscript-size", 'S', 0, OptionArg.INT, ref subscript_size, "Subscript font size", "INT" };
- options[11] = { "output", 'o', 0, OptionArg.FILENAME, ref output_path, "Output directory", "PATH" };
- options[12] = { "no-subscript", 'i', 0, OptionArg.FILENAME, ref no_subscript_path, "Icon template", "PATH" };
- options[13] = { "with-subscript", 'I', 0, OptionArg.FILENAME, ref with_subscript_path, "Subscript icon template", "PATH" };
- options[14] = { };
-
- try {
- var context = new OptionContext ("- generate keyboard layout icons");
- context.add_main_entries (options, null);
- context.set_help_enabled (true);
- context.parse (ref args);
- } catch (OptionError error) {
- GLib.error ("error: %s", error.message);
- }
-
- if (no_subscript_path == null && with_subscript_path == null) {
- error ("error: No icon template");
- } else if (no_subscript_path == null) {
- no_subscript_path = with_subscript_path;
- } else if (with_subscript_path == null) {
- with_subscript_path = no_subscript_path;
- }
-
- if (output_path != null) {
- var file = File.new_for_path ((!) output_path);
-
- if (!file.query_exists (null)) {
- try {
- file.make_directory_with_parents (null);
- } catch (Error error) {
- GLib.error ("error: %s", error.message);
- }
- }
- } else {
- output_path = ".";
- }
-
- Gtk.init (ref args);
-
- var info = new Gnome.XkbInfo ();
- var layouts = info.get_all_layouts ();
- var occurrences = new Gee.HashMap<string, int> ();
-
- layouts.foreach ((name) => {
- string? short_name;
-
- info.get_layout_info (name, null, out short_name, null, null);
-
- var abbreviation = abbreviate (short_name);
- var has_abbreviation = abbreviation != null && ((!) abbreviation).get_char () != '\0';
-
- if (has_abbreviation) {
- if (!occurrences.has_key ((!) abbreviation)) {
- occurrences[(!) abbreviation] = 1;
- } else {
- occurrences[(!) abbreviation] = occurrences[(!) abbreviation] + 1;
- }
- }
- });
-
- string no_subscript_data;
- string with_subscript_data;
-
- try {
- uint8[] contents;
-
- var icon_x = 0.5 * (width - icon_width);
- var icon_y = 0.5 * (height - icon_height);
- var layout_font = @"font-family:$font;font-weight:$weight;font-size:$layout_size";
- var subscript_font = @"font-family:$font;font-weight:$weight;font-size:$subscript_size";
-
- File.new_for_path ((!) no_subscript_path).load_contents (null, out contents, null);
- no_subscript_data = (string) contents;
- no_subscript_data = no_subscript_data.replace ("@WIDTH@", @"$width");
- no_subscript_data = no_subscript_data.replace ("@HEIGHT@", @"$height");
- no_subscript_data = no_subscript_data.replace ("@ICON_X@", @"$icon_x");
- no_subscript_data = no_subscript_data.replace ("@ICON_Y@", @"$icon_y");
- no_subscript_data = no_subscript_data.replace ("@ICON_WIDTH@", @"$icon_width");
- no_subscript_data = no_subscript_data.replace ("@ICON_HEIGHT@", @"$icon_height");
- no_subscript_data = no_subscript_data.replace ("@RADIUS@", @"$radius");
- no_subscript_data = no_subscript_data.replace ("@COLOUR@", colour);
- no_subscript_data = no_subscript_data.replace ("@LAYOUT_FONT@", layout_font);
- no_subscript_data = no_subscript_data.replace ("@SUBSCRIPT_FONT@", subscript_font);
-
- File.new_for_path ((!) with_subscript_path).load_contents (null, out contents, null);
- with_subscript_data = (string) contents;
- with_subscript_data = with_subscript_data.replace ("@WIDTH@", @"$width");
- with_subscript_data = with_subscript_data.replace ("@HEIGHT@", @"$height");
- with_subscript_data = with_subscript_data.replace ("@ICON_X@", @"$icon_x");
- with_subscript_data = with_subscript_data.replace ("@ICON_Y@", @"$icon_y");
- with_subscript_data = with_subscript_data.replace ("@ICON_WIDTH@", @"$icon_width");
- with_subscript_data = with_subscript_data.replace ("@ICON_HEIGHT@", @"$icon_height");
- with_subscript_data = with_subscript_data.replace ("@RADIUS@", @"$radius");
- with_subscript_data = with_subscript_data.replace ("@COLOUR@", colour);
- with_subscript_data = with_subscript_data.replace ("@LAYOUT_FONT@", layout_font);
- with_subscript_data = with_subscript_data.replace ("@SUBSCRIPT_FONT@", subscript_font);
- } catch (Error error) {
- GLib.error ("error: %s", error.message);
- }
-
- var font_map = new PangoFT2.FontMap ();
- var layout_layout = new Pango.Layout (font_map.create_context ());
- var subscript_layout = new Pango.Layout (font_map.create_context ());
-
- var font_description = new Pango.FontDescription ();
- font_description.set_family (font);
- font_description.set_weight ((Pango.Weight) weight);
- font_description.set_size (layout_size * Pango.SCALE);
- layout_layout.set_font_description (font_description);
-
- font_description = new Pango.FontDescription ();
- font_description.set_family (font);
- font_description.set_weight ((Pango.Weight) weight);
- font_description.set_size (subscript_size * Pango.SCALE);
- subscript_layout.set_font_description (font_description);
-
- foreach (var entry in occurrences.entries) {
- var layout = entry.key;
- var count = entry.value;
- var file = File.new_for_path (@"$((!) output_path)/indicator-keyboard-$layout.svg");
-
- if (force || !file.query_exists (null)) {
- int layout_width;
- int layout_height;
-
- layout_layout.set_text (layout, -1);
- layout_layout.get_size (out layout_width, out layout_height);
- var layout_baseline = layout_layout.get_baseline ();
-
- var layout_x = 0.5 * (width - 1.0 * layout_width / Pango.SCALE);
- var layout_y = 0.5 * (height - 1.0 * layout_height / Pango.SCALE) + 1.0 * layout_baseline / Pango.SCALE;
-
- var output_data = no_subscript_data;
- output_data = output_data.replace ("@LAYOUT@", layout);
- output_data = output_data.replace ("@LAYOUT_X@", @"$layout_x");
- output_data = output_data.replace ("@LAYOUT_Y@", @"$layout_y");
- output_data = output_data.replace ("@SUBSCRIPT@", "");
- output_data = output_data.replace ("@SUBSCRIPT_X@", "0");
- output_data = output_data.replace ("@SUBSCRIPT_Y@", "0");
-
- try {
- file.replace_contents (output_data.data, null, false, FileCreateFlags.REPLACE_DESTINATION, null, null);
- } catch (Error error) {
- GLib.error ("error: %s", error.message);
- }
- }
-
- if (count > 1) {
- int layout_width;
- int layout_height;
-
- layout_layout.set_text (layout, -1);
- layout_layout.get_size (out layout_width, out layout_height);
- var layout_baseline = layout_layout.get_baseline ();
-
- var layout_y = 0.5 * (height - 1.0 * layout_height / Pango.SCALE) + 1.0 * layout_baseline / Pango.SCALE;
-
- var partial_data = with_subscript_data;
- partial_data = partial_data.replace ("@LAYOUT@", layout);
- partial_data = partial_data.replace ("@LAYOUT_Y@", @"$layout_y");
-
- for (var i = 1; i <= count; i++) {
- file = File.new_for_path (@"$((!) output_path)/indicator-keyboard-$layout-$i.svg");
-
- if (force || !file.query_exists (null)) {
- var subscript = @"$i";
- int subscript_width;
- int subscript_height;
-
- subscript_layout.set_text (subscript, -1);
- subscript_layout.get_size (out subscript_width, out subscript_height);
- var subscript_baseline = subscript_layout.get_baseline ();
-
- var layout_x = 0.5 * (width - 1.0 * (layout_width + subscript_width) / Pango.SCALE);
- var subscript_x = layout_x + 1.0 * layout_width / Pango.SCALE;
- var subscript_y = layout_y - 0.5 * subscript_height / Pango.SCALE + 1.0 * subscript_baseline / Pango.SCALE;
-
- var output_data = partial_data;
- output_data = output_data.replace ("@LAYOUT_X@", @"$layout_x");
- output_data = output_data.replace ("@LAYOUT_Y@", @"$layout_y");
- output_data = output_data.replace ("@SUBSCRIPT@", subscript);
- output_data = output_data.replace ("@SUBSCRIPT_X@", @"$subscript_x");
- output_data = output_data.replace ("@SUBSCRIPT_Y@", @"$subscript_y");
-
- try {
- file.replace_contents (output_data.data, null, false, FileCreateFlags.REPLACE_DESTINATION, null, null);
- } catch (Error error) {
- GLib.error ("error: %s", error.message);
- }
- }
- }
- }
- }
-
- return 0;
-}
diff --git a/data/icon.svg.in b/data/icon.svg.in
deleted file mode 100644
index 5e0dcbc8..00000000
--- a/data/icon.svg.in
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="@WIDTH@" height="@HEIGHT@"><defs><mask id="m"><rect x="0" y="0" width="@WIDTH@" height="@HEIGHT@" style="fill:white"/><text x="@LAYOUT_X@" y="@LAYOUT_Y@" style="@LAYOUT_FONT@;fill:black">@LAYOUT@</text></mask></defs><rect x="@ICON_X@" y="@ICON_Y@" width="@ICON_WIDTH@" height="@ICON_HEIGHT@" rx="@RADIUS@" mask="url(#m)" style="fill:@COLOUR@"/></svg>
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ak.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ak.svg
new file mode 100644
index 00000000..175706f7
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ak.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ak</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-am.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-am.svg
new file mode 100644
index 00000000..c04908a7
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-am.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="-0.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Am</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ap.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ap.svg
new file mode 100644
index 00000000..a1b7017e
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ap.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ap</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ar.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ar.svg
new file mode 100644
index 00000000..35e6b648
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ar.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ar</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-as.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-as.svg
new file mode 100644
index 00000000..d605e746
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-as.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">As</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-av.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-av.svg
new file mode 100644
index 00000000..35ff04fb
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-av.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Av</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-az.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-az.svg
new file mode 100644
index 00000000..a51d569c
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-az.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Az</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-be.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-be.svg
new file mode 100644
index 00000000..dadc4d5c
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-be.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Be</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-bg.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-bg.svg
new file mode 100644
index 00000000..84cc83c2
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-bg.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Bg</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-bm.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-bm.svg
new file mode 100644
index 00000000..c094d92a
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-bm.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="-0.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Bm</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-bn.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-bn.svg
new file mode 100644
index 00000000..24c41d64
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-bn.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Bn</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-br.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-br.svg
new file mode 100644
index 00000000..92e7ccc3
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-br.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Br</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-bs.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-bs.svg
new file mode 100644
index 00000000..ba1a9e88
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-bs.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Bs</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-by.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-by.svg
new file mode 100644
index 00000000..3118da5b
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-by.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">By</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ca.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ca.svg
new file mode 100644
index 00000000..23542658
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ca.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ca</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ch.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ch.svg
new file mode 100644
index 00000000..ac87bea2
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ch.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ch</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-cm.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-cm.svg
new file mode 100644
index 00000000..61b89953
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-cm.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="-0.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Cm</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-cr.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-cr.svg
new file mode 100644
index 00000000..125bc583
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-cr.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Cr</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-cs.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-cs.svg
new file mode 100644
index 00000000..4a37213b
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-cs.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Cs</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-da.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-da.svg
new file mode 100644
index 00000000..d2d5f579
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-da.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="1.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Da</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-de.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-de.svg
new file mode 100644
index 00000000..040aa311
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-de.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="1.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">De</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-dl.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-dl.svg
new file mode 100644
index 00000000..37436f1a
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-dl.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Dl</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-dv.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-dv.svg
new file mode 100644
index 00000000..7c81daba
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-dv.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="1.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Dv</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-dz.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-dz.svg
new file mode 100644
index 00000000..7ae9aec1
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-dz.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Dz</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ee.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ee.svg
new file mode 100644
index 00000000..6b9d6454
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ee.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ee</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-en.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-en.svg
new file mode 100644
index 00000000..0e50ff79
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-en.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">En</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-eo.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-eo.svg
new file mode 100644
index 00000000..927ebf11
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-eo.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Eo</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-es.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-es.svg
new file mode 100644
index 00000000..acabf044
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-es.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Es</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-et.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-et.svg
new file mode 100644
index 00000000..917ff2a3
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-et.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Et</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-eu.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-eu.svg
new file mode 100644
index 00000000..69b19223
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-eu.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Eu</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-fa.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-fa.svg
new file mode 100644
index 00000000..5fcf1ba2
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-fa.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Fa</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ff.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ff.svg
new file mode 100644
index 00000000..62ec11e4
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ff.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ff</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-fi.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-fi.svg
new file mode 100644
index 00000000..e596b990
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-fi.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="6.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Fi</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-fo.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-fo.svg
new file mode 100644
index 00000000..8d931585
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-fo.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Fo</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-fr.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-fr.svg
new file mode 100644
index 00000000..c28989cb
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-fr.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Fr</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ga.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ga.svg
new file mode 100644
index 00000000..a3a67be7
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ga.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="1.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ga</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-gr.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-gr.svg
new file mode 100644
index 00000000..e7b705a0
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-gr.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Gr</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-gu.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-gu.svg
new file mode 100644
index 00000000..9fd9728c
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-gu.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="1.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Gu</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ha.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ha.svg
new file mode 100644
index 00000000..0b0bfc7c
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ha.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ha</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-he.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-he.svg
new file mode 100644
index 00000000..ff361d9d
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-he.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">He</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-hi.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-hi.svg
new file mode 100644
index 00000000..14e0b72a
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-hi.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Hi</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-hr.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-hr.svg
new file mode 100644
index 00000000..93d60ba8
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-hr.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Hr</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-hu.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-hu.svg
new file mode 100644
index 00000000..295d5f06
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-hu.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="1.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Hu</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-hy.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-hy.svg
new file mode 100644
index 00000000..fd3ff223
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-hy.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Hy</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-id.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-id.svg
new file mode 100644
index 00000000..74189fea
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-id.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Id</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ie.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ie.svg
new file mode 100644
index 00000000..77d899d2
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ie.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ie</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ig.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ig.svg
new file mode 100644
index 00000000..810bf4b3
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ig.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ig</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ik.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ik.svg
new file mode 100644
index 00000000..0ac4c716
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ik.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ik</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-in.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-in.svg
new file mode 100644
index 00000000..35d431a5
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-in.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">In</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-is.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-is.svg
new file mode 100644
index 00000000..221b3800
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-is.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="6.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Is</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-it.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-it.svg
new file mode 100644
index 00000000..32ae3d21
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-it.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="7.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">It</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ja.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ja.svg
new file mode 100644
index 00000000..eb722bd6
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ja.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ja</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-jv.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-jv.svg
new file mode 100644
index 00000000..6e4e501e
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-jv.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Jv</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ka.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ka.svg
new file mode 100644
index 00000000..5856d13a
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ka.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ka</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ki.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ki.svg
new file mode 100644
index 00000000..c6b2108e
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ki.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ki</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-kk.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-kk.svg
new file mode 100644
index 00000000..672ed129
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-kk.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Kk</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-km.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-km.svg
new file mode 100644
index 00000000..9980f46d
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-km.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="-0.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Km</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-kn.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-kn.svg
new file mode 100644
index 00000000..3394668b
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-kn.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Kn</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ko.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ko.svg
new file mode 100644
index 00000000..d63470aa
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ko.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ko</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ku.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ku.svg
new file mode 100644
index 00000000..78ed6d89
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ku.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ku</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-lo.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-lo.svg
new file mode 100644
index 00000000..8ee50efd
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-lo.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Lo</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-lt.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-lt.svg
new file mode 100644
index 00000000..5e879462
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-lt.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Lt</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-lv.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-lv.svg
new file mode 100644
index 00000000..391e55f4
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-lv.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Lv</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-md.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-md.svg
new file mode 100644
index 00000000..8b4d4a2a
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-md.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="0.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Md</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-mi.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-mi.svg
new file mode 100644
index 00000000..ed86b260
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-mi.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Mi</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-mk.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-mk.svg
new file mode 100644
index 00000000..5a6b3b98
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-mk.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="1.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Mk</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ml.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ml.svg
new file mode 100644
index 00000000..7c6d7d11
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ml.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ml</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-mn.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-mn.svg
new file mode 100644
index 00000000..695dced8
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-mn.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="0.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Mn</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-mr.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-mr.svg
new file mode 100644
index 00000000..77eeae1a
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-mr.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Mr</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ms.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ms.svg
new file mode 100644
index 00000000..8b08d301
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ms.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="1.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ms</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-mt.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-mt.svg
new file mode 100644
index 00000000..e6e7340b
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-mt.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Mt</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-my.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-my.svg
new file mode 100644
index 00000000..f31cfa97
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-my.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="1.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">My</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ne.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ne.svg
new file mode 100644
index 00000000..934c2d07
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ne.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ne</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-nl.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-nl.svg
new file mode 100644
index 00000000..1f49af92
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-nl.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Nl</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-no.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-no.svg
new file mode 100644
index 00000000..eb67598b
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-no.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">No</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ol.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ol.svg
new file mode 100644
index 00000000..53a7afb4
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ol.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ol</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-or.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-or.svg
new file mode 100644
index 00000000..71c6050a
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-or.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Or</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-pa.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-pa.svg
new file mode 100644
index 00000000..94548d50
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-pa.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Pa</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ph.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ph.svg
new file mode 100644
index 00000000..94c63e7a
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ph.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ph</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-pl.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-pl.svg
new file mode 100644
index 00000000..280263e0
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-pl.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Pl</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ps.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ps.svg
new file mode 100644
index 00000000..6ef25f86
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ps.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ps</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-pt.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-pt.svg
new file mode 100644
index 00000000..e7de86c9
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-pt.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Pt</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ro.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ro.svg
new file mode 100644
index 00000000..ff94c7c2
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ro.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ro</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ru.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ru.svg
new file mode 100644
index 00000000..930daccf
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ru.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ru</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-sa.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-sa.svg
new file mode 100644
index 00000000..332c2012
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-sa.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Sa</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-sd.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-sd.svg
new file mode 100644
index 00000000..488efb11
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-sd.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Sd</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-sh.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-sh.svg
new file mode 100644
index 00000000..164429b0
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-sh.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Sh</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-si.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-si.svg
new file mode 100644
index 00000000..dd9baca7
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-si.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Si</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-sk.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-sk.svg
new file mode 100644
index 00000000..f41e6a73
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-sk.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Sk</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-sl.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-sl.svg
new file mode 100644
index 00000000..494965ff
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-sl.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Sl</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-sq.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-sq.svg
new file mode 100644
index 00000000..4e88ab56
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-sq.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Sq</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-sr.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-sr.svg
new file mode 100644
index 00000000..30eb3949
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-sr.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Sr</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-sv.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-sv.svg
new file mode 100644
index 00000000..d9f3cb4d
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-sv.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Sv</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-sw.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-sw.svg
new file mode 100644
index 00000000..998a3838
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-sw.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="1.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Sw</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-sy.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-sy.svg
new file mode 100644
index 00000000..7e929752
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-sy.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Sy</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ta.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ta.svg
new file mode 100644
index 00000000..79fe78f4
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ta.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ta</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-te.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-te.svg
new file mode 100644
index 00000000..973ffdaa
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-te.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Te</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-tg.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-tg.svg
new file mode 100644
index 00000000..d82a955f
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-tg.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Tg</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-th.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-th.svg
new file mode 100644
index 00000000..309f217b
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-th.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Th</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-tk.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-tk.svg
new file mode 100644
index 00000000..462819f3
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-tk.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Tk</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-tn.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-tn.svg
new file mode 100644
index 00000000..e46cf90d
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-tn.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Tn</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-tr.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-tr.svg
new file mode 100644
index 00000000..db0bb1f6
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-tr.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Tr</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-uf.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-uf.svg
new file mode 100644
index 00000000..227e0acd
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-uf.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Uf</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ug.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ug.svg
new file mode 100644
index 00000000..d7054f37
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ug.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="1.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ug</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-uk.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-uk.svg
new file mode 100644
index 00000000..b3a81c05
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-uk.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Uk</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-ur.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-ur.svg
new file mode 100644
index 00000000..f85b6162
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-ur.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Ur</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-us.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-us.svg
new file mode 100644
index 00000000..7b622f7f
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-us.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Us</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-uz.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-uz.svg
new file mode 100644
index 00000000..66ca7443
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-uz.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Uz</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-vi.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-vi.svg
new file mode 100644
index 00000000..91a59b4e
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-vi.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="5.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Vi</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-wo.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-wo.svg
new file mode 100644
index 00000000..95d4ad6e
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-wo.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="0.5" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Wo</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-xs.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-xs.svg
new file mode 100644
index 00000000..b16ddbd1
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-xs.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="3.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Xs</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-yo.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-yo.svg
new file mode 100644
index 00000000..fbf64462
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-yo.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="4.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Yo</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-zg.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-zg.svg
new file mode 100644
index 00000000..f97e1aa1
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-zg.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Zg</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/icons/scalable/status/ayatana-indicator-keyboard-zh.svg b/data/icons/scalable/status/ayatana-indicator-keyboard-zh.svg
new file mode 100644
index 00000000..00366a2a
--- /dev/null
+++ b/data/icons/scalable/status/ayatana-indicator-keyboard-zh.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="24" height="24"><defs><mask id="m"><rect x="0" y="0" width="24" height="24" style="fill:white"/><text x="2.0" y="17.193359375" style="font-family:Sans Regular;font-weight:500;font-size:15;fill:black">Zh</text></mask></defs><rect x="0.0" y="0.0" width="24" height="24" rx="3" mask="url(#m)" style="fill:#ffffff"/></svg> \ No newline at end of file
diff --git a/data/org.ayatana.indicator.keyboard b/data/org.ayatana.indicator.keyboard
new file mode 100644
index 00000000..0af4084a
--- /dev/null
+++ b/data/org.ayatana.indicator.keyboard
@@ -0,0 +1,14 @@
+[Indicator Service]
+Name=ayatana-indicator-keyboard
+ObjectPath=/org/ayatana/indicator/keyboard
+Position=-10
+
+[phone]
+ObjectPath=/org/ayatana/indicator/keyboard/phone
+Position=25
+
+[desktop]
+ObjectPath=/org/ayatana/indicator/keyboard/desktop
+
+[desktop_greeter]
+ObjectPath=/org/ayatana/indicator/keyboard/desktop_greeter
diff --git a/data/org.ayatana.indicator.keyboard.gschema.xml b/data/org.ayatana.indicator.keyboard.gschema.xml
deleted file mode 100644
index 81ca4537..00000000
--- a/data/org.ayatana.indicator.keyboard.gschema.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schemalist>
- <schema id="org.ayatana.indicator.keyboard" path="/org/ayatana/indicator/keyboard/">
- <key name="migrated" type="b">
- <summary>Keyboard layouts migrated</summary>
- <description>True if keyboard layouts were migrated, false otherwise.</description>
- <default>false</default>
- </key>
- <key name="visible" type="b">
- <summary>Keyboard indicator visibility</summary>
- <description>True if the keyboard indicator is shown, false otherwise.</description>
- <default>true</default>
- </key>
- </schema>
-</schemalist>
diff --git a/data/upstart/Makefile.am b/data/upstart/Makefile.am
deleted file mode 100644
index c762a603..00000000
--- a/data/upstart/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-###########################
-# Upstart XDG Override
-###########################
-
-xdg_autostartdir = $(datadir)/upstart/xdg/autostart
-xdg_autostart_DATA = ayatana-indicator-keyboard.desktop
-
-%.desktop: %.desktop.in
- $(AM_V_GEN) sed -e "s|\@pkglibexecdir\@|$(pkglibexecdir)|" $< > $@
-
-EXTRA_DIST = ayatana-indicator-keyboard.desktop.in
-
diff --git a/data/upstart/ayatana-indicator-keyboard.desktop.in b/data/upstart/ayatana-indicator-keyboard.desktop.in
deleted file mode 100644
index f20783be..00000000
--- a/data/upstart/ayatana-indicator-keyboard.desktop.in
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Type=Application
-Name=Ayatana Indicator Keyboard
-Exec=@pkglibexecdir@/ayatana-indicator-keyboard-service
-OnlyShowIn=Unity;
-NoDisplay=true
-StartupNotify=false
-Terminal=false
-Hidden=true