Add this to your home-manager

    let
      f = pkgs.factorio.override {
        username = "<Your Username>";
        token = "<Token>";
        versionsJson = ./factorio.json;
      };
    in
    {
      home-manager.users."<Your Username>".home.packages = [ f ];
    };

In factorio.json

{
  "x86_64-linux": {
    "alpha": {
      "stable": {
        "name": "factorio-space-age_linux_2.0.7.tar.xz",
        "needsAuth": true,
        "sha256": "1zvk1skkm37kyikq4l1q285l8zhxc6lqvs1x2y2ccxwd4cdm6r96",
        "tarDirectory": "x64",
        "url": "https://factorio.com/get-download/2.0.7/expansion/linux64",
        "version": "2.0.7"
      }
    }
  }
}

To get your Factorio working.

  • Object@sh.itjust.worksOP
    link
    fedilink
    English
    arrow-up
    22
    ·
    edit-2
    1 month ago

    You need to package all dynamically linked executables because NixOS disables them by design. It’s to prevent two programs not working because they depend on different versions of a single library. But it’s not helpful when you have a program you need to run, and you need it real soon.

    In terms of whether Factorio runs or not, it does run. You have to add that configuration though.

    Still, if you are familiar with Linux and don’t usually get that “I need a program running ASAP” situations, it is a great OS to learn. I can recommend them.