95 lines
3.3 KiB
Markdown
95 lines
3.3 KiB
Markdown
# Runi
|
|
|
|
**Windows gaming, native to Linux.**
|
|
|
|
Runi launches Windows games under a chosen Proton build with per-game
|
|
configuration, without requiring Steam — and owns the rest of the per-game
|
|
contract too: runner management, gamescope/MangoHud, native HDR, controllers
|
|
and Steam Input, upscalers, frame generation, artwork, logs, saves, notes and
|
|
diagnostics.
|
|
|
|
This repository distributes Runi. It holds the released builds and the
|
|
documentation you need to use them.
|
|
|
|
## Install
|
|
|
|
Download `runi.pyz` from the [latest release](../../releases/latest). It is a
|
|
single self-contained file: no pip, no virtualenv, no terminal session to set
|
|
anything up. It needs only Python 3.11 or newer, which every current Linux
|
|
distribution and SteamOS already have.
|
|
|
|
```bash
|
|
chmod +x runi.pyz
|
|
mv runi.pyz ~/.local/bin/runi
|
|
runi --help
|
|
```
|
|
|
|
On a **Steam Deck** this is the whole install, and it never requires leaving
|
|
Gaming Mode.
|
|
|
|
If you would rather install from source and have a terminal available, `pipx
|
|
install runi` remains the recommended desktop route.
|
|
|
|
## Verify what you downloaded
|
|
|
|
Every release is published with a SHA-256 and a
|
|
[minisign](https://jedisct1.github.io/minisign/) signature. They answer
|
|
different questions, and the second is the one that matters most: the checksum
|
|
tells you the download arrived intact, while the signature tells you it came
|
|
from the key that signs Runi releases — which still means something if the
|
|
server handing you the file is not the one you think it is.
|
|
|
|
```bash
|
|
sha256sum -c runi.pyz.sha256
|
|
minisign -Vm runi.pyz -p runi.pub
|
|
```
|
|
|
|
The public key is `runi.pub`, in this repository.
|
|
|
|
## Documentation
|
|
|
|
Start here:
|
|
|
|
- [Feature catalogue](docs/features.md) — what Runi actually does
|
|
- [User flows](docs/user-flows.md) — end-to-end walkthroughs, from adding a
|
|
game to launching it
|
|
- [Configuration schema](docs/config-schema.md) — every per-game and global
|
|
setting, and the `--json` output contract
|
|
|
|
Per feature:
|
|
|
|
- [Launch providers](docs/launch-providers.md) — how a game is launched, and
|
|
the three engines
|
|
- [Game identity](docs/game-identity.md) — the three identifiers, and why they
|
|
are not interchangeable
|
|
- [OptiScaler](docs/optiscaler.md) — upscaler injection and provider selection
|
|
- [Lossless Scaling](docs/lossless-scaling.md) — frame generation, and
|
|
installing the lsfg-vk layer
|
|
- [Native HDR](docs/hdr.md)
|
|
- [Controller support](docs/controller-support.md)
|
|
- [Technology Scan](docs/technology-scan.md)
|
|
- [Customize profiles](docs/customize-profiles.md)
|
|
- [Portable prefix bundles](docs/prefix-bundles.md)
|
|
- [Ubisoft Connect](docs/ubisoft-connect.md)
|
|
|
|
## License
|
|
|
|
Runi is free software under the **GNU General Public License, version 3 or
|
|
later**. The full text is in [LICENSE](LICENSE), and `runi.pyz` contains the
|
|
complete corresponding source — it is a zip archive of the Python sources, so
|
|
`unzip runi.pyz` gives you everything the GPL entitles you to.
|
|
|
|
Runi wraps third-party software it does not redistribute (Proton builds,
|
|
umu-launcher, gamescope, MangoHud, OptiScaler, the lsfg-vk layer), each under
|
|
its own terms, and never distributes `Lossless.dll`.
|
|
|
|
## Reporting a problem
|
|
|
|
Runi ships a self-audit. Run it before reporting anything — it checks the
|
|
registry against what is actually on disk, and often names the problem
|
|
outright:
|
|
|
|
```bash
|
|
runi doctor
|
|
```
|