diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
| commit | 5cb84ec742fd33f78c8022863fadaa8d0d93e176 (patch) | |
| tree | 1a81ca3665e6153923e40db7b0d988f8573ab59c /static/netbsd/man4/pms.4 | |
| parent | a59214f344567c037d5776879bcfc5fcc1d4d5f6 (diff) | |
feat: Added NetBSD man pages
Diffstat (limited to 'static/netbsd/man4/pms.4')
| -rw-r--r-- | static/netbsd/man4/pms.4 | 303 |
1 files changed, 303 insertions, 0 deletions
diff --git a/static/netbsd/man4/pms.4 b/static/netbsd/man4/pms.4 new file mode 100644 index 00000000..3c9f6e92 --- /dev/null +++ b/static/netbsd/man4/pms.4 @@ -0,0 +1,303 @@ +.\" $NetBSD: pms.4,v 1.42 2024/09/07 19:13:27 rillig Exp $ +.\" +.\" Copyright (c) 1993 Christopher G. Demetriou +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed for the +.\" NetBSD Project. See https://www.NetBSD.org/ for +.\" information about NetBSD. +.\" 4. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>> +.\" +.Dd October 21, 2021 +.Dt PMS 4 +.Os +.Sh NAME +.Nm pms +.Nd PS/2 auxiliary port mouse driver +.Sh SYNOPSIS +.Cd pckbc* at isa? +.Cd pms* at pckbc? +.Cd wsmouse* at pms? +.Pp +.Cd options PMS_DISABLE_POWERHOOK +.Cd options PMS_SYNAPTICS_TOUCHPAD +.Cd options PMS_ELANTECH_TOUCHPAD +.Cd options PMS_ALPS_TOUCHPAD +.Sh DESCRIPTION +The +.Nm +driver provides an interface to PS/2 auxiliary port mice within the +.Xr wscons 4 +framework. +Parent device in terms of the autoconfiguration framework is +.Xr pckbc 4 , +the PC keyboard controller. +.Dq pms +is a generic driver which supports mice using common variants of the PS/2 +protocol, including wheel mice of the +.Dq IntelliMouse +breed. +Wheel movements are mapped to a third (z-) axis. +The driver is +believed to work with both 3-button and 5-button mice with scroll wheels. +Mice which use other protocol extensions are not currently supported, but +might be if protocol documentation could be found. +Mouse related data are accessed by +.Xr wsmouse 4 +devices. +.Pp +The +.Nm +driver has been updated to attempt to renegotiate mouse protocol after seeing +suspicious or defective mouse protocol packets, or unusual delays in the +middle of a packet; this should improve the chances that a mouse will recover +after being switched away or reset (for instance, by a console switch). +.Pp +The +.Va PMS_DISABLE_POWERHOOK +kernel option disables PS/2 reset on resume. +.Pp +In addition, the +.Nm +driver supports the +.Dq Synaptics , +.Dq Elantech +and +.Dq ALPS +touchpads in native mode, enabled with the +.Va PMS_SYNAPTICS_TOUCHPAD , +.Va PMS_ELANTECH_TOUCHPAD +and +.Va PMS_ALPS_TOUCHPAD +kernel options. +This allows the driver to take advantage of extra +features available on Synaptics, Elantech and ALPS Touchpads. +.Pp +The following +.Xr sysctl 8 +variables control behavior of Synaptics touchpads: +.Bl -tag -width 8n +.It Dv hw.synaptics.up_down_emulation +If the touchpad reports the existence of extra ("Up/Down") buttons, this +value determines what kind of mouse events they should generate. +On certain clickpads, the Up/Down buttons may be physical buttons that +can be used instead of pressing the pad down, or used as additional +buttons. +.Bl -bullet +.It +If set to 0, Up/Down events generate button 4 and 5 clicks. +.It +If set to 1, Up/Down events generate middle button clicks. +.It +If set to 2, the Up and Down buttons are used for Z-axis emulation, +which more closely resembles how mouse wheels operate. +.It +If set to 3 (default), Up/Down events generate left/right clicks. +.El +.It Dv hw.synaptics.up_down_motion_delta +When the Up/Down buttons are used for Z-axis emulation, this value specifies +the emulated delta-Z value per click. +.It Dv hw.synaptics.gesture_move +Gestures will not be recognised if the finger moves by more than this +amount between taps. +.It Dv hw.synaptics.gesture_length +Gestures will not be recognised if the number of packets (at 80 packets +per second) between taps exceeds this value. +.It Dv hw.synaptics.edge_left +.It Dv hw.synaptics.edge_right +.It Dv hw.synaptics.edge_top +.It Dv hw.synaptics.edge_bottom +These values define a border around the touchpad which will be used for +edge motion emulation during a drag gesture. +If a drag gesture is in progress and the finger moves into this border, +the driver will behave as if the finger continues to move in the same +direction beyond the edge of the touchpad. +.It Dv hw.synaptics.edge_motion_delta +This specifies the pointer speed when edge motion is in effect. +.It Dv hw.synaptics.finger_high +The driver will ignore new finger events until the reported pressure exceeds +this value. +.It Dv hw.synaptics.finger_low +The driver will assume a finger remains on the touchpad until the +reported pressure drops below this value. +.It Dv hw.synaptics.two_fingers_emulation +More recent touchpads can report the presence of more than one finger +on the pad. +This value determines how such events are used. +.Bl -bullet +.It +If set to 0 (default), two-finger events are ignored. +.It +If set to 1, two-finger events generate a right button click. +.It +If set to 2, two-finger events generate a middle button click. +.El +.It Dv hw.synaptics.scale_x +.It Dv hw.synaptics.scale_y +.It Dv hw.synaptics.scale_z +Scale factor used to divide movement deltas derived from Synaptics +coordinates (0-6143) to yield more reasonable values (default 16 for x +and y, 1 for z). +.It Dv hw.synaptics.max_speed_x +.It Dv hw.synaptics.max_speed_y +.It Dv hw.synaptics.max_speed_z +Limits pointer rate of change (after scaling) per reported movement +event (default 32 for x and y, 2 for z). +.It Dv hw.synaptics.movement_threshold +Movements of less than this value (in Synaptics coordinates) are +ignored (default 4). +.It Dv hw.synaptics.movement_enable +This value determines whether or not the touchpad will respond to +touch. +If set to 1 then the touchpad will respond to touch, if set to 0 +will not respond effectively disabling the touchpad. +.It Dv hw.synaptics.button_region_movement_enable +This value determines if finger movement events will be reported for +fingers that are located in the button emulation region defined by +.Va hw.synaptics.button_boundary +If set to 0 (the default) finger movements will not be reported. +If set to 1 finger movements will be reported. +.It Dv hw.synaptics.button_boundary +.It Dv hw.synaptics.button_region_percent +These two items are interrelated in that setting one will affect +the value of the other. +Since a clickpad only reports left clicks this region is used to emulate +two or three buttons by detecting the finger location and reporting +either a button 2 or button 3 click if the click occurs within +the region bounded by button_boundary and the bottom of the clickpad. +.Va hw.synaptics.button_boundary +sets the top edge of the button emulation region on a clickpad and +the percentage that represents this value is calculated and stored +in +.Va hw.synaptics.button_region_percent +Conversely, if +.Va hw.synaptics.button_region_percent +is set then the equivalent value for +.Va hw.synaptics.button_boundary +is calculated and stored. +Using a percentage allows the button region for trackpads that are able +to report their maximum and minimum values to be reliably set to +occupy a defined portion of the trackpad area instead of the user having +to tweak an arbitrary number. +.It Dv hw.synaptics.button3_edge +This defines the left hand edge of the button 3 region. +If a click occurs in the region bounded by button_boundary, button3_edge +and the right hand edge of the click pad then the click will be reported +as a button3 event. +Button 3 emulation can be disabled by setting +button3_edge to the right hand edge of the clickpad. +.It Dv hw.synaptics.button2_edge +This defines the left hand edge of the button 2 region. +The button 2 region is bounded by button2_edge, button3_edge and +button_boundary. +If a click occurs in this region then it will be reported as a button2 +event. +For completeness, the region between the left hand side of the clickpad, +button2_edge and button_boundary will be reported as a button1 event +as will any clicks that occur outside the button emulation region. +.It Dv hw.synaptics.aux_mid_button_scroll +This causes Y-axis movement on the "passthrough device" (e.g. the TrackPoint +on ThinkPads) to result in scrolling events instead of Y-axis movement when +the middle button is held. +.It Dv hw.synaptics.vert_scroll_percent +Reserve this percentage of the trackpad for a vertical scroll region. +This will reduce +.Va hw.synaptics.edge_right +by this percentage. +.It Dv hw.synaptics.horizontal_scroll_percent +Reserve this percentage of the trackpad for a horizontal scroll region. +This will reduce +.Va hw.synaptics.edge_bottom +by this percentage. +The +.Va hw.synaptics.button_boundary +will be recalculated as a result of the change. +.El +.Pp +The following +.Xr sysctl 8 +variables control behavior of Elantech touchpads: +.Bl -tag -width 8n +.It Dv hw.elantech.xy_precision_shift +.It Dv hw.elantech.z_precision_shift +Increased values improve the accuracy of X, Y, and Z-axis reporting +at the expense of slower mouse movement (default 2 for xy, +and 3 for z). +.El +.Pp +For Elantech touchpads, the Z-axis is emulated using two-finger +Y-axis reporting. +.Pp +The following +.Xr sysctl 8 +variables control behavior of ALPS touchpads: +.Bl -tag -width 8n +.It Dv hw.alps.touchpad_xy_precision_shift +.It Dv hw.alps.trackstick_xy_precision_shift +Decreased values improve the accuracy of X and Y-axis reporting +at the expense of slower mouse movement (default 2 for touchpad +and 1 for TrackStick). +.It Dv hw.alps.touchpad_movement_threshold +Movements of less than this value (in ALPS coordinates) are +ignored (default 4). +.El +.Sh SEE ALSO +.Xr pckbc 4 , +.Xr ums 4 , +.Xr wsmouse 4 +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was originally written by +.An Christopher G. Demetriou . +The changes to merge the +.Dq IntelliMouse +protocol in, and reset the mouse in the event of protocol problems, were +contributed by +.An Peter Seebach . +Special thanks to Ray Trent, at Synaptics, who contributed valuable +insight into how to identify bogus mouse data. +The changes to add +.Dq Synaptics +pad support were by +.An Ales Krenek , +.An Kentaro A. Kurahone , +and +.An Steve C. Woodford . +The changes to add +.Dq Elantech +pad support were by +.An Jared D. McNeill . +.Sh BUGS +It is possible for the driver to mistakenly negotiate the non-scroll-wheel +protocol, after which it is unlikely to recover until the device is closed +and reopened. +.Pp +The +.Dq Elantech +pad code only supports trackpads with firmware version 2.48 or above. |
