Hi, Similar to this poster from 2007:
http://lists.freedesktop.org/archives/xorg/2007-March/022701.html I wanted to disable all mouse buttons except button 1 (or re-map them to appear as button 1). The man page for XSetPointerMapping says that this can be achieved by mapping to 'button 0', but xmodmap doesn't allow this: % xmodmap -e 'pointer = 1 0 0 4 5' xmodmap: commandline:0: bad value 0 given for buttons list xmodmap: 1 error encountered, aborting. On looking at the source, it seems that this is a misbehaviour of 'parse_number' in handle.c, which rejects the string "0 ", i.e., a zero followed by a space. The patch below fixes this, and then the above xmodmap invocation has the desired effect of disabling buttons 2 and 3. I found a more recent mail message http://lists.freedesktop.org/archives/xorg/2008-March/033996.html which says that xmodmap was going away in favour of xinput, but might it be worth applying this patch while xmodmap is still around? Thanks, Ben. --- ORIG--handle.c 2007-08-06 23:58:57.000000000 +0100 +++ handle.c 2009-01-20 15:01:47.547413000 +0000 @@ -265,24 +265,25 @@ print_opcode (p); } return; } static Bool parse_number(const char *str, unsigned long *val) { char *fmt = "%ld"; if (*str == '0') { str++; + while (isspace(*str)) str++; fmt = "%lo"; if (*str == '\0') { *val = 0; return 1; } if (*str == 'x' || *str == 'X') { str++; fmt = "%lx"; } } return (sscanf (str, fmt, val) == 1); } _______________________________________________ xorg mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/xorg
