nixos-config/flake.nix

75 lines
1.9 KiB
Nix

{
description = "My common nixos system";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
home-manager.url = "github:nix-community/home-manager/release-25.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
nix-vscode-extensions.inputs.nixpkgs.follows = "nixpkgs";
treefmt-nix.url = "github:numtide/treefmt-nix";
treefmt-nix.inputs.nixpkgs.follows = "nixpkgs";
musnix.url = "github:musnix/musnix";
musnix.inputs.nixpkgs.follows = "nixpkgs";
};
outputs =
inputs:
let
inherit (inputs.nixpkgs) lib;
mkNixosSystems = lib.mapAttrs (
name: modules:
lib.nixosSystem {
modules = [
inputs.musnix.nixosModules.musnix
]
++ modules
++ [
{
imports = [ (import "${inputs.home-manager}/nixos") ];
networking.hostName = name;
nixpkgs.overlays = [ inputs.nix-vscode-extensions.overlays.default ];
}
];
specialArgs = { inherit inputs; };
}
);
in
{
formatter.x86_64-linux =
inputs.treefmt-nix.lib.mkWrapper (import inputs.nixpkgs { system = "x86_64-linux"; })
{
projectRootFile = "flake.nix";
programs = {
nixfmt.enable = true;
black.enable = true;
};
settings.formatter.black.options = [
"--line-length"
"79"
];
};
nixosConfigurations = mkNixosSystems {
polysaa = [
./machines/polysaa
./profiles/graphical
];
mynspiron = [
./machines/mynspiron
./profiles/graphical
];
myssian = [
./machines/myssian
./profiles/graphical
];
};
};
}