- NetBSD Manual Pages
BTMAGIC(4) NetBSD Kernel Interfaces Manual BTMAGIC(4)
Powered by man-cgi (2020-09-24).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.
btmagic -- Apple Magic Mouse and Apple Magic Trackpad
btmagic* at bthub?
wsmouse* at btmagic?
The btmagic driver provides support for the Bluetooth ``Magic Mouse'' and
``Magic Trackpad'' from Apple, Inc. As remote devices cannot be discov-
ered by autoconfig, configuring a mouse is normally carried out with the
The Magic Mouse and Magic Trackpad use the standard USB Human Interface
Device protocol to communicate, but do not provide a proper HID Descrip-
tor, and require specific initializations to enable the proprietary touch
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 base-
band link, and may be one of `auth', `encrypt', or
When the btmagic driver has configured, it will attempt to open a connec-
tion to the mouse and, if this fails or the connection is lost, will wait
for the mouse to initiate connections. The Magic Mouse requires connec-
tions to be authenticated, and should accept a PIN of `0000' during the
bluetooth(4), bthub(4), wsmouse(4), btdevctl(8), sysctl(8)
The btmagic driver was written by Iain Hibbert with reference to the
Linux driver written by Michael Poole. Manuel Bouyer added Magic Track-
pad support, with reference to the Linux driver written by Michael Poole
and Chase Douglas.
NetBSD 9.0 July 4, 2015 NetBSD 9.0