nixos-desktop/flake.nix
2025-06-05 01:56:36 +02:00

80 lines
2.4 KiB
Nix

{
description = "NixOS build";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
nixvim = {
url = "github:EsVagy42/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ nixpkgs, home-manager, plasma-manager, nixvim, ... }@inputs:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = false;
};
lib = nixpkgs.lib;
in {
nixosConfigurations = let
baseSystem = { productiveBuild }:
lib.nixosSystem {
inherit system;
modules = [
{
environment.systemPackages =
[ inputs.nixvim.packages.${system}.default ];
}
({ lib, ... }: {
options.productiveBuild = lib.mkOption {
type = lib.types.bool;
default = productiveBuild;
};
})
./configuration.nix
./devices/default/default.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.sharedModules =
[ plasma-manager.homeManagerModules.plasma-manager ];
home-manager.users.esvagy = { imports = [ ./home.nix ]; };
}
];
};
in {
nixos = baseSystem { productiveBuild = false; };
productive = baseSystem { productiveBuild = true; };
alt = lib.nixosSystem {
inherit system;
modules = [
./configuration.nix
./devices/alt/alt.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.sharedModules =
[ plasma-manager.homeManagerModules.plasma-manager ];
home-manager.users.esvagy = { imports = [ ./home.nix ]; };
}
];
};
};
};
}