Apple's "magic" bluetooth mouse

Alexey Dokuchaev danfe at nsu.ru
Sun Oct 13 06:18:23 UTC 2013


On Sat, Oct 12, 2013 at 10:38:51PM +0100, Iain Hibbert wrote:
> On Sat, 12 Oct 2013, Alexey Dokuchaev wrote:
> > Today I got a chance to play with this glamorous rat from Apple, and was
> > curious how it gets along with FreeBSD.  Well, it worked, but only as a
> > pointer.  Even simplest features like vertical scrolling did not work.
> > xev(1) reported of no events coming from when I touch the stupid mouse.
> > It looks like they are not being proxied as virtual buttons clicks, but
> > implemented somehow differently.  I've also found that in Linux, they
> > kinda use a special driver to make it work [1].
> 
> yes, also I wrote one for NetBSD[1]

Hey Iain,

Thanks, I will take a look (once I have more time to play with it, as I do
not own the rat).

> the mouse itself provides a HID profile but the descriptor does not
> properly describe the actions of the mouse, and the extra reports are
> enabled by setting a feature. it should work as a basic mouse with x & y
> and two buttons though..

Yes, I forgot to mention that left & right clicks also work (but middle
one does not, just as you say).  I also failed to emulate middle click by
simultaneously pressing left+right, but that could be my fault. :)

> > Any clues how to investigate this issue?  I probably won't be able to
> > make use of all fancy multi-touch features of the mouse, but I'd like to
> > at least "export" some of the common gestures, like mouse wheel scroll,
> > as a legacy button clicks (so they can be propagated up to the X.org).
> 
> I don't know why it doesn't work but I thought legacy button clicks were
> built into the normal mouse (did you push? it is not just touch..)

Correct, I was not accurate enough.  However, by "legacy" I was referring
to buttons 4 and up mapped to the wheel, etc.; not just buttons 1 and 2.

> I have a tool i wrote to parse the input via a hci sniffer (attached for
> interest) and another tool which I used to send something to the mouse (i
> don't remember how that worked, if I had a special driver during
> development)

Thanks for an in-depth reply Iain, that's very helpful.

./danfe


More information about the freebsd-bluetooth mailing list