Macros
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.
Contents
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 triggered 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. The macro is stopped immediately, and the state of the controller is unchanged.
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.