dotfiles/flake.nix

54 lines
1.7 KiB
Nix

{
description = "dandellion's home-manager profiles";
inputs = {
home-manager-2205.url = "github:nix-community/home-manager/release-22.05";
nixos-2205.url = "github:nixos/nixpkgs/nixos-22.05";
home-manager-2205.inputs.nixpkgs.follows = "nixos-2205";
unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nur.url = "github:nix-community/NUR";
nur.inputs.nixpkgs.follows = "unstable";
dan.url = "gitlab:Dandellion/NUR?host=git.dodsorf.as"; #"git+https://git.dodsorf.as/Dandellion/NUR";
dan.inputs.nixpkgs.follows = "unstable";
};
outputs = {self, home-manager-2205, unstable, nur, dan, ... }:
let
nixlib = unstable.lib;
mkHome =
{ machine
, hmChannel ? home-manager-2205
, configuration ? self.nixosModules.home-manager.${machine}
, system ? "x86_64-linux"
, username ? "daniel"
, homeDirectory ? "/home/${username}"
, stateVersion ? "22.05"
, extraSpecialArgs ? { inherit (self) overlays; }
}:
hmChannel.lib.homeManagerConfiguration {
inherit configuration system username homeDirectory stateVersion extraSpecialArgs;
};
in
{
homeConfigurations = nixlib.genAttrs [ "laptop" "desktop" ] (machine: mkHome { inherit machine; })
// nixlib.genAttrs [ "pvv-terminal" ] (machine: mkHome {inherit machine; username = "danio"; homeDirectory = "/home/pvv/d/danio";});
nixosModules = {
home-manager = nixlib.genAttrs [ "laptop" "desktop" "pvv-terminal" ] (machine: import ./machines/${machine}.nix);
};
overlays = [
(final: prev: {
unstable = import unstable {
inherit (prev) system config;
};
dan = dan.packages.${prev.system};
})
nur.overlay
];
};
}