Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


BTMAGIC(4)                   Device Drivers Manual                  BTMAGIC(4)

NAME
     btmagic - Apple Magic Mouse and Apple Magic Trackpad

SYNOPSIS
     btmagic*  at bthub?
     wsmouse*  at btmagic?

DESCRIPTION
     The btmagic 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
     bluetooth(4), bthub(4), wsmouse(4), btdevctl(8), sysctl(8)

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.

NetBSD 10.99                     July 4, 2015                     NetBSD 10.99