Creating a Basic Custom Response

To create a Custom response, you simply use the pattern above, substituting special vocabulary words (the actions) for “SomeActionHere.”

Example: This Custom response performs a double-click of your left mouse button.

1[LeftDown,LeftUp,LeftDown];2[LeftUp]

Notice that in this example, only Stage 1 and Stage 2 are used. When you press the button, the system will “see” a left mouse button click and release, followed by another click. When you release the button, the system will see the release of the second click.

Single-Stage Responses

Most Custom responses use Stage 1 and Stage 2, describing what happens when you press and then release a button. In some cases, a response may use only Stage 1 or only Stage 2.

Example: This Custom response will press and release the “A” key.

1[Keystrokes(A)]

The action will be performed as soon as the button is pressed, regardless of whether it is released or not. Since the response does not involve a button being held down, there is no need for a Stage 2 to tell it to release the button.

Example: This Custom response causes your cursor to jump to a location 100 pixels to the right, and 50 pixels down, from the top left corner of your screen:

2[XJump(100),YJump(50)]

Unlike the previous example, in this case the cursor will not move until you release the button (Stage 2). Nothing happens on the initial press, or for as long as you hold down the button. If this had been written 1[XJump(100),YJump(50)], it would still work, but it would move the cursor before the button release. Most actions that you perform by clicking an on-screen button with the mouse do not register with the system until the button is released, so you may find that when duplicating such actions with a Custom response, it feels more natural to use Stage 2 than Stage 1.

Stages 3 and 4

Stages 3 and 4 are used less often than 1 and 2. They are generally used for “Drag” responses in which you wish to keep a mouse button locked down for a period of time. Another use is to make a brief (2-4 item) cycle of responses.

Example: This Custom response, when assigned to a mouse button, will “type” a different letter with each of four successive button presses and releases.

1[Keystrokes(A)];2[Keystrokes(B)];3[Keystrokes(C)];4[Keystrokes(D)]

It is not necessary to define an action for every stage if you want some of them to be ignored. Some responses skip one or more stages.

Example: This Custom response, which uses only stages 1 and 4, allows you to select a range of text without holding the mouse button down, and then click a second time to make your selection bold.

1[LeftDown];4[LeftUp,Keystrokes(Ctrl+B)]

In this case, when you press the button the first time, the system sees that the left mouse button is down. But when you release the physical button, this is not reported to the system, because there is no instruction given for Stage 2. So the system considers the mouse button to be held down. If you move the mouse after pressing the button for the first time, it will select a range of text. Click and release the second time, and the system is told to release the button, after which a keystroke sequence is executed-which will apply to the range of text just selected.