80 lines
2.4 KiB
Nix
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 ]; };
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|