The
btmagic driver provides support for the Bluetooth “Magic Mouse” from Apple, Inc.
The Magic Mouse uses the standard USB Human Interface Device protocol to communicate, but does not provide a proper HID Descriptor, and requires 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 Mouse should be configured with the
btdevctl(8) program and
btmagic interfaces to the system as usual through the
wscons(4) driver. The following properties are used during autoconfiguration:
vendor-id
Must be 0x05ac.
product-id
Must be 0x030d.
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.