my system configurations ^-^
1{
2 description = "willow's nix flake ^-^";
3
4 outputs = {
5 self,
6 nixos-stable,
7 nix-darwin,
8 home-manager,
9 nixpkgs,
10 ...
11 } @ inputs: let
12 mkNixosSystem = name: hostPath:
13 nixos-stable.lib.nixosSystem {
14 modules = [
15 hostPath
16 home-manager.nixosModules.home-manager
17 ];
18 specialArgs = {inherit self inputs;};
19 };
20
21 mkDarwinSystem = name: hostPath:
22 nix-darwin.lib.darwinSystem {
23 modules = [
24 hostPath
25 home-manager.darwinModules.home-manager
26 ];
27 specialArgs = {inherit self inputs;};
28 };
29
30 forAllSystems = nixpkgs.lib.genAttrs ["x86_64-linux" "aarch64-darwin"];
31 in {
32 nixosConfigurations = builtins.mapAttrs mkNixosSystem {
33 earthy = ./hosts/earthy;
34 anemone = ./hosts/anemone;
35 lily = ./hosts/lily;
36 zinnia = ./hosts/zinnia;
37 };
38
39 darwinConfigurations = builtins.mapAttrs mkDarwinSystem {
40 starling = ./hosts/starling;
41 };
42
43 overlays = import ./overlays.nix {
44 inherit inputs;
45 inherit self;
46 };
47
48 packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
49 formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
50 };
51
52 inputs = {
53 nixos-stable.url = "github:nixos/nixpkgs/nixos-25.05";
54 nixos-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
55
56 darwin-stable.url = "github:nixos/nixpkgs/nixpkgs-25.05-darwin";
57 nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
58
59 nix-darwin = {
60 url = "github:nix-darwin/nix-darwin/nix-darwin-25.05";
61 inputs.nixpkgs.follows = "darwin-stable";
62 };
63
64 # themes
65 catppuccin = {
66 url = "github:catppuccin/nix/release-25.05";
67 inputs.nixpkgs.follows = "nixos-stable";
68 };
69 stylix = {
70 url = "github:danth/stylix/release-25.05";
71 # inputs = {
72 # nixpkgs.follows = "nixpkgs";
73 # systems.follows = "systems";
74 # flake-compat.follows = "";
75 # git-hooks.follows = "";
76 # home-manager.follows = "";
77 # };
78 };
79
80 # hardware
81 nixos-hardware.url = "github:NixOS/nixos-hardware/master";
82 nixos-wsl = {
83 url = "github:nix-community/NixOS-WSL/main";
84 inputs.flake-compat.follows = "";
85 };
86
87 # home-manager
88 home-manager = {
89 url = "github:nix-community/home-manager/release-25.05";
90 inputs.nixpkgs.follows = "nixos-stable";
91 };
92
93 # spicetify
94 spicetify-nix = {
95 url = "github:Gerg-L/spicetify-nix";
96 inputs = {
97 nixpkgs.follows = "nixos-unstable";
98 systems.follows = "systems";
99 };
100 };
101
102 # secrets
103 agenix = {
104 url = "github:ryantm/agenix";
105 inputs = {
106 nixpkgs.follows = "nixos-unstable";
107 systems.follows = "systems";
108 darwin.follows = "";
109 home-manager.follows = "";
110 };
111 };
112
113 # wallpapers
114 wallpapers = {
115 url = "github:42willow/wallpapers/ff1073562ef3d0c11098e86f21787f0e84d549c2";
116 inputs = {
117 nixpkgs.follows = "nixos-unstable";
118 systems.follows = "systems";
119 };
120 };
121
122 # reduce inputs
123 systems = {
124 url = "github:nix-systems/default";
125 };
126 flake-utils = {
127 url = "github:numtide/flake-utils";
128 inputs.systems.follows = "systems";
129 };
130
131 firefox-cascade = {
132 url = "github:cascadefox/cascade";
133 flake = false;
134 };
135
136 niri = {
137 url = "github:sodiboo/niri-flake";
138 inputs = {
139 nixpkgs.follows = "nixos-unstable";
140 nixpkgs-stable.follows = "nixos-stable";
141 };
142 };
143
144 quickshell = {
145 url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
146
147 inputs.nixpkgs.follows = "nixos-unstable";
148 };
149 };
150}