Here is how I tried to switch the mapping of the ENTER key to the SHIFT key Also (as suggested by Stefano Palazzo) I have previously written a more detailed description of xbindkeys in an answer on this askubuntu page
If you use xbindkeys, you will need to add it to your "Startup Applications" (Main Menu - Preferences). I use a program called xbindkeys, and there is also an option available via the Main Menu - Preferences, called Keyboard Shortcuts I suggest you disable it as soon as you've done what you need. You can then change menu items to virtual anything you like (per program/window). navigate to desktop- gnome- interface and select can_change_accels. You can enable it by running gconf-editor (via Terminal or Alt+F2). It is a very 'touchy' tool, but quite powerful. Most Ubuntu programs are Gnome based and there is a specific utility to modify the keybinding for any menu item of these Gnome apps. eg.įirefox has an addon called keyconfig. (a key has the same function in all windows)įor 'local to a program' methods, there is sometimes a way to change keybindings offered by the app itself. (a key can be used for different things in different apps/windows) There are two general ways to remap rebind a key. please see NES's Community Wiki answer (accepted above). UPDATE: my 'afterthought' has been confirmed ( I've answered the wrong question :).
(I don't know how to re-assign one key to behave as another) I think you may mean something entirely different by "remap". Mod2, because xmodmap -pm tells us that mod2 is Num_Lock, the other names are obtained by pressing the keys in xev. xmodmap -e "keycode 91 mod2 = KP_Delete period" Suppose, for example, that you want to get a period instead of a comma on the numeric keyboard (useful for most programmers), but you want to keep the "delete" behavior when NumLock is off. Xmodmap -e "KEYCODE MODIFIER = behaviour behaviour_with_modifier" Like how the keys in the numeric keyboard depend on NumLock) you simply have to do xmodmap -pm to get a list of modifiers and then do: If the key you are remapping has different behavior depending on a state ( Xmodmap from console to see the changes immediately. xinitrc in your home directory where you put command xmodmap. When you want to save the changes permanently you have to run the following commands after the ones above: xmodmap -pke >~/.Xmodmap Note: These change are for the active X session only and will be lost after reboot. Moreover, here is a comprehensive list of all keysyms.
For example if you want the key with code 53 to map to backslash normally, but to the bar symbol when used with shift, you might do: xmodmap -e "keycode 53 = backslash bar"Īdditional information: The sequence of these mappings is Key, Shift+Key, mode_switch+Key, mode_switch+Shift+Key, AltGr+Key, AltGr+Shift+Key. Note that if the key you are mapping should have a different meaning when used with the Shift key (for example for British keyboard layouts, Shift+ 2 gives quotation marks) then you can simply list the secondary command after the first. This changes the key with keycode 110 on your keyboard to the action Next. Now when you want to swap the two keys use xmodmap.
Here again the interesting part for us is keycode 115 and Next - the name of the behaviour. PgDown give this output state 0x10, keycode 115 (keysym 0xff56, Next), same_screen YES, In this example Prior is the name of the behaviour the key is assigned to at the moment, the number keycode is the internal id to recognize the key. It should look similar to: state 0x10, keycode 110 (keysym 0xff55, Prior), same_screen YES, Xev will output some information about the pressed key.
Then press the key whose behaviour you want to change. Now it's active and waits for you to press a key. Both should be available in Ubuntu without extra installing them. First xev (command-line tool) and second xmodmap (also command-line tool). The answer below is no longer relevant for current releases.įor remapping certain keys you need two tools. Notice: As of 2013, Ubuntu and derivatives no longer use xmodmap, but instead use xkb.