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.

88 lines
2.7 KiB

{
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";
};
}