Files
nixos-config/flake.nix
T
2025-12-19 07:46:32 +03:00

76 lines
2.1 KiB
Nix

{
description = "NixOS + Home Manager flake (root)";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
home-manager = {
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
todo.url = "github:sioodmy/todo";
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
personal = {
url = "path:./personal.stub.nix";
flake = false;
};
};
outputs = inputs@{ self, nixpkgs, home-manager, ... }:
let
personal = import inputs.personal;
username = personal.username or "krosh";
gitName = personal.gitName or "Dmitrii Gudov";
gitEmail = personal.gitEmail or "gudovdo@my.msu.ru";
mkHost = { hostName, system ? "x86_64-linux" }:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = { inherit inputs username gitName gitEmail hostName; };
modules = [
./hosts/${hostName}/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.${username} = import ./home-manager/home.nix;
home-manager.extraSpecialArgs = {
inherit inputs username gitName gitEmail;
};
}
];
};
pkgsFor = system: nixpkgs.legacyPackages.${system};
in {
# homeConfigurations.${username} =
# home-manager.lib.homeManagerConfiguration {
# pkgs = pkgsFor "x86_64-linux";
# modules = [ ./home-manager/home.nix ];
# extraSpecialArgs = { inherit inputs username gitName gitEmail; };
# };
nixosConfigurations = {
loki-nixos = mkHost {
hostName = "loki-nixos";
system = "x86_64-linux";
};
fenrir-nixos = mkHost {
hostName = "fenrir-nixos";
system = "x86_64-linux";
};
};
};
}