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

Shawn P. Neugebauer vox-tech@lists.lugod.org
Thu, 9 Oct 2003 12:57:09 -0600


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.

shawn.

On Wednesday 08 October 2003 11:05 pm, Henry House 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.
>
>
>
>
>
> Section "Module"
>     #Load        "dbe"  	# Double buffer extension
>     #SubSection  "extmod"
>     #  Option    "omit xfree86-dga"   # don't initialise the DGA extension
>     #EndSubSection
>     Load        "extmod"
>     Load        "type1"
>     Load        "freetype"
> EndSection
>
> Section "Files"
>     RgbPath	"/usr/X11R6/lib/X11/rgb"
>     FontPath   	"/usr/X11R6/lib/X11/fonts/misc/"
>     FontPath	"tcp/wotan:7110"
> EndSection
>
> Section "InputDevice"
>     Identifier	"Keyboard1"
>     Driver	"Keyboard"
>     Option "AutoRepeat" "500 30"
>     #Option "XkbRules"	"xfree86"
>     #Option "XkbModel"	"pc101"
>     #Option "XkbLayout"	"us"
> EndSection
>
> Section "InputDevice"
>     Identifier	"Mouse1"
>     Driver	"mouse"
>     Option	"Protocol"    "PS/2"
>     Option 	"Device"      "/dev/psaux"
>     Option	"Emulate3Buttons" "true"
>     #Option	Emulate3Timeout 50
> EndSection
>
> Section "Monitor"
>     Identifier  "My Monitor"
>     HorizSync	50-75
>     VertRefresh	50-100
>     Option	"DPMS"
> EndSection
>
> Section "Device"
>     Identifier	"trident"
>     VendorName	"Unknown"
>     BoardName	"Unknown"
>     Driver    	"trident"
>     #VideoRam	65536
> EndSection
>
> Section "Screen"
>     Identifier  "Screen1"
>     Device      "trident"
>     Monitor     "My Monitor"
>     DefaultDepth 16
>     SubSection "Display"
>         Depth       16
>         Modes       "1280x1024"
>     EndSubSection
> EndSection
>
> Section "ServerLayout"
>     Identifier  "Simple Layout"
>     Screen 	"Screen1"
>     InputDevice "Mouse1" "CorePointer"
>     InputDevice "Keyboard1" "CoreKeyboard"
> EndSection
>
> #end