107 lines · 2.5 KB
{
  inputs.nixpkgs.url = "flake:nixpkgs";
  inputs.home-manager.url = "github:nix-community/home-manager";
  inputs.charm.url = "github:charmbracelet/nur";
  inputs.charm.inputs.nixpkgs.follows = "nixpkgs";
  inputs.carlos.url = "github:caarlos0/nur";
  inputs.carlos.inputs.nixpkgs.follows = "nixpkgs";

  outputs = inputs @ {
    self,
    nixpkgs,
    home-manager,
    ...
  }: let
    lib = nixpkgs.lib;

    x86_64-linux = "x86_64-linux";
    aarch64-darwin = "aarch64-darwin";

    mkSystem = {
      hostname,
      system ? x86_64-linux,
      user ? "christian",
      default ? false,
    }:
      {
        nixosConfigurations."${hostname}" = lib.nixosSystem {
          inherit system;
          modules = [
            {
              nixpkgs.overlays = [
                (self: super: {
                  # Enable CUDA/Optix in Blender
                  blender = super.blender.override {cudaSupport = true;};
                })
              ];
            }
            ({
              pkgs,
              modulesPath,