17

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.

1
  • Hey Stephen, i'm looking for exactly the same thing. Have you succeeded in doing this? Dec 28, 2013 at 0:03

1 Answer 1

20

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.

xte:

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

Keynames:

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

Home
Left
Up
Right
Down
Page_Up
Page_Down
End
Return
BackSpace
Tab
Escape
Delete
Shift_L
Shift_R
Control_L
Control_R
Meta_L
Meta_R
Alt_L
Alt_R
Multi_key  
Super_L  
Super_R

Reading:

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?

6
  • 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, 2013 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, 2013 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, 2013 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, 2013 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, 2013 at 0:44

You must log in to answer this question.

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