Steam input. If a game supports steam input, the developers can create a mapping for controllers that is automatically loaded for users using a controller. You're also free to modify these layouts in the comprehensive steam input UI provided. People can also share their mappings for a specific game which anyone can select in the community section for that game's steam input menu. Often times community mappings will be better than developer created mappings, and the community mappings have a rating system so you just search by highest rated or most downloads etc. The best part about steam input is that it makes enabling gyro support easy as, so long as the game supports simultaneous mouse and controller input at the same time (which Valve exclaims to developers in the steamworks documentation to make this possible).