1{
2 description = "Gensokyo system configurations";
3
4 nixConfig = {
5 extra-substituters = [
6 "https://nonbunary.soopy.moe/gensokyo-global"
7 "https://nonbunary.soopy.moe/gensokyo-systems"
8 ];
9
10 extra-trusted-public-keys = [
11 "gensokyo-global:XiCN0D2XeSxF4urFYTprR+1Nr/5hWyydcETwZtPG6Ec="
12 "gensokyo-systems:r/Wx649dPuQrCN9Pgh3Jic526zQNk3oWMqYJHnob/Ok="
13 ];
14
15 fallback = true;
16 };
17
18 inputs = {
19 nixpkgs.url = "nixpkgs/master";
20
21 home-manager = {
22 url = "github:nix-community/home-manager/release-23.05";
23 inputs.nixpkgs.follows = "nixpkgs";
24 };
25
26 lanzaboote = {
27 url = "github:nix-community/lanzaboote/v0.3.0";
28 inputs.nixpkgs.follows = "nixpkgs";
29 };
30
31 attic = {
32 url = "github:zhaofengli/attic";
33 inputs.nixpkgs.follows = "nixpkgs";
34 };
35
36 sops-nix = {
37 url = "github:Mic92/sops-nix";
38 inputs.nixpkgs.follows = "nixpkgs";
39 };
40
41 mystia = {
42 url = "github:soopyc/mystia";
43 inputs.nixpkgs.follows = "nixpkgs";
44 };
45 };
46
47 outputs = {
48 nixpkgs,
49 home-manager,
50 ...
51 } @ inputs: let
52 utils = import ./global/utils.nix;
53 lib = nixpkgs.lib;
54
55 systems = [
56 "x86_64-linux"
57 "aarch64-linux"
58 "x86_64-darwin"
59 "aarch64-darwin"
60 ];
61 forAllSystems = fn: lib.genAttrs systems (s: fn nixpkgs.legacyPackages.${s});
62 in {
63 nixosConfigurations = {
64 koumakan = import ./systems/koumakan {inherit utils lib inputs;};
65 };
66
67 devShells = forAllSystems (pkgs: {
68 default = pkgs.mkShell {
69 packages = [
70 (pkgs.python311.withPackages (p: [p.requests]))
71 ];
72 };
73 });
74
75 formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra;
76 };
77}