diff --git a/.gitignore b/.gitignore index 329b006..db2b2c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ ### direnv ### .direnv + +### pre-commit ### +.pre-commit-config.yaml diff --git a/flake.nix b/flake.nix index 03cbc53..eea3db1 100644 --- a/flake.nix +++ b/flake.nix @@ -1,67 +1,66 @@ { - inputs = - { - nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; - master.url = "github:nixos/nixpkgs"; - stable.url = "github:nixos/nixpkgs/nixos-24.11"; + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + master.url = "github:nixos/nixpkgs"; + stable.url = "github:nixos/nixpkgs/nixos-24.11"; - # New flake-parts input - flake-parts.url = "github:hercules-ci/flake-parts"; - flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; - git-hooks-nix.url = "github:cachix/git-hooks.nix"; + # New flake-parts input + flake-parts.url = "github:hercules-ci/flake-parts"; + flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; + git-hooks-nix.url = "github:cachix/git-hooks.nix"; - clan-core = { - url = "git+https://git.clan.lol/clan/clan-core"; - inputs.nixpkgs.follows = "nixpkgs"; # Needed if your configuration uses nixpkgs unstable. - inputs.flake-parts.follows = "flake-parts"; - }; - - home-manager.inputs.nixpkgs.follows = "nixpkgs"; - home-manager.url = "github:nix-community/home-manager"; - - impermanence.url = "github:nix-community/impermanence"; - - pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; - - nur.url = "github:nix-community/NUR"; - - nix-index-database.url = "github:Mic92/nix-index-database"; - nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; - - nix-monitored.url = "github:ners/nix-monitored"; - nix-monitored.inputs.nixpkgs.follows = "nixpkgs"; - - jovian.url = "github:Jovian-Experiments/Jovian-NixOS"; - - # Programs - timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git"; - filetags.url = "git+https://gitea.moritzboeh.me/moritz/filetags.git"; - - # Neovim - neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; - - nixvim.url = "github:nix-community/nixvim"; - nixvim.inputs.flake-parts.follows = "flake-parts"; - nixvim.inputs.nixpkgs.follows = "nixpkgs"; - - # Niri - niri.url = "github:sodiboo/niri-flake"; - niri.inputs.nixpkgs.follows = "nixpkgs"; - - # Laptop - asus-touchpad-numpad-driver.url = "github:MoritzBoehme/asus-touchpad-numpad-driver/german-layout"; - asus-touchpad-numpad-driver.flake = false; - - # Firefox user.js - arkenfox-userjs.url = "github:arkenfox/user.js"; - arkenfox-userjs.flake = false; + clan-core = { + url = "git+https://git.clan.lol/clan/clan-core"; + inputs.nixpkgs.follows = "nixpkgs"; # Needed if your configuration uses nixpkgs unstable. + inputs.flake-parts.follows = "flake-parts"; }; - outputs = inputs@{ flake-parts, ... }: - flake-parts.lib.mkFlake { inherit inputs; } ({ self, pkgs, ... }: { + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + home-manager.url = "github:nix-community/home-manager"; + + impermanence.url = "github:nix-community/impermanence"; + + pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; + + nur.url = "github:nix-community/NUR"; + + nix-index-database.url = "github:Mic92/nix-index-database"; + nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; + + nix-monitored.url = "github:ners/nix-monitored"; + nix-monitored.inputs.nixpkgs.follows = "nixpkgs"; + + jovian.url = "github:Jovian-Experiments/Jovian-NixOS"; + + # Programs + timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git"; + filetags.url = "git+https://gitea.moritzboeh.me/moritz/filetags.git"; + + # Neovim + neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; + + nixvim.url = "github:nix-community/nixvim"; + nixvim.inputs.flake-parts.follows = "flake-parts"; + nixvim.inputs.nixpkgs.follows = "nixpkgs"; + + # Niri + niri.url = "github:sodiboo/niri-flake"; + niri.inputs.nixpkgs.follows = "nixpkgs"; + + # Laptop + asus-touchpad-numpad-driver.url = "github:MoritzBoehme/asus-touchpad-numpad-driver/german-layout"; + asus-touchpad-numpad-driver.flake = false; + + # Firefox user.js + arkenfox-userjs.url = "github:arkenfox/user.js"; + arkenfox-userjs.flake = false; + }; + + outputs = inputs @ {flake-parts, ...}: + flake-parts.lib.mkFlake {inherit inputs;} ({self, ...}: { # We define our own systems below. you can still use this to add system specific outputs to your flake. # See: https://flake.parts/getting-started - systems = [ "x86_64-linux" ]; + systems = ["x86_64-linux"]; # import clan-core modules imports = [ @@ -69,18 +68,23 @@ inputs.git-hooks-nix.flakeModule ]; - - perSystem = { config, inputs', pkgs, ... }: { - devShells.default = pkgs.mkShell { - packages = [ inputs'.clan-core.packages.clan-cli pkgs.alejandra ]; - }; + perSystem = { + config, + inputs', + pkgs, + ... + }: { + devShells.default = + pkgs.mkShell { + packages = [inputs'.clan-core.packages.clan-cli pkgs.alejandra]; + } + // config.pre-commit.devShell; pre-commit.settings.hooks = { alejandra.enable = true; check-merge-conflicts.enable = true; flake-checker.enable = true; deadnix.enable = true; nil.enable = true; - statix.enable = true; }; };