summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--70-synaptics.conf76
-rw-r--r--70-touchpad-quirks.rules27
-rw-r--r--sources1
-rw-r--r--xorg-x11-drv-synaptics.spec111
5 files changed, 216 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..10da18b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/xf86-input-synaptics-1.10.0.tar.xz
diff --git a/70-synaptics.conf b/70-synaptics.conf
new file mode 100644
index 0000000..cda37d3
--- /dev/null
+++ b/70-synaptics.conf
@@ -0,0 +1,76 @@
+Section "InputClass"
+ Identifier "touchpad catchall"
+ Driver "synaptics"
+ MatchIsTouchpad "on"
+ MatchDevicePath "/dev/input/event*"
+EndSection
+
+# This option enables the bottom right corner to be a right button on
+# non-synaptics clickpads.
+# This option is only interpreted by clickpads.
+Section "InputClass"
+ Identifier "Default clickpad buttons"
+ MatchDriver "synaptics"
+ Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
+ Option "SecondarySoftButtonAreas" "58% 0 0 8% 42% 58% 0 8%"
+EndSection
+
+# This option disables software buttons on Apple touchpads.
+# This option is only interpreted by clickpads.
+Section "InputClass"
+ Identifier "Disable clickpad buttons on Apple touchpads"
+ MatchProduct "Apple|bcm5974"
+ MatchDriver "synaptics"
+ Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
+EndSection
+
+# Quirks for special touchpads
+
+# The Cypress touchpads provide BTN_RIGHT in firmware, together with
+# clickfinger, and two-finger scrolling. Disable Clickpads, otherwise we
+# get flaky button behaviour.
+# https://bugs.freedesktop.org/show_bug.cgi?id=70819
+# https://bugs.freedesktop.org/show_bug.cgi?id=76341
+#
+# This really is a kernel issue, as the kernel should simply not report these
+# as clickpads. This has been fixed in 3.13.9 and later, this section
+# should be removed in the future
+Section "InputClass"
+ Identifier "Disable clickpad for CyPS/2 Cypress Trackpad"
+ MatchProduct "CyPS/2 Cypress Trackpad"
+ MatchDriver "synaptics"
+ Option "ClickPad" "off"
+EndSection
+
+# Some devices have the buttons as part of the lower edge of the
+# touchpad. Pressing a button moves the cursor, causing cursor jumps and
+# erroneous clicks.
+# Use the synaptics area property to work around this, udev labels these
+# devices for us as touchpad_button_overlap.
+# Affected: Dell Mini
+Section "InputClass"
+ Identifier "touchpad button overlap"
+ MatchIsTouchpad "on"
+ MatchTag "touchpad_button_overlap"
+ Option "AreaBottomEdge" "4000"
+EndSection
+
+# Some devices have the buttons on the top of the touchpad. For those, set
+# the secondary button area to exactly that.
+# Affected: All Haswell Lenovos and *431* models
+#
+# Note the touchpad_softbutton_top tag is a temporary solution, we're working
+# on a more permanent solution upstream (likely adding INPUT_PROP_TOPBUTTONPAD)
+Section "InputClass"
+ Identifier "Lenovo TrackPoint top software buttons"
+ MatchDriver "synaptics"
+ MatchTag "touchpad_softbutton_top"
+ Option "HasSecondarySoftButtons" "on"
+EndSection
+
+Section "InputClass"
+ Identifier "Lenovo *50 and Carbon 3rd trackpoint buttons"
+ MatchDriver "synaptics"
+ MatchTag "has_trackpoint_buttons"
+ Option "HasTrackpointButtons" "on"
+EndSection
diff --git a/70-touchpad-quirks.rules b/70-touchpad-quirks.rules
new file mode 100644
index 0000000..0485ce2
--- /dev/null
+++ b/70-touchpad-quirks.rules
@@ -0,0 +1,27 @@
+ACTION!="add|change", GOTO="touchpad_quirks_end"
+KERNEL!="event*", GOTO="touchpad_quirks_end"
+
+ENV{ID_INPUT_TOUCHPAD}!="1", GOTO="touchpad_quirks_end"
+
+# model specific quirks
+
+# Dell Minis have a touchpad where the buttons and the touchpad area
+# overlap. Clicking a button thus moves the pointer, this requires special
+# Xorg configuration.
+
+ATTR{[dmi/id]product_name}=="Inspiron 1011|Inspiron 1012", \
+ ENV{ID_INPUT.tags}="touchpad_button_overlap"
+
+ATTR{[dmi/id]product_version}=="ThinkPad X240*", ENV{ID_INPUT.tags}="touchpad_softbutton_top"
+ATTR{[dmi/id]product_version}=="ThinkPad Edge E431*", ENV{ID_INPUT.tags}="touchpad_softbutton_top"
+ATTR{[dmi/id]product_version}=="ThinkPad T431*", ENV{ID_INPUT.tags}="touchpad_softbutton_top"
+ATTR{[dmi/id]product_version}=="ThinkPad L440*", ENV{ID_INPUT.tags}="touchpad_softbutton_top"
+ATTR{[dmi/id]product_version}=="ThinkPad T440*", ENV{ID_INPUT.tags}="touchpad_softbutton_top"
+ATTR{[dmi/id]product_version}=="ThinkPad L540*", ENV{ID_INPUT.tags}="touchpad_softbutton_top"
+ATTR{[dmi/id]product_version}=="ThinkPad T540*", ENV{ID_INPUT.tags}="touchpad_softbutton_top"
+ATTR{[dmi/id]product_version}=="ThinkPad W540*", ENV{ID_INPUT.tags}="touchpad_softbutton_top"
+ATTR{[dmi/id]product_version}=="ThinkPad Helix*" ENV{ID_INPUT.tags}="touchpad_softbutton_top"
+ATTR{[dmi/id]product_version}=="ThinkPad S1 Yoga", ENV{ID_INPUT.tags}="touchpad_softbutton_top"
+ATTR{[dmi/id]product_version}=="ThinkPad X1 Carbon 2nd*", ENV{ID_INPUT.tags}="touchpad_softbutton_top"
+
+LABEL="touchpad_quirks_end"
diff --git a/sources b/sources
new file mode 100644
index 0000000..9d9692f
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+017383c13a0d0f4cb320be477ab25513 xf86-input-synaptics-1.10.0.tar.xz
diff --git a/xorg-x11-drv-synaptics.spec b/xorg-x11-drv-synaptics.spec
new file mode 100644
index 0000000..3d09262
--- /dev/null
+++ b/xorg-x11-drv-synaptics.spec
@@ -0,0 +1,111 @@
+%global moduledir %(pkg-config xorg-server --variable=moduledir )
+%global driverdir %{moduledir}/input
+
+
+Name: xorg-x11-drv-synaptics
+Summary: Xorg X11 Synaptics touchpad input driver
+Version: 1.10.0
+Release: 1
+URL: http://www.x.org
+License: MIT
+
+Source0: https://www.x.org/releases/individual/driver/xf86-input-synaptics-%{version}.tar.xz
+Source1: 70-synaptics.conf
+Source2: 70-touchpad-quirks.rules
+
+ExcludeArch: s390 s390x
+
+BuildRequires: pkgconfig(inputproto) >= 2.1.99.3
+BuildRequires: pkgconfig(libevdev) >= 0.4
+BuildRequires: pkgconfig(randrproto)
+BuildRequires: pkgconfig(recordproto)
+BuildRequires: pkgconfig(x11)
+BuildRequires: pkgconfig(xi) >= 1.2
+BuildRequires: pkgconfig(xorg-server) >= 1.18
+BuildRequires: pkgconfig(xproto)
+BuildRequires: pkgconfig(xtst)
+
+Requires: Xorg
+Requires: libevdev
+Requires: libXi libXtst
+
+Provides: synaptics = %{version}-%{release}
+Obsoletes: synaptics < 0.15.0
+
+%description
+This package is a an empty package. For the legacy X.Org touchpad driver,
+please install xorg-x11-drv-synaptics legacy.
+
+%package legacy
+Summary: Xorg X11 synaptics input driver
+
+%description legacy
+This is the Synaptics touchpad driver for the X.Org X server. The following
+touchpad models are supported:
+
+%prep
+%autosetup -p1 -n xf86-input-synaptics-%{version}
+
+%build
+%configure --disable-static --disable-silent-rules
+%make_build
+
+%install
+%make_install
+%delete_la
+
+# Remove upstream synaptics.conf as we've several special fixes in ours
+rm $RPM_BUILD_ROOT%{_datadir}/X11/xorg.conf.d/70-synaptics.conf
+
+install -d $RPM_BUILD_ROOT%{_datadir}/X11/xorg.conf.d
+install -m 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/X11/xorg.conf.d/70-synaptics.conf
+
+install -d $RPM_BUILD_ROOT%{_udevrulesdir}
+install -m 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_udevrulesdir}/70-touchpad-quirks.rules
+
+%post
+udevadm control --reload-rules || :
+
+%postun
+udevadm control --reload-rules || :
+
+# NOTE: xorg-x11-drv-synaptics is obsoleted by xorg-x11-drv-libinput.
+# The main package does not have any files anymore and thus does not
+# generate an rpm. xorg-x11-drv-libinput can thus easily obsolete < 1.9.0-3,
+# the synaptics files are now in xorg-x11-drv-legacy only.
+#
+# DO NOT CHANGE THIS.
+#
+%files legacy
+%doc README
+%license COPYING
+%{_datadir}/X11/xorg.conf.d/70-synaptics.conf
+%{driverdir}/synaptics_drv.so
+%{_bindir}/synclient
+%{_bindir}/syndaemon
+%{_mandir}/man4/synaptics.4*
+%{_mandir}/man1/synclient.1*
+%{_mandir}/man1/syndaemon.1*
+%{_udevrulesdir}/70-touchpad-quirks.rules
+
+%package devel
+Summary: Xorg X11 synaptics input driver
+
+%description devel
+Development files for the Synaptics TouchPad for X.Org.
+
+%files devel
+%license COPYING
+%{_libdir}/pkgconfig/xorg-synaptics.pc
+%dir %{_includedir}/xorg
+%{_includedir}/xorg/synaptics-properties.h
+
+%changelog
+* Mon Jan 06 2025 Funda Wang <fundawang@yeah.net> - 1.10.0-1
+- update to 1.10.0
+
+* Wed May 25 2022 tanyulong <tanyulong@kylinos.cn> - 1.9.1-4
+- Improve the project according to the requirements of compliance improvement
+
+* Mon Nov 2 2020 douyan <douyan@kylinos.cn> - 1.9.1-3
+- package init