remapping mouse buttons on 10.6

Dear Lazyweb,

Now that the nagware "USB Overdrive" driver has stopped working on 10.6, I guess it's time to ask again: is there some simple, free way to cause my middle mouse button to send Option+Left Click instead of Middle Click? (Logitech RX1000.)

Update: It turns out that USB Overdrive does still work on 10.6, it's just that the behavior changed slightly. I also use the Apple pref that swaps Opt and Cmd, and now that means that I have to tell USB Overdrive that middle-button sends Cmd+Left instead of Opt+Left. I didn't have to do that in 10.5, so I guess the order in which these things fire changed. Or something.

Anyway, I still find it absurd that I'm expected to pay extra just to remap my mouse buttons, because the OS doesn't include this basic functionality, and there's no free software to do it. It makes it feel like this OS is nickel-and-diming me over trivia.

Tags: , , ,

23 Responses:

  1. dr_memory says:

    SteerMouse works in 10.6, but costs money. 2 years ago when I first started looking for solutions to this problem myself, I ended up giving up and giving the steermouse guys their $20 -- if a working free solution has popped up since then, I'm unaware of it.

    • burma_sauce says:

      I second the Steermouse suggestion. $20 is not a lot to pay to never have to suffer the Logitech drivers again. Logitech make beautiful hardware but the Mac drivers are crap, at least they were when I switched to Steermouse a few years ago. I have an MX Revolution.

  2. dzm6 says:

    My Logitech "LX8 Cordless Laser Mouse" seems to support this by:

    1) System Prefs -> Logitech Control Center
    2) Select Mouse
    3) Select middle bottom ("Wheel Button" on mine)
    4) To the right, under Assigned Action, select Advanced Click
    5) In Details select "Click" radio button, the "Option" modifier, and Button Number 1

    Seems to work for me.

    • jwz says:

      I downloaded Logitech Control Center (I had never used it before) and the installer refuses to install on 10.6.

      • dzm6 says:

        Ahh. Yep. I see that. My "LCC" was installed under 105.x and simply migrated forward during the installation/upgrade to 10.6. The software itself seems to work fine, but the installer seems to choose not to work.

        I'm not positive if this is a "Yay Apple" or a "Yay Logitech." Either way, it's super advanced.

      • dr_memory says:

        BEWARE: as recently as 18 months ago at least, Logitech Control Center worked by quietly installing Unsanity's "Application Program Enhancer", and loading an APE haxie that overrode certain portions of Apple's mouse driver. This led directly to every last person with LCC installed being unable to upgrade from 10.4 to 10.5, since APE's kexts at the time were incompatible with 10.5 xnu. (I may have been one of these people. I may still be annoyed.)

        Logitech makes awesome hardware, but their Mac software department needs to be lined up against a wall and shot.

        • jwz says:

          I am still twitching at the idea that you need to load code into the kernel in order to re-map a mouse button.

          • dr_memory says:

            Well, that's the thing. You don't need to. It's the dumbest possible way to solve the problem. And yet, that was how Logitech choose to do it.

            Oh, and the best part: Apple by (entirely understandable) policy disregards any and all crash reports that show signs of APE in the stacktraces. So Logitech not only fucked users of their own product, they fucked makers of every other product those users had installed. It was a fail for the ages.

            • jwz says:

              But a kext is apparently how both USB Overdrive and Steermouse do it too.

              • dr_memory says:

                I am now enlightened and newly horrified.

              • malokai says:

                Yeah, but they're not doing it via the APE mechanism, which is apparently way worse than a kernel extension.

                APE is present in the executable code of EVERY program, where as the steermouse mechanism (shouldn't?) diddle with your screensaver for instance.

        • vanbeast says:

          That was like one release, a long-ass time ago, and the very next release cut it the fuck out. It's been working fine since then.

    • cryllius says:

      Logitech's Mac driver supports staggeringly few of their mice. In fact, I bought a current-model Logitech mouse a few months ago which is not supported (Logitech Control Center just says there are no mice). Their website says the RX1000 is Windows-only, which from my experience, I believe; it's still worth a test for anybody who owns one.

      Anyway, I like Steermouse too. It feels kind of idiotic to pay for a driver to map my mouse buttons, but... path of least resistance. I also couldn't find any better options.

      • dzm6 says:

        In my original post I had written some incomprehensible gibberish along the lines of "It seems logical to me that the Logitech drivers will behave much the same for middle-mouse on any Logitech mouse. This probably means it doesn't work at all from one mouse to the next." Maybe I should have left that in there.

      • jwz says:

        Um. I am using an RX1000 on my Mac. I've had it for years. It's just a mouse. How would you even go about making a USB mouse be Windows-only?

        • lionsphil says:

          To hardware manufacturers, if you can't have all the "value-add" crapware installed, the hardware "doesn't work" on that platform.

          As a warning, should yoou be trying to make the drivers work: the Windows SetPoint drivers made the thumb buttons on my MX 1000 only work as stupid "launch office!!1" features, and outright refused to just be numbered extra buttons. (Without the drivers, some of them simply aren't detected. I'm no longer a fan of Logitech.) It's possibly the Mac drivers are likewise retarded.

        • cryllius says:

          Sorry, I was unclear. Of course the mouse itself isn't Windows-only (I'm using a Logitech MX518 on a Mac too). It's just that it is "unsupported" by Logitech via their Mac driver, and in fact, their mac driver will totally ignore my mouse (I don't have an RX1000 to check, but on their site they only offer Windows drivers for it, unlike the mice that their Mac driver will accept). I'm a little confused as to why because it seems like it would be harder for them to tell the driver to only look for certain mice than to support everything, but that's the road they've chosen to take.

          So what I meant was, their Windows driver supports it, but their Mac driver will disavow it. "Windows only" as far as Logitech is concerned, when it comes to configuring anything with their driver.

  3. intoner says:

    I have been using steermouse. I just gave up and paid after awhile.

  4. packetslave says:

    I know you cordially hate "but it works fine for me!" replies, but I'm using USB Overdrive 10.4.8 (from 2007!) with 10.6 and it's working well as far as I can tell. Did you manually force a 64-bit kernel boot or are you running the stock 32-bit kernel?

    Allesandro also posted (today I believe) that:

    Snow Leopard update: a new version of the USB Overdrive will be released within a few days. It will support the new 64-bit kernel in Snow Leopard and come with a new and improved user interface.

    The current version of the USB Overdrive works when booting in 32-bit mode in Mac OS X 10.6 Snow Leopard, and still works fine in 10.5 and previous OS X versions.

    • jwz says:

      I am running 10.4.8, and it launches, but my middle button is steadfastly not sending Option. I checked the settings, they are as before.

      That "will be released in a few days" note has been up for... a few days.

      Also I think it's lame that I have to run nagware for something as ridiculously simple as mapping my mouse buttons. That's even dumber than the fact that apparently that can only be accomplished with a kernel extension.

      • packetslave says:

        Strange, I just tried mapping middle on my Logitech RX518 to Option-Leftclick and it seems like it's working. xev sees this:

        KeyPress event, serial 29, synthetic NO, window 0xa00001,
        root 0x4bd, subw 0x0, time 2200880879, (130,138), root:(771,184),
        state 0x0, keycode 66 (keysym 0xff7e, Mode_switch), same_screen YES,
        XLookupString gives 0 bytes:
        XmbLookupString gives 0 bytes:
        XFilterEvent returns: False

        ButtonPress event, serial 29, synthetic NO, window 0xa00001,
        root 0x4bd, subw 0x0, time 2200880881, (130,138), root:(771,184),
        state 0x0, button 1, same_screen YES

        One thing I've seen in the past is USB Overdrive getting confused if you do any remapping of your modifier keys (e.g. swapping Command/Option like I have to do on my MSFT ergo keyboard, or swapping CapsLock/Control). You might try mapping middle to Apple-Click and see if that ends up sending Option-Click instead.

        And yes, having to do this with a kext is ridiculous.

        • jwz says:

          Oh hey, checking Cmd instead of Opt fixed it! Which is bizarre, because that means on 10.5 I had to check one, and on 10.6 the other. Maybe the order in which things are run changed or something.

  5. gryazi says:

    Crap - I didn't realize I should toss it out here until the post got so old that nobody's going to notice, but:

    Has anyone found a driver or utility that adjusts the drag threshold on Mac?
    SteerMouse was an obvious first place to look, but it doesn't. And it's really more Finder's problem than the mouse driver's.

    This is a bizarre omission from all the accessibility work that's out there; even the people who run various Mac accessibility forums have never heard of a solution short of throwing more hardware at the problem (care to try a chin joystick?). So if you're completely paralyzed, you can drive a Mac by blinking -- but if you know someone with arthritis who can't lift her finger fast enough not to start dragging shit everywhere, she's.. out of luck?

    It's definitely a motor limitation more than learned coordination thing. We've already swapped in a trackball with the buttons as distant from the pointer as seems sensible, but it still manages to shake or get nudged enough for accidental drags. Apparently there's an *hardware* filter for Parkinsonism / tremor that got a lot of press but seems unobtainium... but where the hell is the simple software option to just not call it a drag until the cursor's traveled another 50 points? Or to reduce the sensitivity of the mouse during the first 3 seconds of a click - that, at least, could live in the mouse driver and 'filter' most oops-nudges by slow clickers; if it takes them a full second to release the button, they probably will have barely started an intentional drag by the time 3 seconds are up.