diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | 70-synaptics.conf | 76 | ||||
-rw-r--r-- | 70-touchpad-quirks.rules | 27 | ||||
-rw-r--r-- | sources | 1 | ||||
-rw-r--r-- | xorg-x11-drv-synaptics.spec | 111 |
5 files changed, 216 insertions, 0 deletions
@@ -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" @@ -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 |