NAME
btmagic
—
Apple Magic Mouse and Apple Magic
Trackpad
SYNOPSIS
btmagic* at bthub?
wsmouse* at btmagic?
DESCRIPTION
Thebtmagic
driver provides support for the Bluetooth
“Magic Mouse” and “Magic Trackpad” from Apple,
Inc. As remote devices cannot be discovered by autoconfig, configuring a mouse
is normally carried out with the
btdevctl(8) program.
The Magic Mouse and Magic Trackpad use the standard USB Human Interface Device protocol to communicate, but do not provide a proper HID Descriptor, and require specific initializations to enable the proprietary touch reports.
The Magic Mouse provides basic mouse functionality with two
buttons, and the btmagic
driver additionally
interprets the touch reports to emulate a middle mouse button when more than
one firm touch is detected during a click event, plus horizontal and
vertical scrolling for touch movements greater than a certain distance. The
mouse has a base resolution of 1300dpi, which the driver scales by default
to a less sensitive 650dpi, but this is adjustable with
sysctl(8) along with the pressure needed to discern a firm touch, the
minimum distance necessary to trigger scrolling and the additional downscale
factor applied to scroll movements.
The Magic Trackpad provides multi touch functionality and one
button. The btmagic
driver emulates 3 buttons by
splitting the area at the bottom of the device in 3 equal zones and detects
finger presence in one of these zones when the button is pressed. In
addition, a tap in any area of the trackpad is interpreted as a left click.
The timeout for tap detection defaults to 100ms and is adjustable with
sysctl(8).
Pointer movement is reported for single-touch movements over the device, and scroll is reported for multi-touch movements.
The trackpad has a base resolution of 1300dpi, which the driver scales by default to a less sensitive 650dpi, but this is adjustable with sysctl(8) along with the additional downscale factor applied to scroll movements.
btmagic
interfaces to the system as usual
through the wsmouse(4) driver, and the following properties are used
during autoconfiguration:
- vendor-id
- Must be 0x05ac.
- product-id
- Must be 0x030d or 0x030e.
- local-bdaddr
- Local device address.
- remote-bdaddr
- Remote device address.
- link-mode
- This optional string represents the link mode of the baseband link, and may be one of ‘auth’, ‘encrypt’, or ‘secure’.
When the btmagic
driver has configured, it
will attempt to open a connection to the mouse and, if this fails or the
connection is lost, will wait for the mouse to initiate connections. The
Magic Mouse requires connections to be authenticated, and should accept a
PIN of ‘0000’ during the pairing process.
SEE ALSO
AUTHORS
The btmagic
driver was written by
Iain Hibbert with reference to the Linux driver
written by Michael Poole. Manuel
Bouyer added Magic Trackpad support, with reference to the Linux
driver written by Michael Poole and
Chase Douglas.