2021-07-22 00:05:52 +02:00
|
|
|
# Idea
|
|
|
|
Nixcitizen is an attempt to package a wine application in a sensible and
|
|
|
|
practical way with nix. The idea that the `WINEPREFIX` is handled by a
|
|
|
|
script that lives inside the nix store which derives the `WINEPREFIX` from
|
|
|
|
it's own path inside the store, leading to a creation and setup of a new
|
|
|
|
`WINEPREFIX` as soon as the script, it's dependencies or any configuration
|
|
|
|
changes.
|
|
|
|
|
|
|
|
The volatile nature of the `WINEPREFIX` leads to challenges in regards
|
|
|
|
to preservation of needed state, this is handled in the following ways:
|
|
|
|
|
2021-07-22 00:10:38 +02:00
|
|
|
* The Application in itself and the launcher folder containing the
|
2021-07-22 00:05:52 +02:00
|
|
|
session data are created in the users home directory and symlinked
|
|
|
|
into each prefix.
|
|
|
|
* Internal wine settings are handled as registry files and automatically
|
|
|
|
applied when a new prefix is created.
|
|
|
|
|
|
|
|
All dependencies are handled by wine. [dxvk](https://github.com/doitsujin/dxvk)
|
|
|
|
is compiled with nix and copied into each prefix and fonts are handled in a
|
|
|
|
similar manner
|
|
|
|
|
|
|
|
# Installation
|
|
|
|
First clone this repository, then
|
|
|
|
|
|
|
|
## On nixos
|
|
|
|
* Put `(pkgs.callPackage ./path/to/repo { })` into `environment.systemPackages` or
|
|
|
|
`users.extraUsers.<name>.packages` or into your home-manager configuration packages
|
|
|
|
|
|
|
|
## with nix-env
|
|
|
|
* plz no!
|
|
|
|
|
|
|
|
|
|
|
|
## Installation parameters
|
|
|
|
* `installDir`: Contains the `Roberts Space Industries` folder that is being linked
|
|
|
|
into the `Program Files` folder of the prefixs.
|
|
|
|
* `launcherCache`: `AppData` folder of the launcher. Holds the session data.
|
|
|
|
* `prefixBaseDir`: Where all the prefixes are installed under.
|
|
|
|
* `binName`: Name of the generated executable.
|
|
|
|
* `launcherArgs`: Arguments the RSI Launcher is called with.
|
|
|
|
* `winePackage`: Package of wine to use.
|
|
|
|
* `wineGlobalEnv`: Global variables that are exported at script startup.
|
|
|
|
* `winePatches`: List of patches for wine for easier access.
|
|
|
|
* `virtualDesktop`: `NULL` or a string in the form `AxB` with `A` and `B` being
|
|
|
|
positive Integers that define the height and width of the wine virtual desktop.
|
|
|
|
* `registryFiles`: Additional registry files to add to each prefix.
|
|
|
|
* `captureMouse`: Whether wine captures fullscreen windows.
|
|
|
|
|
|
|
|
## Script parameters
|
|
|
|
* `--install-prefix`: Installs the prefix if needed.
|
|
|
|
* `--install-launcher`: Installs the launcher. Can be used to reinstall.
|
|
|
|
* `--clean`: Deletes all but the currently used prefixes of the game.
|
|
|
|
* `--remove-prefix`: Deletes the currently used prefix. Use with care.
|
|
|
|
* `--run-game`: Runs the game (after installing the prefix if needed). Default behaviour.
|
|
|
|
* `--print-prefix`: Prints the current prefix path.
|
|
|
|
* `--help`: Prints help text.
|
|
|
|
* `--wine`: Runs a wine executable inside the context of the script. Example:
|
|
|
|
`starcitizen --wine winecfg`
|
|
|
|
|
|
|
|
# Disclaimer
|
2021-07-22 00:10:38 +02:00
|
|
|
This repository does not host any copyrighted content. All content is fetched
|
2021-07-22 00:05:52 +02:00
|
|
|
from official sources and is never redistributed by the author of this
|
|
|
|
software. It does not help in any way to cheat or pirate the game. A normal
|
|
|
|
account is still needed to install or play the game.
|