tail head cat sleep
QR code linking to this page

Manual Pages  — ATP


atp – Apple touchpad driver



To compile this driver into the kernel, place the following lines into your kernel configuration file: device atp device usb

Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):



The atp driver provides support for the Apple Internal Trackpad device found in many Apple laptops. Older (Fountain/Geyser) and the newer (Wellspring) trackpad families are all supported through a unified driver.

The driver simulates a three-button mouse using multi-finger tap detection. Single finger tap generates a left-button click; two-finger tap maps to the middle button; whereas a three-finger tap gets treated as a right button click.

There is support for 2-finger horizontal scrolling, which translates to page-back/forward events; vertical multi-finger scrolling emulates the mouse wheel.

A double-tap followed by a drag is treated as a selection gesture; a virtual left-button click is assumed for the lifespan of the drag.

atp supports dynamic reconfiguration using sysctl(8); through nodes under hw.usb.atp. Pointer sensitivity can be controlled using the sysctl tunable hw.usb.atp.scale_factor. Smaller values of scale_factor result in faster movement. A simple high-pass filter is used to reduce contributions from small movements; the threshold for this filter may be controlled by hw.usb.atp.small_movement. The maximum tolerable duration of a touch gesture is controlled by hw.usb.atp.touch_timeout (in microseconds); beyond this period, touches are considered to be slides. (This conversion also happens when a finger stroke accumulates at least hw.usb.atp.slide_min_movement movement (in mickeys). The maximum time (in microseconds) to allow an association between a double- tap and drag gesture may be controlled by hw.usb.atp.double_tap_threshold. Should one want to disable tap detection and rely only upon physical button presses, set the following sysctl to a value of 2 hw.usb.atp.tap_minimum.


The atp driver provides support for the following Product IDs:

To discover the product-id of a touchpad, search for 'Trackpad' in the output of lshal(1) and look up the property usb_device.product_id.


atp creates a blocking pseudo-device file, /dev/atp0, which presents the mouse as a sysmouse or mousesystems type device--see moused(8) for an explanation of these mouse types.


sysmouse(4), usb(4), loader.conf(5), xorg.conf(5) ( ports/x11/xorg), moused(8), sysctl(8)


The atp driver was written by Rohit Grover <Mt rgrover1@gmail.com>.

ATP (4) February 24, 2014

tail head cat sleep
QR code linking to this page

Please direct any comments about this manual page service to Ben Bullock. Privacy policy.