[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