This project has been replaced by a joystick programming system implemented completely in userspace at (Also available at

The old version of the software will remain here for reference purposes.

Joymap - joystick programming for Linux

The standard Linux joystick driver supports several axes and buttons. However, not all software supports all axes and buttons. The current disadvantages of the Linux joystick driver include:

The Joymap driver and software allows the joystick subsystem to be programmed by installing virtual joysticks, a virtual keyboard and virtual mouse. Existing joysticks are identified by product and vendor so that the mapping is always correct even if the joysticks are unplugged and reinserted.

The driver and software is in an early alpha stage, but it has been used successfully on the authors machine. No warranty is supplied whatsoever. Several sections of the code do not perform sanity checks to ensure the correct working of the system and the compiler has been used, but is not completely tested.


If you have problems you can contact me via email at alexandre.hardy However, writing software is not my primary job! So it may be some time before I can provide a satisfactory solution to your problem. I would be interested to hear from anyone who wishes to take over maintenance of the driver and related software.

Installation instructions

The Joymap driver has been designed for kernel 2.6.19. If you wish to provide patches for different kernels, please let me know! Instructions for installing follow below (there are NO autoconf/automake scripts or any such pleasantries!)


A configuration file is required to define the mapping. The details of this configuration file are described in config.pdf.

The mapping can be extended by writing short programs to control a virtual joystick, whose output can then be mapped through the joystick mapping driver again. The details of this programming langauge, with a few short examples are described in program.pdf.