1 |
Duncan posted <pan.2004.07.23.07.47.51.730874@×××.net>, excerpted below, |
2 |
on Fri, 23 Jul 2004 00:47:52 -0700: |
3 |
|
4 |
> Norberto Bensa, excerpted below0: |
5 |
> |
6 |
>> did anything related to keyboards changed in xorg-x11-6.7.0-r2 since |
7 |
>> -r1? I can't seem to make my "Suspend" key work (it was in -r1) Keyboard is a |
8 |
>> Microsoft Natural Keyboard Pro. |
9 |
>> |
10 |
>> xev says: keycode 225 (keysym 0x0, NoSymbol) |
11 |
> |
12 |
> I thought it was just me! Logitech Cordless Desktop Pro, here. |
13 |
> |
14 |
> It's supposed to use the same keysym, XF86Standby, assigned to <I5F>, in |
15 |
> /etc/X11/xkb/symbols/inet, which is assigned to kernel keycode 223 in |
16 |
> /etc/X11/xkb/keycodes/xfree86, as the MS keyboards. |
17 |
|
18 |
OK. Spent about as much time on this as I'm going to. Results: |
19 |
|
20 |
It's not the kernel. Booting back to Mandrake (using the same kernel, |
21 |
but different userland naturally, and XFree86 not Xorg) gave me the |
22 |
expected keycode 223 and XF86Standby, recognized by KDE. |
23 |
|
24 |
Surprise, however! It is NOT just X, either. I did a showkeys on both |
25 |
Gentoo and Mandrake, console mode, and they came out DIFFERENT. Mandrake |
26 |
yields a multi-code output (14, and 0, and..), while Gentoo yields a |
27 |
single code (142). (I believe those are in hex, not the decimal that xev |
28 |
displays, but didn't attempt to verify.) Thus, it /might/ be something |
29 |
else in userland, maybe glibc. |
30 |
|
31 |
Next, back in Gentoo, I tried simply backing up the (/etc/X11/xkb/) |
32 |
keycodes/xfree86 and symbols/inet files, and copying the XFree86 files |
33 |
over the xorg ones, to see if that made a difference. I doubted it would, |
34 |
but figured it was a quick elimination so tried it. I was right. It |
35 |
didn't work. |
36 |
|
37 |
I then tried setting up an xmodmap key remap. That /almost/ worked, but |
38 |
not quite. xev output the new keycode (223) and keysym (XF86Standby), but |
39 |
it also output that it was a conversion, keycode 225 into 223, and while |
40 |
khotkeys would recognize it when CHANGING a hotkey, it would NOT recognize |
41 |
it trying to trigger a programmed action. |
42 |
|
43 |
Then I spent several hours trying to figure out how to just do a single |
44 |
key mod as a separate file, or do it as a single line in the xorg.conf |
45 |
device keyboard section, so I could leave the existing xkb configuration |
46 |
intact, to no avail. I gave up, feeling rather thick, and frustrated. <g> |
47 |
|
48 |
Back on the trail of something I KNEW should work, I decided I had to |
49 |
modify either the symbols or the codes files themselves. I chose the |
50 |
modify the symbols table (symbols/inet). Again, trying to be as minimally |
51 |
invasive as possible, I tried defining XF86Standby to BOTH I5F and I61. |
52 |
As with the xmodmap thing, that /almost/ worked, with the same results |
53 |
(xev saying it was there but converted, khotkeys taking it when SETTING a |
54 |
hotkey, but ignoring it when attempting to USE a hotkey). |
55 |
|
56 |
I'd tried putting the I61 definition UNDER the I5F one, so they stayed in |
57 |
order. Since THAT didn't work, I tried reversing them, thinking I61 |
58 |
would then be the "real" lookup, being first defined, with I5F then |
59 |
showing up as "converted". I'm not sure why, perhaps because of the |
60 |
sequence of my trials, but that had no effect. The system STILL said I61 |
61 |
was a conversion from I5F, and it STILL almost-but-not-quite worked. |
62 |
|
63 |
However, what finally *DID* work was commenting out the I5F definition |
64 |
altogether, so I61 = XF86Standby was the ONLY XF86Standby definition. |
65 |
Loading X/KDE for what felt like the hundredth time in the session, *IT* |
66 |
*WORKED*!! |
67 |
|
68 |
So, an at least temporary solution is to edit /etc/X11/xkb/symbols/inet, |
69 |
finding the appropriate section for your keyboard, and changing this: |
70 |
|
71 |
key <I5F> { [ XF86Standby ] }; |
72 |
|
73 |
into this: |
74 |
|
75 |
// key <I5F> { [ XF86Standby ] }; |
76 |
key <I61> { [ XF86Standby ] }; |
77 |
|
78 |
While that works for now, I'm not entirely happy with it, as depending on |
79 |
how the file is installed by the ebuild (thru /usr or /etc, due to the |
80 |
symlink to the grandparent xkb dir) and the CONFIG_PROTECT, it will either |
81 |
need reedited each time xorg is upgraded, or if CONFIG_PROTECTED, when the |
82 |
bug is fixed. |
83 |
|
84 |
I do also need to see about filing the bug, still, checking for duplicates |
85 |
first. I'm tempted to wait until the August release, however, and see if |
86 |
it's fixed there before bothering, as if it's not in process already, |
87 |
validating the fix might make it impossible to do by then anyway. OTOH, |
88 |
I DO wonder what changed, and doing the duplicate bug research might turn |
89 |
that info up, if it HAS already been filed. |
90 |
|
91 |
-- |
92 |
Duncan - List replies preferred. No HTML msgs. |
93 |
"They that can give up essential liberty to obtain a little |
94 |
temporary safety, deserve neither liberty nor safety." -- |
95 |
Benjamin Franklin |
96 |
|
97 |
|
98 |
|
99 |
-- |
100 |
gentoo-dev@g.o mailing list |