I'm planning on buying a game-pad for playing games on emulators (like ZSNES) and I have read a few articles on the net related to some game-pads not working in Linux especially when playing games via Wine. But that only for Wine, right? There are some questions in my mind, like:

  1. Does that mean that all native Ubuntu games work fine with any game-pads OR this too has specific game-pads? that work on Ubuntu(12.04).

  2. What if I buy a random game-pad say Unofficial/Fake, will it be recognize it as a game-pad or will Ubuntu ignore it?

  3. If it gets recognized how will I/it find the appropriate drivers required for using the hardware? OR will drivers not be necessary and I can start playing, right after I bought it and plugged it in?

5 Answers 5


All gamepads/joysticks (5 or so) I have tried so far did work. For configuration install qjoypad or jstest-gtk. Qjoypad worked better if I remember correctly.

  • Thanks for the answer. BTW can you tell if the dual shock worked? Commented May 22, 2012 at 14:50
  • I haven't tried that, sorry.
    – turbo
    Commented May 22, 2012 at 15:15
  • jstest-gtk worked great with my bluetooth paired ouya controller :)
    – Baggers
    Commented Sep 29, 2013 at 13:08

Even though turbo has already mentioned qjoypad very briefly, it is worth providing a longer answer, as the very latest (and best) version needs compiling, as it is not in the repositories and there is currently no package available at the site either. Secondly, there are general older blog guides regarding qjoypad, but it would be useful to have an up-to-date one for Ubuntu.


What I do with Wine and Dosbox when there are problems with games and controller support (which is most of the time) is to use a program such as qjoypad. This utility

Incorporates your gaming devices into any XWindows program. qjoyPad takes input from a gamepad or joystick and translates it into key strokes or mouse actions, letting you control any XWindows program with your game controller.

so that it doesn't matter whether wine or the actual game within wine supports the joypad, you will generally be able to use it.


Install the dependencies (and build-essential if necessary) with:

sudo apt-get install libxtst6 libxtst-dev libx11-dev checkinstall build-essential

You will need the QT libraries to run the program, and the QT dev libraries to compile qjoypad, as noted on the official site, so you must also install the entire QT development kit with

sudo apt-get install libqt4-dev

This is very important as you are using the QT libraries to build the gui.

Download the latest version (currently 4.10) from Sourceforge and then extract it with

tar xzvf qjoypad-4.1.0.tar.gz

Then cd to that folder and then cd to the src folder and run

sudo checkinstall --pkgname=qjoypad --pkgversion=4.1.0 --provides=qjoypad


Now connect your joystick or gamepad and run from terminal qjoypad & or select it from the launcher menu.

When you load up qjoypad (screenshot one) you will see button numbers such as button 1, button 2, etc. If you wish to see what these correspond to on your joystick you could install evtest and run evtest and then select the device number of your gamepad to get the following information:

Input device ID: bus 0x3 vendor 0x45e product 0x7 version 0x100
Input device name: "Microsoft® Microsoft® SideWinder® Game Pad USB"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 304 (BTN_A)
    Event code 305 (BTN_B)
    Event code 306 (BTN_C)
    Event code 307 (BTN_X)
    Event code 308 (BTN_Y)
    Event code 309 (BTN_Z)
    Event code 310 (BTN_TL)
    Event code 311 (BTN_TR)
    Event code 312 (BTN_TL2)
    Event code 313 (BTN_TR2)

The button order here reflects that in qjoypad, so qjoypad's button 1 is BTN_A on the controller, etc.

(Your joypad layouts are stored in ~/.qjoypad3 if you want to back them up.)

The readme in the download with the source code also has some useful information about setting up and running qjoypad.

  1. Click add to create a new profile and name it, and then you can assign all the buttons available, but you must click update to save your settings.


  2. You can fully configure all the axis points, and both sidewinder type and dual analog devices seem to be configurable. More details on this are available in this article and on the useful readme included with the source code download.


Final Thoughts

Qjoypad needs to be running (with your correct joypad game profile selected) when dosbox or wine is launched.

You need to define your keyboard bindings first in the game in which you want to use qjoypad. Very often in your game itself the setting should be set to keyboard and not joystick. This is what I have found with Dosbox games, and it is probably the same for Wine games. Both for gaming and for controlling any program running in an X window, qjoypad is a very useful utility.

  • Important--the USB port you use CAN affect your signal quality, and therefore you can get a junk calibration. If you notice your numbers skipping around when the sticks/pad are centered, and you are using a USB HUB, try connecting directly to the back or front panel plugs. This can be especially true for wireless controllers which are subject to noise 2 times over. I have verfied this information with 3 different and unrelated controllers on 4 machines. Each using a different hub and location. On the hub: numbers twitch in the -300-300 range, on the machine: exact numberage (word?) --Important Commented Aug 23, 2014 at 11:15
  • I do everything great up to the make, and there are errors...what can I do? collect2: error: ld returned 1 exit status - I think that refers to error.h:8:13 warning QString, Qstring defined but not used (it also says this for void debug_mesg(...). I'm new, just trying to use a game pad....
    – Alex
    Commented May 1, 2015 at 0:52

Generally speaking, all USB gamepads that follow the HID spec work in Linux without a need for special drivers, which means pretty much all normal PC gamepads will work. Support might however be limited to basic features and things like rumble might not be supported.

Console gamepads like the Xbox360 gamepad, Wiimote or Dualshock will work in Linux as well, but require some additional work (i.e. drivers such as qtsixa, cwiid, xpad or xboxdrv).


Try atimicro app which for me was the best!


enter image description here


If you want to try other DEB or APT:

search for qjoypad at http://www.ubuntuupdates.org/

and remember setup only appear if started from qjoypad --notray and left-click the icon!

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .