nixos/xpad-noone: init (#389752)

This commit is contained in:
misuzu 2025-03-25 11:29:52 +02:00 committed by GitHub
commit f630533b4a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 75 additions and 0 deletions

View File

@ -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)

View File

@ -0,0 +1,25 @@
{
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 ];
};
}

View File

@ -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

View File

@ -0,0 +1,45 @@
{
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";
};
})

View File

@ -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;