{ description = "Nixos config flake"; inputs = { # base packages nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # flake structure flake-parts.url = "github:hercules-ci/flake-parts"; import-tree.url = "github:vic/import-tree"; lix-module = { url = "git+https://git.lix.systems/lix-project/nixos-module.git"; inputs.nixpkgs.follows = "nixpkgs"; }; # secret encryption sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; # self hosted repo of secrets file to further protect files in case of future encryption vulnerabilities secrets = { url = "git+ssh://git@git.jan-leila.com/jan-leila/nix-config-secrets.git"; flake = false; }; # common config for syncthing nix-syncthing = { url = "git+https://git.jan-leila.com/jan-leila/nix-syncthing?ref=main"; inputs.nixpkgs.follows = "nixpkgs"; }; # disk configurations disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; # delete your darlings impermanence = { url = "github:nix-community/impermanence"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; nix-darwin = { url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; # users home directories home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; # firefox extensions firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; # vscode extensions nix-vscode-extensions = { url = "github:nix-community/nix-vscode-extensions"; inputs.nixpkgs.follows = "nixpkgs"; }; # pregenerated hardware configurations nixos-hardware = { url = "github:NixOS/nixos-hardware/master"; }; # this is just here so that we have a lock on it for our dev shells flake-compat = { url = "github:edolstra/flake-compat"; }; # MCP NixOS server for Claude Dev mcp-nixos = { url = "github:utensils/mcp-nixos"; # Not following nixpkgs because aws-sam-translator doesn't support Python 3.14 yet }; # Noita Entangled Worlds package # Not following our nixpkgs so it can use its own rust-overlay configuration noita-entangled-worlds = { url = "github:IntQuant/noita_entangled_worlds/master"; }; }; outputs = inputs: inputs.flake-parts.lib.mkFlake {inherit inputs;} { imports = [ inputs.home-manager.flakeModules.home-manager inputs.nix-darwin.flakeModules.default ({lib, ...}: { options.flake.darwinModules = lib.mkOption { type = lib.types.attrsOf lib.types.unspecified; default = {}; }; options.flake.commonModules = lib.mkOption { type = lib.types.attrsOf lib.types.unspecified; default = {}; }; }) (inputs.import-tree ./modules) ]; }; }