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/xpadneowip/yesman
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 ]; |
||||
}; |
||||
} |
@ -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; |
||||
}; |
||||
} |
Loading…
Reference in new issue