ckb: init at 0.2.6

ckb is a driver for Corsair keyboards/mice. It also contains a graphical tool for configuring their LED backlight settings.

The driver is implemented as a userland daemon. A NixOS module is included that runs this as a systemd service.

Changed files
+97
nixos
modules
hardware
pkgs
+40
nixos/modules/hardware/ckb.nix
···
+
{ config, lib, pkgs, ... }:
+
+
with lib;
+
+
let
+
cfg = config.hardware.ckb;
+
+
in
+
{
+
options.hardware.ckb = {
+
enable = mkEnableOption "the Corsair keyboard/mouse driver";
+
+
package = mkOption {
+
type = types.package;
+
default = pkgs.ckb;
+
defaultText = "pkgs.ckb";
+
description = ''
+
The package implementing the Corsair keyboard/mouse driver.
+
'';
+
};
+
};
+
+
config = mkIf cfg.enable {
+
environment.systemPackages = [ cfg.package ];
+
+
systemd.services.ckb = {
+
description = "Corsair Keyboard Daemon";
+
wantedBy = ["multi-user.target"];
+
script = "${cfg.package}/bin/ckb-daemon";
+
serviceConfig = {
+
Restart = "always";
+
StandardOutput = "syslog";
+
};
+
};
+
};
+
+
meta = {
+
maintainers = with lib.maintainers; [ kierdavis ];
+
};
+
}
+12
pkgs/tools/misc/ckb/ckb-animations-location.patch
···
+
diff --git a/src/ckb/animscript.cpp b/src/ckb/animscript.cpp
+
index d0b7f46..d7a3459 100644
+
--- a/src/ckb/animscript.cpp
+
+++ b/src/ckb/animscript.cpp
+
@@ -30,7 +30,7 @@ QString AnimScript::path(){
+
#ifdef __APPLE__
+
return QDir(QApplication::applicationDirPath() + "/../Resources").absoluteFilePath("ckb-animations");
+
#else
+
- return QDir(QApplication::applicationDirPath()).absoluteFilePath("ckb-animations");
+
+ return QDir(QApplication::applicationDirPath() + "/../libexec").absoluteFilePath("ckb-animations");
+
#endif
+
}
+43
pkgs/tools/misc/ckb/default.nix
···
+
{ stdenv, fetchFromGitHub, libudev, pkgconfig, qtbase, qmakeHook, zlib }:
+
+
stdenv.mkDerivation rec {
+
version = "0.2.6";
+
name = "ckb-${version}";
+
+
src = fetchFromGitHub {
+
owner = "ccMSC";
+
repo = "ckb";
+
rev = "v${version}";
+
sha256 = "04h50qdzsbi77mj62jghr52i35vxvmhnvsb7pdfdq95ryry8bnwm";
+
};
+
+
buildInputs = [
+
libudev
+
qtbase
+
zlib
+
];
+
+
nativeBuildInputs = [
+
pkgconfig
+
qmakeHook
+
];
+
+
patches = [
+
./ckb-animations-location.patch
+
];
+
+
doCheck = false;
+
+
installPhase = ''
+
install -D --mode 0755 --target-directory $out/bin bin/ckb-daemon bin/ckb
+
install -D --mode 0755 --target-directory $out/libexec/ckb-animations bin/ckb-animations/*
+
'';
+
+
meta = with stdenv.lib; {
+
description = "Driver and configuration tool for Corsair keyboards and mice";
+
homepage = https://github.com/ccMSC/ckb;
+
license = licenses.gpl2;
+
platforms = platforms.linux;
+
maintainers = with maintainers; [ kierdavis ];
+
};
+
}
+2
pkgs/top-level/all-packages.nix
···
cloud-utils = callPackage ../tools/misc/cloud-utils { };
+
ckb = qt5.callPackage ../tools/misc/ckb { };
+
compass = callPackage ../development/tools/compass { };
convmv = callPackage ../tools/misc/convmv { };