{ inputs, lib, ... }: { # debug = true; # We only define machines config in this flake yet, so we only include # the module that builds these. This file might get fuller, if we need to # build our own packages, that are not flakes. imports = [ ./nixos/flake-module.nix # ./packages/flake-module.nix inputs.pre-commit-hooks.flakeModule # To import a flake module # 1. Add foo to inputs # 2. Add foo as a parameter to the outputs function # 3. Add here: foo.flakeModule ]; systems = [ "x86_64-linux" ]; perSystem = { config, pkgs, system, ... }: { devShells.default = config.pre-commit.devShell; pre-commit = let generatedFiles = [ "hardware-configuration\\.nix" ]; in { check.enable = true; settings = { hooks = { nil.enable = true; statix = { enable = true; settings = { format = "stderr"; ignore = generatedFiles; }; }; deadnix = { enable = true; excludes = generatedFiles; }; nixfmt-rfc-style.enable = true; }; }; }; formatter = pkgs.nixfmt-rfc-style; _module.args.pkgs = import inputs.nixpkgs { inherit system; config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "steam" "steam-original" "steam-unwrapped" "steam-run" ]; }; # Per-system attributes can be defined here. The self' and inputs' # module parameters provide easy access to attributes of the same # system. }; # Equivalent to inputs'.nixpkgs.legacyPackages.hello; # flake = { # The usual flake attributes can be defined here, including system- # agnostic ones like nixosModule and system-enumerating ones, although # those are more easily expressed in perSystem. # }; }