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:
parent
6ca121a479
commit
db96d8840f
|
@ -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 ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -76,6 +76,7 @@
|
||||||
./hardware/video/nvidia.nix
|
./hardware/video/nvidia.nix
|
||||||
./hardware/video/uvcvideo/default.nix
|
./hardware/video/uvcvideo/default.nix
|
||||||
./hardware/video/webcam/facetimehd.nix
|
./hardware/video/webcam/facetimehd.nix
|
||||||
|
./hardware/xpadneo.nix
|
||||||
./i18n/input-method/default.nix
|
./i18n/input-method/default.nix
|
||||||
./i18n/input-method/fcitx.nix
|
./i18n/input-method/fcitx.nix
|
||||||
./i18n/input-method/ibus.nix
|
./i18n/input-method/ibus.nix
|
||||||
|
|
|
@ -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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -17416,6 +17416,8 @@ in
|
||||||
|
|
||||||
x86_energy_perf_policy = callPackage ../os-specific/linux/x86_energy_perf_policy { };
|
x86_energy_perf_policy = callPackage ../os-specific/linux/x86_energy_perf_policy { };
|
||||||
|
|
||||||
|
xpadneo = callPackage ../os-specific/linux/xpadneo { };
|
||||||
|
|
||||||
zenpower = callPackage ../os-specific/linux/zenpower { };
|
zenpower = callPackage ../os-specific/linux/zenpower { };
|
||||||
|
|
||||||
inherit (callPackages ../os-specific/linux/zfs {
|
inherit (callPackages ../os-specific/linux/zfs {
|
||||||
|
|
Loading…
Reference in New Issue