Qjoypad: Keyboard to Gamepad Mapping for Linux

Gaming on Linux can be a wonderful, irritating, or anything in between. Sometimes you get things exactly the way you want them, and other times, you have to improvise. Ideally, every game would support the devices you want to use with it, but there are a few instances where games do not yet support joysticks and gamepads. Some of the developers for these games may not have any plans to ever support gamepads, but since we like to make tech easier, that is simply unacceptable.

There are three situations where it might be necessary to map keyboard/mouse movements to your gamepad:

1. A native Linux game that does not yet support joystick input.
2. A wine/cedega game that, for whatever reason, does not recognize your gamepad.
3. You just want to use your joystick to control your desktop, multimedia application, etc.

With Qjoypad, you can have all three and even create separate profiles for each game/application. It is a free and open source QT-based application that “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.

It comes with a convenient system tray icon so that you can keep it running and access it to change profiles or create new ones. It supports multiple joysticks and axes, has color-coded highlighting to identify buttons on different joysticks, supports throttle controls, rapid fire, and mouse movement and clicking.

Download and Installation

Currently, there are no binary packages for Qjoypad. To install, you will need to download the source package and build it. Because it is based on QT4, you will need the development packages for QT installed. For KDE users, these may already be installed. It also requires that your joystick be supported by the Linux kernel, which most are to varying degrees.

1. Download the source package http://qjoypad.sourceforge.net/#download

2. Extract the contents:

tar -xzvf qjoypad-4.1.0.tar.gz  #replace the 4.1.0 with the actual version number, if different

3. Configure, make, and make install (hopefully without errors)

make install

Once installed, press Alt-F2 (or other shortcut for your command launcher) and type “qjoypad“. It should appear in your system tray. Click on the icon shaped like a game controller. It does not come with any default layouts, so you will need to create one. It should have automatically detected your joysticks, and you must select the one you want you want to configure. Then, follow these steps.

Qjoymad control dialog

1. Click the “Add” button to create a new profile.

2. Enter the name for your profile.

At any time, the “Update” button will save your configuration to disk. “Remove” will completely delete the profile, and “Clear” will erase the current settings from it. “Revert” will roll back the settings to the last update. Be careful not to accidentally click any of these buttons when you are mapping your controls.

3. To set a joystick axis, move the joystick in the direction you want. The axis number that you move will be highlighted. Moving it in the opposite direction should also highlight the same one.

4. Click the Axis button to configure.

Qjoypad axis configuration

5. You will see two adjacent boxes, and if you move your joystick in the previously discovered directions, the boxes will fill. If you are using an analog stick, the boxes will fill according to the degree of motion.

6. Select the type of movement you want: keyboard, mouse vert., or mouse horiz. (If you are selecting a mouse movement or using a game that requires analog precision, you might want to check the “Gradient” box).

7. To assign a key to a direction, click the box underneath that should say [NO KEY].

8. Once clicked, it will wait for your next input and assign that key. For example, if you press the up arrow key, your joystick will now control it.

9. When you are finished, click Okay.

You can assign buttons in a similar manner, although instead of gradient and input method settings, you will see “Sticky” and “Rapid Fire”. Sticky will act as a toggle and simulate holding down a button. Rapid Fire will repeat the keystroke in rapid succession.

Qjoypad button configuration

When you are finished mapping the keystrokes and/or mouse movements, be sure to click the “Update” button to save. You might even want to click it frequently throughout the process in case something interrupts you.

Your system will not respond to your mapped joystick movements until you click “Close Dialog“. To select the profile you want, right click on the system tray icon and select the one you just created. When you no longer want to use it, right click again and select [NO LAYOUT]. You can leave it running in this mode in your system tray without it affecting any controls.

With Qjoypad, you can now have full control over your gamepad. You can map as much or as little as you like, which is useful if a game only has a few controls. On my Logitech Rumblepad, it allows me to map the directional pad, both analog sticks, and all 12 buttons. Hopefully, you will have just as much success. Having fun gaming!

Tavis J. Hampton

Tavis J. Hampton is a freelance writer from Indianapolis. He is an avid user of free and open source software and strongly believes that software and knowledge should be free and accessible to all people. He enjoys reading, writing, teaching, spending time with his family, and playing with gadgets.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox