{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; import-tree.url = "github:vic/import-tree"; wrapper-modules.url = "github:BirdeeHub/nix-wrapper-modules"; nixos-raspberrypi = { url = "github:nvmd/nixos-raspberrypi/main"; inputs.nixpkgs.follows = "nixpkgs"; }; oom-hardware = { url = "github:robertjakub/oom-hardware/devel"; inputs.nixpkgs.follows = "nixpkgs"; inputs.nixos-raspberrypi.follows = "nixos-raspberrypi"; }; dms = { url = "github:AvengeMedia/DankMaterialShell/stable"; inputs.nixpkgs.follows = "nixpkgs"; }; dgop = { url = "github:AvengeMedia/dgop"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-monitor = { url = "github:antonjah/nix-monitor"; }; t2linux-patches = { url = "github:t2linux/linux-t2-patches"; flake = false; }; # T2 SMC fan curves — linux rarely ramps fans without this (wiki.t2linux.org/guides/fan/). t2fanrd = { url = "github:GnomedDev/T2FanRD"; inputs.nixpkgs.follows = "nixpkgs"; }; mobile-nixos = { url = "github:mobile-nixos/mobile-nixos"; flake = false; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; zen-browser = { url = "github:0xc000022070/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; cursor = { url = "git+https://git.chiasson.cloud/Olivier/cursor-nixos-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; nur = { url = "github:nix-community/NUR"; inputs.nixpkgs.follows = "nixpkgs"; }; wallpapers = { url = "git+https://git.chiasson.cloud/Olivier/wallpapers"; flake = false; }; nixcord = { url = "github:KaylorBen/nixcord"; inputs.nixpkgs.follows = "nixpkgs"; }; spicetify-nix = { url = "github:Gerg-L/spicetify-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; swiftshare = { url = "git+https://git.chiasson.cloud/Olivier/SwiftShare"; inputs.nixpkgs.follows = "nixpkgs"; }; # After pushing Personal-Website, `nix flake update personal-website` refreshes the lock pin. personal-website = { url = "git+https://git.chiasson.cloud/Olivier/Personal-Website"; inputs.nixpkgs.follows = "nixpkgs"; }; # DDRM browser-extension backend ddrm = { url = "git+https://git.chiasson.cloud/Olivier/DDRM?rev=c3d014f96855e45b53f7391ce19729493887cb96"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs: let lib = inputs.nixpkgs.lib; # import-tree default: only .nix, skip paths with /_/ (see # https://import-tree.oeiuwq.com/guides/filtering/ ). filterNot composes AND with that. # Skip /package/, /packages/, and dms/home-manager/ (callPackage + DMS HM colocation). # Avoid a global "/home-manager/" filter — it would drop modules/ssh/home-manager/. modulesTree = lib.pipe inputs.import-tree [ (it: it.withLib lib) (it: it.filterNot ( p: lib.hasInfix "/package/" p || lib.hasInfix "/packages/" p || lib.hasInfix "dms/home-manager/" p )) (it: it ./modules) ]; in inputs.flake-parts.lib.mkFlake { inherit inputs; } modulesTree; }