summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO8
-rw-r--r--Logitech_G600.diff52
-rw-r--r--PKGBUILD15
3 files changed, 70 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d35d95697504..383ec3a62096 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
+
diff --git a/PKGBUILD b/PKGBUILD
index b10c1be6e257..977b25094c18 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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
}