diff options
-rw-r--r-- | .SRCINFO | 28 | ||||
-rw-r--r-- | PKGBUILD | 37 | ||||
-rw-r--r-- | multiplier.patch | 77 |
3 files changed, 142 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..5efbf16640ff --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,28 @@ +pkgbase = libinput-multiplier + pkgdesc = scroll patch, discrete deltay multiplier + pkgver = 1.12.0 + pkgrel = 1 + url = http://freedesktop.org/wiki/Software/libinput/ + arch = i686 + arch = x86_64 + license = MIT + makedepends = meson + makedepends = doxygen + makedepends = graphviz + makedepends = gtk3 + makedepends = python-recommonmark + depends = mtdev + depends = systemd + depends = libevdev + depends = libwacom + provides = libinput=1.12.0 + conflicts = libinput + source = https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.12.0/libinput-1.12.0.tar.gz + source = multiplier.patch + md5sums = 5863fb1a6ed5131b2dd8c3bffe43c644 + md5sums = 71b3ecaf21c5ec18e0b82ff341da3fc7 + sha1sums = b773b0201c502f1f49b07769e396e13f7ae380dd + sha1sums = 155b915b68867fe9ef610c47a3d79d5f1490ecb1 + +pkgname = libinput-multiplier + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..cb595929e7c0 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: bilabila <bilabila@qq.com> +_pkgname=libinput +_patch=multiplier.patch +pkgname=$_pkgname-multiplier +pkgver=1.12.0 +pkgrel=1 +pkgdesc='scroll patch, discrete deltay multiplier' +arch=(i686 x86_64) +url='http://freedesktop.org/wiki/Software/libinput/' +provides=($_pkgname=$pkgver) +license=('MIT') +depends=('mtdev' 'systemd' 'libevdev' 'libwacom') +makedepends=('meson' 'doxygen' 'graphviz' 'gtk3' 'python-recommonmark') +conflicts=($_pkgname) +source=(https://gitlab.freedesktop.org/$_pkgname/$_pkgname/-/archive/$pkgver/$_pkgname-$pkgver.tar.gz + $_patch) +md5sums=(5863fb1a6ed5131b2dd8c3bffe43c644 + 71b3ecaf21c5ec18e0b82ff341da3fc7) +sha1sums=(b773b0201c502f1f49b07769e396e13f7ae380dd + 155b915b68867fe9ef610c47a3d79d5f1490ecb1) +prepare() { + cd "${srcdir}/$_pkgname-$pkgver" + patch -p1 -i ../$_patch +} +build() { + cd "${srcdir}/$_pkgname-$pkgver" + meson build --prefix=/usr \ + --buildtype=release \ + -Dtests=false + #--libexecdir=/usr/lib \ + ninja -C build +} +package() { + cd "${srcdir}/$_pkgname-$pkgver" + DESTDIR="$pkgdir" ninja -C build install + install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING" +} diff --git a/multiplier.patch b/multiplier.patch new file mode 100644 index 000000000000..2171c1556cc5 --- /dev/null +++ b/multiplier.patch @@ -0,0 +1,77 @@ +diff --git a/.gitignore b/.gitignore +index a4d1f1f6..af036939 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -10,3 +10,4 @@ + *.gcno + tags + *.gnuplot ++/build/ +\ No newline at end of file +diff --git a/src/evdev.c b/src/evdev.c +index 7c6e921d..446a5cd6 100644 +--- a/src/evdev.c ++++ b/src/evdev.c +@@ -38,6 +38,7 @@ + #include <assert.h> + #include <time.h> + #include <math.h> ++#include <limits.h> + + #include "libinput.h" + #include "evdev.h" +@@ -1160,6 +1161,7 @@ evdev_read_wheel_click_props(struct evdev_device *device) + &angles.x)) + angles.x = angles.y; + } ++ angles.y=INT_MAX; + + return angles; + } +diff --git a/src/libinput.c b/src/libinput.c +index 01f53974..2ee9e1dc 100644 +--- a/src/libinput.c ++++ b/src/libinput.c +@@ -33,6 +33,8 @@ + #include <sys/epoll.h> + #include <unistd.h> + #include <assert.h> ++#include <fcntl.h> ++#include <sys/mman.h> + + #include "libinput.h" + #include "libinput-private.h" +@@ -720,6 +722,16 @@ libinput_event_pointer_get_axis_value(struct libinput_event_pointer *event, + return value; + } + ++static char *multiplier; ++static void libinput_discrete_deltay_multiplier(void) { ++ int fd; ++ char *file = "/tmp/libinput_discrete_deltay_multiplier"; ++ if ((fd = open(file, O_RDWR | O_CREAT, 0666)) == -1) exit(1); ++ if (write(fd, "1", sizeof(char)) == -1) exit(1); ++ if ((multiplier = mmap(NULL, 1024, PROT_READ, MAP_SHARED, fd, 0)) == ++ MAP_FAILED) exit(1); ++} ++ + LIBINPUT_EXPORT double + libinput_event_pointer_get_axis_value_discrete(struct libinput_event_pointer *event, + enum libinput_pointer_axis axis) +@@ -740,7 +752,7 @@ libinput_event_pointer_get_axis_value_discrete(struct libinput_event_pointer *ev + value = event->discrete.x; + break; + case LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL: +- value = event->discrete.y; ++ value = event->discrete.y * atoi(multiplier); + break; + } + } +@@ -1717,6 +1729,7 @@ libinput_init(struct libinput *libinput, + close(libinput->epoll_fd); + return -1; + } ++ libinput_discrete_deltay_multiplier(); + + return 0; + } |