This is my recommended method, from the top. I can't guarantee it will work for Red Hat, as I've never used that distro and don't know the differences.
Since this uses xmodmap, I'm also going to assume that it works only in an X environment.
--------------------
1- Open a terminal window (aterm, Eterm, xterm, etc).
2- Type "xev". If nothing happens, type "type -p xev" or "which xev" to locate the program.
If nothing comes back, you'll need to install xev (this will likely not be the case).
3- Assuming you have started xev, you should have a small window open, plus your original terminal window. The terminal is what you want to pay attention to.
4- Press a key you want to map, and look at what appears in the terminal. It'll be something like this:
Code:
KeyPress event, serial 25, synthetic NO, window 0x1a00001,
root 0xaf, subw 0x0, time 3304823, (20,581), root:(52,627),
state 0x10, keycode 53 (keysym 0x78, x), same_screen YES,
XLookupString gives 1 bytes: "x"
You'll be looking for the part that says "keycode 53" In this case 53 is the keycode for the "x" key. Do this for each of the buttons you want to map, and write down the keycode for each. Close xev either with the x button on the application window, or by focusing the terminal and pressing Ctrl+c.
5- You need a /home/you/.Xmodmap file to play with. There's probably a systemwide file available that you can copy to your home. You can find one, if it exists, with "locate Xmodmap". If one or more or the results is a text file, a file with lines containing "remove" "add" "clear" and "keysym" commands, you've found what you need. /etc/X11/Xmodmap is one possible location. Copy this file to your home directory as .Xmodmap (note the dot) and you can edit this file as you wish without disturbing systemwide settings. If you screw up you can just delete this file and start over. If you can't find an Xmodmap file, you can create an empty one with "touch .Xmodmap".
6- Now you need to find out what keysyms are available to be assigned to your buttons. "man xmodmap" says "The list of keysym names may be found in the header file <X11/keysymdef.h> (without the XK_ prefix) or the keysym database __projectroot__/lib/X11/XKeysymDB." So doing a "locate XKeysymDB" tells exactly where to find it. Look into this file and you'll see a list of names which you can assign to your buttons. These names will be added to your ~/.Xmodmap file. My current additions to .Xmodmap are here:
Code:
keycode 223 = XF86Start
!! Email
keycode 236 = XF86Mail
!! Messenger-SMS
keycode 145 = XF86Messenger
!! Webcam
keycode 146 = XF86WebCam
!! Mute
keycode 160 = XF86AudioMute
!! Volume +
keycode 176 = XF86AudioRaiseVolume
!! Volume -
keycode 174 = XF86AudioLowerVolume
!! Media
keycode 237 = XF86Music
!! My Home
keycode 178 = XF86Documents
!! Search
keycode 229 = XF86Search
6- Restart your X server to test the changes. Type "xmodmap -pk" to check it.
7- Now that xmodmap know what your buttons are, you can assign them to commands in your window manager. I use Fluxbox, so that will be my example. Open (or create) ~.fluxbox/keys, and add entries such as this:
Code:
None XF86Mail :ExecCommand aterm -e mutt
"None" means no modifier key is used (Alt, Ctrl, Mod#), XF86Mail is the keysym name, and the rest is the command.
That should be it....hope i didn't forget anything.