This is the biggest thing keeping me from enjoying Ubuntu/Linux.

Ideally I'd like to just be able to run my AutoHotKey script on Ubuntu, but I didn't have much luck getting that working with Wine.

Here's what I'm doing in AHK (using extra modifiers also works, Shift+Alt+l is Shift+right).

!l:: Send, {Right}
+!l:: Send, +{Right}
^!l:: Send, ^{Right}
^+!l:: Send, ^+{Right}

I tried AutoKey, but it wasn't consuming input, remapping Alt + I to right arrow key worked, but it still executed Alt + I, which sometimes selects an item from the application menu.

The closest I got was xbindkeys for setting up hotkeys, this seems to work great. And xvkbd for simulating input; this part is really buggy; it doesn't work in all programs, and causes me to lose focus a lot, among other issues.

For anyone wondering what I'm trying to do: I use I J K L as arrow keys while Alt is down.

  • Hey Stephen, i'm looking for exactly the same thing. Have you succeeded in doing this? – lolmaus - Andrey Mikhaylov Dec 28 '13 at 0:03

I've never used xvkbd, but there are two other great programs for simulating keyboard input that I like and use. One is xte and the other is xdotool.

sudo apt-get install xautomation xdotool  

Both xdotool and xte are very similar, but since I use xte the most I'll go into that one.


The most basic syntax for xte is:

xte 'command key/mousebutton/xyCoordinates'

xte can do a lot more than just create keyboard input though, it can also move your mouse and simulate mouse button presses, among others things.

Syntax examples:

  • To call a single key press: xte 'key keyName'

  • To call a key combination: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

  • To call a mouse button: xte 'mouseclick buttonNumber' (You can find button numbers through xev)

  • To move the mouse: xte 'mousemove xCoordinate yCoordinate'

  • And more! Read man xte


Here are a list of key names (other than the obvious ones):



You might also be interested in reading:

How can I change what keys on my keyboard do? (How can I create custom keyboard commands/shortcuts?)

How do I remap certain keys or devices?

  • This looks good but it's not working with xbindkeys. When xte 'key a' is called from xbindkeys it just makes my cursor flash when I press my hotkey. xte 'key a' in the command line works. gnome-terminal called from xbindkeys works. I'm not sure where the problem is. – Farzher May 1 '13 at 22:46
  • It really don't seem like xte is trying to send the key event to the focused window when called from xbindkeys... – Farzher May 1 '13 at 22:48
  • @StephenSarcsamKamenar I myself have had some trouble, but from my experience that has been xbindkeys problem.. For me I have to press the key combination at exactly the same time to get xbindkeys to send the command. YMMV. – Seth May 2 '13 at 2:52
  • Maybe an xbindkeys problem; xdotool worked with it, but when I held down a key, it would never repeat it. What are good alternatives to xbindkeys? – Farzher May 2 '13 at 4:19
  • 1
    @StephenSarcsamKamenar Xmodmap is explained in this answer as well as this one. That's what I'd use if xbindkeys didn't preform well enough (which it doesn't with xte.. at least for me.) – Seth May 3 '13 at 0:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.