Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:GA
xorg-x11-server.33719
U_kdrive-add-options-to-set-default-XKB-propert...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File U_kdrive-add-options-to-set-default-XKB-properties.patch of Package xorg-x11-server.33719
From 40e32e9fc9f3a1bd8287ee03dd399d8161cb98dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= <laerciosousa@sme-mogidascruzes.sp.gov.br> Date: Fri, 12 Feb 2016 14:18:00 -0200 Subject: [PATCH 54/56] kdrive: add options to set default XKB properties MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch introduces convenient command-line options -xkb-rules, -xkb-model, -xkb-layout, -xkb-variant, and -xkb-options, to set default values for these properties. These options can be handful for cases in which compile-time default values don't match user locale, since kdrive doesn't support InputClass matching rules yet and not all Linux distros provide default rules to store these values in udev properties (which by the way is a discouraged practice). Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: LaƩrcio de Sousa <laerciosousa@sme-mogidascruzes.sp.gov.br> --- hw/kdrive/src/kdrive.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ hw/kdrive/src/kinput.c | 16 +++++++++++----- 2 files changed, 61 insertions(+), 5 deletions(-) diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c index 269b609..52bea5a 100644 --- a/hw/kdrive/src/kdrive.c +++ b/hw/kdrive/src/kdrive.c @@ -89,6 +89,11 @@ char *kdSwitchCmd; DDXPointRec kdOrigin; Bool kdHasPointer = FALSE; Bool kdHasKbd = FALSE; +const char *kdGlobalXkbRules = NULL; +const char *kdGlobalXkbModel = NULL; +const char *kdGlobalXkbLayout = NULL; +const char *kdGlobalXkbVariant = NULL; +const char *kdGlobalXkbOptions = NULL; static Bool kdCaughtSignal = FALSE; @@ -455,6 +460,11 @@ KdUseMsg(void) ("-mouse driver [,n,,options] Specify the pointer driver and its options (n is the number of buttons)\n"); ErrorF ("-keybd driver [,,options] Specify the keyboard driver and its options\n"); + ErrorF("-xkb-rules Set default XkbRules value (can be overriden by -keybd options)\n"); + ErrorF("-xkb-model Set default XkbModel value (can be overriden by -keybd options)\n"); + ErrorF("-xkb-layout Set default XkbLayout value (can be overriden by -keybd options)\n"); + ErrorF("-xkb-variant Set default XkbVariant value (can be overriden by -keybd options)\n"); + ErrorF("-xkb-options Set default XkbOptions value (can be overriden by -keybd options)\n"); ErrorF("-zaphod Disable cursor screen switching\n"); ErrorF("-2button Emulate 3 button mouse\n"); ErrorF("-3button Disable 3 button mouse emulation\n"); @@ -563,6 +573,46 @@ KdProcessArgument(int argc, char **argv, int i) sscanf(argv[i], "vt%2d", &kdVirtualTerminal) == 1) { return 1; } + if (!strcmp(argv[i], "-xkb-rules")) { + if (i + 1 >= argc) { + UseMsg(); + FatalError("Missing argument for option -xkb-rules.\n"); + } + kdGlobalXkbRules = argv[i + 1]; + return 2; + } + if (!strcmp(argv[i], "-xkb-model")) { + if (i + 1 >= argc) { + UseMsg(); + FatalError("Missing argument for option -xkb-model.\n"); + } + kdGlobalXkbModel = argv[i + 1]; + return 2; + } + if (!strcmp(argv[i], "-xkb-layout")) { + if (i + 1 >= argc) { + UseMsg(); + FatalError("Missing argument for option -xkb-layout.\n"); + } + kdGlobalXkbLayout = argv[i + 1]; + return 2; + } + if (!strcmp(argv[i], "-xkb-variant")) { + if (i + 1 >= argc) { + UseMsg(); + FatalError("Missing argument for option -xkb-variant.\n"); + } + kdGlobalXkbVariant = argv[i + 1]; + return 2; + } + if (!strcmp(argv[i], "-xkb-options")) { + if (i + 1 >= argc) { + UseMsg(); + FatalError("Missing argument for option -xkb-options.\n"); + } + kdGlobalXkbOptions = argv[i + 1]; + return 2; + } if (!strcmp(argv[i], "-mouse") || !strcmp(argv[i], "-pointer")) { if (i + 1 >= argc) UseMsg(); diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c index fd6a952..836db79 100644 --- a/hw/kdrive/src/kinput.c +++ b/hw/kdrive/src/kinput.c @@ -102,6 +102,12 @@ static int kdNumInputFds; extern Bool kdRawPointerCoordinates; +extern const char *kdGlobalXkbRules; +extern const char *kdGlobalXkbModel; +extern const char *kdGlobalXkbLayout; +extern const char *kdGlobalXkbVariant; +extern const char *kdGlobalXkbOptions; + static void KdSigio(int sig) { @@ -909,11 +915,11 @@ KdNewKeyboard(void) ki->options = NULL; ki->name = strdup("Generic Keyboard"); ki->path = NULL; - ki->xkbRules = strdup(XKB_DFLT_RULES); - ki->xkbModel = strdup(XKB_DFLT_MODEL); - ki->xkbLayout = strdup(XKB_DFLT_LAYOUT); - ki->xkbVariant = strdup(XKB_DFLT_VARIANT); - ki->xkbOptions = strdup(XKB_DFLT_OPTIONS); + ki->xkbRules = strdup(kdGlobalXkbRules ? kdGlobalXkbRules : XKB_DFLT_RULES); + ki->xkbModel = strdup(kdGlobalXkbModel ? kdGlobalXkbModel : XKB_DFLT_MODEL); + ki->xkbLayout = strdup(kdGlobalXkbLayout ? kdGlobalXkbLayout : XKB_DFLT_LAYOUT); + ki->xkbVariant = strdup(kdGlobalXkbVariant ? kdGlobalXkbVariant :XKB_DFLT_VARIANT); + ki->xkbOptions = strdup(kdGlobalXkbOptions ? kdGlobalXkbOptions : XKB_DFLT_OPTIONS); return ki; } -- 2.6.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor