Files
nix-config/flake.nix

85 lines
1.9 KiB
Nix

{
description = "NixOS system configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix.url = "github:ryantm/agenix";
emacs-overlay = {
url = "github:nix-community/emacs-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs-clisp.url = "github:NixOS/nixpkgs/da320e5472f021b96a883f71fc525ca0e4815273";
};
outputs = {
self,
nixpkgs,
home-manager,
agenix,
emacs-overlay,
nixpkgs-clisp,
} @ inputs: let
system = "x86_64-linux";
baseModule = {lib, ...}: {
imports = [
home-manager.nixosModules.default
agenix.nixosModules.default
];
system.configurationRevision = lib.mkIf (self ? rev) self.rev;
nixpkgs.overlays = [
emacs-overlay.overlay
(final: _prev: {
clisp = nixpkgs-clisp.legacyPackages.${system}.clisp;
})
];
environment.systemPackages = [
agenix.packages.${system}.default
];
};
in {
nixosConfigurations.thonkpad = nixpkgs.lib.nixosSystem {
modules = [
baseModule
./hosts/thonkpad/configuration.nix
];
};
nixosConfigurations.server = nixpkgs.lib.nixosSystem {
modules = [
baseModule
./hosts/server/configuration.nix
];
};
nixosConfigurations.server-gpu = nixpkgs.lib.nixosSystem {
modules = [
baseModule
./hosts/server-gpu/configuration.nix
];
};
nixosConfigurations.rq = nixpkgs.lib.nixosSystem {
modules = [
baseModule
./hosts/rq/configuration.nix
];
};
nixosConfigurations.yoga = nixpkgs.lib.nixosSystem {
modules = [
baseModule
./hosts/yoga/configuration.nix
];
};
};
}