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.
95 lines
2.8 KiB
95 lines
2.8 KiB
{
|
|
description = "A somewhat huge home-manager configuration using Nix Flakes.";
|
|
|
|
inputs = {
|
|
# Flake inputs
|
|
agenix.url = "github:ryantm/agenix";
|
|
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, ... }@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";
|
|
|
|
substituters = [
|
|
"https://cache.nixos.org?priority=10"
|
|
"https://cache.ngi0.nixos.org/"
|
|
"https://nix-community.cachix.org?priority=5"
|
|
"https://nixpkgs-wayland.cachix.org"
|
|
"https://fortuneteller2k.cachix.org"
|
|
];
|
|
};
|
|
}
|
|
|