{ description = "A somewhat huge home-manager configuration using Nix Flakes."; inputs = { # Flake inputs agenix.url = "github:ryantm/agenix"; flake-parts.url = "github:hercules-ci/flake-parts"; home.url = "github:nix-community/home-manager"; # Nixpkgs branches master.url = "github:nixos/nixpkgs/master"; stable.url = "github:nixos/nixpkgs/nixos-23.05"; unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; # Default Nixpkgs for packages and modules nixpkgs.follows = "master"; # Minimize duplicate instances of inputs agenix.inputs.nixpkgs.follows = "nixpkgs"; home.inputs.nixpkgs.follows = "nixpkgs"; nix.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, home, nixpkgs, flake-parts, ... }@inputs: let config = { allowBroken = false; allowUnfree = true; allowUnfreePredicate = _: true; tarball-ttl = 0; # WTF: don't do this kids... # replaceStdenv = { pkgs }: pkgs.optimizedV3Stdenv; /* NOTE: experimental option, disable if you don't know what this does See https://github.com/NixOS/rfcs/pull/62 for more information. */ contentAddressedByDefault = false; }; importNixFiles = path: with nixpkgs.lib; map import (__filter (hasSuffix "nix") (filesystem.listFilesRecursive path)); overlays = with inputs; [ (final: prev: let inherit (final) system; in { /* Nixpkgs branches, replace when https://github.com/NixOS/nixpkgs/pull/160061 is live. One can access these branches like so: `pkgs.stable.mpd' `pkgs.master.linuxPackages_xanmod' */ master = import master { inherit config system; }; unstable = import unstable { inherit config system; }; stable = import stable { inherit config system; }; }) # Overlays provided by inputs inputs.nixpkgs-f2k.overlays.stdenvs ] # Overlays from ./overlays directory ++ (importNixFiles ./overlays); in flake-parts.lib.mkFlake { inherit inputs; } { flake = { homeConfigurations = { devvie = import ./users/devvie { inherit config nixpkgs home overlays inputs; }; #omni = import ./users/omni { # inherit config nixpkgs home overlays inputs; #}; }; }; systems = [ "x86_64-linux" ]; perSystem = { system, ... }: { formatter = inputs.nixpkgs-fmt.defaultPackage.${system}; }; }; nixConfig = { commit-lockfile-summary = "flake: bump inputs"; }; }