Skip to content

Sunshine: refactor the application launch system #38

Open

Description

@ReenigneArcher

Is there an existing issue for this item?

  • I have searched the existing issues

Repositories

LizardByte/Sunshine

Languages/Skills/Technologies

C++, Vue, CSS, HTML, JavaScript

Description

The Application system for launching is becoming very difficult to understand (prep/detatched/normal commands, configuration flags and such).

Idea from @TheElixZammuto

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

Estimated Effort

effort:Extra-Large

Priority

priority:Medium

Target Milestone

6+ months

Dependencies

No response

Activity

  1. ReenigneArcher commented on Feb 26, 2026

    @ReenigneArcher
    MemberAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    • Status
      Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions