Macros

From GIMX

Revision as of 10:39, 14 June 2012 by Matlo (talk | contribs) (Multiple keyboards/mice/joysticks)

Jump to: navigation, search

It's possible to configure keyboard/mouse/joystick macros: a key or button press can trigger a series of keyboard/mouse/joystick events, with timing conditions.

Directory

Macros have to be defined in files saved into:

  • Ubuntu: the ~/.emuclient/macros directory. ~ is the home directory, and .emuclient folder is hidden (in the file manager, press ctrl+h to display hidden folders).
  • Windows 32bits: the C:\Program Files\GIMX\macros directory.
  • Windows 64bits: the C:\Program Files (x86)\GIMX\macros directory.

Syntax

MACRO <DEVICE EVENT> <ID>
<DEVICE EVENT> <ID>
DELAY <MS>
#<COMMENT>
<DEVICE EVENT>: KEYDOWN, KEYUP, MBUTTONDOWN, MBUTTONUP, JBUTTONDOWN, JBUTTONUP
<ID>: the event id (case sensitive) as displayed in gimx-config
<MS>: integer value in milliseconds
<COMMENT>: a comment, not interpreted

Commands

  • KEYDOWN: keyboard key pressed
  • KEYUP: keyboard key released
  • KEY: KEYDOWN + DELAY 50 + KEYUP
  • MBUTTONDOWN: mouse button pressed
  • MBUTTONUP: mouse button released
  • JBUTTONDOWN: joystick button pressed
  • JBUTTONUP: joystick button released
  • DELAY: delay in milliseconds

Example: rapid_fire.txt

MACRO MBUTTONDOWN BUTTON_LEFT
KEYDOWN p
DELAY 50
KEYUP p
DELAY 50
MBUTTONDOWN BUTTON_LEFT

MACRO MBUTTONUP BUTTON_LEFT
KEYUP p
MBUTTONDOWN BUTTON_LEFT

'p' is bind to r1 in both hip fire and ADS profiles.
'BUTTON_LEFT' is NOT bind to r1 in both hip fire and ADS profiles.

Notes

Macro loop

To make a macro loop, just add a KEYDOWN or MBUTTONDOWN or JBUTTONDOWN command at the end of the macro definition.
Example:

MACRO MBUTTONDOWN BUTTON_LEFT
KEYDOWN p
DELAY 50
KEYUP p
DELAY 50
MBUTTONDOWN BUTTON_LEFT

The macro is trigger by pressing 'BUTTON_LEFT'.
The last command of the macro restarts the macro, creating a loop.
To stop a macro loop, just press the trigger again.

Multiple keyboards/mice/joysticks

In case multiple keyboards or mice or joysticks are used, it's not possible to specify the device for which events are generated.
Events are generated for the first keyboard/mouse/joystick found in the configuration.