t14_legacy_config/flake.nix
Fabian Montero 2aa388c2d4 checkpoint
2024-04-06 12:10:20 -06:00

78 lines
1.8 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; # actualizar esto para actualizar
unstable.url = "github:nixos/nixpkgs/master";
nur.url = "github:nix-community/NUR";
hm-isolation.url = "github:3442/hm-isolation";
nixGL.url = "github:guibou/nixGL";
home-manager = {
url = "github:nix-community/home-manager/release-23.11"; # actualizar esto para actualizar
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {self, nixpkgs, unstable, home-manager, nur, hm-isolation, nixGL, ...}:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
};
inherit (pkgs) lib;
base = platform: {
name = platform;
value = nixpkgs.lib.nixosSystem {
inherit system;
modules = [ ./base ./base/platforms/${platform} ];
};
};
home = platform: {
name = "fabian@${platform}";
value = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
(import ./home {
inherit self nixpkgs unstable hm-isolation nixGL;
})
./home/platforms/${platform}.nix
{
config.local = { inherit platform; };
}
];
};
};
localPkgs = import ./pkgs;
platforms = domain:
map
(lib.removeSuffix ".nix")
(lib.attrNames (builtins.readDir ./${domain}/platforms));
configs = domain: builder:
lib.listToAttrs
(map builder (platforms domain));
in
{
nixosConfigurations = configs "base" base;
homeConfigurations = configs "home" home;
packages."${system}" = localPkgs pkgs;
overlay = self: super: {
unstable = import unstable {
inherit(super) config system;
};
local = localPkgs self;
};
};
}