Macrobuilder is a CLI to ease the creation of macros for the EVGA keyboard and mouse product series. The tool allows the generation of an importable macro using a predefined set of inputs.
The tool was developed for the EVGA Z15 and has not been tested for other products. It may or may not work; so if you're feeling lucky, try it out.
Furthermore, the tool was developed for a QWERTZ key mapping and other mappings may either produce some display glitches or not work at all, depending on EVGAs interpreter.
To generate a macro, define a file input.json and run node .. The JSON file should look like this:
{
"name": "new_macro",
"defaultDelay": 10,
"startPosition": [500, 500],
"macro": [
"m l 50",
"m r 50",
"m l 50"
]
}If the mouse position should not be set at the start of the macro, startPosition should be null. In that case the macro may not use absolute position modifiers such as p 150 445, but may only use relative motion such as p ~50 ~-25.
An example input JSON is included in the repository.
| Command | Description | Example |
|---|---|---|
| m <key> <delay> | Pushes down a mouse button for delay milliseconds; valid keys are l, r and m. |
m r 50 |
| b <key> <delay> | Pushes down a keyboard key for delay milliseconds; Some control keys may not be supported yet. You can fix this by manually adding the scancode, key display code, flag at button-down and flag offset at button-up in the keymap in the source code | b k 300 |
| bd <key> [delay] | Pushes down a keyboard key after an optional delay milliseconds of delay; does not release the key; if you call bd, you need to call bu later |
bd rshift |
| bu <key> [delay] | Releases a keyboard key that was pushed down beforehands after an optional delay; the button has to have been pressed down via bu earlier |
bu rshift |
| p [~]<x> [~]<y> | Moves the mouse cursor either to a specific location, or relative to its' current position; relative movement is prepended with ~; absolute movement is only possible if the macro has a start position |
p 500 550, p ~25 ~-50 |
| w <delay> | Adds a delay before the next command is called | w 500 |