Obtain the driver from the releases page. Unzip, then run Install.command
(right click, then choose 'Open') and follow instructions.
Note: while I obtained an Apple Developer license and certificate, the driver is unsigned and has to be installed with kext dev mode enabled on Yosemite beacause Apple refuses to grant kext signing ability to random FOSS developers (see issue #2). The install script will inform you of this fact and will assist in setting the boot arguments.
Gamepad pops up as a USB HID device, so it's readily usable by most games.
Yes.
Buttons are mapped in the order the hardware reports them:
Axes are mapped the same as for DualShock 4:
You can easily view and test all of them using software such as Joystick Show.
That's the pairing button, on top of the controller, next to the USB port.
There's none, but it may be used by an accessory or something.
This driver makes no attempt to emulate another gamepad and stays as true as possible to the hardware, therefore buttons are reported in hardware order. Be sure to set up the mappings correctly, or beg your favorite game developer to add button mappings for this controller.
If you already have HID gamepad support, chances are it already works! With this driver, it's just a HID Class gamepad, just as any other game controller such as Logitech RumblePad 2, DualShock 3 or DualShock 4. If you want to match the hardware to add a button mapping, look for Vendor ID:Product ID 0x02d1:0x045e and/or Vendor Name/Product Name "Microsoft"/"Xbox One Controller".
This is by (Microsoft's) design. When the controller is unplugged, it starts looking for a wireless connection. This may wake up a nearby Xbox One console if it has been associated already, or if Kinect's IR sensor is in the controller's line of sight (due to Kinect's smart pairing system). Just keep press the Xbox button pressed until it fades away and the controller shuts down, or simply run without batteries if it's a controller dedicated to your computer.
It can't, as Xbox 360 and One controllers all use non-standard radio hardware.
sudo kextunload /Library/Extensions/xbox_one_controller.kext
(optional, as this gets unloaded automatically after some time)sudo rm -rf /Library/Extensions/xbox_one_controller.kext
sudo nvram boot-args=""
(but first make sure there are no other flags with nvram boot-args
)Please report all bugs via GitHub issues.
3-clause BSD. See attached LICENSE file.