summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/wsp.4 3.html
blob: d8e6acd3d359fa1603355025b28ed690fa5e85a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<table class="head">
  <tr>
    <td class="head-ltitle">WSP(4)</td>
    <td class="head-vol">Device Drivers Manual</td>
    <td class="head-rtitle">WSP(4)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">wsp</code> &#x2014; <span class="Nd">Wellspring
    touchpad driver</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp">To compile this driver into the kernel, place the following lines
    into your kernel configuration file:</p>
<div class="Bd Pp Bd-indent"><code class="Cd">device wsp</code>
<br/>
<code class="Cd">device hid</code>
<br/>
<code class="Cd">device usb</code></div>
<p class="Pp">Alternatively, to load the driver as a module at boot time, place
    the following line in <a class="Xr">loader.conf(5)</a>:</p>
<div class="Bd Pp Bd-indent Li">
<pre>wsp_load=&quot;YES&quot;</pre>
</div>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Nm">wsp</code> driver provides support for the
    Apple Internal Trackpad device found in many Apple laptops.</p>
<p class="Pp">The driver simulates a three-button mouse using multi-finger
    press/tap detection. A single-finger press generates a left button click. A
    two-finger press maps to the right button; whereas a three-finger press gets
    treated as a middle button click.</p>
<p class="Pp">The trackpad functions with presses and taps. A press is a
    full-forced press which causes a physical lowering of the trackpad. A tap is
    a touch of the trackpad which does not depress the physical trackpad.</p>
<p class="Pp">The <code class="Nm">wsp</code> driver supports receiving evdev
    input device data if enabled. This data is used for extended usage of the
    touchpad like multi-finger support, pressure detection, tap support, and
    gestures. At least the second bit of the <a class="Xr">sysctl(8)</a> tunable
    <var class="Va">kern.evdev.rcpt_mask</var> must be set. This can be enabled
    with <var class="Va">kern.evdev.rcpt_mask=3</var>.</p>
<p class="Pp">Vertical scrolling (z-axis) is enabled by default with a
    two-finger tap and the movement of a finger up and down. Horizontal
    scrolling (t-axis) is not natively supported by the sysmouse protocol,
    therefore must be enabled with evdev data. This can be enabled with the
    <a class="Xr">sysctl(8)</a> tunable
    <var class="Va">kern.evdev.sysmouse_t_axis=3</var>. Horizontal scrolling can
    be used with a two-finger tap and the movement of a finger from side to
    side. The <a class="Xr">sysctl(8)</a> tunable
    <var class="Va">hw.usb.wsp.t_factor</var> must be greater than 0 for
    horizontal scrolling to be enabled, too.</p>
<p class="Pp">Horizontal swiping with a three-finger tap is registered as mouse
    buttons 8 and 9, depending on the direction. These buttons default to
    backwards and forwards keyboard events.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYSCTL_VARIABLES"><a class="permalink" href="#SYSCTL_VARIABLES">SYSCTL
  VARIABLES</a></h1>
<p class="Pp">The following variables are available as
    <a class="Xr">sysctl(8)</a> tunables:</p>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.scale_factor"><var class="Va">hw.usb.wsp.scale_factor</var></dt>
  <dd>Controls the pointer sensitivity. Default is 12.</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.enable_single_tap_clicks"><var class="Va">hw.usb.wsp.enable_single_tap_clicks</var></dt>
  <dd>Enables single-tap to register as a left-click. Default is 1
    (enabled).</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.enable_single_tap_movement"><var class="Va">hw.usb.wsp.enable_single_tap_movement</var></dt>
  <dd>Enables movement on the trackpad follow a partially-released left-click.
      Default is 1 (enabled).</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.max_finger_diameter"><var class="Va">hw.usb.wsp.max_finger_diameter</var></dt>
  <dd>Specifies the maximum finger diameter on the trackpad that is registered
      as a finger (a lower value is used for palm detection). Default is
    1900.</dd>
</dl>
<dl class="Bl-tag">
  <dt id="max_scroll_finger_distance"><var class="Va">max_scroll_finger_distance</var></dt>
  <dd>Specifies the maximum distance between two fingers where z-axis and t-axis
      movements are registered. Z-axis and T-axis movements are vertical and
      horizontal movements with more than one finger tapped (not clicked),
      respectively. Default is 8192.</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.max_double_tap_distance"><var class="Va">hw.usb.wsp.max_double_tap_distance</var></dt>
  <dd>Specifies the maximum distance between two fingers that a two-finger click
      will be registered as a right-click. Default is 2500.</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.scr_threshold"><var class="Va">hw.usb.wsp.scr_threshold</var></dt>
  <dd>Specifies the minimum horizontal or vertical distance required to register
      as a scrolling gesture. Default is 20.</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.z_factor"><var class="Va">hw.usb.wsp.z_factor</var></dt>
  <dd>Z-axis sensitivity. Default is 5.</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.z_invert"><var class="Va">hw.usb.wsp.z_invert</var></dt>
  <dd>Z-axis inversion. Default is 0 (disabled).</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.t_factor"><var class="Va">hw.usb.wsp.t_factor</var></dt>
  <dd>T-axis sensitivity. Default is 0 (disabled).</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.t_invert"><var class="Va">hw.usb.wsp.t_invert</var></dt>
  <dd>T-axis inversion. Default is 0 (disabled).</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.scroll_finger_count"><var class="Va">hw.usb.wsp.scroll_finger_count</var></dt>
  <dd>Specifies the number of tapped fingers which registers as a scrolling
      movement. Default is 2.</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.horizontal_swipe_finger_count"><var class="Va">hw.usb.wsp.horizontal_swipe_finger_count</var></dt>
  <dd>Speifies the number of tapped fingers which registers as a swipe gesture.
      Default is 3.</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.pressure_touch_threshold"><var class="Va">hw.usb.wsp.pressure_touch_threshold</var></dt>
  <dd>Specifies the threshold for a finger to be registered as a click. Default
      is 50.</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.pressure_untouch_threshold"><var class="Va">hw.usb.wsp.pressure_untouch_threshold</var></dt>
  <dd>Specifies the threshold for a finger to be registered as an unclick.
      Default is 10.</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.pressure_tap_threshold"><var class="Va">hw.usb.wsp.pressure_tap_threshold</var></dt>
  <dd>Specifies the threadhold for a finger to be registered as a tap. Default
      is 120.</dd>
</dl>
<dl class="Bl-tag">
  <dt id="hw.usb.wsp.debug"><var class="Va">hw.usb.wsp.debug</var></dt>
  <dd>Specifies the <code class="Nm">wsp</code> driver debugging level (0-3).
      Default is 1.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
<p class="Pp"><code class="Nm">wsp</code> creates a blocking pseudo-device file,
    <span class="Pa">/dev/wsp0</span>, which presents the mouse as a
    <a class="permalink" href="#sysmouse"><i class="Em" id="sysmouse">sysmouse</i></a>
    or
    <a class="permalink" href="#mousesystems"><i class="Em" id="mousesystems">mousesystems</i></a>
    type device--see <a class="Xr">moused(8)</a> for an explanation of these
    mouse types.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<p class="Pp"><a class="Xr">sysmouse(4)</a>, <a class="Xr">usb(4)</a>,
    <a class="Xr">loader.conf(5)</a>, <a class="Xr">xorg.conf(5)</a>
    (<span class="Pa">ports/x11/xorg</span>), <a class="Xr">moused(8)</a>,
    <a class="Xr">sysctl(8)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp">The <code class="Nm">wsp</code> driver was written by
    <span class="An">Huang Wen Hui</span>
    &lt;<a class="Mt" href="mailto:huanghwh@gmail.com">huanghwh@gmail.com</a>&gt;.</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">February 9, 2021</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>