ControllerMate is a controller programming tool that allows custom functionality to be added to standard HID devices (joysticks, trackballs, gamepads, keyboards, and more).
Using a graphical interface and drag-and-drop editing, users can program controller buttons to perform complex keyboard and mouse sequences. Programming is accomplished using "building blocks". Each type of building block performs a different type of function. Building blocks can be individually configured and linked together to perform an endless variety of tasks.