Author's website and contact information: https://barraider.github.io
- ๐ Loops Support!
- Sticky SuperMacro and Sticky Keystroke both support loops! Use the
Auto Stop After N Rounds
to create loops which will run a customizable amount of times.
- Sticky SuperMacro and Sticky Keystroke both support loops! Use the
- New Variable Commands!
- {{VARSET}} - Use
{{VARSET:VarName:Value}}
to set the valueValue
intoVarName
. You can then use{{OUTPUT:VarName}}
to display it - {{VARSETFROMFILE}} - Use
{{VARSETFROMFILE:VarName:c:\myfile.txt}}
to readmyfile.txt
and store its contents intoVarName
. You can then use{{OUTPUT:VarName}}
to display it - {{VARUNSET}} - Use
{{VARUNSET:VarName}}
to clearVarName
- {{VARUNSETALL}} - Clears all variables. Usage:
{{VARUNSETALL}}
- {{VARSET}} - Use
- Full support for Numpad buttons! Added a bunch of new commands to differentiate between Numpad buttons and their non-Numpad variation (Arrows, Home, End, ...). See full list below
- Storing/Restore mouse position. Use
{{MSAVEPOS}}
to store the current mouse position. Later use{{MLOADPOS}}
to move the mouse back to that position - Mouse Double-Clicks:
- Left Double Click now uses the
{{MLEFTDBLCLICK}}
command. - Right Double Click now uses the
{{MRIGHTDBLCLICK}}
command.
- Left Double Click now uses the
MouseXY
command which is superseding theMousePos
command. Use it to move the mouse cursor to a specific place on your desktop. Use together with the newMouse Location
action inWin Tools
to quickly determine the coordinates you want.- Support for mouse Button 4 and Button 5 - Use
{{XBUTTON1}}
for Button 4 click. Use{{XBUTTON2}}
for Button 5 click. - New
Let macro complete on stop
option available for Sticky SuperMacro. Will ensure the macro completes fully when the button is pressed
- Macros can now be loaded directly from a text file (instead of being edited in the Stream Deck App)
- Plugin will read the file on keypress to ensure the latest version of the macro is executed
- New option to ignore "new line" in textbox and only react to
{{enter}}
. Allows you to write macros on multiple lines to make them more readable
- The long awaited Variable support has now arrived!!!
:new: You can now get input from the user and store it in variables.
For example: Using
{{INPUT:YourName}}Hello {{OUTPUT:YourName}}
will first ask the user for a value, store it inYourName
and then type it after the Hello part. You can use this many times, and with any different variable names. - SuperMacro now supports putting a
:
between the command name and value, which allows better readability of your macros. You can now type{{PAUSE:1000}}
,{{KEYDOWN:SHIFT}}
,{{MOUSEMOVE:1,1}}
etc.
This is the basic implementation. Create a macro and run it on keypress. Examples can be seen in the Usage Examples section below.
Toggle between two different macros.
Click once to enable, the macro will run again and again until the button is pressed again
This action limits the action to either one command (such as {{ctrl}{c}}) or one character. The command will be run again and again as long as you continue to press the key.
This action limits the action to either one command (such as {{ctrl}{c}}) or one character. The command will be run again and again until the button is pressed again.
SuperMacro knows to deal with both Commands and normal text. A command is either one special key (like F5 or Winkey) or a keystroke (like Ctrl-C). A command is always enclosed in {} and each individual key in the command is also inclosed in {} so you should always see two {{
at the beginning and two }}
at the end. For instance: {{f5}}
or {{ctrl}{c}}
- Open Windows Explorer and got to C:\Program Files
Note: Delay should be ~20 ms
{{win}{e}}{{pause:400}}{{alt}{d}}c:\Program Files\{{enter}}
- Open notepad and play with the settings
Note: Delay should be ~20 ms
Note2: This will not work correctly if your Windows (and notepad) are not in English
{{win}{r}}{{pause:500}}notepad.exe{{enter}}{{pause:1000}}Ok... Let's see what this plugin can do...{{alt}{f}}{{right}}{{PAUSE:400}}{{right}}{{PAUSE:400}}f{{pause:400}}times{{down}}{{PAUSE:400}}{{tab}}{{PAUSE:400}}{{down}}{{PAUSE:400}}{{down}}{{PAUSE:400}}{{ENTER}}{{ENTER}}For more information visit: https://barider.g1thubio{{ctrl}{shift}{left}}{{PAUSE:400}}https://barraider.github.io{{ENTER}}{{alt}{o}}f{{PAUSE:100}}Lucida Console{{tab}}Regular{{Tab}}12{{ENTER}}
- Calculate something
Note: Delay should be ~20 ms
{{win}{r}}{{pause:300}}calc{{enter}}{{pause:1000}}1*2*3*4*5=
- Move the mouse to a certain position on the screen
{{MOUSEPOS:40000,15000}}
- Move the mouse by 10 pixels left and 20 pixels down on every press
{{MOUSEMOVE:-10,20}}
- Get input from user and then use it later on.
{{INPUT:Name}}Hello {{OUTPUT:Name}}, Nice to meet you!
https://github.com/BarRaider/streamdeck-supermacro/releases
For support please contact the developer. Contact information is available at https://barraider.github.io
Please contact the developer. Contact information is available at https://barraider.github.io
This plugin uses the StreamDeck-Tools v2.0
Keyboard Key | Macro Command |
---|---|
Letters A-Z | {VK_XXXX} (XXXX = the letter - e.g. VK_A / VK_B ...) |
Numbers 0-9 | {VK_XXXX} (XXXX = the number - e.g. VK_0 / VK_1 ...) |
These characters: ;/`[\]':?~{|}" |
Exact command changes between keyboard layouts: Try the following macros to figure out the correct command: {{oem_1}}{{oem_2}}{{oem_3}}{{oem_4}}{{oem_5}} {{oem_6}}{{oem_7}}{{oem_8}} {{shift}{oem_1}}{{shift}{oem_2}}{{shift}{oem_3}} {{shift}{oem_4}}{{shift}{oem_5}} {{shift}{oem_6}}{{shift}{oem_7}}{{shift}{oem_8}} |
Numpad 0 | {NUMPAD0} |
Numpad 1 | {NUMPAD1} |
Numpad 2 | {NUMPAD2} |
Numpad 3 | {NUMPAD3} |
Numpad 4 | {NUMPAD4} |
Numpad 5 | {NUMPAD5} |
Numpad 6 | {NUMPAD6} |
Numpad 7 | {NUMPAD7} |
Numpad 8 | {NUMPAD8} |
Numpad 9 | {NUMPAD9} |
Numpad * | {MULTIPLY} |
Numpad + | {ADD} |
Numpad - | {SUBTRACT} |
Numpad . | {DECIMAL} |
Numpad / | {DIVIDE} |
BACKSPACE | {BACK} |
TAB | {TAB} |
CLEAR | {CLEAR} |
ENTER | {RETURN} or {ENTER} |
SHIFT | {SHIFT} |
Left SHIFT | {LSHIFT} |
Right SHIFT | {RSHIFT} |
CTRL | {CONTROL} or {CTRL} |
Left CONTROL | {LCONTROL} or {LCTRL} |
Right CONTROL | {RCONTROL} or {RCTRL} |
ALT | {ALT} or {MENU} |
Left ALT | {LALT} or {LMENU} |
Right ALT | {RALT} or {RMENU} |
PAUSE/BREAK | {BREAK} |
CAPS LOCK | {CAPITAL} |
ESC | {ESCAPE} |
SPACEBAR | {SPACE} |
PAGE UP | {PAGEUP} or {PGUP} or {PRIOR} |
Numpad PAGE UP | {NUMPAD_PAGEUP} |
PAGE DOWN | {PAGEDOWN} or {PGDN} or {NEXT} |
Numpad PAGE DOWN | {NUMPAD_PAGEDOWN} |
HOME | {HOME} |
Numpad HOME | {NUMPAD_HOME} |
END | {END} |
Numpad END | {NUMPAD_END} |
UP ARROW | {UP} |
Numpad UP ARROW | {NUMPAD_UP} |
LEFT ARROW | {LEFT} |
Numpad LEFT ARROW | {NUMPAD_LEFT} |
RIGHT ARROW | {RIGHT} |
Numpad RIGHT ARROW | {NUMPAD_RIGHT} |
DOWN ARROW | {DOWN} |
Numpad DOWN ARROW | {NUMPAD_DOWN} |
SELECT | {SELECT} |
PRINT SCREEN | {SNAPSHOT} |
{PRINT} | |
EXECUTE | {EXECUTE} |
INS | {INSERT} |
Numpad INS | {NUMPAD_INSERT} |
DEL | {DELETE} |
Numpad DEL | {NUMPAD_DEL} |
HELP | {HELP} |
Left Windows | {LWIN} or {WIN} or {WINDOWS} |
Right Windows | {RWIN} |
F1 | {F1} |
F2 | {F2} |
F3 | {F3} |
F4 | {F4} |
F5 | {F5} |
F6 | {F6} |
F7 | {F7} |
F8 | {F8} |
F9 | {F9} |
F10 | {F10} |
F11 | {F11} |
F12 | {F12} |
F13 | {F13} |
F14 | {F14} |
F15 | {F15} |
F16 | {F16} |
F17 | {F17} |
F18 | {F18} |
F19 | {F19} |
F20 | {F20} |
F21 | {F21} |
F22 | {F22} |
F23 | {F23} |
F24 | {F24} |
Plus: += | {OEM_PLUS} / {{SHIFT}{OEM_PLUS}} |
Minus: -_ | {OEM_MINUS} / {{SHIFT}{OEM_MINUS}} |
Period: .> | {OEM_PERIOD} / {{SHIFT}{OEM_PERIOD}} |
Comma: ,< | {OEM_COMMA} / {{SHIFT}{OEM_COMMA}} |
NUM LOCK | {NUMLOCK} |
SCROLL LOCK | {SCROLL} |
Note: Use a :
between the command name and the arguments
PAUSE | {PAUSE:XXXX} (XXXX = length in miliseconds) |
KeyDown | {KeyDown:XXXX} (XXXX = name of key, example {{KeyDown:F1}}) |
KeyUp | {KeyUp:XXXX} (XXXX = name of key, example {{KeyUp:SHIFT}}) |
Input | {Input:VarName} Get input from the user and store it in 'VarName'. |
Output | {Output:MyVar} Output the input previously gathered into 'MyVar'. |
VarSet | {VarSet:MyVar:MyValue} set the value `MyValue` into `MyVar`. |
VarSetFromFile | {VarSetFromFile:MyVar:C:\filename.txt} read the contents of the file specified and store into `MyVar`. |
VarUnset | {VarUnset:MyVar} clears `MyVar`. |
VarUnsetAll | {VARUNSETALL} clears all variables. |
MSavePos | {MSAVEPOS} stores the current mouse cursor position. |
MLoadPos | {MLOADPOS} moves the mouse to the previous set position (when `{MSAVEPOS}` was called). |
Mouse Key | Macro Command |
---|---|
Mouse Left-Click | {LBUTTON} |
Mouse Left Double-Click | {MLEFTDBLCLICK} |
Mouse Left Button Down | {MLEFTDOWN} |
Mouse Left Button Up | {MLEFTUP} |
Mouse Right-Click | {RBUTTON} |
Mouse Right Double-Click | {MRIGHTDBLCLICK} |
Mouse Right Button Down | {MRIGHTDOWN} |
Mouse Right Button Up | {MRIGHTUP} |
Mouse Middle Click | {MBUTTON} |
Mouse Middle Button Down | {MMIDDLEDOWN} |
Mouse Middle Button Up | {MMIDDLEUP} |
Mouse Button 4 Click | {XBUTTON1} |
Mouse Button 5 Click | {XBUTTON2} |
Mouse Scroll Wheel Up | {MSCROLLUP} |
Mouse Scroll Wheel Down | {MSCROLLDOWN} |
Mouse Horizontal Scroll Left | {MSCROLLLEFT} |
Mouse Horizontal Scroll Right | {MSCROLLRIGHT} |
Mouse Move: Based on CURRENT position | {MOUSEMOVE:X,Y} (Move the cursor by X,Y from current position) |
Mouse Move: based on multi-screen resolutions | {MOUSEXY:X,Y} (Move the cursor to the X,Y position on the screen. 0,0 is the [top-left] of your primary monitor. Supports both positive and negative values. Use along with the Mouse Location plugin in Win Tools to easily find the right coordinates on your PC |
Mouse Move: based on ABSOLUTE position (DEPRICATED) | {MOUSEPOS:X,Y} (Move the cursor to the X,Y position on the screen. Values from 0,0 [top-left] to 65535,65535 [bottom-right]) |