From: Eduard H. <edu...@gm...> - 2013-04-12 07:03:24
|
Hello to all, I’m very pleased to annouce the initial release of JSMapper, a software tool for Linux I've been working on for the past year which converts any game device (such as joysticks and wheel drives) into completely programmable devices under this OS. This allow the device controls (buttons and axis) to be mapped to arbitrary keystrokes and mouse events, including support for complex actions such as macros. The tool features also advanced capabilities, such as support for mode switches and shift buttons, and axis mapping through bands. Project page in Assembla: http://www.assembla.com/spaces/jsmapper >From a technical perspective, JSMapper relies on an kernel module which hooks into the kernel input subsystem as an “input filter” for game devices: this allows it to intercept hardware device events from the very beginning, then them as requested to the desired target keyboard and mouse simulated actions. These are sent using an internal input device, which acts as a “virtual” keyboard and mouse device which is handled by userspace tools (X, console, etc...) as any other “real” hardware device. The original device event can then be filtered out, so it never reaches the userspace stack. This approach is what makes JSMapper a very powerful tool, as it’s handled in a completely transparent way by any software running on the system, including native Linux games, Windows games running on Wine, or even Windows games running under a virtual machine on a Linux host. The tool has been designed having specifically flight simulators in mind, as they often require to map complex operations on the joystick buttons, and is specially useful for complex game devices such as HOTAS featuring mode switches and shift buttons which could only be properly used under Windows by means of the propietary software provided by the device manufacturer. Disclaimer: This is a very initial, although completely functional, release, and right now is only available in the form of source code that must be checked out from repository and compiled into the target system in order to use it. The wiki available in the project provides detailed instructions about how to proceed, along with how to interact with the kernel module by means of the userspace tools in order to load mapping profiles into the device. I’d very pleased if anyone could take a look at the project and provide any feedback about it, including criticism, ideas, bugs, whatever you might feel appropiate. The project is completely opensource and licensed under GPLv2 (exceptuating the programming library, which uses LGPL), and it’s actually a “final year project” for IT studies on UPC (Universitat Politecnica de Catalunya). Kind regards, Eduard Huguet Barcelona (Spain) |