Cannot create xkb layout - Possible bug and regression in xkbcomp or xkb?
cheater cheater
cheater00 at gmail.com
Wed Dec 5 15:01:09 PST 2012
> I'd mark this as solved
Ah, that's where shameless cross-posting gets you. This was supposed
to only go to the Ubuntu forums!
Take care
On Thu, Dec 6, 2012 at 12:00 AM, cheater cheater <cheater00 at gmail.com> wrote:
> I figured it out. Kind of out of desperation, I just googled for
> "stackoverflow xkb" and started reading everything. I came across two
> questions, one that mentioned using modifier_map, and another that
> mentioned using xkbcomp :0.0 to get a dump of the final layout that's
> loaded. I had to do the following:
>
> 1. set the group 1 explicitly, otherwise the keys only got overridden
> on group 2.
>
>
> // Make the lower-right corner of the k400/k400r saner.
> key <RCTL> {
> type="TWO_LEVEL",
> symbols[Group1]=[ Alt_R, Meta_R ]
> };
> key <UP> {
> symbols[Group1]= [ Shift_R ],
> symbols[Group2]= [ Shift_R ]
> };
> key <DOWN> {
> symbols[Group1]= [ Control_R ],
> symbols[Group2]= [ Alt_R ]
> };
> key <RGHT> {
> symbols[Group1]= [ Control_R ],
> symbols[Group2]= [ Alt_R ]
> };
>
> // Make the left-over left arrow cursor key a meta key.
> // Apparently, if there's only one meta key, you set it to Meta_L.
> key <LEFT> {
> type[Group1]="ONE_LEVEL",
> symbols[Group1]= [ ISO_Level3_Shift ]
> };
>
>
> 2. use modifier_map
>
>
> modifier_map Control { <DOWN> };
> modifier_map Control { <RGHT> };
> modifier_map Shift { <UP> };
> modifier_map Mod1 { <RCTL> };
> modifier_map Mod1 { <RALT> };
> modifier_map Mod5 { ISO_Level3_Shift };
>
>
> and 3. delete the other layouts that were loaded. Crazily enough, they
> modified the layout, even if they weren't selected! so no matter what
> i did, the up arrow's group1 was always set to Up. This is some sort
> of bug.
>
> Hope this helps someone. I'd mark this as solved, but I'm not sure
> how. Maybe one of the moderators can do that if they come across this
> thread.
>
> Thanks!
>
> On Wed, Dec 5, 2012 at 7:44 PM, cheater cheater <cheater00 at gmail.com> wrote:
>> By the way, here's the related section of dumpkeys:
>>
>>
>>
>> keycode 103 = Up
>> alt keycode 103 = KeyboardSignal
>> alt shiftl keycode 103 = KeyboardSignal
>> alt shiftr keycode 103 = KeyboardSignal
>> alt shiftl shiftr keycode 103 = KeyboardSignal
>> alt ctrll keycode 103 = KeyboardSignal
>> alt shiftl ctrll keycode 103 = KeyboardSignal
>> alt shiftr ctrll keycode 103 = KeyboardSignal
>> alt shiftl shiftr ctrll keycode 103 = KeyboardSignal
>> keycode 104 = Prior
>> shift keycode 104 = Scroll_Backward
>> shift shiftl keycode 104 = Scroll_Backward
>> shift shiftr keycode 104 = Scroll_Backward
>> shift shiftl shiftr keycode 104 = Scroll_Backward
>> shift ctrll keycode 104 = Scroll_Backward
>> shift shiftl ctrll keycode 104 = Scroll_Backward
>> shift shiftr ctrll keycode 104 = Scroll_Backward
>> shift shiftl shiftr ctrll keycode 104 = Scroll_Backward
>> keycode 105 = Left
>> alt keycode 105 = Decr_Console
>> alt shiftl keycode 105 = Decr_Console
>> alt shiftr keycode 105 = Decr_Console
>> alt shiftl shiftr keycode 105 = Decr_Console
>> alt ctrll keycode 105 = Decr_Console
>> alt shiftl ctrll keycode 105 = Decr_Console
>> alt shiftr ctrll keycode 105 = Decr_Console
>> alt shiftl shiftr ctrll keycode 105 = Decr_Console
>> keycode 106 = Right
>> alt keycode 106 = Incr_Console
>> alt shiftl keycode 106 = Incr_Console
>> alt shiftr keycode 106 = Incr_Console
>> alt shiftl shiftr keycode 106 = Incr_Console
>> alt ctrll keycode 106 = Incr_Console
>> alt shiftl ctrll keycode 106 = Incr_Console
>> alt shiftr ctrll keycode 106 = Incr_Console
>> alt shiftl shiftr ctrll keycode 106 = Incr_Console
>> keycode 107 = Select
>> keycode 108 = Down
>>
>>
>>
>> Note that the arrows are still what they were. They're clearly
>> remapped in the layout:
>> https://bitbucket.org/cheater/us_split_logitech_k400/commits/5f777c7dfe1a4b176b3409c71030ad8f
>>
>> On the other hand, the same layout remaps the k key to type h and that shows:
>>
>>
>>
>> keycode 37 = +h
>> shift keycode 37 = +H
>> control keycode 37 = BackSpace
>> shift control keycode 37 = BackSpace
>> altgr control keycode 37 = BackSpace
>> shift altgr control keycode 37 = BackSpace
>> alt keycode 37 = Meta_h
>> shift alt keycode 37 = Meta_H
>> altgr alt keycode 37 = Meta_h
>> shift altgr alt keycode 37 = Meta_h
>> control alt keycode 37 = Meta_BackSpace
>> shift control alt keycode 37 = Meta_BackSpace
>> altgr control alt keycode 37 = Meta_BackSpace
>> shift altgr control alt keycode 37 = Meta_BackSpace
>>
>>
>>
>> although after this line it starts showing incorrect values. So it
>> seems like this is a deeper bug. Can anyone comment on that? Is there
>> anyone in specific I could contact about the xkb codebase?
>>
>> The listing continues with some erroneous and some correct values:
>>
>>
>>
>> shiftl keycode 37 = +k
>> shift shiftl keycode 37 = +K
>> altgr shiftl keycode 37 = +k
>> shift altgr shiftl keycode 37 = +k
>> control shiftl keycode 37 = Control_k
>> shift control shiftl keycode 37 = Control_k
>> altgr control shiftl keycode 37 = Control_k
>> shift altgr control shiftl keycode 37 = Control_k
>> alt shiftl keycode 37 = Meta_k
>> shift alt shiftl keycode 37 = Meta_K
>> altgr alt shiftl keycode 37 = Meta_k
>> shift altgr alt shiftl keycode 37 = Meta_k
>> control alt shiftl keycode 37 = Meta_Control_k
>> shift control alt shiftl keycode 37 = Meta_Control_k
>> altgr control alt shiftl keycode 37 = Meta_Control_k
>> shift altgr control alt shiftl keycode 37 = Meta_Control_k
>> shiftr keycode 37 = +k
>> shift shiftr keycode 37 = +K
>> altgr shiftr keycode 37 = +k
>> shift altgr shiftr keycode 37 = +k
>> control shiftr keycode 37 = Control_k
>> shift control shiftr keycode 37 = Control_k
>> altgr control shiftr keycode 37 = Control_k
>> shift altgr control shiftr keycode 37 = Control_k
>> alt shiftr keycode 37 = Meta_k
>> shift alt shiftr keycode 37 = Meta_K
>> altgr alt shiftr keycode 37 = Meta_k
>> shift altgr alt shiftr keycode 37 = Meta_k
>> control alt shiftr keycode 37 = Meta_Control_k
>> shift control alt shiftr keycode 37 = Meta_Control_k
>> altgr control alt shiftr keycode 37 = Meta_Control_k
>> shift altgr control alt shiftr keycode 37 = Meta_Control_k
>> shift shiftl shiftr keycode 37 = +H
>> control shiftl shiftr keycode 37 = BackSpace
>> shift control shiftl shiftr keycode 37 = BackSpace
>> altgr control shiftl shiftr keycode 37 = BackSpace
>> shift altgr control shiftl shiftr keycode 37 =
>> BackSpace
>> alt shiftl shiftr keycode 37 = Meta_h
>> shift alt shiftl shiftr keycode 37 = Meta_H
>> altgr alt shiftl shiftr keycode 37 = Meta_h
>> shift altgr alt shiftl shiftr keycode 37 = Meta_h
>> control alt shiftl shiftr keycode 37 = Meta_BackSpace
>> shift control alt shiftl shiftr keycode 37 = Meta_BackSpace
>> altgr control alt shiftl shiftr keycode 37 = Meta_BackSpace
>> shift altgr control alt shiftl shiftr keycode
>> 37 = Meta_BackSpace
>> ctrll keycode 37 = +H
>> altgr ctrll keycode 37 = +H
>> shift altgr ctrll keycode 37 = +H
>> control ctrll keycode 37 = BackSpace
>> shift control ctrll keycode 37 = BackSpace
>> altgr control ctrll keycode 37 = BackSpace
>> shift altgr control ctrll keycode 37 = BackSpace
>> alt ctrll keycode 37 = Meta_h
>> shift alt ctrll keycode 37 = Meta_H
>> altgr alt ctrll keycode 37 = Meta_h
>> shift altgr alt ctrll keycode 37 = Meta_h
>> control alt ctrll keycode 37 = Meta_BackSpace
>> shift control alt ctrll keycode 37 = Meta_BackSpace
>> altgr control alt ctrll keycode 37 = Meta_BackSpace
>> shift altgr control alt ctrll keycode 37 = Meta_BackSpace
>> shiftl ctrll keycode 37 = +K
>> shift shiftl ctrll keycode 37 = +k
>> altgr shiftl ctrll keycode 37 = +K
>> shift altgr shiftl ctrll keycode 37 = +K
>> control shiftl ctrll keycode 37 = Control_k
>> shift control shiftl ctrll keycode 37 = Control_k
>> altgr control shiftl ctrll keycode 37 = Control_k
>> shift altgr control shiftl ctrll keycode 37 =
>> Control_k
>> alt shiftl ctrll keycode 37 = Meta_k
>> shift alt shiftl ctrll keycode 37 = Meta_K
>> altgr alt shiftl ctrll keycode 37 = Meta_k
>> shift altgr alt shiftl ctrll keycode 37 = Meta_k
>> control alt shiftl ctrll keycode 37 = Meta_Control_k
>> shift control alt shiftl ctrll keycode 37 = Meta_Control_k
>> altgr control alt shiftl ctrll keycode 37 = Meta_Control_k
>> shift altgr control alt shiftl ctrll keycode 37
>> = Meta_Control_k
>> shiftr ctrll keycode 37 = +K
>> shift shiftr ctrll keycode 37 = +k
>> altgr shiftr ctrll keycode 37 = +K
>> shift altgr shiftr ctrll keycode 37 = +K
>> control shiftr ctrll keycode 37 = Control_k
>> shift control shiftr ctrll keycode 37 = Control_k
>> altgr control shiftr ctrll keycode 37 = Control_k
>> shift altgr control shiftr ctrll keycode 37 =
>> Control_k
>> alt shiftr ctrll keycode 37 = Meta_k
>> shift alt shiftr ctrll keycode 37 = Meta_K
>> altgr alt shiftr ctrll keycode 37 = Meta_k
>> shift altgr alt shiftr ctrll keycode 37 = Meta_k
>> control alt shiftr ctrll keycode 37 = Meta_Control_k
>> shift control alt shiftr ctrll keycode 37 = Meta_Control_k
>> altgr control alt shiftr ctrll keycode 37 = Meta_Control_k
>> shift altgr control alt shiftr ctrll keycode 37
>> = Meta_Control_k
>> shiftl shiftr ctrll keycode 37 = +H
>> altgr shiftl shiftr ctrll keycode 37 = +H
>> shift altgr shiftl shiftr ctrll keycode 37 = +H
>> control shiftl shiftr ctrll keycode 37 = BackSpace
>> shift control shiftl shiftr ctrll keycode 37 =
>> BackSpace
>> altgr control shiftl shiftr ctrll keycode 37 =
>> BackSpace
>> shift altgr control shiftl shiftr ctrll keycode
>> 37 = BackSpace
>> alt shiftl shiftr ctrll keycode 37 = Meta_h
>> shift alt shiftl shiftr ctrll keycode 37 = Meta_H
>> altgr alt shiftl shiftr ctrll keycode 37 = Meta_h
>> shift altgr alt shiftl shiftr ctrll keycode 37
>> = Meta_h
>> control alt shiftl shiftr ctrll keycode 37 = Meta_BackSpace
>> shift control alt shiftl shiftr ctrll keycode
>> 37 = Meta_BackSpace
>> altgr control alt shiftl shiftr ctrll keycode
>> 37 = Meta_BackSpace
>> shift altgr control alt shiftl shiftr ctrll
>> keycode 37 = Meta_BackSpace
>>
>>
>> On Wed, Dec 5, 2012 at 1:45 PM, cheater cheater <cheater00 at gmail.com> wrote:
>>> Hi,
>>> I have recently tried updating a layout I have, called us_split. In
>>> its basic form it's like the us qwerty layout with a small mod. This
>>> is to make a specific keyboard (Logitech k400) more usable. The idea
>>> is to make the up arrow into right shift, down and right arrows into
>>> right ctrl, right control into right alt, and left arrow into left
>>> meta. It makes much more sense when you see the keyboard:
>>>
>>> http://i.imgur.com/jkfQY.jpg
>>>
>>> I call the new fork us_split_k400. It can be found at:
>>> https://bitbucket.org/cheater/us_split_logitech_k400
>>>
>>> the original can be found at:
>>> https://bitbucket.org/cheater/us_split
>>>
>>> the specific diff can be found at:
>>>
>>> https://bitbucket.org/cheater/us_split_logitech_k400/commits/5f777c7dfe1a4b176b3409c71030ad8f
>>>
>>> I have found the following issues:
>>>
>>> 1. Even without the changes above, my layout has regressed. In
>>> specific: us_split hard-wires caps to esc. That is, if you press the
>>> button to the left of A, you get esc. This isn't recognized anymore. I
>>> believe on this pc I have first installed the layout while running a
>>> fairly early beta of ubuntu 12.04. I have just reinstalled it (using
>>> python install.py) and the esc key to the left of A is simply gone. On
>>> the other hand, mapping compose onto the original esc key to the left
>>> of F1 works as it did before.
>>>
>>> 2. in us_split_k400, the arrows and right control don't bear
>>> remapping. In specific, only setting the right arrow to control_r
>>> worked. The rest didn't do anything. However, the layout worked
>>> correctly in a tty after I did sudo loadkeys us_split_k400.
>>>
>>> 3. The caps-as-esc key developed VERY weird behaviour: it was esc AND
>>> caps at the same time. So if you pressed it, you got esc, but the
>>> status of caps lock changed as well. Again, this worked under
>>> teletype.
>>>
>>>
>>> I would appreciate any and all tips. This is driving me nuts, and I
>>> think it might be representative of a deeper problem. I have no idea
>>> where to start, but if anyone would like me to perform any tests I'd
>>> love to help out.
>>>
>>> Thanks
More information about the xorg
mailing list