Personal Nix flake
nixos
home-manager
nix
1{
2 description = "Defines my personal systems/home configs and whatnot";
3
4 outputs = {self, ...} @ inputs:
5 inputs.flake-parts.lib.mkFlake
6 {inherit inputs;}
7 ({flake-parts-lib, ...}: let
8 inherit (flake-parts-lib) importApply;
9 inherit (inputs.nixpkgs) lib;
10 specialArgs = {inherit inputs lib self;};
11 import' = path: import path specialArgs;
12 importApply' = path: importApply path specialArgs;
13 systems = ["aarch64-linux" "x86_64-linux"];
14 in {
15 inherit systems;
16 imports = [
17 (importApply' ./nix/flakeModules)
18 (importApply' ./nix/apps)
19 (importApply' ./nix/checks)
20 (importApply' ./nix/overlays)
21 (importApply' ./nix/packages)
22 (importApply' ./nix/legacyPackages)
23 (importApply' ./nix/shells)
24 (importApply' ./nix/tests)
25 ];
26 perSystem = {
27 pkgs,
28 system,
29 ...
30 }: {
31 _module.args.pkgs = self.lib.mkPkgs {inherit system;};
32 formatter = pkgs.alejandra;
33 legacyPackages.pkgs = self.lib.mkPkgs {
34 inherit system;
35 inherit (inputs) nixpkgs;
36 };
37 };
38 flake = {
39 inherit systems;
40 lib = import' ./nix/lib;
41 nixConfig = self.vars.nix.settings;
42 schemas =
43 inputs.flake-schemas.schemas
44 // (import' ./nix/schemas);
45 vars = import' ./vars;
46 };
47 });
48
49 inputs = {
50 # Nixpkgs
51 nixpkgs.follows = "unstable";
52 stable.url = "github:NixOS/nixpkgs/nixos-25.11";
53 unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
54 nixpkgs-hare.url = "github:lpchaim/nixpkgs/update-hare";
55
56 # Hyprland
57 dms = {
58 url = "github:AvengeMedia/DankMaterialShell/stable";
59 inputs.nixpkgs.follows = "nixpkgs";
60 };
61 caelestia = {
62 url = "github:caelestia-dots/shell";
63 inputs.nixpkgs.follows = "nixpkgs";
64 };
65
66 # Misc
67 agenix = {
68 url = "github:ryantm/agenix";
69 inputs.nixpkgs.follows = "nixpkgs";
70 };
71 agenix-rekey = {
72 url = "github:oddlama/agenix-rekey";
73 inputs.nixpkgs.follows = "nixpkgs";
74 };
75 colmena = {
76 url = "github:zhaofengli/colmena";
77 inputs.nixpkgs.follows = "nixpkgs";
78 };
79 disko = {
80 url = "github:nix-community/disko";
81 inputs.nixpkgs.follows = "nixpkgs";
82 };
83 ez-configs = {
84 url = "github:ehllie/ez-configs";
85 inputs.flake-parts.follows = "flake-parts";
86 inputs.nixpkgs.follows = "nixpkgs";
87 };
88 flake-parts.url = "github:hercules-ci/flake-parts";
89 flake-schemas.url = "github:DeterminateSystems/flake-schemas";
90 git-hooks-nix.url = "github:cachix/git-hooks.nix";
91 home-manager = {
92 url = "github:nix-community/home-manager";
93 inputs.nixpkgs.follows = "nixpkgs";
94 };
95 jovian = {
96 url = "github:Jovian-Experiments/Jovian-NixOS";
97 inputs.nixpkgs.follows = "nixpkgs";
98 };
99 lanzaboote = {
100 url = "github:nix-community/lanzaboote";
101 inputs.nixpkgs.follows = "nixpkgs";
102 };
103 make-shell.url = "github:nicknovitski/make-shell";
104 nix-flatpak.url = "github:gmodena/nix-flatpak/latest";
105 nix-gaming.url = "github:fufexan/nix-gaming";
106 nix-index-database = {
107 url = "github:nix-community/nix-index-database";
108 inputs.nixpkgs.follows = "nixpkgs";
109 };
110 nix-std.url = "github:chessai/nix-std";
111 nixtest.url = "gitlab:TECHNOFAB/nixtest?dir=lib";
112 nixneovimplugins = {
113 url = "github:jooooscha/nixpkgs-vim-extra-plugins";
114 inputs.nixpkgs.follows = "nixpkgs";
115 };
116 nixvim = {
117 url = "github:nix-community/nixvim";
118 inputs.nixpkgs.follows = "nixpkgs";
119 };
120 nur = {
121 url = "github:nix-community/NUR";
122 inputs.nixpkgs.follows = "nixpkgs";
123 };
124 spicetify-nix = {
125 url = "github:Gerg-L/spicetify-nix";
126 inputs.nixpkgs.follows = "nixpkgs";
127 };
128 stylix = {
129 url = "github:danth/stylix";
130 inputs.nixpkgs.follows = "nixpkgs";
131 };
132 wayland-pipewire-idle-inhibit = {
133 url = "github:rafaelrc7/wayland-pipewire-idle-inhibit";
134 inputs.nixpkgs.follows = "nixpkgs";
135 };
136 };
137}