Unverified Commit f630533b authored by misuzu's avatar misuzu Committed by GitHub
Browse files

nixos/xpad-noone: init (#389752)

parents a097cc53 c33e419d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -84,6 +84,8 @@

- [Yggdrasil-Jumper](https://github.com/one-d-wide/yggdrasil-jumper) is an independent project that aims to transparently reduce latency of a connection over Yggdrasil network, utilizing NAT traversal to automatically bypass intermediary nodes.

- [xpad-noone](https://github.com/medusalix/xpad-noone) is the original upstream xpad driver from the Linux kernel with support for Xbox One controllers removed, especially useful for people who want to use an XBox One controller under the xone driver and an Xbox 360 controller under the xpad driver at the same time. Available as [hardware.xpad-noone](options.html#hardware.xpad-noone).

- [uMurmur](https://umurmur.net), minimalistic Mumble server primarily targeted to run on embedded computers. Available as [services.umurmur](options.html#opt-services.umurmur).

- [Zenoh](https://zenoh.io/), a pub/sub/query protocol with low overhead. The Zenoh router daemon is available as [services.zenohd](options.html#opt-services.zenohd.enable)
+25 −0
Original line number Diff line number Diff line
{
  config,
  lib,
  ...
}:

let
  cfg = config.hardware.xpad-noone;
in
{
  options.hardware.xpad-noone = {
    enable = lib.mkEnableOption "The Xpad driver from the Linux kernel with support for Xbox One controllers removed";
  };

  config = lib.mkIf cfg.enable {
    boot = {
      blacklistedKernelModules = [ "xpad" ];
      extraModulePackages = with config.boot.kernelPackages; [ xpad-noone ];
    };
  };

  meta = {
    maintainers = with lib.maintainers; [ Cryolitia ];
  };
}
+1 −0
Original line number Diff line number Diff line
@@ -122,6 +122,7 @@
  ./hardware/wooting.nix
  ./hardware/xone.nix
  ./hardware/xpadneo.nix
  ./hardware/xpad-noone.nix
  ./i18n/input-method/default.nix
  ./i18n/input-method/fcitx5.nix
  ./i18n/input-method/hime.nix
+45 −0
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchFromGitHub,
  kernel,
}:

stdenv.mkDerivation (finalAttr: {
  pname = "xpad-noone";
  version = "0-unstable-2024-01-10";

  src = fetchFromGitHub {
    owner = "medusalix";
    repo = finalAttr.pname;
    rev = "c3d1610";
    hash = "sha256-jDRyvbU9GsnM1ARTuwnoD7ZXlfBxne13UpSKRo7HHSY=";
  };

  hardeningDisable = [ "pic" ];

  nativeBuildInputs = kernel.moduleBuildDependencies;

  postPatch = ''
    substituteInPlace Makefile --replace-fail "/lib/modules/\$(shell uname -r)/build" "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
  '';

  installPhase = ''
    runHook preInstall

    install *.ko -Dm444 -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/xpad-noone

    runHook postInstall
  '';

  meta = {
    homepage = "https://github.com/medusalix/xpad-noone";
    description = "Xpad driver from the Linux kernel with support for Xbox One controllers removed";
    license = with lib.licenses; [
      gpl2Only
    ];
    maintainers = with lib.maintainers; [ Cryolitia ];
    platforms = lib.platforms.linux;
    broken = kernel.kernelOlder "5.15";
  };
})
+2 −0
Original line number Diff line number Diff line
@@ -653,6 +653,8 @@ in {

    tsme-test = callPackage ../os-specific/linux/tsme-test { };

    xpad-noone = callPackage ../os-specific/linux/xpad-noone { };

  } // lib.optionalAttrs config.allowAliases {
    zfs = throw "linuxPackages.zfs has been removed, use zfs_* instead, or linuxPackages.\${pkgs.zfs.kernelModuleAttribute}"; # added 2025-01-23
    zfs_2_1 = throw "zfs_2_1 has been removed"; # added 2024-12-25;