Personal Nix flake
nixos home-manager nix
at develop 137 lines 4.1 kB view raw
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}