feat: working_dir handler field, per-process concurrency, per-instance audio sinks #16

Merged
gabrielgad merged 3 commits from feat/working-dir-handler-field into main 2026-07-02 23:25:50 -04:00
gabrielgad commented 2026-06-30 15:41:25 -04:00 (Migrated from github.com)

Foundation of the split PR stack (#12#13#14#15 are based on this branch). Three commits:

  • handler: optional working_dir — override the game process cwd for launcher-shim titles whose real binary lives in a subdir but must run with cwd higher up (e.g. native Frozenbyte titles).
  • launch: per-process concurrency — namespaced scratch (tmp/<launch_ns>) + per-launch window ownership so two concurrent splitux processes don't collide on scratch dirs or grab each other's gamescope windows.
  • audio + concurrency — per-instance virtual capture sinks (so each together stream taps only its own game's audio) + crash-safe orphan cleanup (pid-aware scratch reaping).

Merge this first; the four split/* PRs then stack on top in order.

Foundation of the split PR stack (#12 → #13 → #14 → #15 are based on this branch). Three commits: - **handler: optional `working_dir`** — override the game process cwd for launcher-shim titles whose real binary lives in a subdir but must run with cwd higher up (e.g. native Frozenbyte titles). - **launch: per-process concurrency** — namespaced scratch (`tmp/<launch_ns>`) + per-launch window ownership so two concurrent `splitux` processes don't collide on scratch dirs or grab each other's gamescope windows. - **audio + concurrency** — per-instance virtual capture sinks (so each together stream taps only its own game's audio) + crash-safe orphan cleanup (pid-aware scratch reaping). Merge this first; the four `split/*` PRs then stack on top in order.
Sign in to join this conversation.
No description provided.