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 darwin-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
58
59 nix-darwin = {
60 url = "github:nix-darwin/nix-darwin/nix-darwin-25.05";
61 # url = "github:nix-darwin/nix-darwin/master";
62 inputs.nixpkgs.follows = "darwin-stable";
63 };
64
65 # themes
66 catppuccin = {
67 url = "github:catppuccin/nix/release-25.05";
68 inputs.nixpkgs.follows = "nixos-stable";
69 };
70 stylix = {
71 url = "github:danth/stylix/release-25.05";
72 # inputs = {
73 # nixpkgs.follows = "nixpkgs";
74 # systems.follows = "systems";
75 # flake-compat.follows = "";
76 # git-hooks.follows = "";
77 # home-manager.follows = "";
78 # };
79 };
80
81 # hardware
82 nixos-hardware.url = "github:NixOS/nixos-hardware/master";
83 nixos-wsl = {
84 url = "github:nix-community/NixOS-WSL/main";
85 inputs.flake-compat.follows = "";
86 };
87
88 # home-manager
89 home-manager = {
90 url = "github:nix-community/home-manager/release-25.05";
91 inputs.nixpkgs.follows = "nixos-stable";
92 };
93
94 # spicetify
95 spicetify-nix = {
96 url = "github:Gerg-L/spicetify-nix";
97 inputs = {
98 nixpkgs.follows = "nixos-unstable";
99 systems.follows = "systems";
100 };
101 };
102
103 # secrets
104 agenix = {
105 url = "github:ryantm/agenix";
106 inputs = {
107 nixpkgs.follows = "nixos-unstable";
108 systems.follows = "systems";
109 darwin.follows = "";
110 home-manager.follows = "";
111 };
112 };
113
114 # wallpapers
115 wallpapers = {
116 url = "github:42willow/wallpapers/ff1073562ef3d0c11098e86f21787f0e84d549c2";
117 inputs = {
118 nixpkgs.follows = "nixos-unstable";
119 systems.follows = "systems";
120 };
121 };
122
123 # reduce inputs
124 systems = {
125 url = "github:nix-systems/default";
126 };
127 flake-utils = {
128 url = "github:numtide/flake-utils";
129 inputs.systems.follows = "systems";
130 };
131
132 firefox-cascade = {
133 url = "github:cascadefox/cascade";
134 flake = false;
135 };
136
137 niri = {
138 url = "github:sodiboo/niri-flake";
139 inputs = {
140 nixpkgs.follows = "nixos-unstable";
141 nixpkgs-stable.follows = "nixos-stable";
142 };
143 };
144
145 quickshell = {
146 url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
147
148 inputs.nixpkgs.follows = "nixos-unstable";
149 };
150 };
151}