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

Rob Rogers vox-tech@lists.lugod.org
Wed, 08 Oct 2003 23:45:37 -0700


On Wed, 8 Oct 2003 22:05:50 -0700, Henry House <hajhouse@houseag.com> 
wrote:

> The manual page for xmodmap lists the following example (exact quote):
>
> 	!
> 	! 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
>
> which is said to turn the left caps lock key into a control key and the 
> left
> control key into a caps lock key. It does not work. On my system, 
> running the
> above commands (saved to a file, then run using 'xmodmap <filename>') 
> turns
> the left control key into a shift key (!) and has no effect on the caps 
> lock
> key. Neither xmodmap nor the x server print any errors or other messages.
> Does anyone have a suggestion? My XFree86 config file follows.

[snip]
> Section "InputDevice"
>     Identifier	"Keyboard1"
>     Driver	"Keyboard"
>     Option "AutoRepeat" "500 30"
>     #Option "XkbRules"	"xfree86"
>     #Option "XkbModel"	"pc101"
>     #Option "XkbLayout"	"us"
> EndSection

I know this isn't quite what you were asking for specifically, but I 
wasn't sure if xmodmap was a requirement. In your InputDevice section for 
your keyboard in your XFree86 config, you can try adding the following:
Option "XkbOptions" "ctrl:swapcaps"

I haven't used that specific option, but I do use "ctrl:nocaps" and it's 
been working great here. (it turns your caps lock into a second left 
control, without switching l-ctrl into caps lock)