diff options
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | Logitech_G600.diff | 52 | ||||
-rw-r--r-- | PKGBUILD | 15 |
3 files changed, 70 insertions, 5 deletions
@@ -1,7 +1,9 @@ +# Generated by mksrcinfo v8 +# Wed Jan 6 09:36:37 UTC 2016 pkgbase = xf86-input-evdev-ahm pkgdesc = X.org evdev input driver + at-home-modifier patch pkgver = 2.10.0 - pkgrel = 3 + pkgrel = 4 url = https://gitlab.com/at-home-modifier/at-home-modifier-evdev/wikis/home arch = i686 arch = x86_64 @@ -16,7 +18,7 @@ pkgbase = xf86-input-evdev-ahm depends = mtdev depends = libevdev provides = xf86-input-driver - provides = xf86-input-evdev=2.10.0-2 + provides = xf86-input-evdev=2.10.0-3 conflicts = xorg-server<1.18.0 conflicts = X-ABI-XINPUT_VERSION<22 conflicts = X-ABI-XINPUT_VERSION>=23 @@ -24,9 +26,11 @@ pkgbase = xf86-input-evdev-ahm options = !makeflags source = http://xorg.freedesktop.org//releases/individual/driver/xf86-input-evdev-2.10.0.tar.bz2 source = http://xorg.freedesktop.org//releases/individual/driver/xf86-input-evdev-2.10.0.tar.bz2.sig + source = Logitech_G600.diff source = https://gitlab.com/at-home-modifier/download/raw/master/patch/ahm-2.10.0.patch sha256sums = d097298eb07b7a9edf4493b5c3c058041458ca52c8c62dbd4f40b84c5086d117 sha256sums = SKIP + sha256sums = 9d8aef7fde6e24a02f6344011c672b6a7fec8604012aea81ac00ba9c25166c41 sha256sums = 499aae4533fef8fbfb2cafc7ee495da549eee940ea701ecc13a5ed8d8c731775 pkgname = xf86-input-evdev-ahm diff --git a/Logitech_G600.diff b/Logitech_G600.diff new file mode 100644 index 000000000000..d6cabf7b10c4 --- /dev/null +++ b/Logitech_G600.diff @@ -0,0 +1,52 @@ +From d7e61a7074b802b49f57549530b289bbaa0a4855 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <peter.hutterer@who-t.net> +Date: Tue, 10 Nov 2015 14:35:51 +1000 +Subject: Only map x and y to axes 0 and 1 + +The Logitech G600 has one device with all axes north of ABS_MISC. The current +code assigns ABS_MISC as first axis to map to axis 0, i.e. x. On button press, +one node sends the BTN_LEFT but the other node sends an ABS_MISC with a 1 0 +value. ABS_MISC is mapped to axis 0, this moves the pointer to (0, y) on +every button click. + +Avoid this by simply mapping any axis other than x/y to at least axis 3, and +make sure we only override the MT 0/1 axes when we actually have MT axes. + +https://bugs.freedesktop.org/show_bug.cgi?id=92856 + +Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> +Reviewed-by: Keith Packard <keithp@keithp.com> + +diff --git a/src/evdev.c b/src/evdev.c +index 17d9d61..3176660 100644 +--- a/src/evdev.c ++++ b/src/evdev.c +@@ -1377,7 +1377,7 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int num_scroll_axes) + } + atoms = malloc((pEvdev->num_vals + num_mt_axes) * sizeof(Atom)); + +- i = 0; ++ i = 2; + for (axis = ABS_X; i < MAX_VALUATORS && axis <= ABS_MAX; axis++) { + int j; + pEvdev->abs_axis_map[axis] = -1; +@@ -1385,9 +1385,14 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int num_scroll_axes) + is_blacklisted_axis(axis)) + continue; + +- mapping = i; ++ if (axis == ABS_X) ++ mapping = 0; ++ else if (axis == ABS_Y) ++ mapping = 1; ++ else ++ mapping = i; + +- for (j = 0; j < ArrayLength(mt_axis_mappings); j++) ++ for (j = 0; !pEvdev->fake_mt && j < ArrayLength(mt_axis_mappings); j++) + { + if (mt_axis_mappings[j].code == axis) + mt_axis_mappings[j].mapping = mapping; +-- +cgit v0.10.2 + @@ -6,7 +6,7 @@ _name=at-home-modifier pkgname=xf86-input-evdev-ahm _pkgname_orig=xf86-input-evdev pkgver=2.10.0 -pkgrel=3 +pkgrel=4 pkgdesc='X.org evdev input driver + at-home-modifier patch' arch=(i686 x86_64) url='https://gitlab.com/at-home-modifier/at-home-modifier-evdev/wikis/home' @@ -14,20 +14,29 @@ _url_orig='http://xorg.freedesktop.org/' license=('custom') depends=('glibc' 'systemd' 'mtdev' 'libevdev') makedepends=('xorg-server-devel' 'resourceproto' 'scrnsaverproto') -provides=('xf86-input-driver' 'xf86-input-evdev=2.10.0-2') +provides=('xf86-input-driver' 'xf86-input-evdev=2.10.0-3') conflicts=('xorg-server<1.18.0' 'X-ABI-XINPUT_VERSION<22' 'X-ABI-XINPUT_VERSION>=23' 'xf86-input-evdev') options=('!makeflags') groups=('xorg-drivers' 'xorg') source=(${_url_orig}/releases/individual/driver/${_pkgname_orig}-${pkgver}.tar.bz2{,.sig} + Logitech_G600.diff https://gitlab.com/at-home-modifier/download/raw/master/patch/ahm-2.10.0.patch) sha256sums=('d097298eb07b7a9edf4493b5c3c058041458ca52c8c62dbd4f40b84c5086d117' 'SKIP' + '9d8aef7fde6e24a02f6344011c672b6a7fec8604012aea81ac00ba9c25166c41' '499aae4533fef8fbfb2cafc7ee495da549eee940ea701ecc13a5ed8d8c731775') validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net> -build() { +prepare() { cd "${_pkgname_orig}-${pkgver}" + # FS#46994 - https://bugs.freedesktop.org/show_bug.cgi?id=92856 + patch -Np1 -i ${srcdir}/Logitech_G600.diff + # at-home-modifier patch patch -p1 -i "${srcdir}/ahm-2.10.0.patch" +} + +build() { + cd "${_pkgname_orig}-${pkgver}" ./configure --prefix=/usr make } |