steamux 0.1.0

Run multiple programs and interactive shells in one Proton's environment (Steam/umu-launcher)
Documentation
# steamux

Run multiple programs and interactive shells in one Proton's environment (Steam/umu-launcher), so they share the `wineserver` and have correct IPC behavior, and programs like wine-discord-ipc-bridge, Cheat Engine and some UI overlays just work.

## Usage

Generally, you run `steamux` in the target environment (`steamux serve` run as a server/daemon, listening on a unix domain socket), and run `steamuxctl` anywhere to ask the daemon to run programs in the environment.

Make sure the `steamux` binary is accessible in the target environment. If not, the easiest way is that just copy it to somewhere accessible (e.g. the folder where the game is installed) (and use the copied one!).

For more information, see `steamux --help` and `steamuxctl --help`.

## Quick Start

### Run first program (`steamux` CLI)

#### Steam

Set the [launch options](https://help.steampowered.com/en/faqs/view/7D01-D2DD-D75E-2955) to `steamux steam -- %command% > steamux.log` and then run the game.

#### umu-launcher

Instead of running `umu-run <exe> [args]`, run `steamux umu -- <exe> [args]`.

### Run another program (`steamuxctl` CLI)

Steam: `cd` to the folder your game installed in.

umu-launcher: `cd $WINEPREFIX`.

- `steamuxctl run -p foo.exe` to run `foo.exe`
- `steamuxctl shell -p cmd` to get an interactive cmd.exe
- `steamuxctl shell bash` to get an interactive bash
- `steamuxctl spawn <executable>` to run it in the background

See `steamuxctl --help`.