diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 32896d4fa0e..86093f16ac4 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -188,6 +188,7 @@ ./services/hardware/pcscd.nix ./services/hardware/pommed.nix ./services/hardware/sane.nix + ./services/hardware/spacenavd.nix ./services/hardware/tcsd.nix ./services/hardware/tlp.nix ./services/hardware/thinkfan.nix diff --git a/nixos/modules/services/hardware/spacenavd.nix b/nixos/modules/services/hardware/spacenavd.nix new file mode 100644 index 00000000000..9490ee2849a --- /dev/null +++ b/nixos/modules/services/hardware/spacenavd.nix @@ -0,0 +1,31 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let cfg = config.hardware.spacenavd; + +in { + + options = { + hardware.spacenavd = { + enable = mkOption { + default = false; + description = '' + Whether to enable spacenavd to support 3DConnexion devices + ''; + }; + }; + }; + + config = mkIf cfg.enable { + systemd.services.spacenavd = { + description = "spacenavd"; + after = [ "basic.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "forking"; + ExecStart = "${pkgs.spacenavd}/bin/spacenavd"; + }; + }; + }; +} diff --git a/pkgs/misc/drivers/spacenavd/default.nix b/pkgs/misc/drivers/spacenavd/default.nix new file mode 100644 index 00000000000..1866259fa09 --- /dev/null +++ b/pkgs/misc/drivers/spacenavd/default.nix @@ -0,0 +1,23 @@ +{stdenv, fetchurl, libX11}: + +stdenv.mkDerivation rec { + version = "0.6"; + name = "spacenavd-${version}"; + + src = fetchurl { + url = "http://downloads.sourceforge.net/spacenav/${name}.tar.gz"; + sha256 = "1ayhi06pv5lx36m5abwbib1wbs75svjkz92605cmkaf5jszh7ln2"; + }; + + buildInputs = [ libX11 ]; + + configureFlags = [ "--disable-debug"]; + + meta = { + homepage = "http://spacenav.sourceforge.net/"; + description = "A free, compatible alternative, to the proprietary 3Dconnexion device driver and SDK, for their 3D input devices (called 'space navigator', 'space pilot', 'space traveller', etc)."; + license = stdenv.lib.licenses.gpl3; + platforms = stdenv.lib.platforms.unix; + maintainers = [ stdenv.lib.maintainers.flosse ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b468132626b..6d6a8d6c247 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8279,6 +8279,7 @@ in libspectre = callPackage ../development/libraries/libspectre { }; libspnav = callPackage ../development/libraries/libspnav { }; + spacenavd = callPackage ../misc/drivers/spacenavd { }; libgsf = callPackage ../development/libraries/libgsf { };