Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
1 contributor

Users who have contributed to this file

500 lines (475 sloc) 13.6 KB

SuperMacro - Advanced keystroke macros triggered by the Elgato Stream Deck

Author's website and contact information: https://barraider.github.io

New in v1.6

  • Marcos 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

New in v1.5

  • The long awaited Variable support has now arrived!!! 🆕 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 in YourName 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.

Current functionality

5 Plugins built into one:

Super Macro

This is the basic implementation. Create a macro and run it on keypress. Examples can be seen in the Usage Examples section below.

Super Macro Toggle

Toggle between two different macros.

Sticky Super Macro

Click once to enable, the macro will run again and again until the button is pressed again

Keystroke PTT

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.

Sticky Keystroke

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.

How do I get started using it?

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}}

Usage Examples

  1. 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}}
  1. 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}}
  1. Calculate something
    Note: Delay should be ~20 ms
{{win}{r}}{{pause:300}}calc{{enter}}{{pause:1000}}1*2*3*4*5=
  1. Move the mouse to a certain position on the screen
{{MOUSEPOS:40000,15000}}
  1. Move the mouse by 10 pixels left and 20 pixels down on every press
{{MOUSEMOVE:-10,20}}
  1. Get input from user and then use it later on.
{{INPUT:Name}}Hello {{OUTPUT:Name}}, Nice to meet you!

Download

https://github.com/BarRaider/streamdeck-supermacro/releases

I found a bug, who do I contact?

For support please contact the developer. Contact information is available at https://barraider.github.io

I have a feature request, who do I contact?

Please contact the developer. Contact information is available at https://barraider.github.io

Dependencies

This plugin uses the StreamDeck-Tools v2.0

List of supported keystroke commands

Keyboard Key Macro Command
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 {PRIOR}
PAGE DOWN {PAGEDOWN} or {NEXT}
END {END}
HOME {HOME}
LEFT ARROW {LEFT}
UP ARROW {UP}
RIGHT ARROW {RIGHT}
DOWN ARROW {DOWN}
SELECT {SELECT}
PRINT SCREEN {SNAPSHOT}
PRINT {PRINT}
EXECUTE {EXECUTE}
INS {INSERT}
DEL {DELETE}
HELP {HELP}
Left Windows {LWIN} or {WIN} or {WINDOWS}
Right Windows {RWIN}
Numericpad 0 {NUMPAD0}
Numericpad 1 {NUMPAD1}
Numericpad 2 {NUMPAD2}
Numericpad 3 {NUMPAD3}
Numericpad 4 {NUMPAD4}
Numericpad 5 {NUMPAD5}
Numericpad 6 {NUMPAD6}
Numericpad 7 {NUMPAD7}
Numericpad 8 {NUMPAD8}
Numericpad 9 {NUMPAD9}
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}
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}}
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}

Advanced Commands

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'.

Mouse Commands

Keyboard Key Macro Command
Mouse Left-Click {LBUTTON}
Mouse Left Double-Click {XBUTTON1}
Mouse Left Button Down {MLEFTDOWN}
Mouse Left Button Up {MLEFTUP}
Mouse Right-Click {RBUTTON}
Mouse Right Double-Click {XBUTTON2}
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 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 ABSOLUTE position {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])
You can’t perform that action at this time.