nixfiles/flake.nix

156 lines
3.9 KiB
Nix
Raw Normal View History

2024-01-08 07:49:51 +03:00
{
description = "koi nixos";
nixConfig = {
experimental-features = [ "nix-command" "flakes" ];
extra-substituters = [
"https://nix-community.cachix.org"
];
extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
substituters = [
2024-12-02 05:52:10 +03:00
"https://nixos.tvix.store"
];
2024-01-08 07:49:51 +03:00
};
inputs = {
2024-11-23 15:28:11 +03:00
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small";
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-23.11";
vscode-server.url = "github:nix-community/nixos-vscode-server";
2024-01-08 07:49:51 +03:00
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.darwin.follows = "";
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.1";
2024-01-08 07:49:51 +03:00
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-03-03 06:32:03 +03:00
nix-darwin.url = "github:LnL7/nix-darwin";
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
2024-04-23 13:42:17 +03:00
nix-index-database.url = "github:nix-community/nix-index-database";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
2024-08-04 02:24:50 +03:00
disko.url = "github:nix-community/disko";
disko.inputs.nixpkgs.follows = "nixpkgs";
2025-01-05 03:45:52 +03:00
desu-deploy.url = "github:teidesu/desu-deploy/d373e8ab554a95d222e3ced87e751dabbd3cfc57";
2024-08-04 02:24:50 +03:00
desu-deploy.inputs.nixpkgs.follows = "nixpkgs";
2024-01-08 07:49:51 +03:00
};
outputs =
inputs@{ self
, nixpkgs
, nixpkgs-stable
2024-01-08 07:49:51 +03:00
, vscode-server
, agenix
, lanzaboote
2024-01-08 07:49:51 +03:00
, home-manager
2024-03-03 06:32:03 +03:00
, nix-darwin
2024-08-04 02:24:50 +03:00
, desu-deploy
, disko
2024-01-08 07:49:51 +03:00
, ...
}:
let
2024-06-06 17:22:13 +03:00
specialArgsCommon = {
2024-03-03 06:32:03 +03:00
inherit inputs;
abs = path: ./. + ("/" + path);
};
2024-06-06 17:22:13 +03:00
mkDarwinSystem = {
modules ? [],
specialArgs ? {},
}: let
specialArgsMerged = specialArgsCommon // specialArgs;
in nix-darwin.lib.darwinSystem {
modules = [
agenix.darwinModules.default
home-manager.darwinModules.home-manager
{ home-manager.extraSpecialArgs = specialArgsMerged; }
] ++ modules;
specialArgs = specialArgsMerged;
};
mkNixosSystem = {
system,
modules ? [],
specialArgs ? {}
}: let
specialArgsMerged = specialArgsCommon // specialArgs // {
pkgs-stable = import nixpkgs-stable {
inherit system;
2024-06-06 17:22:13 +03:00
config = { allowUnfree = true; };
};
};
in nixpkgs.lib.nixosSystem {
inherit system;
modules = [
agenix.nixosModules.default
home-manager.nixosModules.home-manager
{ home-manager.extraSpecialArgs = specialArgsMerged; }
] ++ modules;
specialArgs = specialArgsMerged;
};
2024-01-08 07:49:51 +03:00
in
{
nixosConfigurations = {
2024-08-04 02:24:50 +03:00
koi = mkNixosSystem rec {
2024-01-08 07:49:51 +03:00
system = "x86_64-linux";
modules = [
lanzaboote.nixosModules.lanzaboote
2024-08-04 02:24:50 +03:00
desu-deploy.nixosModules.${system}.default
2024-01-08 07:49:51 +03:00
./hosts/koi/configuration.nix
];
2024-03-03 06:32:03 +03:00
};
2024-06-07 11:34:06 +03:00
homura = mkNixosSystem {
system = "x86_64-linux";
modules = [
2025-01-04 23:04:49 +03:00
./hosts/homura/configuration.nix
2024-06-07 11:34:06 +03:00
];
};
2025-01-05 03:45:52 +03:00
madoka = mkNixosSystem rec {
2024-06-07 11:34:06 +03:00
system = "x86_64-linux";
modules = [
2025-01-05 03:45:52 +03:00
desu-deploy.nixosModules.${system}.default
2025-01-04 23:04:49 +03:00
./hosts/madoka/configuration.nix
2024-06-07 11:34:06 +03:00
];
};
arumi = mkNixosSystem {
system = "aarch64-linux";
modules = [
disko.nixosModules.disko
./hosts/arumi/configuration.nix
];
};
2024-03-03 06:32:03 +03:00
};
darwinConfigurations = {
2024-06-06 17:22:13 +03:00
teidesu-osx = mkDarwinSystem {
2024-03-03 06:32:03 +03:00
modules = [
./hosts/teidesu-osx/configuration.nix
];
2024-01-08 07:49:51 +03:00
};
2024-05-01 06:02:01 +03:00
sumire = mkDarwinSystem {
2024-05-01 06:02:01 +03:00
modules = [
./hosts/sumire/configuration.nix
2024-05-01 06:02:01 +03:00
];
};
2024-01-08 07:49:51 +03:00
};
};
}