xmodmap: different keys have different keycode semantics?
Nikolaus Rath
Nikolaus at rath.org
Thu Feb 12 10:51:46 PST 2009
Marius Gedminas <marius at 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).
Best,
-Nikolaus
--
»Time flies like an arrow, fruit flies like a Banana.«
PGP fingerprint: 5B93 61F8 4EA2 E279 ABF6 02CF A9AD B7F8 AE4E 425C
More information about the xorg
mailing list