nixos-configs/flake.nix

92 lines
2.3 KiB
Nix
Raw Normal View History

{
inputs = {
2024-11-24 15:16:45 +01:00
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
2024-11-24 18:10:44 +01:00
home-manager = {
2024-11-24 15:16:45 +01:00
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-11-24 18:10:44 +01:00
lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0-3.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
};
2025-03-16 10:25:59 +01:00
niri = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-stable.follows = "nixpkgs";
};
zerforschen-plus = {
url = "git+https://git.berlin.ccc.de/vinzenz/zerforschen.plus";
inputs.nixpkgs.follows = "nixpkgs";
};
};
2024-10-27 12:33:35 +01:00
outputs =
inputs@{
2025-03-17 19:17:16 +01:00
self,
2024-10-27 12:33:35 +01:00
nixpkgs,
home-manager,
lix-module,
2025-03-16 10:25:59 +01:00
niri,
zerforschen-plus,
2024-10-27 12:33:35 +01:00
}:
let
devices = {
vinzenz-lpt2 = "x86_64-linux";
vinzenz-pc2 = "x86_64-linux";
2025-04-13 21:40:52 +02:00
ronja-pc = "x86_64-linux";
hetzner-vpn2 = "aarch64-linux";
forgejo-runner-1 = "aarch64-linux";
};
2025-03-16 10:25:59 +01:00
homeDevices = [
"vinzenz-lpt2"
"vinzenz-pc2"
2025-04-13 21:40:52 +02:00
"ronja-pc"
2025-03-16 10:25:59 +01:00
];
forDevice = f: nixpkgs.lib.mapAttrs f devices;
in
2024-10-27 12:33:35 +01:00
{
nixosConfigurations = forDevice (
device: system:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
};
2025-03-16 10:25:59 +01:00
modules =
[
lix-module.nixosModules.default
{ networking.hostName = device; }
./modules/globalinstalls.nix
./modules/networking.nix
./modules/nixpkgs.nix
2025-03-16 10:25:59 +01:00
./hosts/${device}/hardware.nix
./hosts/${device}/imports.nix
./hosts/${device}/configuration.nix
]
++ (nixpkgs.lib.optionals (builtins.elem device homeDevices) [
home-manager.nixosModules.home-manager
{ home-manager.extraSpecialArgs = { inherit device; }; }
./modules/home-manager.nix
2025-03-16 10:25:59 +01:00
./modules/i18n.nix
2025-03-16 10:25:59 +01:00
niri.nixosModules.niri
{ nixpkgs.overlays = [ niri.overlays.niri ]; }
]);
}
);
2024-10-27 12:33:35 +01:00
formatter = {
x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style;
aarch64-linux = nixpkgs.legacyPackages.aarch64-linux.nixfmt-rfc-style;
2024-10-26 14:59:00 +02:00
};
};
}