From 6b82cc51a5739bf578a3c5eb3c79441f0979258b Mon Sep 17 00:00:00 2001 From: delet-this <33498862+delet-this@users.noreply.github.com> Date: Tue, 14 Apr 2026 20:46:59 +0300 Subject: [PATCH 1/4] Use callPackage Using callPackage is bit more idiomatic here. --- nix/flake.nix | 4 ++-- nix/package.nix | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/nix/flake.nix b/nix/flake.nix index c602d45c..e126c3c3 100644 --- a/nix/flake.nix +++ b/nix/flake.nix @@ -12,14 +12,14 @@ }; eachSystem = lib.genAttrs ["aarch64-linux" "x86_64-linux"]; overlay = final: prev: { - yeetmouse = import ./package.nix packageInputs final; + yeetmouse = final.callPackage import ./package.nix packageInputs; }; in { inherit inputs; nixosModules.default = import ./module.nix overlay; overlays.default = overlay; packages = eachSystem (system: { - yeetmouse = (import ./package.nix packageInputs nixpkgs.legacyPackages.${system}); + yeetmouse = nixpkgs.legacyPackages.${system}.callPackage ./package.nix packageInputs; }); }; } diff --git a/nix/package.nix b/nix/package.nix index 598fffdf..dc94722e 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -1,14 +1,12 @@ -{ shortRev ? "dev" }: -pkgs @ { +{ lib, - bash, stdenv, - coreutils, writeShellScript, makeDesktopItem, + pkgs, kernel ? pkgs.linuxPackages.kernel, kernelModuleMakeFlags ? pkgs.linuxPackages.kernelModuleMakeFlags, - ... + shortRev ? "dev" }: let From 010e0bca0c28ec74c6cb942d543fa0385ab660bf Mon Sep 17 00:00:00 2001 From: delet-this <33498862+delet-this@users.noreply.github.com> Date: Tue, 14 Apr 2026 21:03:35 +0300 Subject: [PATCH 2/4] Use `config.boot.linuxPackages.callPackage` in the kernel module This is also bit more idiomatic in my opinion, and gives us the correct `kernelModuleMakeFlags`. --- nix/flake.nix | 7 +++---- nix/module.nix | 8 ++------ 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/nix/flake.nix b/nix/flake.nix index e126c3c3..06bc5d8a 100644 --- a/nix/flake.nix +++ b/nix/flake.nix @@ -7,16 +7,15 @@ outputs = inputs @ { self, nixpkgs }: let inherit (inputs.nixpkgs) lib; - packageInputs = { - shortRev = if (self ? shortRev) then self.shortRev else self.dirtyRev; - }; + shortRev = if (self ? shortRev) then self.shortRev else self.dirtyRev; + packageInputs = { inherit shortRev; }; eachSystem = lib.genAttrs ["aarch64-linux" "x86_64-linux"]; overlay = final: prev: { yeetmouse = final.callPackage import ./package.nix packageInputs; }; in { inherit inputs; - nixosModules.default = import ./module.nix overlay; + nixosModules.default = import ./module.nix shortRev; overlays.default = overlay; packages = eachSystem (system: { yeetmouse = nixpkgs.legacyPackages.${system}.callPackage ./package.nix packageInputs; diff --git a/nix/module.nix b/nix/module.nix index 41a0ed1f..d974fd01 100644 --- a/nix/module.nix +++ b/nix/module.nix @@ -1,4 +1,4 @@ -yeetmouseOverlay: +shortRev: { pkgs, config, lib, ... }: with lib; @@ -462,9 +462,7 @@ let }; }; - yeetmouse = pkgs.yeetmouse.override { - kernel = config.boot.kernelPackages.kernel; - }; + yeetmouse = config.boot.kernelPackages.callPackage ./package.nix { inherit shortRev; }; in { options.hardware.yeetmouse = { enable = mkOption { @@ -588,8 +586,6 @@ in { }; config = mkIf cfg.enable { - nixpkgs.overlays = [ yeetmouseOverlay ]; - boot.extraModulePackages = [ yeetmouse ]; environment.systemPackages = [ yeetmouse ]; services.udev = { From 220408650a430c8ab8eff370a58dc9ec20cddb5a Mon Sep 17 00:00:00 2001 From: delet-this <33498862+delet-this@users.noreply.github.com> Date: Tue, 14 Apr 2026 21:04:42 +0300 Subject: [PATCH 3/4] Remove `KBUILD_OUTPUT` definition Shouldn't be needed anymore as we should get a correct `kernelModuleMakeFlags` now. --- nix/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/nix/package.nix b/nix/package.nix index dc94722e..93038c35 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -34,7 +34,6 @@ let ]; makeFlags = kernelModuleMakeFlags ++ [ - "KBUILD_OUTPUT=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "-C" "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "M=$(sourceRoot)/driver" From f237ceb62cbecc4c82da08ab4192bce1a405c2ae Mon Sep 17 00:00:00 2001 From: delet-this <33498862+delet-this@users.noreply.github.com> Date: Tue, 14 Apr 2026 21:16:29 +0300 Subject: [PATCH 4/4] Remove default values for `kernel` and `kernelModuleMakeFlags` Require passing them explicitly to hopefully prevent mismatching `kernel` and `kernelModuleMakeFlags` in the future. --- nix/flake.nix | 13 +++++++++---- nix/package.nix | 4 ++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/nix/flake.nix b/nix/flake.nix index 06bc5d8a..b3a74d82 100644 --- a/nix/flake.nix +++ b/nix/flake.nix @@ -8,17 +8,22 @@ outputs = inputs @ { self, nixpkgs }: let inherit (inputs.nixpkgs) lib; shortRev = if (self ? shortRev) then self.shortRev else self.dirtyRev; - packageInputs = { inherit shortRev; }; + packageInputs = pkgs: { + inherit shortRev; + inherit (pkgs.linuxPackages) kernel kernelModuleMakeFlags; + }; eachSystem = lib.genAttrs ["aarch64-linux" "x86_64-linux"]; overlay = final: prev: { - yeetmouse = final.callPackage import ./package.nix packageInputs; + yeetmouse = final.callPackage import ./package.nix (packageInputs final); }; in { inherit inputs; nixosModules.default = import ./module.nix shortRev; overlays.default = overlay; - packages = eachSystem (system: { - yeetmouse = nixpkgs.legacyPackages.${system}.callPackage ./package.nix packageInputs; + packages = eachSystem (system: let + pkgs = nixpkgs.legacyPackages.${system}; + in { + yeetmouse = pkgs.callPackage ./package.nix (packageInputs pkgs); }); }; } diff --git a/nix/package.nix b/nix/package.nix index 93038c35..002c3bf3 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -4,8 +4,8 @@ writeShellScript, makeDesktopItem, pkgs, - kernel ? pkgs.linuxPackages.kernel, - kernelModuleMakeFlags ? pkgs.linuxPackages.kernelModuleMakeFlags, + kernel, + kernelModuleMakeFlags, shortRev ? "dev" }: