You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
3.8 KiB

  1. # Nixcitizen
  2. A [Star Citizen](https://robertsspaceindustries.com/star-citizen) runtime environment managed by nix.
  3. ## Idea
  4. Nixcitizen is an attempt to package a wine application in a sensible and
  5. practical way with nix. The idea that the `WINEPREFIX` is handled by a
  6. script that lives inside the nix store which derives the `WINEPREFIX` from
  7. it's own path inside the store, leading to a creation and setup of a new
  8. `WINEPREFIX` as soon as the script, it's dependencies or any configuration
  9. changes.
  10. The volatile nature of the `WINEPREFIX` leads to challenges in regards
  11. to preservation of needed state, this is handled in the following ways:
  12. * The Application in itself and the launcher folder containing the
  13. session data are created in the users home directory and symlinked
  14. into each prefix.
  15. * Internal wine settings are handled as registry files and automatically
  16. applied when a new prefix is created.
  17. All dependencies are handled by wine. [dxvk](https://github.com/doitsujin/dxvk)
  18. is compiled with nix and copied into each prefix and fonts are handled in a
  19. similar manner
  20. ## Installation
  21. First clone this repository, then
  22. ### On nixos
  23. * Put `(pkgs.callPackage ./path/to/repo { })` into `environment.systemPackages` or
  24. `users.extraUsers.<name>.packages` or into your home-manager configuration packages
  25. ### with nix-build
  26. * `nix-build -E 'with import <nixpkgs> {}; pkgs.callPackage ./default.nix { }'`
  27. ### Installation parameters
  28. * `installDir`: Contains the `Roberts Space Industries` folder that is being linked
  29. into the `Program Files` folder of the prefixs.
  30. * `launcherCache`: `AppData` folder of the launcher. Holds the session data.
  31. * `prefixBaseDir`: Where all the prefixes are installed under.
  32. * `binName`: Name of the generated executable.
  33. * `launcherArgs`: Arguments the RSI Launcher is called with.
  34. * `vulkanDrivers`: Force list of vulkan drivers. Supported Elements: `radeon`, `intel` and `amdvlk`
  35. might solve issues with mesa version conflicts mainly on non-nixos platforms. Nvidia drivers not
  36. (yet?) supported for this option.
  37. * `winePackage`: Package of wine to use.
  38. * `wineSrc`: Points to the source to build wine from.
  39. * `wineGlobalEnv`: Global variables that are exported at script startup.
  40. * `winePatches`: List of patches for wine for easier access.
  41. * `applyReccomendedWinePatches`: Whether or not to apply patches to wine for star citizen.
  42. * `virtualDesktop`: `NULL` or a string in the form `AxB` with `A` and `B` being
  43. positive Integers that define the height and width of the wine virtual desktop.
  44. * `registryFiles`: Additional registry files to add to each prefix.
  45. * `captureMouse`: Whether wine captures fullscreen windows.
  46. * `enableGameScope`: Whether or not to run the game in [gamescope](https://github.com/Plagman/gamescope).
  47. * `gameScopeArgs`: [options](https://github.com/Plagman/gamescope#options) for gamescope.
  48. ### Script parameters
  49. * `--install-prefix`: Installs the prefix if needed.
  50. * `--install-launcher`: Installs the launcher. Can be used to reinstall.
  51. * `--clean`: Deletes all but the currently used prefixes of the game.
  52. * `--remove-prefix`: Deletes the currently used prefix. Use with care.
  53. * `--run-game`: Runs the game (after installing the prefix if needed). Default behaviour.
  54. * `--print-prefix`: Prints the current prefix path.
  55. * `--help`: Prints help text.
  56. * `--wine`: Runs a wine executable inside the context of the script. Example:
  57. `starcitizen --wine winecfg`
  58. ## Issues/Contact
  59. Currently this instance of gitea is closed for the public. Discussion and bugreports are welcome
  60. in the matrix room [#nixcitizen:xndr.de](matrix://#nixcitizen:xndr.de).
  61. ## Disclaimer
  62. This repository does not host any copyrighted content. All content is fetched
  63. from official sources and is never redistributed by the author of this
  64. software. It does not help in any way to cheat or pirate the game. A normal
  65. account is still needed to install or play the game.