diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 22f9b78a650a..91c24e285c1a 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -957,6 +957,12 @@ githubId = 5718007; name = "Bastian Köcher"; }; + blanky0230 = { + email = "blanky0230@gmail.com"; + github = "blanky0230"; + githubId = 5700358; + name = "Thomas Blank"; + }; blitz = { email = "js@alien8.de"; github = "blitz"; diff --git a/nixos/modules/hardware/tuxedo-keyboard.nix b/nixos/modules/hardware/tuxedo-keyboard.nix new file mode 100644 index 000000000000..898eed244935 --- /dev/null +++ b/nixos/modules/hardware/tuxedo-keyboard.nix @@ -0,0 +1,35 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.hardware.tuxedo-keyboard; + tuxedo-keyboard = config.boot.kernelPackages.tuxedo-keyboard; +in + { + options.hardware.tuxedo-keyboard = { + enable = mkEnableOption '' + Enables the tuxedo-keyboard driver. + + To configure the driver, pass the options to the configuration. + There are several parameters you can change. It's best to check at the source code description which options are supported. + You can find all the supported parameters at: + + In order to use the custom lighting with the maximumg brightness and a color of 0xff0a0a one would put pass like this: + + + boot.kernelParams = [ + "tuxedo_keyboard.mode=0" + "tuxedo_keyboard.brightness=255" + "tuxedo_keyboard.color_left=0xff0a0a" + ]; + + ''; + }; + + config = mkIf cfg.enable + { + boot.kernelModules = ["tuxedo_keyboard"]; + boot.extraModulePackages = [ tuxedo-keyboard ]; + }; + } diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 176b62f6cb56..53b10ec39ef7 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -62,6 +62,7 @@ ./hardware/printers.nix ./hardware/raid/hpsa.nix ./hardware/steam-hardware.nix + ./hardware/tuxedo-keyboard.nix ./hardware/usb-wwan.nix ./hardware/onlykey.nix ./hardware/video/amdgpu.nix diff --git a/pkgs/os-specific/linux/tuxedo-keyboard/default.nix b/pkgs/os-specific/linux/tuxedo-keyboard/default.nix new file mode 100644 index 000000000000..b67bf2d3dab6 --- /dev/null +++ b/pkgs/os-specific/linux/tuxedo-keyboard/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, kernel, kmod }: + +stdenv.mkDerivation rec { + pname = "tuxedo-keyboard-${kernel.version}"; + version = "2019-08-26"; + + src = fetchFromGitHub { + owner = "tuxedocomputers"; + repo = "tuxedo-keyboard"; + rev = "d65e76e84cfd8169591fc2a0a7c9219fa19da1b5"; + sha256 = "1s48qpwybwh5pwqas2d1v2a7x4r97sm4hr9i4902r1d7h384bv17"; + }; + + makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; + + installPhase = '' + mkdir -p "$out/lib/modules/${kernel.modDirVersion}" + mv src/tuxedo_keyboard.ko $out/lib/modules/${kernel.modDirVersion} + ''; + + meta = with stdenv.lib; { + description = "Full color keyboard driver for tuxedo computers laptops"; + homepage = "https://github.com/tuxedocomputers/tuxedo-keyboard/"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.blanky0230 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3336d19ed26d..aedba5c21b7b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16601,6 +16601,8 @@ in facetimehd = callPackage ../os-specific/linux/facetimehd { }; + tuxedo-keyboard = callPackage ../os-specific/linux/tuxedo-keyboard { }; + jool = callPackage ../os-specific/linux/jool { }; mba6x_bl = callPackage ../os-specific/linux/mba6x_bl { };