Xbox One controller

From wikinotes

The Xbox One controller can be plugged in, or use bluetooth to be used wirelessly.

Tutorials

gamingonlinux: proton directinput support https://www.gamingonlinux.com/articles/setting-up-a-bluetooth-controller-for-linux-gaming-part-2-wine-steam-play.13447
reddit xbox one s https://www.reddit.com/r/linux_gaming/comments/63t87i/connecting_xbox_one_s_controllers_with_bluetooth/?st=jdavwyf6&sh=8aa32505

linux

Input System

DirectInput API

Many games pre-2015 used the DirectInput API.

wine/proton disable driver within wine, use xpadneo
steam native probably fine?

Microsoft Xinput

In steam's controller settings, check Xbox Configuration Support and you're done.

wine/proton should be fine
steam native should be fine

Driver

The linux kernel has a builtin module: xpad for gamepads.
Eventually this may work, but some game input systems map gamepad buttons poorly.

Base Xbox Drivers

xpad all 1x wired kernel builtin gamepad driver
steamos-xpad all 1x wired modified xpad driver with modified keymap

TODO:
this should really be a matrix of checkmarks...

Specialized drivers

xone xbox one, xbox one s, ms dongle multi wired, multi wireless-dongle wired and microsoft dongle wireless driver
xow xbox one s, xbox elite, bluetooth, elite series 2, ms dongle multi wired, 8x wireless-dongle (maintenance mode) microsoft dongle wireless driver
xpadneo xbox one s, xbox elite series 2, xbox series x multi bluetooth xbox one s over bluetooth driver
xboxdrv xbox, xbox360 multi wired, multi wireless xbox controller driver

bluetooth

You will need to bluez#Disable ERTM Disable Bluetooth ERTM, but otherwise pairing is normal.
For example, see bluez.

wired

No luck here yet. apparently works out of box now.

windows

microsoft wireless adapter

Did not connect, unplugged/replugged the adapter while controller was in discovery mode and it just worked.
repeatable? IDK. I don't think I've had this issue before..

bluetooth/wireless

Start > bluetooth:
   - Add Bluetooth or other device:
       - bluetooth  (if connecting over bluetooth)

wired

Just plug it in. good to go.