MayeulC / Saitek

Tools to configure saitek (Mad Catz) R.A.T. mice and related devices
GNU General Public License v3.0
30 stars 10 forks source link

ratctl

This is a simple utility written in python to allow you managing your R.A.T mouse under Linux or any other operating system supported by the toolkits. The USB protocol has been completely reverse-engineered. Be sure to check out the Wiki for tips, and raw information.

LICENSE

This is free software, distributed under the GPL v.3. If you want to discuss a release under another license, please open an issue on Github

NOTES

As usual with this kind of software : This software is provided "AS-IS", without any guarantees. It should not do any harm to your system, but if it does, the author, github, etc... cannot be held responsible. Use at your own risk. You have been warned.

Keep in mind I am not really used to python (I am mainly a C programmer), so any contribution will be welcomed, provided it is constructive. Python was used to ease the development, but a C implementation would be great too.

USAGE

The software needs access to your mouse to work properly. There are multiple ways to do this.

Easiest (but insecure) way :

sudo ./ratctl.py

Running GUI applications as root is considered dangerous. Thus, the second method is preferred: copy the 90-ratctl.rules over to your udev rules directory (usually /etc/udev/rules.d/, but it might change depending on your distribution).

This file contains rules to make the various R.A.T mice configurable by any physically logged-in user. A reboot might be required to apply the changes, but shouldn't be necessary. In most cases, sudo udevadm control --reload, sudo udevadm trigger, and replugging your mouse should be enough.

REQUIEREMENTS

As it is written in python, you will need python3, and PyQt5. Libusb1-python is required too. It should work on any machine supporting these three, but the code has been written with little endian (x86) in mind, so this could require some adjustments.

You could experience some difficulties in installing the libusb1 library for python. The preferred method is trough pip. Just keep in mind that the tool is using python3, so you may have to use the pip3 or pip3.x binary. The command should be something like

sudo pip install libusb1

TODO

CONTRIBUTING

Here's how you can help :

FEATURE LIST

Any feature present in the windows driver should be in. If not, let me know. The only exception to this is macro support (together with the precision button) : Those features are part of an other module in the windows driver, and it is the way it sould be implemented.

The exhaustive list is :