In order to avoid changing settings manually or (possibly even entirely) you could use an application like joytokey to set your joystick inputs to the same keys as your keyboard encoder. You can store different profiles for each controller as well, which you can load up when you connect a controller that uses ,for example, a different button numbering layout than the previous controller. Such an application is, of course, unnecessary when using specific controllers with specific games.