Gentoo Archives: gentoo-desktop

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-desktop@l.g.o
Subject: [gentoo-desktop] Re: How to set per-device mouse sensitivity : Revisited !
Date: Wed, 21 Apr 2010 20:48:17
Message-Id: pan.2010.04.21.20.47.22@cox.net
In Reply to: [gentoo-desktop] How to set per-device mouse sensitivity : Revisited ! by Mickael Chazaux
1 Mickael Chazaux posted on Wed, 21 Apr 2010 20:36:32 +0200 as excerpted:
2
3 > Hi,
4 >
5 > Again, I hit in the whizzingly fast mouse problem with Xorg. With my
6 > previous release of Xorg (1.7.6) I solved this using a hal FDI file.
7 > Here is the link fore reference :
8 >
9 > http://www.gossamer-threads.com/lists/gentoo/desktop/207830
10 >
11 > The solution was to merge this XML fragment [snip]
12
13 > Today I tried Xorg 1.8.0, and I added this content to
14 > /etc/X11/xorg.conf.d/10-evdev.conf :
15 >
16 > Section "InputClass"
17 > Identifier "My mouse"
18 > MatchProduct "Bluetooth Laser Travel Mouse"
19 > Option "AccelerationProfile" "-1"
20 > Option "ConstantDeceleration" "10"
21 > EndSection
22 >
23 > In Xorg log (Xorg -retro -verbose 10 2>log) I see :
24 >
25 > (II) config/udev: Adding input device Bluetooth Laser Travel Mouse
26 > (/dev/input/event12)
27 > (**) Bluetooth Laser Travel Mouse: Applying InputClass "My mouse"
28 > <<<<<<<<<<<
29 > (**) Bluetooth Laser Travel Mouse: Applying InputClass "evdev pointer
30 > catchall"
31 > (**) Bluetooth Laser Travel Mouse: always reports core events
32 > (**) Bluetooth Laser Travel Mouse: Device: "/dev/input/event12"
33 > (II) Bluetooth Laser Travel Mouse: Found 12 mouse buttons
34 > (II) Bluetooth Laser Travel Mouse: Found scroll wheel(s)
35 > (II) Bluetooth Laser Travel Mouse: Found relative axes
36 > (II) Bluetooth Laser Travel Mouse: Found x and y relative axes
37 > (II) Bluetooth Laser Travel Mouse: Configuring as mouse
38 > (**) Bluetooth Laser Travel Mouse: YAxisMapping: buttons 4 and 5
39 > (**) Bluetooth Laser Travel Mouse: EmulateWheelButton: 4,
40 > EmulateWheelInertia: 10, EmulateWheelTimeout: 200
41 > (II) XINPUT: Adding extended input device "Bluetooth Laser Travel
42 > Mouse" (type: MOUSE)
43 > (II) Bluetooth Laser Travel Mouse: initialized for relative axes.
44 > (II) config/udev: Adding input device Bluetooth Laser Travel Mouse
45 > (/dev/input/mouse2)
46 > (**) Bluetooth Laser Travel Mouse: Applying InputClass "My mouse"
47 > (EE) No input driver/identifier specified (ignoring)
48 >
49 > So I assume my options are merged in the configuration. But it has no
50 > effect. What can be wrong ?
51
52 Your options DO seem to be merged as we see it applying the specific
53 inputclass by ID string.
54
55 However, we see it detected twice, using two different device files and
56 kernel drivers.
57
58 Do you use gpm for text-mode mouse? AFAIK, it doesn't yet support evdev,
59 or at least I couldn't figure out how to do it, so if you use it, you need
60 to keep the kernel input/mouse driver around for that. But if you don't
61 use a mouse at the text console anyway, you can probably disable the
62 kernel mouse driver and thus /dev/input/mouseX and mice, while keeping
63 evdev and /dev/input/eventX. That would simplify things for udev and X,
64 somewhat.
65
66 But if like me you use gpm and thus need to keep /dev/input/mice and the
67 individual mouseX devices around, you'll just have to live with the extra
68 devices, as I am. By default, xorg-server is set, using the catchall, to
69 only use evdev, and to ignore the mouse device as it won't be assigned a
70 driver, as that (EE) log entry seems to indicate is happening. So that
71 itself shouldn't be an issue.
72
73 What I'm wondering, however, is if either the order of application or the
74 application of your own settings to the /dev/input/mouseX device (despite
75 it not having an assigned driver) is screwing things up.
76
77 What happens if...?
78
79 OK, before we get to that, I just noticed something else. You're editing
80 the default /etc/X11/xorg.conf.d/10-evdev.conf .
81
82 There's a better way. Create your OWN file, something like
83 00-mc-bluetooth-mouse.conf . 00- puts it in order before the 10- file, so
84 it's processed first and thus receives precedence over the defaults. -mc-
85 is your initials. Here, I use jed, my initials, to indicate my own
86 settings. The idea is simply to make it easy to distinguish your own
87 settings from any default settings. Then follows a name that identifies
88 the function to you, with the .conf extension, or X will ignore it.
89
90 That way, the default files stay unmodified and are easier and less risky
91 to etc-update or whatever you use.
92
93 So you probably want to create your own separate file, as I mentioned, and
94 leave the default one untouched.
95
96 Now that we got that out of the way... what happens...
97
98 ... if you add a couple more lines to your section inputclass, above, like
99 so (MatchDevicePath and Driver, also note that I've column tabulated the
100 entries for ease of reading, I had my whole xorg.conf aligned like this,
101 and of course now do it in my xorg.conf.d/*.conf files):
102
103 Section "InputClass"
104 Identifier "My mouse"
105 MatchProduct "Bluetooth Laser Travel Mouse"
106 MatchDevicePath "/dev/input/event*"
107 Driver "evdev"
108 Option "AccelerationProfile" "-1"
109 Option "ConstantDeceleration" "10"
110 EndSection
111
112 The idea for the event* devicepath match came from the blog entry
113 introducing xorg.conf.d to the world, here (see Dan Nicholson's Jan 4 2010
114 5:02 PM, comment):
115
116 http://who-t.blogspot.com/2010/01/new-configuration-world-order.html
117
118 Basically, what we're doing is confining our config so it ONLY matches
119 that product, ONLY on evdev devicefiles, NOT on /dev/input/mouseX files.
120 That way, it's now safe to tell it specifically to load the evdev driver,
121 without having to worry about it trying to use that driver on the mouseX
122 devfile as well.
123
124 With this in place, it shouldn't fall thru to the catchall entry at all,
125 and we should eliminate all possibility of it getting mixed up by either
126 that, or the mouseX device.
127
128 If desired, you can add a similar specific mouseX device ignore section
129 (or another file, there's a reason it's modular now!), as follows:
130
131 Section "InputClass"
132 Identifier "Ignore mousedev"
133 MatchDevicePath "/dev/input/mouse*"
134 Option "ignore" "1"
135 EndSection
136
137 BTW, that <<<<< mark, does that indicate snippage? Did you snip anything
138 related to the input detection if so? Because I expected to see it
139 applying the accel profile and constant decel settings there. But I'm not
140 sure if it does that before seeing a driver or not, or whether you snipped
141 out that bit if it was there, etc.
142
143 Either way, I think/hope the above changes will make the log easier to
144 follow, even if they don't solve the issue. So try it and reply with the
145 new log info if it still doesn't work, and perhaps there'll be some other
146 hint there. If nothing else, the documentation is pretty specific that
147 once the driver is set, it's set, and with the above, your settings should
148 set it and we should for sure see it set there and not with the catchall
149 settings. If with the above it's still not setting the driver until it
150 reaches catchall, then we know something else strange is going on, as it
151 would seem to be ignoring your whole custom section. The only way I can
152 think that that might happen would be if the match isn't matching for some
153 reason, but I guess we'll see.
154
155 --
156 Duncan - List replies preferred. No HTML msgs.
157 "Every nonfree program has a lord, a master --
158 and if you use the program, he is your master." Richard Stallman

Replies

Subject Author
Re: [gentoo-desktop] Re: How to set per-device mouse sensitivity : Revisited ! Mickael Chazaux <mickael.chazaux@×××××.com>