http://www.shallowsky.com/software/crikey/

Usage (command-line flags)
==========================
Usage: crikey [-itxr] [-sS sleeptime] string...
Send key events, as if args was typed in whatever X window currently has focus.
Flags:
        -s seconds: sleep time before sending
        -S milliseconds: sleep time before sending
             Many window managers need a delay for focus shifting
             or to allow a modifier button to be released.
        -i: Interactive (read input from stdin)
        -t: Use XTest to send events (default)
        -x: Use XSendEvent to send events
        -r: Send events to root window (only with XSendEvent)
        -l: Show long (more detailed) help
        -d: Show debug messages

If there are multiple arguments, single spaces will be inserted between them.



Crikey input options
====================
Sample usage:

crikey -s 1 'My long string\nExtending over two lines.'

Using quotes around the string is normally recommended, to avoid problems with
your shell treating any characters specially, especially backslashes.


Special characters and syntaxes
===============================
Control characters use ^: ^A sends a Control-A
Numeric ASCII codes (decimal only): \27 sends ESC

Special codes:
\t tab, \b backspace, \n newline, \r return, \d delete, \e escape, \\ backslash

Modifier keys:
\S shift, \C control, \A alt, \M or \W for the "Windows" key. These must be
capitalized, and they only apply to the next single character, so \Aabc will
send alt-A followed by b and c with no modifier keys.

Special symbols with \( \): \(Return\) ... these are defined in
/usr/include/X11/keysymdef.h, but only those defined on your keyboard will
likely work. 


A Note on Xterm
===============
Crikey will work out of the box for most terminal emulators, but xterm blocks
events generated with XSendEvent by default. To use crikey with xterm, you have
two options:

    * Use crikey -t, to use the X Test extension instead of XSendEvent (this is now the default).
    * Add to your .Xdefaults file: XTerm*allowSendEvents: true 

Setting up Crikey in your Window Manager

The most common way to use Crikey is to bind specific crikey commands to keys
in your window manager (for instance, Shift-F12 might send a particular string).

The procedure for making key bindings is different in every window manager,
so I've moved the instructions for all the various window managers to a separate
page: Making Crikey! work on various window managers.
