Bug#245065: xbase-clients: add an option to let setxkbmap ignore current server settings
Package: xbase-clients
Version: 4.3.0-7
Severity: wishlist
Tags: patch
Hi Branden,
I wrote:
One problem with latest XKB bugreports (changes in X 4.3) is that we
do not know if xlibs has to be blamed, or if other apps are modifying
XKB settings. In order to reproduce the reported bugs, I slightly
hacked setxkbmap.c to ignore current server settings. If a -noserver
command-line flag is added (patch attached), we could ask submitters
to run a setxkbmap command and determine if this bug belongs to xlibs.
and you requested a bugreport in
http://lists.debian.org/debian-x-0404/msg00796.html
I would like to read your comments before patching documentation ;)
Denis
Index: setxkbmap.c
===================================================================
RCS file: /cvs/xc/programs/setxkbmap/setxkbmap.c,v
retrieving revision 3.8
diff -u -r3.8 setxkbmap.c
--- setxkbmap.c 17 Nov 2003 22:20:50 -0000 3.8
+++ setxkbmap.c 18 Apr 2004 19:59:22 -0000
@@ -83,6 +83,7 @@
/***====================================================================***/
Bool print= False;
Bool synch= False;
+Bool noserver= False;
int verbose= 5;
Display * dpy;
@@ -210,6 +211,7 @@
MSG("-keymap <name> Specifies name of keymap to load\n");
MSG("-layout <name> Specifies layout used to choose component names\n");
MSG("-model <name> Specifies model used to choose component names\n");
+ MSG("-noserver Ignores current server settings\n");
MSG("-option <name> Adds an option used to choose component names\n");
MSG("-print Print a complete xkb_keymap description and exit\n");
MSG("-rules <name> Name of rules file to use\n");
@@ -370,6 +372,8 @@
ok= setOptString(&i,argc,argv,SYMBOLS_NDX,FROM_CMD_LINE);
else if (streq(argv[i],"-synch"))
synch= True;
+ else if (streq(argv[i],"-noserver"))
+ noserver= True;
else if (streq(argv[i],"-types"))
ok= setOptString(&i,argc,argv,TYPES_NDX,FROM_CMD_LINE);
else if (streq(argv[i],"-verbose")||(streq(argv[i],"-v"))) {
@@ -835,9 +839,9 @@
if ((!parseArgs(argc,argv))||(!getDisplay(argc,argv)))
exit(-1);
svValue[LOCALE_NDX]= setlocale(LC_ALL,svValue[LOCALE_NDX]);
- svSrc[LOCALE_NDX]= FROM_SERVER;
+ svSrc[LOCALE_NDX]= (noserver?FROM_CMD_LINE:FROM_SERVER);
VMSG1(7,"locale is %s\n",svValue[LOCALE_NDX]);
- if (dpy)
+ if (dpy && !noserver)
getServerValues();
if (svValue[CONFIG_NDX] && (!applyConfig(svValue[CONFIG_NDX])))
exit(-3);
Reply to: