dotfiles/flake.nix

95 lines
2.9 KiB
Nix
Raw Normal View History

2024-10-06 15:25:05 -05:00
{
description = "Nick's Big Fat Flakey Sausage";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-parts = {
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nur.url = "github:nix-community/NUR";
ngipkgs.url = "github:ngi-nix/ngipkgs";
pre-commit-hooks-nix = {
url = "github:cachix/pre-commit-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
systems.url = "github:nix-systems/x86_64-linux";
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-stable.follows = "nixpkgs";
};
};
outputs = inputs:
inputs.flake-parts.lib.mkFlake {inherit inputs;} {
imports = [
inputs.pre-commit-hooks-nix.flakeModule
./home-manager
./lib
./nixos
./parts
./config
];
flake = {config, ...}: {
nixosConfigurations = {
desktop = inputs.self.lib.mkLinuxSystem [
./systems/desktop
./profiles/user0
./profiles/user1
config.nixosModules.personal
config.nixosModules.desktop
config.nixosModules.shared
inputs.home-manager.nixosModules.home-manager
inputs.lix-module.nixosModules.default
inputs.nur.nixosModules.nur
inputs.sops-nix.nixosModules.sops
];
laptop = inputs.self.lib.mkLinuxSystem [
./systems/laptop
./profiles/user0
./profiles/user1
config.nixosModules.personal
config.nixosModules.shared
inputs.home-manager.nixosModules.home-manager
inputs.lix-module.nixosModules.default
inputs.nur.nixosModules.nur
inputs.sops-nix.nixosModules.sops
];
server = inputs.self.lib.mkLinuxSystem [
./systems/server
./profiles/user0
config.nixosModules.server
config.nixosModules.shared
inputs.home-manager.nixosModules.home-manager
inputs.lix-module.nixosModules.default
inputs.ngipkgs.nixosModules."services.peertube"
inputs.ngipkgs.nixosModules.default
inputs.sops-nix.nixosModules.sops
];
};
templates = {
2024-11-09 18:18:43 -06:00
elm = {
path = ./templates/elm;
description = "Elm Environment";
};
2024-10-06 15:25:05 -05:00
haskell = {
path = ./templates/haskell;
2024-11-09 18:18:43 -06:00
description = "Haskell Environment";
2024-10-06 15:25:05 -05:00
};
};
};
systems = import inputs.systems;
};
}