114 Commits

Author SHA1 Message Date
Alan Coopersmith
252ca68fef syndaemon: add -V option to print version
Matches synclient -V

Also updates man page to include missing -v option that was listed
in the usage output.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/25>
2025-04-27 16:33:47 -07:00
Alan Coopersmith
a072d695bc Improve man page formatting
More closely follow common style as described on
https://man7.org/linux/man-pages/man7/man-pages.7.html

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/24>
2025-04-27 12:30:09 -07:00
Alan Coopersmith
592215a584 Fix spelling/wording issues
Found by using:
    codespell --builtin clear,rare,usage,informal,code,names

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2022-01-16 12:42:17 -08:00
Stefan Dirsch
59e5db0253 conf: rename to 70-synaptics.conf
Bump up the synaptics driver to 70, so it get's preferred over libinput, which
was dropped down to 60. The synaptics driver is more of a leaf package
than libinput (which covers a multitude of device types) and can be removed by
default. When specifically installed by the user, the synaptics driver should
override the system default.

Similar to what was done for wacom configuration file.

https://bugzilla.suse.com/show_bug.cgi?id=979554

Signed-off-by: Stefan Dirsch <sndirsch@suse.de>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-05-23 11:35:27 +10:00
Peter Hutterer
5378a020a0 Revert "Support the new Lenovo X1 Carbon 3rd trackpoint buttons"
This reverts commit 064445364b.

The Lenovo *50 series, including the X1 Carbon 3rd always require multiple
kernel patches to enable the touchpad buttons. This patch in synaptics only
addresses the re-routing of the top buttons.

The final iteration of the kernel patches also route the trackpoint buttons
through the trackpoint device, rendering this patch unnecessary. These patches
are queued for 4.0.

See kernel patch series up to commit cdd9dc195916ef5644cfac079094c3c1d1616e4c
Author: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Date:   Sun Mar 8 22:35:41 2015 -0700

    Input: synaptics - re-route tracksticks buttons on the Lenovo 2015 series

Currently in Dmitry's for-linus branch.

Distributions running older kernels or the kernel stable series which has
partial backports of the above patch series are encouraged to leave the
0644453 commit in and undo this revert.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-03-18 07:25:31 +10:00
Peter Hutterer
064445364b Support the new Lenovo X1 Carbon 3rd trackpoint buttons
This device has the trackpoint buttons wired up to the touchpad to send BTN_0,
BTN_1 and BTN_2 for left, right, middle. This conflicts with previous
touchpads that used those event codes for dedicated scroll buttons.

Add an option HasTrackpointButtons that can be set via a xorg.conf.d
snippets. This option is not intended as a user-set option, rather
we expect distributions to ship some conglomerate of udev/hal rules with
xorg.conf snippets that take effect.

If the option is set, we look at the three affected buttons at the beginning
of HandleState and send button events immediately for them. The HW state is
reset to neutral and other processing continues. This saves us from having to
synchronize these buttons with software buttons (also present on this device),
tapping, etc.

Since the buttons are physically different and (mentally) associated with the
trackpoint device we also don't need to worry about having finger motion event
correctly synced up with the button presses - it's acceptable to send the
presses before the motion events.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Tested-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2015-01-30 09:39:38 +10:00
Gabriele Mazzotta
383355fa5f Remove FastTap leftovers
FastTap was removed with d14ea867ad ("Purge fast-taps option"),
remove all of what remained.

Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-01-12 11:08:56 +10:00
Hans de Goede
7bf2756841 Add support for INPUT_PROP_TOPBUTTONPAD
Add a HasSecondaryButtons boolean config option which defaults to true for
devices with the INPUT_PROP_TOPBUTTONPAD and false for all other devices.

Only parse the SecondarySoftButtonAreas when this option is true, effectively
disabling the top buttons when it is false. Likewise, only initialize the
SecondarySoftButtonAreas property if we enable support for it.

This means that it is now safe to always set a SecondarySoftButtonAreas
default in 50-synaptics.conf, and that he section which was intended for
use with future pnp-id matching can be dropped, as that is now all handled
in the kernel.

While at also remove the comment about disabling the bottom edge area, as that
is now done automatically.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2014-04-30 11:41:03 +10:00
Peter Hutterer
41afac2abf man: add some missing quotes
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-04-29 12:16:42 +10:00
Peter Hutterer
dc5474964d If the touchpad is in TOUCHPAD_OFF mode, allow physical clicks
Enabling clicks in off mode also allows for the new Lenovo *40 series to use
the top software buttons while the touchpad is disabled. This benefits those
that usually disable touchpads altogether but still need the buttons for the
trackstick.

This changes existing behaviour, but TouchpadOff was always intended to stop
erroneous events while typing. Physical button presses are hard to trigger
accidentally. On the touchpads that TouchpadOff concept was originally
designed for the buttons are nowhere near the keyboard and are physically
separated from the touchpad anyway. On Clickpads, triggering a physical
click requires more force than accidentally touching the surface.

https://bugs.freedesktop.org/show_bug.cgi?id=76156

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2014-03-18 07:28:08 +10:00
Peter Hutterer
17bbcad280 Revert "Add another third state to TouchpadOff for disabling all but button clicks"
This third state is not needed, the behaviour of the touchpad driver is now
good enough to not need an external syndaemon instance to toggle this third
state.

This reverts commit eea7335876.

Conflicts:
	man/synaptics.man
	src/synaptics.c

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-03-12 14:13:18 +10:00
Peter Hutterer
66240dc329 Add property support for secondary (top) software buttons
This was originally intended as a fixed xorg.conf option only (and still
largely is seen as such). Secondary software button are required only on a specific series
of touchpads and should be pre-configured by the system and/or the
distribution. As such, the property will not be initialized if it is not set
in the xorg.conf and will thus not respond to runtime changes.

Exposing the property in this way gives clients a chance of detecting if a top
software button area is present and thus adjust their behaviour accordingly.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2014-03-11 15:32:06 +10:00
Peter Hutterer
c431d900f5 man: fix documentation about the new touchpad state
leftover from an earlier revision

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-02-26 15:30:55 +10:00
Peter Hutterer
eea7335876 Add another third state to TouchpadOff for disabling all but button clicks
On a new set of laptops like the Lenovo T440 the trackstick does not have
physical buttons. Instead, the touchpad's top edge is supposed to acts
software button area. To avoid spurious cursor jumps when the trackstick is in
use and the finger is resting on the touchpad, add another mode that disables
motion events.

Enabled by syndaemon with -t click-only, the default stays unchanged. No
specific integration with the traditional disable-while-typing is needed. On
such touchpads, disabling motion events is sufficient to avoid spurious
events and we don't want to stop HW buttons to send events.

Note that this only adds the new state to the driver and to syndaemon, there
is nothing hooked up otherwise to actually monitor the trackstick.

Special note for syndaemon: optional arguments are a GNU extension, so work
around it by messing with an optstring starting with ":" which allows us to
manually parse the options.

Original version of this patch by John Pham <jhnphm@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-02-24 08:25:29 +10:00
Benjamin Tissoires
402cc87257 Add secondary (top) software buttons area
New generation of laptops with trackstick do not have physical buttons
associated with the trackstick, but instead rely on software buttons at
the top of the clickpad.
Adding a secondary software button area for this purpose.
As we're likely detecting the devices that need it based on udev tags
and MatchTag configuration items, this area doesn't need to be exposed
through properties. So static configuration is fine.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

[couple of man-page additions and rewrites]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-02-21 11:29:33 +10:00
Hans de Goede
945acfc261 Allow using the entire touchpad for motions started inside the active area
synaptics offers an option to make parts of the touchpad insensitive. This
is ie useful to do palm avoidance rather then palm detection (which may be
unreliable) by disabling an area of 15% on the right and left side of the
touchpad.

Currently a motion which has started inside the active area, stops as soon
as it moves outside of the active area.

If a motion started inside the active area and thus has already generated some
move events, this makes no sense. If the user moves outside of the active
area in this case, this is very likely because the user wants to continue
the motion.

This commit allows such motions to continue normally.

I would like to thank Juerd Waalboer for the basic idea, some coding and lots
of testing for this fix.

Cc: Juerd Waalboer <juerd@tnx.nl>
Reported-by: Juerd Waalboer <juerd@tnx.nl>
Tested-by: Juerd Waalboer <juerd@tnx.nl>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-02-20 14:17:38 +10:00
Peter Hutterer
2ea76fad65 man: setting scroll deltas to 0 doesn't work (#75074)
6d47d33 disallows a zero value for horizontal/vertical scroll deltas but the
man page wasn't updated. We've added separate toggles to enable/disable
scrolling a few years ago, setting the distance to 0 is not recommended.

X.Org Bug 75074 <http://bugs.freedesktop.org/show_bug.cgi?id=75074>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-02-18 10:14:37 +10:00
Peter Hutterer
4f543ce1d6 Revert "Drop circular pad support"
This reverts commit 3b02e7fd81.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

Conflicts:
	man/synaptics.man
	src/synaptics.c

Acked-by: Daniel Stone <daniel@fooishbar.org>
2014-02-18 07:51:47 +10:00
Peter Hutterer
e0069c1544 Revert "Purge scrollbuttons (repeat)"
This reverts commit 0903d99ada.

Scroll buttons are still present in some modern devices, e.g. the Fujitsu
Lifebook E782 and others in the series.

Conflicts:
	include/synaptics.h
	man/synaptics.man
	src/synaptics.c
2014-01-17 08:24:35 +10:00
Peter Hutterer
ac47b4ea5b Allow soft button areas to overlap on the edge
For percent-based configuration in the form of
middle button 33%-66%, right button 66%-0 we'd get an error because of the
one device unit overlap. This was neither documented nor useful, because
leaving a 1% gap leaves an actual gap between the buttons. Allow for an
overlap of one device unit on the edge of the buttons.

What's picked in that case depends on the implementation of
is_inside_softbutton_area but since one device unit is so small, it doesn't
matter.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-04-05 10:43:15 +10:00
Peter Hutterer
368d96f4df man: clarify that 0, not 0% disables the softbutton area
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-04-05 10:43:15 +10:00
Peter Hutterer
43e98fe490 synclient: use a parameter that actually exists in the man page example
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-03-26 15:26:42 +10:00
Peter Hutterer
5b49e4ad6c synclient: drop XF86Config-4 from man page
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-03-26 15:24:56 +10:00
Peter Hutterer
109ce14ae1 syndaemon: list -? in help/man page
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-03-26 15:21:54 +10:00
Peter Hutterer
d059005287 synclient: remove 'm' and 'h' from getopt and man page
Removed as of 83d88b2531

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-03-26 15:16:19 +10:00
Peter Hutterer
1770c8a7e8 Remove @DRIVER_NAME@ from Makefile.am
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-05-18 16:49:06 +10:00
Peter Hutterer
3b02e7fd81 Drop circular pad support
Do such devices still exist?

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
2012-05-10 09:42:43 +10:00
Peter Hutterer
0903d99ada Purge scrollbuttons (repeat)
I doubt devices that have scrollbuttons are still manufactured. Having
untested code around is just asking for trouble.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
2012-05-10 09:42:36 +10:00
Peter Hutterer
54f65f3ca1 Purge edge motion
A funny feature, but unreliable and mostly untested.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
2012-05-10 09:42:30 +10:00
Peter Hutterer
d14ea867ad Purge fast-taps option
This driver has too many options, maintaining them is hard and testing
virtually doesn't happen.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
2012-05-10 09:42:26 +10:00
Peter Hutterer
2c7eab5a6d Drop trackstick emulation mode
"Trackstick emulation mode? That exists?" I hear you say? Yes, indeed. Well,
no, not anymore. This driver is already unmaintainable without features like
this.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
2012-05-10 09:42:23 +10:00
Peter Hutterer
83d88b2531 Bury shm - or what was left of it
SHM configuration was removed in Apr 2009 (c09a3d50e9), since then it has
only been usedful for debugging. And we have better tools (evtest) for
debugging hardware events.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
2012-05-10 09:42:19 +10:00
Peter Hutterer
e19fff64f7 man: fix hyphenation
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-04-30 09:30:53 +10:00
Peter Hutterer
3cc828b476 man: drop mention of shm configuration
SHM is for debugging only now, not configuration.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-04-30 09:28:39 +10:00
Peter Hutterer
11d8929647 man: move ClickPad documentation into a single area
Having to read only one section is a tad easier than collecting the separate
options.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-04-19 08:07:19 +10:00
Alyssa Hung
1874094f0e Support inverted scroll direction.
This patch allows scroll direction to be inverted by allowing
VertScrollDelta and HorizScrollDelta to be set to negative values. This
enables behaviour that is consistent with modern touchscreen devices,
where the content scrolls in the same direction as the user's finger
movement.

Signed-off-by: Alyssa Hung <ahung@isisview.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-04-16 11:44:14 +10:00
Peter Hutterer
cea97dd5e0 Allow soft button areas to be specified in % of the touchpad
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-03-22 14:51:10 +10:00
Peter Hutterer
fee18d8567 Soft buttons are only available on clickpad devices, disable them otherwise.
If the clickpad support is runtime enabled/disabled, the property
appears/disappears accordingly.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2012-03-14 08:47:06 +10:00
Chase Douglas
405f1643e2 Add soft button areas property
Some clickpad devices have button areas painted on them. Set this
property to the area of the right and middle buttons to enable proper
click actions when clicking in the areas.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-03-14 08:47:05 +10:00
Chase Douglas
331dd96953 Add clickpad device property
Add it as a writable device property. We may not know how to probe some
clickpads so allow the user to override it.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-03-14 08:46:54 +10:00
Peter Hutterer
bc789cc7a0 man: note that a PS/2 device is not supported
If all we see is a PS/2 Mouse or similar, then the kernel doesn't give us
the required bits to provide all the functionality we want. Note that in the
man-page.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Cyril Brulebois <kibi@debian.org>
2011-09-06 08:06:36 +10:00
Peter Hutterer
ba53d85025 syndaemon: document exit codes and change them to fall into categories.
Changing pid file creation failure to same exit code that fork() failure
uses.

Changing XRECORD init failure to unique code. This way clients can trap
exit code 4 and re-start syndaemon without the -R flag.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-07-28 11:12:23 +10:00
Peter Hutterer
8d0d011cda man: remove documentation for -s switch, SHM is gone.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-07-28 11:10:35 +10:00
Peter Hutterer
72d5b48869 man: document syndaemon -m switch
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-07-28 11:10:32 +10:00
Gaetan Nadon
cb6818b623 Revert "build: collapse all Makefile.am files into a single non-recursive one."
This reverts commit 39afe69ad7.

1. For such a small module, the build time improvement is most likely
negligible. At least, I'd like to see some timings proving it's
worthiness before seeing the patch go back in.

2. This kind of change would need a thorough review. The need to
operate the build from a single toplevel Makefile is a significant
change. The two most noticeable issues for me are that collapsing all
the Makefiles could easily cause namespacing issues with the
variables, and operating on files outside the current directory can
introduce subtle bugs. I feel that the non-recursive style is
generally less robust than the standard recursive make scheme.

3. It's unlike all the other X.org modules. This isn't a showstopper
for me, but the recursive style is well understood here and you've
beaten all the modules into a consistent format that makes build bugs
unique to specific modules less likely.

Acked-by: Dan Nicholson <dbn.lists@gmail.com>

To give a concrete example for #3 above, the 175 man pages are much
easier maintained using a very similar makefile in the man directory
of all X.Org module.

The cost of maintaining a single makefile is much higher. Every target
in the makefile has to be reviewed and tested when changes are made.
Not everyone has the all the skills to handle widely different targets
such as man pages, DocBook/XML, librairies, C code, distribution hooks,
and so on.

Acked-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2011-07-05 16:39:33 -04:00
Diego Elio Pettenò
39afe69ad7 build: collapse all Makefile.am files into a single non-recursive one.
With this change, the whole of the build is done non-recursively in the
top-level Makefile.am. This reduces the amount of overhead due to recursing
into directories only to build one file.

Signed-off-by: Diego Elio Pettenò <flameeyes@gmail.com>
Signed-off-by: Christoph Brill <egore911@egore911.de>
2011-05-15 21:46:06 +02:00
Alan Coopersmith
ec79142353 Fix "nose canellation" typo in man page
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2011-05-08 11:56:25 -07:00
Cyril Brulebois
fe05c60fee Fix egde/edge typo in manpage and comments.
Debian bug #622663 <http://bugs.debian.org/622663>

Signed-off-by: Cyril Brulebois <kibi@debian.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-04-14 14:01:15 +10:00
Peter Hutterer
5f54677717 man: add short blurb about InputClass configuration in servers 1.8
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-03-21 11:56:10 +10:00
Peter Hutterer
86cab92b41 man: update source path for fdi file and shorten description.
Don't describe what the example config file does in the man page, let the
file speak for itself. Point out that fdi files are for servers 1.5 - 1.7
only.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-03-21 11:56:10 +10:00