Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to make a button on a keyboard to act like a mouse click, preferably using xmodmap. How do I do it?

Running Ubuntu 10.10.

share|improve this question

The following steps would help you rewire your keyboard keys to mouse buttons.

  1. Identify the keyboard key using xev utility.

    Running xev utility and pressing the keyboard key to be rewired will output something like this

    KeyPress event, serial 37, synthetic NO, window 0x3e00001,
    root 0x82, subw 0x0, time 28977858, (-419,294), root:(175,613),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

    Note the keycode which will be reamapped.

  2. Run the xkbset utilty

    xkbset m

  3. Remap using xmodmap utility.

    In the below case menu key is remapped to right mouse button.

    xmodmap -e "keycode 135 = Pointer_Button3"

share|improve this answer

I imagine you could accomplish this using xmodmap and the Pointer_Button1 keymap.

Look in the file /usr/include/X11/keysymdef.h for the exact spelling and capitalization, but it should be possible to map a keyboard key into a mouse button (1,2,3,etc), even a double click (see the header file, near line 460 or so)

keysym W = Pointer_Button1

MIGHT work, causing the W key to act as the left mouse button. I'd recommend using a different key, unless you don't use any W's, but whatever works for you. (no, I'm not going to try it myself, I need my W's!)

Also have a look at the man page for xmodmap, and certainly the contents of /usr/include/X11/keysymdef.h to get the spelling correct. Drop the XK_ prefix to use the keysym names for xmodmap.

Looks like it's (keysymdef.h) in the x11-proto-core-dev package for my Debian system... you may want to search for the file and its contents online, doubt you want to install all the -dev files involved to just get THAT one. GIYF.

Something tickling in back of my head about another way to do this, but nothing's coming to me just now.

OH! Depending on your needs, you might look into Keyboard Mouse Emulation, with turns the numeric keypad into a full featured two-button (no scroll wheel!) mouse.

share|improve this answer
    
For readers' info, about "Keyboard Mouse Emulation": en.linuxreviews.org/… The key combination to turn this on has been disabled by default since a while ago and now needs Option XkbOptions "keypad:pointerkeys". Hitting keys is not the only way to turn this on: xkbset m does this as per crunchbang.org/forums/viewtopic.php?id=27937 , and can control the nasty timeout and also turn it off from the cmdline. – imz -- Ivan Zakharyaschev Jun 22 at 19:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .