{ description = "Home Manager configuration of noah"; inputs = { # Specify the source of Home Manager and Nixpkgs. nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/release-25.11"; inputs.nixpkgs.follows = "nixpkgs"; }; pre-commit-hooks.url = "github:cachix/git-hooks.nix"; }; outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, pre-commit-hooks, ... }: let system = "aarch64-darwin"; pkgs = nixpkgs.legacyPackages.${system}; unstable-pkgs = nixpkgs-unstable.legacyPackages.${system}; in { homeConfigurations."noah" = home-manager.lib.homeManagerConfiguration { inherit pkgs; # Specify your home configuration modules here, for example, # the path to your home.nix. modules = [ ./home.nix ]; # Optionally use extraSpecialArgs # to pass through arguments to home.nix extraSpecialArgs = { unstable = unstable-pkgs; }; }; checks.${system}.pre-commit-check = pre-commit-hooks.lib.${system}.run { src = ./.; # If your hooks are intrusive, avoid running on each commit with a default_states like this: # default_stages = ["manual" "push"]; hooks = { #nixpkgs-fmt.enable = true; nixfmt-rfc-style.enable = true; nil.enable = true; luacheck.enable = true; }; }; devShells.${system}.default = pkgs.mkShell { inherit (self.checks.${system}.pre-commit-check) shellHook; #packages = with pkgs; [ nil lua-language-server nixpkgs-fmt ]; buildInputs = self.checks.${system}.pre-commit-check.enabledPackages; packages = [ pkgs.nodePackages_latest.lua-fmt ]; }; }; }