4.3.3 bugs

Duncan 1i5t5.duncan at cox.net
Sun Nov 15 11:20:37 GMT 2009

James Tyrer posted on Sat, 14 Nov 2009 15:12:49 -0700 as excerpted:

>>> xorg.conf has "/dev/input/mice".
>> /dev/input/mice is a kernel "emulated" mouse.  It takes whatever it
>> sees and emulates a ps2 Microsoft Explorer mouse with it.  That's why
>> I'm saying it shouldn't matter.
> Some documentation suggests using: "/dev/input/mouse0".  Does this make
> a difference?

The difference it would make would be if you had multiple mice.  The 
multi-pointer-X changes that are just coming online now (with xorg-
server-1.7 and newer, AFAIK) affect things a bit, but previously, using
/dev/input/mice was supposed to be the more trouble-free way, if you 
tended to switch between devices, since it would see and use them all 
without the complications one would otherwise have switching between 
them.  Using the old configuration style, /dev/input/mice allowed you to 
configure just it, instead of having to configure multiple device 
entries, one for each mouse, choosing one as X's corepointer, etc...

As I said, multi-pointer-X changes the rules a bit, there.  I'm not 
exactly sure how it all works, but I do know that multi-point touch-pads 
and the like can be configured with special "pinch" movements (commonly 
used for zoom), etc, tracking two different touch-points on the same 
device.  Of course-pre-multi-pointer, the two points would be averaged 
into a single point somewhere between the two...  Anyway, apparently, 
it's possible to do roughly the same thing using two separate more 
conventional pointing devices (mice, trackballs, etc) or a single-point 
touchpad and a second device.  The pinch type movements would seem to be 
rather more artificial (less natural/intuitive) in that case, but other 
things become more natural/intuitive -- things like dragging opposite 
corners of a window to resize it both ways at once, perhaps moving and 
resizing a window both at the same time, etc.

Of course, if you're doing that using two different devices, you'll need 
to use the individual /dev/input/mouseX devices -- either that or the 
evdev driver and device, which works differently, basically reporting 
"events" for all input devices, rather than tracking movement and/or keys 
on just one.  You'd certainly /not/ want to use the general 
/dev/input/mice in that case, because it'd simply average them all, which 
isn't the desired effect if you're deliberately tracking more than one, 
actually using the separate outputs to enable various tasks not otherwise 
simply doable.

>> What mouse type are you telling xorg to use,
>      Driver	"mouse"
>      Option      "Protocol" "IMPS/2"
>      Option 	"Device" "/dev/input/mice"
>> and is it
> Pronoun reference please.  Is what set?

I was wanting the protocol for one thing, imps/2 in this case.  That 
should be fine.  But I also had in mind the possible intervention of hal, 
which would then cause your xorg settings to be ignored entirely... but 
you get more into that, below.

Given the info so far, the xorg.conf settings look like they should be 
correct... tho we don't know if it's actually using them, just yet.  But 
if they're being used, and there's an issue, it' looks like a bug, to 
me.  It may be something with your individual compilation (cflags and the 
like come into play here, things like -ftree-vectorize, one of the cflags 
I'm using, could have strange effects if the app doesn't expect them to 
be used... and of course there's occasional bugs in gcc itself... that 
may only appear under specific conditions).

>> set to use the xorg.conf setting or hal (with server 1.6 and possibly
>> 1.5, IDR ATM, it would ignore the xorg.conf setting and use hal, unless
>> you set a serverflag telling it not to.  I don't have time ATM to look
>> at the details, but the xorg.conf manpage has them I believe.)
> I do not have:
> 	Option "AutoAddDevices"
> 	Option "AutoEnableDevices"
> in my xorg.conf file.  IIUC, they are both true by default.
> The man pages are not really adequate documentation. :-|

One of the frustrations with manpages, is that in general they're really 
not designed to be intros to the topic, but rather, either really in 
depth coverage for stuff people already understand the basic concepts of, 
or "cheat sheets", for people that already know the material, and just 
need a reminder of the specific syntax or whatever.  They do generally 
cover that intended purpose, but finding someplace that covers the basic 
concepts is unfortunately far more difficult in way too many cases.  
That's just a problem of *ix in general, I think.  OTOH, the info is 
generally out there in some form if you're persistent enough, not always 
the case with proprietaryware, unless you're up to reverse engineering 
it, of course. =:^(

But I've had enough of an intro, the manpages do tend to work for their 
intended purpose here, so let me refresh a bit and see if I can explain 
the ideas a bit better.


... Here's the deal:  The ultimate goal is to have it "just work" without 
an xorg.conf at all, for most people, AND have it "just work" "live", 
interpreted as, keyword "hotplug", aka "plug-n-play", altho as every geek 
surely knows, unfortunately, that's all too often
"plug-n-pray"!  Of course, multiple monitors, etc, while they might be 
pnp, will need some sort of config telling X what orientation to use, 
etc, unless people are happy with it being random, or whatever 
(especially because in many cases, the order the monitors are detected 
may not be the same every time).  But the goal is for the simple case to 
be pnp and for it all to "just work", without an xorg.conf at all.

Keeping that goal in mind...  plus the goal of simplification, that is, 
if someone only wanted to control the relative positions of their 
monitors, and thus had that setup in their xorg.conf, that shouldn't 
prevent the OTHER elements from being pnp... IOW, the setup should still 
function without everything else being specified just because one thing 
needed to be specified...

Based on that...

The "magic" option for most people is actually a third one, that you 
didn't mention, above:

	Option "AutoAddDevices"

There are actually two separate conditionals that control the default, 
here, and the wording of the manpage, while it does mention the 
conditions, is NOT such that it's AT ALL clear to the uninitiated that 
this is REALLY the controlling option they need to be worried about.

The key to understanding why it works the way it does, is just as I said 
above, because they had to arrange it such that the defaults "just 
worked", at least ideally, even if the user did something stupid with 
their xorg.conf.  The /problem/ of course, is that such a default just 
looks like either deliberate obfuscation or incredible stupidity of 
design, to the geek/sysadmin type that never-the-less isn't yet initiated 
into the intricacies of hal-controlled-X.

Read in that light, the manpage entry begins to make a bit more sense.  
The KEY bit is "Enabled by default"!!!!  This is absolutely OPPOSITE the 
GENERAL rule, as defined at the top of the manpage, where NOT having the 
option at all (or if it's there but commented out) means it's DISABLED, 
and that's the problem, for folks used to dealing with xorg.conf, since 
it breaks the normal assumptions into bits!

Now, that "enabled by default" bit gets obfuscated by the "if...", but 
the key to interpreting the if clause is to realize that the other two 
are enabled by default, as well, again, breaking the general rule.  And 
again, this makes NO sense at all to the sysadmin who's used to dealing 
with xorg.conf and simply assumes that an option that doesn't appear, or 
is commented, is disabled, because that's the way it has always worked, 
and that's the way it is explained to work, at the top of the manpage.  
But, the reason they chose to do it this way in SPITE of all that, is 
because they were trying to make pnp "just work", and in ordered to do 
so, they broke a few of the traditional rules along the way.

Got that?

So what this all boils down to is the following:  *UNLESS* you have

	Option "AllowEmptyInput" "false"

and CONTRARY to all intuition and general sysadmin good sense otherwise,
and use hal.  In fact, if hal gets screwed up and for whatever reason 
doesn't detect and supply xorg with the proper settings, xorg will STILL 
want to ignore your xorg.conf settings, and will to the poor sysadmin's 
COMPLETE befuddlement, come up without any responsive input whatsoever, 
and sit their happily updating the time and various plasma widgets (in 
the context of KDE4 here, of course), but ignore all attempts at 
interaction whatsoever, no matter WHAT xorg.conf has to say about the 
input devices, and even if they're otherwise 100% correct -- all due to 
that single missing Option line that breaks all the rules by being 
enabled if it's NOT there!!

The AutoAddDevices and AutoEnableDevices are, as one of my friends would 
say, rabbit trails.  For the rabbits that need and use them, they might 
be very useful indeed, but they only serve to obfuscate and detour the 
reader from the important bit, that AllowEmptyDevices is the key to the 
entire thing, and that it breaks the normal rules, by being enabled in 
its absence!

As a result of all this, a LOT of people have had serious headaches 
trying to figure out what has gone wrong with their previously perfectly 
working devices, which according to all the documentation (if one doesn't 
see this big trap waiting to spring on them!), are STILL setup 
correctly.  And all those headaches "magically" simply disappear, when 
the proper 'Option "AllowEmptyInput" "false"' incantation is placed in 
their xorg.conf!  So most ultimately end up googling and finding the 
proper incantation, at least one would /hope/ so, but how many actually 
understand why, counter to every sysadmin instinct they've ever had, it 
actually works the way it does, and all the otherwise proper settings 
were flat ignored, without this incantation?

If it's not /completely/ obvious by now, I find this intensely obtuse and 
frustrating myself, and can't /help/ but think there MUST have been some 
other, less obtuse, less counter-intuitive, less seemingly deliberate 
violation of all that a sysadmin holds sacred... SOMETHING, ANYTHING, 
other than THIS!!!

Anyway, hope that helps.  Given the situation, chances are quite good 
that your xorg is using a setup you hadn't the foggiest about, while 
completely ignoring the one you painstakingly verified to be the correct 
one, that you had every reason in the world to believe was being used 
just as you'd configured it.  You're just lucky you found it this way, 
instead of having it break, and spending hours trying to figure out why 
the "proper" configuration wasn't working at all.

Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

This message is from the kde mailing list.
Account management:  https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.

More information about the kde mailing list