89 lines
1.9 KiB
Nix
89 lines
1.9 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
|
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/release-24.05";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
nur.url = "github:nix-community/NUR";
|
|
impermanence.url = "github:nix-community/impermanence";
|
|
hm-isolation.url = "github:3442/hm-isolation";
|
|
nixGL.url = "github:guibou/nixGL";
|
|
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
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 = [(import ./base)];
|
|
};
|
|
};
|
|
|
|
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;
|
|
formatter.${system} = pkgs.alejandra;
|
|
|
|
overlay = self: super: {
|
|
unstable = import unstable {
|
|
inherit (super) config system;
|
|
};
|
|
local = localPkgs self;
|
|
};
|
|
};
|
|
}
|