From 4271eb6b3eb2873e855a5bf2f4e7e234226924b3 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Tue, 22 Mar 2011 18:23:04 +0900 Subject: [PATCH] Pick keyboard file in $(keyboarddir). --- src/Makefile.am | 3 ++- src/client-main.c | 14 +++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 409ed7d8..48de0700 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -30,7 +30,8 @@ eekboard_CFLAGS = \ $(GTK_CFLAGS) \ $(GCONF2_CFLAGS) \ $(XKB_CFLAGS) \ - $(LIBXKLAVIER_CFLAGS) + $(LIBXKLAVIER_CFLAGS) \ + -DKEYBOARDDIR=\"$(pkgdatadir)/keyboards\" eekboard_LDADD = \ $(builddir)/libxklutil.la \ diff --git a/src/client-main.c b/src/client-main.c index 121de9e8..7db74bb4 100644 --- a/src/client-main.c +++ b/src/client-main.c @@ -58,7 +58,7 @@ static const GOptionEntry options[] = { N_("Listen keystroke events with AT-SPI")}, #endif /* HAVE_CSPI */ {"keyboard", 'k', 0, G_OPTION_ARG_STRING, &opt_keyboard, - N_("Specify keyboard file")}, + N_("Specify keyboard")}, {"model", '\0', 0, G_OPTION_ARG_STRING, &opt_model, N_("Specify model")}, {"layouts", '\0', 0, G_OPTION_ARG_STRING, &opt_layouts, @@ -208,10 +208,18 @@ main (int argc, char **argv) } if (opt_keyboard) { - if (!eekboard_client_load_keyboard_from_file (client, opt_keyboard)) { - g_printerr ("Can't load keyboard\n"); + gchar *file; + + if (g_str_has_suffix (opt_keyboard, ".xml")) + file = g_strdup (opt_keyboard); + else + file = g_strdup_printf ("%s/%s.xml", KEYBOARDDIR, opt_keyboard); + if (!eekboard_client_load_keyboard_from_file (client, file)) { + g_printerr ("Can't load keyboard file %s\n", file); + g_free (file); exit (1); } + g_free (file); } else if (opt_model || opt_layouts || opt_options) { if (!eekboard_client_set_xkl_config (client, opt_model,