2025-06-06 06:46:08 +01:00
|
|
|
{
|
|
|
|
description = "I have no idea what I'm doing";
|
|
|
|
|
|
|
|
inputs = {
|
|
|
|
nixpkgs.url = "github:nixos/nixpkgs";
|
2025-06-10 21:45:02 +01:00
|
|
|
apple-silicon = {
|
|
|
|
url = "github:tpwrules/nixos-apple-silicon";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2025-06-06 06:46:08 +01:00
|
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
|
|
home-manager = {
|
|
|
|
url = "github:nix-community/home-manager";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2025-07-03 21:33:50 +01:00
|
|
|
nix-darwin = {
|
|
|
|
url = "github:nix-darwin/nix-darwin/master";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2025-06-06 11:09:23 +01:00
|
|
|
nur = {
|
|
|
|
url = "github:nix-community/NUR";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2025-06-13 18:57:19 +01:00
|
|
|
sops-nix = {
|
|
|
|
url = "github:mic92/sops-nix";
|
|
|
|
inputs.nix.follows = "nixpkgs";
|
|
|
|
};
|
2025-06-06 06:46:08 +01:00
|
|
|
};
|
|
|
|
outputs =
|
|
|
|
{
|
2025-07-03 21:33:50 +01:00
|
|
|
self,
|
2025-06-06 06:46:08 +01:00
|
|
|
nixpkgs,
|
2025-06-10 21:45:02 +01:00
|
|
|
apple-silicon,
|
2025-06-06 06:46:08 +01:00
|
|
|
flake-utils,
|
|
|
|
home-manager,
|
2025-07-03 21:33:50 +01:00
|
|
|
nix-darwin,
|
2025-06-06 11:09:23 +01:00
|
|
|
nur,
|
2025-06-13 18:57:19 +01:00
|
|
|
sops-nix,
|
2025-06-10 21:45:02 +01:00
|
|
|
}@inputs:
|
2025-06-06 12:08:49 +02:00
|
|
|
let
|
|
|
|
supportedSystems = [
|
|
|
|
"x86_64-linux"
|
|
|
|
"aarch64-darwin"
|
|
|
|
"aarch64-linux"
|
|
|
|
];
|
|
|
|
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
2025-06-07 13:50:57 +01:00
|
|
|
overlays = [
|
2025-06-10 21:45:02 +01:00
|
|
|
apple-silicon.overlays.apple-silicon-overlay
|
2025-06-07 13:50:57 +01:00
|
|
|
nur.overlays.default
|
|
|
|
];
|
2025-06-06 12:08:49 +02:00
|
|
|
in
|
2025-06-06 06:46:08 +01:00
|
|
|
{
|
|
|
|
nixosConfigurations = {
|
|
|
|
laptop = nixpkgs.lib.nixosSystem {
|
|
|
|
system = "x86_64-linux";
|
|
|
|
modules = [
|
|
|
|
./nixos/common.nix
|
|
|
|
./nixos/hosts/laptop/default.nix
|
|
|
|
./nixos/hosts/laptop/hardware-configuration.nix
|
|
|
|
];
|
|
|
|
};
|
2025-06-10 21:45:02 +01:00
|
|
|
homeserver = nixpkgs.lib.nixosSystem {
|
|
|
|
system = "aarch64-linux";
|
|
|
|
modules = [
|
|
|
|
./nixos/common.nix
|
|
|
|
./nixos/hosts/homeserver/default.nix
|
|
|
|
./nixos/hosts/homeserver/hardware-configuration.nix
|
|
|
|
apple-silicon.nixosModules.apple-silicon-support
|
|
|
|
];
|
|
|
|
specialArgs = inputs;
|
|
|
|
};
|
2025-06-06 06:46:08 +01:00
|
|
|
};
|
2025-06-06 12:08:49 +02:00
|
|
|
homeConfigurations = nixpkgs.lib.foldl' (
|
|
|
|
acc: system:
|
|
|
|
acc
|
|
|
|
// {
|
|
|
|
"irl-${system}" = home-manager.lib.homeManagerConfiguration {
|
|
|
|
pkgs = import nixpkgs {
|
2025-06-07 13:50:57 +01:00
|
|
|
inherit system overlays;
|
2025-06-06 12:08:49 +02:00
|
|
|
};
|
2025-07-03 21:33:50 +01:00
|
|
|
modules = [
|
|
|
|
./home/irl.nix
|
|
|
|
];
|
2025-06-06 11:09:23 +01:00
|
|
|
};
|
2025-06-06 12:08:49 +02:00
|
|
|
"irl-gui-${system}" = home-manager.lib.homeManagerConfiguration {
|
|
|
|
pkgs = import nixpkgs {
|
2025-06-07 13:50:57 +01:00
|
|
|
inherit system overlays;
|
2025-06-06 12:08:49 +02:00
|
|
|
};
|
|
|
|
modules = [
|
|
|
|
./home/irl.nix
|
|
|
|
{
|
|
|
|
irl.gui-packages = true;
|
|
|
|
}
|
2025-06-06 11:09:23 +01:00
|
|
|
];
|
|
|
|
};
|
2025-06-06 12:08:49 +02:00
|
|
|
}
|
|
|
|
) { } supportedSystems;
|
|
|
|
}
|
|
|
|
// flake-utils.lib.eachSystem supportedSystems (system: {
|
2025-07-03 21:33:22 +01:00
|
|
|
formatter = nixpkgs.legacyPackages.${system}.nixfmt-tree;
|
2025-07-03 21:33:50 +01:00
|
|
|
})
|
|
|
|
// {
|
|
|
|
darwinConfigurations."irl-mac-mini" = nix-darwin.lib.darwinSystem {
|
|
|
|
system = "aarch64-darwin";
|
|
|
|
modules = [
|
|
|
|
./darwin/common.nix
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
2025-06-06 06:46:08 +01:00
|
|
|
}
|