diff --git a/nixos/modules/hardware/openrazer.nix b/nixos/modules/hardware/openrazer.nix index 64a35dbef706..6a1589529893 100644 --- a/nixos/modules/hardware/openrazer.nix +++ b/nixos/modules/hardware/openrazer.nix @@ -6,11 +6,10 @@ }: let cfg = config.hardware.openrazer; - kernelPackages = config.boot.kernelPackages; toPyBoolStr = b: if b then "True" else "False"; - daemonExe = "${pkgs.openrazer-daemon}/bin/openrazer-daemon --config ${daemonConfFile}"; + daemonExe = "${cfg.packages.daemon}/bin/openrazer-daemon --config ${daemonConfFile}"; daemonConfFile = pkgs.writeTextFile { name = "razer.conf"; @@ -132,6 +131,14 @@ in can start and interact with the OpenRazer userspace daemon. ''; }; + + packages = { + kernel = lib.mkPackageOption pkgs "openrazer kernel" { } // { + default = config.boot.kernelPackages.openrazer; + defaultText = lib.literalExpression "config.boot.kernelPackages.openrazer"; + }; + daemon = lib.mkPackageOption pkgs [ "python3Packages" "openrazer-daemon" ] { }; + }; }; }; @@ -143,14 +150,16 @@ in ]; config = lib.mkIf cfg.enable { - boot.extraModulePackages = [ kernelPackages.openrazer ]; + boot.extraModulePackages = [ cfg.packages.kernel ]; boot.kernelModules = drivers; # Makes the man pages available so you can successfully run # > systemctl --user help openrazer-daemon - environment.systemPackages = [ pkgs.python3Packages.openrazer-daemon.man ]; + environment.systemPackages = lib.mkIf (cfg.packages.daemon ? man) [ + cfg.packages.daemon.man + ]; - services.udev.packages = [ kernelPackages.openrazer ]; + services.udev.packages = [ cfg.packages.kernel ]; services.dbus.packages = [ dbusServiceFile ]; # A user must be a member of the openrazer group in order to start