78 lines
3.8 KiB
Markdown
78 lines
3.8 KiB
Markdown
# Nixcitizen
|
|
A [Star Citizen](https://robertsspaceindustries.com/star-citizen) runtime environment managed by nix.
|
|
|
|
## 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:
|
|
|
|
* The Application in itself and the launcher folder containing the
|
|
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-build
|
|
* `nix-build -E 'with import <nixpkgs> {}; pkgs.callPackage ./default.nix { }'`
|
|
|
|
|
|
### 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.
|
|
* `vulkanDrivers`: Force list of vulkan drivers. Supported Elements: `radeon`, `intel` and `amdvlk`
|
|
might solve issues with mesa version conflicts mainly on non-nixos platforms. Nvidia drivers not
|
|
(yet?) supported for this option.
|
|
* `winePackage`: Package of wine to use.
|
|
* `wineSrc`: Points to the source to build wine from.
|
|
* `wineGlobalEnv`: Global variables that are exported at script startup.
|
|
* `winePatches`: List of patches for wine for easier access.
|
|
* `applyReccomendedWinePatches`: Whether or not to apply patches to wine for star citizen.
|
|
* `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.
|
|
* `enableGameScope`: Whether or not to run the game in [gamescope](https://github.com/Plagman/gamescope).
|
|
* `gameScopeArgs`: [options](https://github.com/Plagman/gamescope#options) for gamescope.
|
|
|
|
### 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`
|
|
|
|
## Issues/Contact
|
|
Currently this instance of gitea is closed for the public. Discussion and bugreports are welcome
|
|
in the matrix room [#nixcitizen:xndr.de](matrix://#nixcitizen:xndr.de).
|
|
|
|
## Disclaimer
|
|
This repository does not host any copyrighted content. All content is fetched
|
|
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.
|