autodeck 0.4.0

Elgato StreamDeck based Automation Software
Documentation

# An example automata that always succeeds
[[automata]]
state = "stopped"

[automata.states.stopped]
on_press = { func = "./scripts/success.sh", on_success = "running", on_error = "error" }
display = { mode = "Image", file = "../streamdeck/icons/windows.png", invert = true }

[automata.states.running]
on_press = { on_success = "stopped" }
display = { mode = "Image", file = "../streamdeck/icons/windows.png", invert = false }

[automata.states.error]
on_press = { on_success = "stopped" }
display = { mode = "Image", file = "../streamdeck/icons/windows.png", invert = false, background = { r = 255, g = 0, b = 0} }


# An example automata that always fails
[[automata]]
state = "stopped"

[automata.states.stopped]
on_press = { func = "./scripts/failure.sh", on_success = "running", on_error = "error" }
display = { mode = "Colour", r = 0, g = 0, b = 255 }

[automata.states.running]
on_press = { on_success = "stopped" }
display = { mode = "Colour", r = 0, g = 255, b = 0 }

[automata.states.error]
on_press = { on_success = "stopped" }
display = { mode = "Colour", r = 255, g = 0, b = 0 }

# An example automata that sometimes does either
[[automata]]
state = "stopped"

[automata.states.stopped]
on_press = { func = "./scripts/sometimes.sh", on_success = "running", on_error = "error" }
display = { mode = "Colour", r = 0, g = 0, b = 255 }

[automata.states.running]
on_press = { on_success = "stopped" }
display = { mode = "Colour", r = 0, g = 255, b = 0 }

[automata.states.error]
on_press = { on_success = "stopped" }
display = { mode = "Colour", r = 255, g = 0, b = 0 }

# An example automata that launches into a state at startup
[[automata]]
state = "init"
on_init = { func = "./scripts/sometimes.sh", on_success = "okay", on_error = "error" }

[automata.states.init]
display = { mode = "Colour", r = 0, g = 0, b = 0 }

[automata.states.okay]
display = { mode = "Colour", r = 0, g = 255, b = 0 }

[automata.states.error]
display = { mode = "Colour", r = 255, g = 0, b = 0 }


# An example automata that updates it's state at runtime
[[automata]]
state = "init"
on_init = { func = "./scripts/sometimes.sh", on_success = "okay", on_error = "error" }

[automata.states.init]
display = { mode = "Colour", r = 0, g = 0, b = 0 }

[automata.states.okay]
on_poll = { func = "./scripts/sometimes.sh", on_success = "okay", on_error = "error" }
display = { mode = "Colour", r = 0, g = 255, b = 0 }

[automata.states.error]
on_poll = { func = "./scripts/sometimes.sh", on_success = "okay", on_error = "error" }
display = { mode = "Colour", r = 255, g = 0, b = 0 }


# An example automata that parses state from stdout using filters
[[automata]]
state = "one"

[automata.states.one]
on_press = { func = "./scripts/sometimes-stdout.sh", success_filter = "ok", on_success = "one", on_failure = "two" }
display = { mode = "Colour", r = 0, g = 255, b = 0 }

[automata.states.two]
on_press = { func = "./scripts/sometimes-stdout.sh", failure_filter = "error", on_success = "one", on_failure = "two" }
display = { mode = "Colour", r = 255, g = 0, b = 0 }