Skip to content

Latest commit

 

History

History
188 lines (136 loc) · 5.15 KB

README.md

File metadata and controls

188 lines (136 loc) · 5.15 KB

Fjord Launcher Nix Packaging

Installing a development release (flake)

We use garnix to build and cache our development builds. If you want to avoid rebuilds you may add the garnix cache to your substitutors, or use --accept-flake-config to temporarily enable it when using nix commands.

Example (NixOS):

{...}:
{
  nix.settings = {
    trusted-substituters = [
      "https://cache.garnix.io"
    ];

    trusted-public-keys = [
      "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
    ];
  };
}

Using the overlay

After adding github:unmojang/FjordLauncher to your flake inputs, you can add the default overlay to your nixpkgs instance.

Example:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    fjordlauncher = {
      url = "github:unmojang/FjordLauncher";
      # Optional: Override the nixpkgs input of fjordlauncher to use the same revision as the rest of your flake
      # Note that overriding any input of fjordlauncher may break reproducibility
      # inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = {nixpkgs, fjordlauncher}: {
    nixosConfigurations.foo = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";

      modules = [
        ({pkgs, ...}: {
          nixpkgs.overlays = [fjordlauncher.overlays.default];

          environment.systemPackages = [pkgs.fjordlauncher];
        })
      ];
    };
  }
}

Installing the package directly

Alternatively, if you don't want to use an overlay, you can install Fjord Launcher directly by installing the fjordlauncher package. This way the installed package is fully reproducible.

Example:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    fjordlauncher = {
      url = "github:unmojang/FjordLauncher";
      # Optional: Override the nixpkgs input of fjordlauncher to use the same revision as the rest of your flake
      # Note that overriding any input of fjordlauncher may break reproducibility
      # inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = {nixpkgs, fjordlauncher}: {
    nixosConfigurations.foo = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";

      modules = [
        ({pkgs, ...}: {
          environment.systemPackages = [fjordlauncher.packages.${pkgs.system}.fjordlauncher];
        })
      ];
    };
  }
}

Installing the package ad-hoc (nix shell, nix run, etc.)

You can simply call the default package of this flake.

Example:

nix run github:unmojang/FjordLauncher

nix shell github:unmojang/FjordLauncher

nix profile install github:unmojang/FjordLauncher

Installing a development release (without flakes)

We use garnix to build and cache our development builds. If you want to avoid rebuilds you may add the garnix cache to your substitutors.

Example (NixOS):

{...}:
{
  nix.settings = {
    trusted-substituters = [
      "https://cache.garnix.io"
    ];

    trusted-public-keys = [
      "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
    ];
  };
}

Using the overlay (fetchTarball)

We use flake-compat to allow using this Flake on a system that doesn't use flakes.

Example:

{pkgs, ...}: {
  nixpkgs.overlays = [(import (builtins.fetchTarball "https://github.com/unmojang/FjordLauncher/archive/develop.tar.gz")).overlays.default];

  environment.systemPackages = [pkgs.fjordlauncher];
}

Installing the package directly (fetchTarball)

Alternatively, if you don't want to use an overlay, you can install Fjord Launcher directly by installing the fjordlauncher package. This way the installed package is fully reproducible.

Example:

{pkgs, ...}: {
  environment.systemPackages = [(import (builtins.fetchTarball "https://github.com/unmojang/FjordLauncher/archive/develop.tar.gz")).packages.${pkgs.system}.fjordlauncher];
}

Installing the package ad-hoc (nix-env)

You can add this repository as a channel and install its packages that way.

Example:

nix-channel --add https://github.com/unmojang/FjordLauncher/archive/develop.tar.gz fjordlauncher

nix-channel --update fjordlauncher

nix-env -iA fjordlauncher.fjordlauncher

Package variants

Both Nixpkgs and this repository offer the following packages:

  • fjordlauncher - Preferred build using Qt 6
  • fjordlauncher-qt5 - Legacy build using Qt 5 (i.e. for Qt 5 theming support)

Both of these packages also have -unwrapped counterparts, that are not wrapped and can therefore be customized even further than what the wrapper packages offer.

Customizing wrapped packages

The wrapped packages (fjordlauncher and fjordlauncher-qt5) offer some build parameters to further customize the launcher's environment.

The following parameters can be overridden:

  • msaClientID (default: null, requires full rebuild!) Client ID used for Microsoft Authentication
  • gamemodeSupport (default: true) Turn on/off support for Feral GameMode
  • jdks (default: [ jdk17 jdk8 ]) Java runtimes added to FJORDLAUNCHER_JAVA_PATHS variable
  • additionalLibs (default: [ ]) Additional libraries that will be added to LD_LIBRARY_PATH