diff --git a/data/org.fedorahosted.eekboard.gschema.xml.in b/data/org.fedorahosted.eekboard.gschema.xml.in
index 6b87e157..d30fb787 100644
--- a/data/org.fedorahosted.eekboard.gschema.xml.in
+++ b/data/org.fedorahosted.eekboard.gschema.xml.in
@@ -46,5 +46,10 @@
Switch to fullscreen mode when startup
If true, switch to fullscreen mode when startup.
+
+ 'default'
+ Theme
+ Base name of the theme to apply.
+
diff --git a/src/server-context-service.c b/src/server-context-service.c
index bb7111e0..b0958bec 100644
--- a/src/server-context-service.c
+++ b/src/server-context-service.c
@@ -33,8 +33,6 @@
#include "server-context-service.h"
-#define DEFAULT_THEME (THEMEDIR "/default.css")
-
enum {
PROP_0,
PROP_UI_TOOLKIT,
@@ -292,7 +290,9 @@ update_widget (ServerContextService *context)
const EekKeyboard *keyboard;
const gchar *client_name;
EekBounds bounds;
+ gchar *theme_name, *theme_path;
EekTheme *theme;
+
#if HAVE_CLUTTER_GTK
ClutterActor *stage, *actor;
ClutterColor stage_color = { 0xff, 0xff, 0xff, 0xff };
@@ -301,7 +301,13 @@ update_widget (ServerContextService *context)
if (context->widget)
gtk_widget_destroy (context->widget);
- theme = eek_theme_new (DEFAULT_THEME, NULL, NULL);
+ theme_name = g_settings_get_string (context->settings, "theme");
+ theme_path = g_strdup_printf ("%s/%s.css", THEMEDIR, theme_name);
+ g_free (theme_name);
+
+ theme = eek_theme_new (theme_path, NULL, NULL);
+ g_free (theme_path);
+
keyboard = eekboard_context_service_get_keyboard (EEKBOARD_CONTEXT_SERVICE(context));
eek_element_get_bounds (EEK_ELEMENT(keyboard), &bounds);
if (context->ui_toolkit == UI_TOOLKIT_CLUTTER) {