The most recent update to the Steam client has added native configuration support for Xbox One, Xbox 360, and all other X-Input control devices, which will allow for custom button mapping.
Steam already has native support for X-Input devices such as the Xbox controllers, but now you will also be able to use the button mapping features that were previously only supported on the official Steam Controller. If you’ve ever found yourself frustrated by a lack of controller configurations in a game, now you can remap every single button to your heart’s content.
The update is useful for more than just remapping for the sake of convenience and personalization, though. Now, even games without native controller support can be played with a device other than the mouse and keyboard, by remapping the keys and mouse axes onto a controller, all without requiring any third party applications. This doesn’t mean that every game in this situation will work perfectly, or even be playable with a controller at all, but you can do it anyways. So if for some reason you’ve been dying to play Civilization 6 with an Xbox controller, your time has finally come.
The update is currently in beta, so you’ll have to opt in if you want to start using this feature right now. Otherwise, you’ll have to wait until the official version of the update goes live. For the full list of changes, check out the patch notes on the Steam Client Beta group page.