Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Mapping a Key


First find the keycode of the key you wish to map. Do this by running xev and press the key you wish to map (e.g., the Windows key) and look for the keycode:



KeyPress event, serial 22, synthetic NO, window 0x4000001,
    root 0x26, subw 0x0, time 24756 22836, (129,34), root:(139,245),
    state 0x58, keycode 115 (keysym 0xffed, Meta_L), same_screen YES,

Create /home/kayon/.Xmodmap and map the keycode to any unused keysym. For example, assuming your keyboard has function keys F1-F12 then generally F13 and beyond are not used, so lets use F15:



  keycode 115 = F15

For a complete list of keysyms, see /usr/X11R6/include/X11/keysymdef.h. (You omit the XK_ prefix when using them with xmodmap).

Run xmodmap ~/.Xmodmap. You can do this interactively instead with:



  $ xmodmap -e "keycode 115 = F15"

Now you should be able to bind F15 to any action with, for example, metacity.

Even better, sawfish, for example supports custom modifier keys (i.e., modifiers apart from Ctrl, Alt, and Shift- and knows about Hyper). You can map the left windows key:



  keycode 115 = Hyper_L
  add Mod2 = Hyper_L

Then use Hyper_L for all bindings related to the window manager (thus freeing Ctrl and Alt-based bindings). This makes it a perfect window manager key.

I end up with /home/kayon/.Xmodmap containing:



  keycode 115 = Hyper_L
  add mod3 = Hyper_L
  keysym Alt_L = Meta_L Alt_L
  add mod1 = Meta_L

Copyright © 1995-2006 [email protected]

 
 
  Published under the terms fo the GNU General Public License Design by Interspire