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> — <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="YES"</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>
<<a class="Mt" href="mailto:huanghwh@gmail.com">huanghwh@gmail.com</a>>.</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>
|