1{ 2 lib, 3 wrapQtAppsHook, 4 fetchFromGitHub, 5 replaceVars, 6 udev, 7 stdenv, 8 pkg-config, 9 qtbase, 10 cmake, 11 zlib, 12 kmod, 13 libXdmcp, 14 qttools, 15 qtx11extras, 16 libdbusmenu, 17 gnused, 18 withPulseaudio ? stdenv.hostPlatform.isLinux, 19 libpulseaudio, 20 quazip, 21 udevCheckHook, 22}: 23 24stdenv.mkDerivation rec { 25 version = "0.6.2"; 26 pname = "ckb-next"; 27 28 src = fetchFromGitHub { 29 owner = "ckb-next"; 30 repo = "ckb-next"; 31 rev = "v${version}"; 32 hash = "sha256-lA1FpUee2SpUQwJotbYhG0QX7LT5l2PP9lJ9F3uNtdU="; 33 }; 34 35 buildInputs = [ 36 udev 37 qtbase 38 zlib 39 libXdmcp 40 qttools 41 qtx11extras 42 libdbusmenu 43 quazip 44 ] 45 ++ lib.optional withPulseaudio libpulseaudio; 46 47 nativeBuildInputs = [ 48 wrapQtAppsHook 49 pkg-config 50 cmake 51 udevCheckHook 52 ]; 53 54 cmakeFlags = [ 55 "-DINSTALL_DIR_ANIMATIONS=libexec" 56 "-DUDEV_RULE_DIRECTORY=lib/udev/rules.d" 57 "-DFORCE_INIT_SYSTEM=systemd" 58 "-DDISABLE_UPDATER=1" 59 ]; 60 61 patches = [ 62 ./install-dirs.patch 63 (replaceVars ./modprobe.patch { 64 inherit kmod; 65 }) 66 ]; 67 68 doInstallCheck = true; 69 70 postInstall = '' 71 substituteInPlace "$out/lib/udev/rules.d/99-ckb-next-daemon.rules" \ 72 --replace-fail "/usr/bin/env sed" "${lib.getExe gnused}" 73 ''; 74 75 meta = with lib; { 76 description = "Driver and configuration tool for Corsair keyboards and mice"; 77 homepage = "https://github.com/ckb-next/ckb-next"; 78 license = licenses.gpl2Only; 79 platforms = platforms.linux; 80 mainProgram = "ckb-next"; 81 maintainers = [ ]; 82 }; 83}