nixos/xpadneo: init at 0.8.1

I just got an Xbox One controller and I wasn't satisfied with the xpad
driver that ships with the Linux kernel

xpadneo supports more features and fixes problems with
incorrect button mappings

https://atar-axis.github.io/xpadneo
This commit is contained in:
MetaDark 2020-07-07 01:15:23 -04:00
parent 6ca121a479
commit db96d8840f
4 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,29 @@
{ config, lib, ... }:
with lib;
let
cfg = config.hardware.xpadneo;
in
{
options.hardware.xpadneo = {
enable = mkEnableOption "the xpadneo driver for Xbox One wireless controllers";
};
config = mkIf cfg.enable {
boot = {
# Must disable Enhanced Retransmission Mode to support bluetooth pairing
# https://wiki.archlinux.org/index.php/Gamepad#Connect_Xbox_Wireless_Controller_with_Bluetooth
extraModprobeConfig =
mkIf
config.hardware.bluetooth.enable
"options bluetooth disable_ertm=1";
extraModulePackages = with config.boot.kernelPackages; [ xpadneo ];
kernelModules = [ "hid_xpadneo" ];
};
};
meta = {
maintainers = with maintainers; [ metadark ];
};
}

View File

@ -76,6 +76,7 @@
./hardware/video/nvidia.nix
./hardware/video/uvcvideo/default.nix
./hardware/video/webcam/facetimehd.nix
./hardware/xpadneo.nix
./i18n/input-method/default.nix
./i18n/input-method/fcitx.nix
./i18n/input-method/ibus.nix

View File

@ -0,0 +1,37 @@
{ stdenv, fetchFromGitHub, kernel, bluez }:
stdenv.mkDerivation rec {
pname = "xpadneo";
version = "0.8.1";
src = fetchFromGitHub {
owner = "atar-axis";
repo = pname;
rev = "v${version}";
sha256 = "0v688j7jx2b68zlwnrr5y63zxzhldygw1lcp8f3irayhcp8ikzzy";
};
setSourceRoot = ''
export sourceRoot=$(pwd)/source/hid-xpadneo/src
'';
nativeBuildInputs = kernel.moduleBuildDependencies;
buildInputs = [ bluez ];
makeFlags = [
"-C"
"${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"M=$(sourceRoot)"
];
buildFlags = [ "modules" ];
installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ];
installTargets = [ "modules_install" ];
meta = with stdenv.lib; {
description = "Advanced Linux driver for Xbox One wireless controllers";
homepage = "https://atar-axis.github.io/xpadneo";
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}

View File

@ -17416,6 +17416,8 @@ in
x86_energy_perf_policy = callPackage ../os-specific/linux/x86_energy_perf_policy { };
xpadneo = callPackage ../os-specific/linux/xpadneo { };
zenpower = callPackage ../os-specific/linux/zenpower { };
inherit (callPackages ../os-specific/linux/zfs {