{ 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"; }; dms-plugin-dank-vault = { url = "github:alcxyz/DankVault"; flake = false; }; dms-plugin-calculator = { url = "github:rochacbruno/DankCalculator"; flake = false; }; dms-plugin-home-assistant = { url = "github:xxyangyoulin/dms-plugin-hass"; flake = false; }; dms-plugin-dropdown-menu = { url = "github:rdannenbring/dropdown-menu"; flake = false; }; dms-plugin-ocr-scanner = { url = "github:hthienloc/dms-ocr-scanner"; flake = false; }; dms-plugin-unified-taskbar = { url = "github:jslandau/dms-unified-taskbar"; flake = false; }; dms-plugin-widget-group = { url = "github:rdannenbring/widget-group"; flake = false; }; dms-plugin-nix-package-runner = { url = "github:iahccc/NixPackageRunner"; flake = false; }; dms-plugin-ambient-sound = { url = "github:hthienloc/dms-ambient-sound"; flake = false; }; dms-plugin-cava-visualizer = { url = "github:ernestowgg/cava-visualizer"; flake = false; }; dms-plugin-emoji-launcher = { url = "github:devnullvoid/dms-emoji-launcher"; flake = false; }; dms-plugin-official = { url = "github:AvengeMedia/dms-plugins"; flake = false; }; dms-plugin-web-search = { url = "github:devnullvoid/dms-web-search"; flake = false; }; dms-plugin-wallpaper-carousel = { url = "github:motor-dev/wallpaperCarousel"; flake = false; }; dms-plugin-ephemera = { url = "github:nicolasgarcia214/Ephemera"; flake = false; }; dms-plugin-app-shortcut = { url = "github:oabragh/AppShortcut"; flake = false; }; dms-plugin-wvkbd-toggle = { url = "git+https://git.chiasson.cloud/dms-plugins/wvkbd-toggle"; flake = false; }; dms-plugin-rbw-lock-toggle = { url = "git+https://git.chiasson.cloud/dms-plugins/rbw-lock-toggle"; flake = false; }; 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"; }; navi.url = "github:cafkafk/navi"; nixvirt = { url = "https://flakehub.com/f/AshleyYakeley/NixVirt/*.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; }; hermes = { url = "github:NousResearch/hermes-agent"; }; mt7927 = { url = "github:cmspam/mt7927-nixos"; }; }; 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/ and /packages/ (callPackage 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)) (it: it ./modules) ]; in inputs.flake-parts.lib.mkFlake { inherit inputs; } modulesTree; }