On Thu, Feb 12, 2009 at 01:51:46PM -0500, Nikolaus Rath wrote: > Marius Gedminas <mar...@gedmin.as> writes: > > On Wed, Feb 11, 2009 at 04:19:57PM -0500, Nikolaus Rath wrote: > >> I noticed a very strange thing about xmodmap. Apparently, the > >> semantics of the > >> > >> keycode <nr> = <keysyms> > >> > >> command depend on the keycode. > > > > Yes. > > > > You may find reading about XKB enlightening: http://pascal.tsu.ru/en/xkb/ > > or http://www.charvolant.org/~doug/xkb/ > > > > Specifically, the type assigned to a keycode determines how the various > > shift keys select a level. > > Thanks a lot. It seems that the use of xmodmap is actually deprecated, > is it? > > After reading the website, I was able to translate most of my xmodmap > rules into a new xkb symbol file. However, I am facing problems in > setting up the modifiers. > > I am setting them up as follows: > > ,---- > | partial > | default > | alphanumeric_keys > | xkb_symbols "niko" { > | > | // Meta > | key <RALT> { > | type[Group1]="ONE_LEVEL", > | symbols[Group1] = [ Meta_R ] > | }; > | key <LALT> { > | type[Group1]="ONE_LEVEL", > | symbols[Group1] = [ Alt_L ] > | }; > | modifier_map Mod1 { <LALT> }; > | modifier_map Mod3 { <RALT> }; > | > | // Clean up > | modifier_map Lock { Caps_Lock }; > | }; > `---- > > (note that <CAPS> is actually bound to Control_L). Unfortunately, the > result looks like this: > > ,---- > | nokile:~$ xmodmap > | xmodmap: up to 3 keys per modifier, (keycodes in parentheses): > | > | shift Shift_L (0x32), Shift_R (0x3e) > | lock Control_L (0x42) > | control Control_L (0x25), Control_L (0x42) > | mod1 Alt_L (0x40), Meta_R (0x71), Meta_L (0x9c) > | mod2 Num_Lock (0x4d) > | mod3 Alt_L (0x40) > | mod4 Super_L (0x7f), Hyper_L (0x80) > | mod5 Mode_switch (0x5d), ISO_Level3_Shift (0x6d), ISO_Level3_Shift > (0x7c) > `---- > > (and obviously this causes a lot of problems). What > what I would like to have is *no* key bound to the lock modifier , > *only* the Alt_L key bound to mod1 and only the Meta_R key bound to > mod3. > > How can I accomplish that? Is there some way to clean up the modifier > table (like with xmodmap)? And why isn't the above file working as I > expect? (The file is actually read in, because with xev I can see that the > keysym of <RALT> changes to Meta_R as desired).
the rules have funny ways of combining themselves, so your best guess is to look at the output of xkbcomp -xkb :0 - and compare what it says. For example, an explicit NoSymbol is overwritten by a symbol pulled in from a different data set. I don't think there's a way of avoiding that. Cheers, Peter _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg