From dff0dbccd9f61e4d5ac329f1e74f5867ca1de00a Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 22 Jul 2021 00:05:52 +0200 Subject: [PATCH] Add Readme.md Signed-off-by: Philipp --- README.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..d21c103 --- /dev/null +++ b/README.md @@ -0,0 +1,63 @@ +# 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..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 +This repository does not host any copyrighted content. All contend 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.