Using the Cyborg R.A.T. 7 with Ubuntu

March 7, 2012

The Cyborg R.A.T.7(now know as the Mad Catz R.A.T. 7) from Cyborg (now Mad Catz) is a fantastic, solid mouse with plenty of customization options and a cool appearance…Huh? What’s this?

Why can’t I click icons? Hmm. The right-click menu is not appearing and the buttons no longer seem to work. Did the Ubuntu desktop just lock up?

“Nooo! I need to save, but nothing is responding. The mouse quit working! Help!”

As good as the R.A.T. 7 mouse is, there are a few issues to be aware of when used with Ubuntu 10.10. This article will provide a few solutions and tips that make the R.A.T. 7 play well with Ubuntu.

Overview

You might be wondering, “What is the Cyborg R.A.T. 7?” It’s a USB mouse. Correction: A high-end USB mouse featuring a 6400 dpi laser system for precise control. The construction uses black matte plastic built around a metal base giving the mouse a solid, durable feeling of quality. Not only is its design unique, it is also well-built and highly sensitive.

Cyborg R.A.T. 7: The best mouse I have ever used. After more than a year of usage, the R.A.T. 7 continues to perform brilliantly. Worth every penny.

The R.A.T. 7 is also customizable by adjusting its weights, grips, finger rests, and tracking dpi. Parts can be switched around to give it a different appearance. This is truly a mouse-tinkerer’s dream.

Even though the R.A.T. 7 is advertised for the PC and Mac, it is fully compatible with Ubuntu without needing to install drivers. Just plug and play. However, there is an issue with Ubuntu 10.10 where the mouse buttons become unresponsive a few moments after powering up the computer. The cursor still moves, but the buttons quit working.

One way to resolve this is by restarting X (Left Alt + PrtScrn + k or Ctrl + Alt + Backspace, depending upon your configuration), but this must be performed each time the mouse acts up. Is there a better way to make Ubuntu recognize the mouse?

Yes!

1. Modify xorg.conf

Append the following section to /etc/X11/xorg.conf

(In a terminal, enter sudo gedit /etc/X11/xorg.conf)

Section "InputClass"
        Identifier "Mouse Remap"
        MatchProduct "Saitek Cyborg R.A.T.7 Mouse"
        MatchDevicePath "/dev/input/event*"
        Option "ButtonMapping" "1 2 3 4 5 6 7 8 9 0 0 0 0 0 0"
EndSection

This eliminates the need to restart X and makes the mouse completely usable every time Ubuntu starts. Just modify xorg.conf with the section above and the R.A.T. 7 functions perfectly. Say goodbye to restarting X.

Update: The R.A.T. series of mice are now sold under the Mad Catz label, not Cyborg. Because of this, the Mad Catz product string might need modification to make the RAT work in Ubuntu. This means changing the Cyborg portion of the identification string (used to identify the USB device) to the string the Mad Catz RAT sends to the computer in order for X to recognize the RAT without freezing the buttons. Instead of using the string

MatchProduct "Saitek Cyborg R.A.T.7 Mouse"

the Mad Catz might use something else (not tested). Product strings much match to avoid the button freeze issue.

2. Button Map

Ubuntu recognizes mouse buttons by their numbers, so you will need to know the button numbers in case you want to map buttons to specific functions, such as rotating the desktop cube.

Cyborg R.A.T. 7 Button Map
Button Function
1 Left (Primary)
2 Middle (Wheel button)
3 Right (Secondary)
4 Mouse wheel up
5 Mouse wheel down
6
7
8 Side Back ►
9 Side Forward ◄

Cyborg R.A.T. 7 button numbers as seen by Ubuntu.

At this time, the small red button and thumbwheel cannot be mapped, so they are unused. This has never been a problem for me since I never use them.

3. Compiz button mapping

Switch viewports (Rotates cube if enabled)

This rotates the cube (switches viewports) when the cursor is over the desktop and the mouse wheel is scrolled or clicked. This is to avoid rotating the cube when the cursor is inside a window and you want to scroll the contents.

Viewport Switcher

In the CompizConfig Settings Manager > Viewport Switcher > Desktop-based Viewport Switching tab,

Move Next Button 5 (Mouse wheel down)
Move Prev Button 4 (Mouse wheel up)
Initiate plugin action Button 2 (Wheel button)

(CompizConfig Settings Manager is available in the Ubuntu repository. Open the Ubuntu Software Center and search for Compiz to find it.)

Unconditional Rotate

This rotates the cube no matter where the cursor may be located. Very useful. The desktop cube must be enabled.

Go to CompizConfig Settings Manager > Rotate Cube > Bindings tab > Rotate Cube,

Rotate Left Button 9 (Side Back ►)
Rotate Right Button 8 (Side Forward ◄)

4. Use a light-colored surface for the mouse pad

When moved on a dark surface, the R.A.T. 7 works, but if it is lifted, respositioned, and set back down, it takes about half a second for the mouse to become responsive again. This can become annoying. However, light-colored surfaces do not produce this effect, so use a white or other light-colored mouse pad for the R.A.T. 7.

Conclusion

There you have it! A working Cyborg R.A.T. 7 in Ubuntu without any need to install drivers. Have fun!

, , , ,

  1. #1 by Nate Nagel on May 27, 2012 - 8:36 PM

    The code that I am using is the same as yours except for one line:

    Option “ButtonMapping” “1 2 3 4 5 0 0 8 9 7 6 12 0 0 0”

    Apparently buttons 6 and 7 are side scroll on a Logitech mouse so I remapped 10 and 11 to those buttons, 10 and 11 being the thumbwheel. Button 12 is the snipe button; I haven’t found a use for it yet but leaving it enabled is no problem. Apparently there are no buttons 6 and 7 on the RAT out of the box. I think the whole reason that you have to use this code in the first place is to disable the mode switching button (I guess that must be button 13, or more precisely, latching buttons 13-15? dunno, didn’t try it, although I suppose if I started xev and then plugged in the mouse with all buttons enabled I could capture that.) In any case the button mapping given above makes the RAT work the way that I want it to, which is all that really matters, right?

    • #2 by delightlylinux on May 28, 2012 - 2:58 PM

      Hey, thanks for the added information!

      The original ButtonMapping posted was discovered by trial and error, so there are no doubt some unnecessary button mappings. Thank you for clarifying the button numbers and improving the ButtonMapping line. That is a big help. Especially in the 9 7 6 12 part. It’s tricky stuff.

      After a while, those unused buttons are too tempting to leave alone… 🙂

  2. #3 by nate on June 17, 2012 - 5:39 PM

    great post! just got my rat up and running

    thank you very much 🙂

  3. #4 by michelcyc Reis on August 17, 2012 - 1:48 AM

    Man, I just spent 5 hours trying to figure it out. Thank you very much

Leave a comment