nix-conf/flake.nix
2025-03-29 14:26:54 +01:00

107 lines
2.7 KiB
Nix

{
description = "jopejoe1 NixOS configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-facter-modules.url = "github:nix-community/nixos-facter-modules";
# Outputs
nixos-generators = {
url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixpkgs";
};
# Modules
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-hardware.url = "github:NixOS/nixos-hardware";
nether = {
url = "github:Lassulus/nether";
inputs.nixpkgs.follows = "nixpkgs";
};
srvos = {
url = "github:nix-community/srvos";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
impermanence.url = "github:nix-community/impermanence";
snm = {
url = "gitlab:yu-re-ka/nixos-mailserver/dovecot2-modules";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
nuschtos = {
url = "github:NuschtOS/search";
inputs.nixpkgs.follows = "nixpkgs";
};
# Packages
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
};
# Utility
nixos-anywhere = {
url = "github:nix-community/nixos-anywhere";
inputs.nixpkgs.follows = "nixpkgs";
inputs.disko.follows = "disko";
};
};
outputs =
inputs@{
self,
nixpkgs,
...
}:
let
forSystems = f: nixpkgs.lib.attrsets.genAttrs nixpkgs.lib.systems.flakeExposed (system: f system);
pkgs' = system: nixpkgs.legacyPackages.${system};
in
{
modules.default = import ./modules;
nixosModules.default = import ./nixos-modules;
homeManagerModules.default = import ./home-modules;
nixosConfigurations = import ./systems { inherit self inputs nixpkgs; };
packages = forSystems (
system:
import ./packages {
inherit system inputs;
pkgs = pkgs' system;
}
);
formatter = forSystems (
system:
let
pkgs = pkgs' system;
in
pkgs.treefmt.withConfig {
runtimeInputs = with pkgs; [
nixfmt-rfc-style
];
settings = {
tree-root-file = ".git/index";
formatter = {
nixfmt = {
command = "nixfmt";
includes = [ "*.nix" ];
};
};
};
}
);
};
}