You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Sunshine: refactor the application launch system #38
A flowchart-like editor (think zapier/n8n) to define the order of commands for an app. Some other features can be templates and import/export directly from Steam, Playnite and Lutris
Expanding on the roadmap entry here. This is just some brainstorming, nothing written in stone. We probably need a few different stages when a command can run.
pre display check - nothing available currently
post display check - current prep commands
pre stream start - current main command
post stream start - nothing available currently
stream pause / disconnect - nothing available currently
stream quit / end / termination - current undo commands
additional user connects to stream - nothing available currently
And the commands and do/undo commands to be refactored a bit. In the apps config it should probably just be a sequence of commands.
e.g.
"commands": [
{
"detached": True/False,"elevated": True/False,"ignore_error": True/False,"log_file": "e.g. my_command.log",
"name": "Friendly name",
"run": "terminal command to run",
"shell": "shell to use, e.g. auto, bash, cmd, pwsh, etc.",
"stage": "the point when the command should run",
"working_directory": "path to start in"
}
]
These would be listed in the order that they should run. In the c++, at each stage loop over the list in order and only run the command if the stage matches the stage we're at.
Activity
ReenigneArcher commentedon Feb 26, 2026
Expanding on the roadmap entry here. This is just some brainstorming, nothing written in stone. We probably need a few different stages when a command can run.
And the commands and do/undo commands to be refactored a bit. In the apps config it should probably just be a sequence of commands.
e.g.
These would be listed in the order that they should run. In the c++, at each stage loop over the list in order and only run the command if the stage matches the stage we're at.