Minor refactor and Readme touchup.
This commit is contained in:
parent
779c30280f
commit
3858074a34
21
README.md
21
README.md
|
@ -1,4 +1,7 @@
|
|||
# Idea
|
||||
# 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
|
||||
|
@ -19,18 +22,18 @@ 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
|
||||
## Installation
|
||||
First clone this repository, then
|
||||
|
||||
## On nixos
|
||||
### 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!
|
||||
### with nix-build
|
||||
* `nix-build -E 'with import <nixpkgs> {}; pkgs.callPackage ./default.nix { }'
|
||||
|
||||
|
||||
## Installation parameters
|
||||
### 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.
|
||||
|
@ -38,6 +41,8 @@ into the `Program Files` folder of the prefixs.
|
|||
* `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.
|
||||
|
@ -50,7 +55,7 @@ into the `Program Files` folder of the prefixs.
|
|||
* `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
|
||||
### 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.
|
||||
|
@ -61,7 +66,7 @@ into the `Program Files` folder of the prefixs.
|
|||
* `--wine`: Runs a wine executable inside the context of the script. Example:
|
||||
`starcitizen --wine winecfg`
|
||||
|
||||
# Disclaimer
|
||||
## 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
|
||||
|
|
19
default.nix
19
default.nix
|
@ -40,24 +40,24 @@ let
|
|||
];
|
||||
|
||||
winePkg = winePackage.overrideAttrs (attrs: {
|
||||
patches = (if wineSrc == null then attrs.patches else []) ++ winePatches ++ lib.optional applyReccomendedWinePatches wineReccomendedPatches ;
|
||||
patches = (if wineSrc == null then attrs.patches else []) ++ winePatches ++ lib.optional applyReccomendedWinePatches wineReccomendedPatches;
|
||||
src = if wineSrc != null then wineSrc else attrs.src;
|
||||
});
|
||||
|
||||
dxvk = (pkgsCross.mingwW64.callPackage ./dxvk.nix { async = dxvkAsync; }).overrideAttrs
|
||||
( attrs: { patches = attrs.patches ++ dxvkPatches; });
|
||||
dxvkAsyncEnv = "DXVK_ASYNC=1" ;
|
||||
|
||||
gamescope = "${pkgs.callPackage ./gamescope.nix {}}/bin/gamescope";
|
||||
|
||||
vulkanDriverPaths = {
|
||||
radeon = "${pkgs.mesa_drivers.drivers}/share/vulkan/icd.d/radeon_icd.x86_64.json";
|
||||
intel = "${pkgs.mesa_drivers.drivers}/share/vulkan/icd.d/intel_icd.x86_64.json";
|
||||
amdvlk = "${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json";
|
||||
};
|
||||
vkIcd = lib.strings.concatStringsSep ":" (lib.attrsets.attrVals vulkanDrivers vulkanDriverPaths);
|
||||
|
||||
fonts = pkgs.callPackage ./fonts.nix {};
|
||||
wine64 = "${winePkg}/bin/wine64";
|
||||
wineMulti = "${winePkg}/bin/wine";
|
||||
regEdit = "${wine64} regedit";
|
||||
reg = "${wine64} reg";
|
||||
rsiInstaller = fetchurl {
|
||||
url = "https://install.robertsspaceindustries.com/star-citizen/RSI-Setup-1.4.11.exe";
|
||||
sha256 = "1afc4b36dd1e22d75df8da2ecb925833f9b10327c991be20e138503cde627022";
|
||||
|
@ -66,6 +66,7 @@ let
|
|||
url = "https://aka.ms/vs/16/release/vc_redist.x86.exe";
|
||||
sha256 = "1p22ibzx80zn2gxavmcsz7adkr5672smmlwgapfvx6a04f9n7a7k";
|
||||
};
|
||||
|
||||
win10Reg = pkgs.writeTextFile {
|
||||
name = "win10.reg";
|
||||
text = ./win10.reg;
|
||||
|
@ -74,11 +75,17 @@ let
|
|||
name = "captureMouse.reg";
|
||||
text = ./captureMouse.reg;
|
||||
};
|
||||
|
||||
helpText = pkgs.writeTextFile {
|
||||
name = "scHelptext";
|
||||
text = ./helpText.txt;
|
||||
};
|
||||
|
||||
wine64 = "${winePkg}/bin/wine64";
|
||||
wineMulti = "${winePkg}/bin/wine";
|
||||
regEdit = "${wine64} regedit";
|
||||
reg = "${wine64} reg";
|
||||
|
||||
script = pkgs.writeShellScriptBin binName ''
|
||||
#sane bash
|
||||
set -eo pipefail
|
||||
|
@ -140,7 +147,7 @@ let
|
|||
fi
|
||||
${lib.optionalString enableGameScope "${gamescope} ${builtins.concatStringsSep " " gameScopeArgs} --\\" }
|
||||
${wineMulti} \
|
||||
${if virtualDesktop != null then "explorer /desktop=${binName},${virtualDesktop}" else ""} \
|
||||
${lib.optionalString (virtualDesktop != null) "explorer /desktop=${binName},${virtualDesktop}"} \
|
||||
"$WINEPREFIX/drive_c/Program Files/Roberts Space Industries/RSI Launcher/RSI Launcher.exe" \
|
||||
${lib.concatStringsSep " " launcherArgs}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue