l i n u x - u s e r s - g r o u p - o f - d a v i s
Next Meeting:
July 7: Social gathering
Next Installfest:
Latest News:
Jun. 14: June LUGOD meeting cancelled
Page last updated:
2003 Oct 11 18:16

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] using xmodmap to swap modifier key locations
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] using xmodmap to swap modifier key locations

Qå lördag, 11 oktober 2003, skrev Shawn P. Neugebauer:
> Pete alluded to, but did not describe, the "xev" utility.  Use it to figure
> out *precisely* what X thinks the keys are.  Do this before applying
> the new map (so, if you've already done so, you'll need to restart X).  
> I doubt you need to do anything to your XF86Config file(s), necessarily,
> you just need to find the keycodes, keysyms, etc. for your keyboard.
> FYI, I use this trick in every linux environment I get my hands on, and
> it's always worked as is.

Thank you everyone for your replies. Things just get stranger and
stranger---see below. I should probably mention at this point that my real
goal is not to swap control and caps lock (I want to understand how to do
that since it is a common and seemingly simple example). My real goal is:

1. Make the left and right "Alt" keys send control.
2. Make the left "Control" key send alt.
3. Make the right "Control" key send AltGr.
4. Make the "CapsLock" key send compose.
5. Have no key send caps lock.
6. Maybe do somthing with the "Win logo" and "Menu logo" keys too, but this
is a low priority since my usual keyboard has neither or these keys.

So, back to swapping control and caps lock. Before I modify anything, xmodmap reveals the following:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0xa),  Shift_R (0xb)
control     Control_L (0x8),  Control_R (0x9)
mod1        Meta_L (0xc),  Meta_R (0xd),  Alt_L (0xe),  Alt_R (0xf)

Note that no keys are assigned to lock! Shouldn't this mean that there is no
caps lock? But the "Caps lock" key does in fact turn on caps lock. According
to xev, "Caps Lock" sends Caps_Lock, and "Control" sends Control_L.

Now I run the following xmodmap commands:

! Swap Caps_Lock and Control_L
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L

with the result that "Caps Lock" is still caps lock and does not send
control. (It still sends Caps_Lock according to xev.) What is really strange
is that "Control" now works like a shift key! Meaning, that if I hold down
"Control" and press letter keys, I get capital letters. But number keys are
unaffected. So it is really like a caps lock that does not lock (arguable
more useful than regular caps lock, but still bizarre.) According to xev,
"Control" sends Caps_Lock also.

Xmodmap reports:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0xa),  Shift_R (0xb)
lock        Caps_Lock (0x8)
control     Control_L (0x59),  Control_R (0x9)
mod1        Meta_L (0xc),  Meta_R (0xd),  Alt_L (0xe),  Alt_R (0xf)

I will keep experimenting.

Henry House
The unintelligible text that may follow is a digital signature. 
See <http://hajhouse.org/pgp> for information.  My OpenPGP key:

Attachment: pgp00005.pgp
Description: PGP signature

LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Appahost Applications
For a significant contribution towards our projector, and a generous donation to allow us to continue meeting at the Davis Library.