QJoyPad supports for any number of devices with any number of buttons or axes, can quickly swap its user-defined layouts on the fly, is highly adjustable, can use rapid fire, and much, much more

Check out the website for full details.
Source (link to git-repo or to original if based on someone elses unmodified work):
QJoyPad 3.4 is the latest version of the simple to use and powerful program that lets you control the keyboard and mouse with a joystick.
The main improvements in this release are some major code cleanup, some minor bug fixes, support for DVORAK and other key layouts, and the ability to use the Escape key like any other.
Ratings & Comments
2 Comments
after typing code or text for few hours, using keyboard for games - absurd. This app real nice. thanks!
This application is simply Awsome. Works perfect under Slackware 10 I've tested it with the native install of Doom3. Great Job Also...... This app will reload in the system tray when you log back in to KDE after rebooting. ======================================== Slackware 10... Download and run pkgtool from the directory the file is in and select install from current directory. Then click the KMenu/run and type qjoypad LOADED and ready to go. Now click the Quick Set button to finish setting up your keys. NICE :)