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 mystia = {
36 url = "github:soopyc/mystia";
37 inputs.nixpkgs.follows = "nixpkgs";
38 };
39 };
40
41 outputs = {
42 nixpkgs,
43 home-manager,
44 ...
45 } @ inputs: let
46 _utils = import ./global/utils.nix {};
47 lib = nixpkgs.lib;
48
49 systems = [
50 "x86_64-linux"
51 "aarch64-linux"
52 "x86_64-darwin"
53 "aarch64-darwin"
54 ];
55 forAllSystems = fn: lib.genAttrs systems (s: fn nixpkgs.legacyPackages.${s});
56 in {
57 nixosConfigurations = {
58 koumakan = import ./systems/koumakan {inherit _utils lib inputs;};
59 };
60
61 devShells = forAllSystems (pkgs: {
62 default = pkgs.mkShell {
63 packages = [
64 (pkgs.python311.withPackages (p: [p.requests]))
65 ];
66 };
67 });
68
69 formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra;
70 };
71}