INDI (v >= 0.9.7) supports game pads under Linux for input control. The INDI joystick driver (indi_joystick) queries the controller and provide the following properties:
To snoop on buttons, call IDSnoopDevice("Joystick", "JOYSTICK_BUTTONS") from your driver.
Currently, INDI EQMod and all LX200 based driver support joystick input for basic motion control, slew speed selection...etc. In order to use the joystick, you need to run the telescope & joystick drivers simultaneously. For example:
$ indiserver indi_lx200gps indi_joystick
Alternatively, if you running from KStars, simply select your telescope driver and the joystick driver (found under auxiliary category) before you click Start Service.
Once you connect your telescope, you may then enable the joystick input in your Options tab. Then a new tab Joystick will be created where you can map your telescope functions to joystick input. You can check which controls on your game pad correspond to INDI standard property names by checking the Monitor tab in your joystick driver. For example, below is a screenshot showing JOYSTICK_1, in addition to AXIS_1 and AXIS_2 as being active. Those are the names you can set in the Joystick tab in your telescope driver.