|
9 | 9 |
|
10 | 10 | ## ⬇️ Installation
|
11 | 11 |
|
12 |
| -TODO |
| 12 | +### ArchLinux |
| 13 | + |
| 14 | +```bash |
| 15 | +# Using paru. |
| 16 | +paru -S raptor-cage-bin |
| 17 | + |
| 18 | +# Manual clone. |
| 19 | +git clone https://aur.archlinux.org/raptor-cage-bin.git |
| 20 | +cd raptor-cage-bin |
| 21 | +makepkg -sri |
| 22 | +``` |
| 23 | + |
| 24 | +### Manual Installation |
| 25 | + |
| 26 | +```bash |
| 27 | +download_url="$(curl -sL 'https://api.github.com/repos/RX0FA/raptor-cage/releases/latest' | grep -E 'browser_download_url.+\.tgz' | grep -oP '"browser_download_url": "\K[^"]+')" |
| 28 | +curl -L -o raptor-cage.tgz "$download_url" |
| 29 | +tar xf raptor-cage.tgz |
| 30 | +sudo install -Dm755 raptor-cage "/usr/local/bin/rcage" |
| 31 | +``` |
13 | 32 |
|
14 | 33 | ## 💡 Usage
|
15 | 34 |
|
16 | 35 | ### Command Line
|
17 | 36 |
|
18 | 37 | ```bash
|
19 | 38 | # Run Windows game, runner and prefix paths are relative to Bottles data directory.
|
20 |
| -raptor-cage run -r soda-9.0-1 -p my_prefix -d ~/games/some_game -b game.exe |
| 39 | +rcage run -r soda-9.0-1 -p my_prefix -d ~/games/some_game -b game.exe |
21 | 40 |
|
22 | 41 | # Run native binary, and pass custom parameters.
|
23 |
| -raptor-cage run -r soda-9.0-1 -p my_prefix -d ~/games/some_game -b native_binary -- --param1 |
| 42 | +rcage run -r soda-9.0-1 -p my_prefix -d ~/games/some_game -b native_binary -- --param1 |
24 | 43 | ```
|
25 | 44 |
|
26 | 45 | ## 📌 Frequently Asked Questions
|
@@ -65,19 +84,15 @@ cargo upgrade --dry-run
|
65 | 84 |
|
66 | 85 | * Some games (like HC2, DXM) create a detached sub-process, since we are using `--die-with-parent`, said games will not run when executed directly (with `-b` parameter, executing a shell and launching manually still works); so we need to think in a way to detect child processes and wait for them, or at least add a flag to enable this feature. Disabling `--die-with-parent` is another option, but that would undermine security a bit and leave lingering wine processes all over the place. Maybe add a `--lead-process=NAME_EXE:TIMEOUT` to wait for another process inside the sandbox.
|
67 | 86 | * Implement bash autocompletion, should be able to autocomplete prefix and runner names based on the ones detected under Bottles.
|
68 |
| -* If application binary `-b` does not end with `.exe`, do not prepend `wine`, it's possible that the user wants to run a custom command like `mangohud` or a native Linux game. |
69 | 87 | * Add `integrate` sub-command to create integrations e.g., `.desktop` shortcut, entry on Heroic launcher.
|
70 |
| -* Native wayland support, see https://www.phoronix.com/news/Wine-9.22-Released and https://wiki.archlinux.org/title/Wine#Wayland. |
| 88 | +* Native wayland support, see https://www.phoronix.com/news/Wine-9.22-Released and https://wiki.archlinux.org/title/Wine#Wayland. Also consider bringing back `--unshare-ipc` if using Wayland prevents the issue described in bwrap.rs#90. |
71 | 89 | * Add `kill` sub-command to terminate all processes in a sandbox, need to connect to existing bwrap container.
|
72 | 90 | * Add argument to mount additional paths (needed for installers and maintenance), syntax can be similar to Docker's `-v PATH:FLAGS`.
|
73 | 91 | * When using the `integrate` sub-command to create a `.desktop` shortcut, extract executable icon and set it respectively. It can be done with a small windows executable calling a win32 API call or natively on Linux by using `wrestool`.
|
74 | 92 | * Add NTSYNC support, see also https://www.phoronix.com/news/Linux-6.14-NTSYNC-Driver-Ready.
|
75 | 93 |
|
76 | 94 | #### Packaging
|
77 | 95 |
|
78 |
| -* AUR package, also add `mangohud` as optional dependency. |
79 |
| -* Setup GitHub Actions to automatically publish AUR package. |
80 |
| -* Normal binary release. |
81 | 96 | * cURL install script.
|
82 | 97 | * Create deb package. It should depend on Steam libraries (similarly to Arch's `steam-native-runtime`), see https://packages.ubuntu.com/search?keywords=steam&searchon=names&suite=noble§ion=all.
|
83 | 98 | * Make a reusable lib version (`Cargo.lock` needs to be ignored, see https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html).
|
|
0 commit comments