Skip to content
This is a user space driver for the Sidewinder X6 keyboard for linux. This allows for macros in linux
Latest commit b76fc9b Aug 29, 2012 Filip Wieladek added support for the 'Game' button. The script executed for that but…
…ton is
Failed to load latest commit information.
.gitignore added gitignore Nov 6, 2011
Makefile First version of the sidewinder-x6 user space driver Nov 5, 2011
README Update README Nov 7, 2011
sidewinder.c added support for the 'Game' button. The script executed for that but… Aug 29, 2012



    README for sidewinder-x6-macro-keys
    Copyright (C) 2011 Filip Wieladek

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <>.


This is a user level driver for the Microsoft keyboard "Sidewinder X6". This user level driver enables the macros on the keyboard as well as allows to switch between profiles. This driver also supports the numpad as a macro pad (which can be configured).


To build this driver, you should have the following:
  * Linux
  * a C compiler (gcc)
  * linux header files
  * libusb1.0 header files

on Ubuntu you can do:
 sudo apt-get install build-essential
 sudo apt-get install libusb-1.0-0-dev

Tested on:
 * Ubuntu 11.10 64bit 
 * Fedora 15 64bit


To build the driver simply navigate to the place where the source files are and type:

This will build the driver.

You must run the driver as a super user, e.g. using sudo:
    sudo ./sidewinder-x6-macro-keys

This will run as a daemon in the background untill it is killed (using the kill command). If you want to run the driver in the forground, run it with the -f option:
    sudo ./sidewinder-x6-macro-keys -f
For security reasons it's better NOT to to let the root user execute your macros (as in the above examples), so you'll probably want to use your own user for this.
In order to make any user the "executor" of your macro scripts, just append the username like this:
    sudo ./sidewinder-x6-macro-keys -u supertux
    # or
    sudo ./sidewinder-x6-macro-keys -f -u supertux

NOTE: by default it should now find the user automatically if sudo was used

When the driver is first executed it will create the following directories:
    <HOME>/.sidewinderx6/p1 (Profile folder 1)
    <HOME>/.sidewinderx6/p2 (Profile folder 2)
    <HOME>/.sidewinderx6/p3 (Profile folder 3)
where <HOME> stands for the users home path. 

To create a macro, simply create a file called in one of the profile folders. Eg. if you want a macro to be executed for button S5 in the keyboard, create a script. Make sure you set it to executable (chmod +x otherwise it will not execute.

Additionally, you can trigger a script when a profile is loaded. To do this, create a scripts under the profile you want. E.g.:

echo notify-send -u low -i keyboard --expire-time=1000 --hint=int:transient:1 --category=device \'Eclipse Profile\' \'You have changed to the Sidewinder X6 Eclipse profile\' > ~/.sidewinderx6/p1/ 

If you want to simulate keypresses, use google, there should be already applications with that functionality (xdotool, for example).

Finally, if you want to have your numpad working as a macro pad, create a file called macro_numpad and write the number 1 to it. E.g.:
	echo 1 > <HOME>/.sidewinderx6/p1/macro_numpad

If you want to use it as a numpad again, either delete the file, or write something other than a 1 into it:
	echo 0 > <HOME>/.sidewinderx6/p1/macro_numpad


 * None
Something went wrong with that request. Please try again.