[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

libinput: Changes to 'ubuntu'



 .gitignore                                                                     |    2 
 Makefile.am                                                                    |    3 
 autogen.sh                                                                     |    6 
 configure.ac                                                                   |   30 
 debian/changelog                                                               |   49 
 debian/control                                                                 |    2 
 debian/libinput10.symbols                                                      |    7 
 debian/patches/0001-libinput-add-orientation-and-size-of-touch-point-and.patch |  109 
 debian/patches/0002-extend-tools-to-print-and-display-touch-event-proper.patch |   29 
 debian/patches/0003-Fix-premature-flushing-of-evdev-event-on-mx4-touchsc.patch |   23 
 debian/patches/0004-Keep-stanza-for-new-symbols-on-version-0.22.0.patch        |   15 
 debian/source/local-options                                                    |    1 
 doc/Makefile.am                                                                |    8 
 doc/building.dox                                                               |   79 
 doc/device-configuration-via-udev.dox                                          |    6 
 doc/faqs.dox                                                                   |   31 
 doc/libinput.doxygen.in                                                        |    6 
 doc/page-hierarchy.dox                                                         |    3 
 doc/pointer-acceleration.dox                                                   |    9 
 doc/style/header.html                                                          |    2 
 doc/style/libinputdoxygen.css                                                  |   47 
 doc/svg/ptraccel-touchpad.svg                                                  | 1971 ---
 doc/switches.dox                                                               |   16 
 doc/tapping.dox                                                                |   10 
 doc/touchpad-pressure.dox                                                      |  138 
 doc/what-is-libinput.dox                                                       |   54 
 src/Makefile.am                                                                |   18 
 src/evdev-lid.c                                                                |  302 
 src/evdev-middle-button.c                                                      |   36 
 src/evdev-mt-touchpad-buttons.c                                                |   64 
 src/evdev-mt-touchpad-edge-scroll.c                                            |   37 
 src/evdev-mt-touchpad-gestures.c                                               |   53 
 src/evdev-mt-touchpad-tap.c                                                    |   96 
 src/evdev-mt-touchpad.c                                                        |  512 -
 src/evdev-mt-touchpad.h                                                        |   51 
 src/evdev-tablet-pad-leds.c                                                    |  492 
 src/evdev-tablet-pad.c                                                         |   29 
 src/evdev-tablet-pad.h                                                         |   10 
 src/evdev-tablet.c                                                             |  114 
 src/evdev-tablet.h                                                             |   10 
 src/evdev.c                                                                    |  586 -
 src/evdev.h                                                                    |  242 
 src/filter-private.h                                                           |    4 
 src/filter.c                                                                   |  423 
 src/filter.h                                                                   |   25 
 src/libinput-private.h                                                         |   69 
 src/libinput-util.c                                                            |  153 
 src/libinput-util.h                                                            |   21 
 src/libinput.c                                                                 |  155 
 src/libinput.h                                                                 |  187 
 src/libinput.sym                                                               |    9 
 src/path-seat.c                                                                |  390 
 src/path-seat.h                                                                |   45 
 src/path.c                                                                     |  385 
 src/path.h                                                                     |   47 
 src/timer.c                                                                    |   28 
 src/timer.h                                                                    |   10 
 src/udev-seat.c                                                                |   26 
 test/Makefile.am                                                               |   78 
 test/device.c                                                                  | 1519 --
 test/generate-gcov-report.sh                                                   |   42 
 test/gestures.c                                                                | 1241 --
 test/keyboard.c                                                                |  392 
 test/litest-device-acer-hawaii-keyboard.c                                      |  208 
 test/litest-device-acer-hawaii-touchpad.c                                      |  113 
 test/litest-device-alps-dualpoint.c                                            |   78 
 test/litest-device-alps-semi-mt.c                                              |   76 
 test/litest-device-anker-mouse-kbd.c                                           |    2 
 test/litest-device-apple-appletouch.c                                          |  115 
 test/litest-device-apple-internal-keyboard.c                                   |    2 
 test/litest-device-apple-magicmouse.c                                          |   21 
 test/litest-device-asus-rog-gladius.c                                          |    2 
 test/litest-device-atmel-hover.c                                               |   16 
 test/litest-device-bcm5974.c                                                   |    5 
 test/litest-device-calibrated-touchscreen.c                                    |  102 
 test/litest-device-cyborg-rat-5.c                                              |    2 
 test/litest-device-elantech-touchpad.c                                         |    2 
 test/litest-device-generic-singletouch.c                                       |    2 
 test/litest-device-huion-pentablet.c                                           |   35 
 test/litest-device-keyboard-all-codes.c                                        |    2 
 test/litest-device-keyboard-razer-blackwidow.c                                 |    2 
 test/litest-device-keyboard.c                                                  |    5 
 test/litest-device-lid-switch-surface3.c                                       |   71 
 test/litest-device-lid-switch.c                                                |   70 
 test/litest-device-logitech-trackball.c                                        |    2 
 test/litest-device-magic-trackpad.c                                            |   13 
 test/litest-device-mouse-low-dpi.c                                             |    2 
 test/litest-device-mouse-roccat.c                                              |    2 
 test/litest-device-mouse-wheel-click-angle.c                                   |    4 
 test/litest-device-mouse-wheel-click-count.c                                   |    2 
 test/litest-device-mouse-wheel-tilt.c                                          |   76 
 test/litest-device-mouse.c                                                     |    2 
 test/litest-device-ms-surface-cover.c                                          |    2 
 test/litest-device-nexus4-touch-screen.c                                       |    2 
 test/litest-device-protocol-a-touch-screen.c                                   |    2 
 test/litest-device-qemu-usb-tablet.c                                           |    2 
 test/litest-device-synaptics-hover.c                                           |   78 
 test/litest-device-synaptics-i2c.c                                             |    4 
 test/litest-device-synaptics-rmi4.c                                            |  132 
 test/litest-device-synaptics-st.c                                              |   17 
 test/litest-device-synaptics-t440.c                                            |    2 
 test/litest-device-synaptics-x1-carbon-3rd.c                                   |    2 
 test/litest-device-synaptics.c                                                 |    2 
 test/litest-device-touch-screen.c                                              |    2 
 test/litest-device-touchscreen-fuzz.c                                          |    2 
 test/litest-device-trackpoint.c                                                |    2 
 test/litest-device-vmware-virtual-usb-mouse.c                                  |    2 
 test/litest-device-wacom-bamboo-16fg-pen.c                                     |  118 
 test/litest-device-wacom-bamboo-tablet.c                                       |  119 
 test/litest-device-wacom-cintiq-12wx-pen.c                                     |  157 
 test/litest-device-wacom-cintiq-13hdt-finger.c                                 |   35 
 test/litest-device-wacom-cintiq-13hdt-pad.c                                    |   35 
 test/litest-device-wacom-cintiq-13hdt-pen.c                                    |   35 
 test/litest-device-wacom-cintiq-24hd-pen.c                                     |  146 
 test/litest-device-wacom-cintiq-24hd.c                                         |  147 
 test/litest-device-wacom-cintiq-24hdt-pad.c                                    |   35 
 test/litest-device-wacom-cintiq-tablet.c                                       |  158 
 test/litest-device-wacom-ekr.c                                                 |   35 
 test/litest-device-wacom-hid4800-pen.c                                         |   35 
 test/litest-device-wacom-intuos-finger.c                                       |  114 
 test/litest-device-wacom-intuos-tablet.c                                       |  173 
 test/litest-device-wacom-intuos3-pad.c                                         |   35 
 test/litest-device-wacom-intuos5-finger.c                                      |  112 
 test/litest-device-wacom-intuos5-pad.c                                         |   35 
 test/litest-device-wacom-intuos5-pen.c                                         |  172 
 test/litest-device-wacom-isdv4-e6-finger.c                                     |   97 
 test/litest-device-wacom-isdv4-e6-pen.c                                        |  111 
 test/litest-device-wacom-isdv4-tablet.c                                        |  112 
 test/litest-device-wacom-touch.c                                               |   99 
 test/litest-device-waltop-tablet.c                                             |   46 
 test/litest-device-wheel-only.c                                                |    2 
 test/litest-device-xen-virtual-pointer.c                                       |    2 
 test/litest-device-yubikey.c                                                   |    2 
 test/litest-int.h                                                              |    2 
 test/litest.c                                                                  |  428 
 test/litest.h                                                                  |   75 
 test/log.c                                                                     |  150 
 test/misc.c                                                                    | 1091 --
 test/pad.c                                                                     |  663 -
 test/path.c                                                                    |  964 -
 test/pointer.c                                                                 | 1817 ---
 test/tablet.c                                                                  | 4191 --------
 test/test-device.c                                                             | 1678 +++
 test/test-gestures.c                                                           | 1295 ++
 test/test-keyboard.c                                                           |  440 
 test/test-lid.c                                                                |  473 
 test/test-log.c                                                                |  200 
 test/test-misc.c                                                               | 1329 ++
 test/test-pad.c                                                                |  794 +
 test/test-path.c                                                               |  975 +
 test/test-pointer.c                                                            | 2137 ++++
 test/test-tablet.c                                                             | 4353 ++++++++
 test/test-touch.c                                                              |  923 +
 test/test-touchpad-buttons.c                                                   | 2011 +++
 test/test-touchpad-tap.c                                                       | 2254 ++++
 test/test-touchpad.c                                                           | 5092 ++++++++++
 test/test-trackball.c                                                          |  273 
 test/test-trackpoint.c                                                         |  396 
 test/test-udev.c                                                               |  582 +
 test/touch.c                                                                   |  752 -
 test/touchpad-buttons.c                                                        | 1865 ---
 test/touchpad-tap.c                                                            | 2209 ----
 test/touchpad.c                                                                | 4778 ---------
 test/trackball.c                                                               |  273 
 test/trackpoint.c                                                              |  391 
 test/udev.c                                                                    |  525 -
 tools/Makefile.am                                                              |   12 
 tools/event-debug.c                                                            |  333 
 tools/event-gui.c                                                              |   11 
 tools/libinput-debug-events.man                                                |   12 
 tools/libinput-list-devices.c                                                  |   14 
 tools/libinput-list-devices.man                                                |    2 
 tools/make-ptraccel-graphs.sh                                                  |   16 
 tools/ptraccel-debug.c                                                         |   69 
 tools/shared.c                                                                 |   44 
 tools/shared.h                                                                 |    6 
 udev/90-libinput-model-quirks.hwdb                                             |   45 
 udev/parse_hwdb.py                                                             |   21 
 178 files changed, 32433 insertions(+), 27542 deletions(-)

New commits:
commit 5c02ab179f37694fcedbc9fc76e6c22ba3779ba8
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Wed May 17 16:38:25 2017 +0300

    refresh patches

diff --git a/debian/changelog b/debian/changelog
index 3cabca9..1570738 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+libinput (1.7.2-1ubuntu1) UNRELEASED; urgency=medium
+
+  * Merge from Debian.
+  * Refresh patches.
+
+ -- Timo Aaltonen <tjaalton@debian.org>  Wed, 17 May 2017 16:37:50 +0300
+
 libinput (1.7.2-1) experimental; urgency=medium
 
   * New upstream release.
diff --git a/debian/patches/0001-libinput-add-orientation-and-size-of-touch-point-and.patch b/debian/patches/0001-libinput-add-orientation-and-size-of-touch-point-and.patch
index 6eafa9c..b788b46 100644
--- a/debian/patches/0001-libinput-add-orientation-and-size-of-touch-point-and.patch
+++ b/debian/patches/0001-libinput-add-orientation-and-size-of-touch-point-and.patch
@@ -37,14 +37,14 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
 --- a/doc/Makefile.am
 +++ b/doc/Makefile.am
 @@ -28,6 +28,7 @@ header_files = \
+ 	$(srcdir)/tapping.dox \
  	$(srcdir)/test-suite.dox \
  	$(srcdir)/tools.dox \
- 	$(srcdir)/touchpad-jumping-cursors.dox \
 +	$(srcdir)/touch-event-properties.dox \
- 	$(srcdir)/touchpads.dox
- 
- diagram_files = \
-@@ -62,6 +63,7 @@ diagram_files = \
+ 	$(srcdir)/touchpad-jumping-cursors.dox \
+ 	$(srcdir)/touchpad-pressure.dox \
+ 	$(srcdir)/touchpads.dox \
+@@ -65,6 +66,7 @@ diagram_files = \
  	$(srcdir)/svg/thumb-detection.svg \
  	$(srcdir)/svg/top-software-buttons.svg \
  	$(srcdir)/svg/touchscreen-gestures.svg \
@@ -54,7 +54,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  style_files = \
 --- a/doc/page-hierarchy.dox
 +++ b/doc/page-hierarchy.dox
-@@ -13,6 +13,7 @@
+@@ -14,6 +14,7 @@
  @page touchscreens Touchscreens
  
  - @subpage absolute_axes
@@ -462,7 +462,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
 @@ -49,6 +49,10 @@
  
  #define DEFAULT_WHEEL_CLICK_ANGLE 15
- #define DEFAULT_MIDDLE_BUTTON_SCROLL_TIMEOUT ms2us(200)
+ #define DEFAULT_BUTTON_SCROLL_TIMEOUT ms2us(200)
 +#define DEFAULT_TOUCH_PRESSURE 1.0
 +#define DEFAULT_TOUCH_ORIENTATION 0.0
 +#define DEFAULT_TOUCH_MAJOR 0.0
@@ -470,7 +470,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  
  enum evdev_key_type {
  	EVDEV_KEY_TYPE_NONE,
-@@ -343,6 +347,100 @@ evdev_device_transform_y(struct evdev_de
+@@ -374,6 +378,100 @@ evdev_device_transform_y(struct evdev_de
  	return scale_axis(device->abs.absinfo_y, y, height);
  }
  
@@ -571,7 +571,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  static inline void
  normalize_delta(struct evdev_device *device,
  		const struct device_coords *delta,
-@@ -484,6 +582,7 @@ fallback_flush_mt_down(struct fallback_d
+@@ -523,6 +621,7 @@ fallback_flush_mt_down(struct fallback_d
  	struct libinput_seat *seat = base->seat;
  	struct device_coords point;
  	struct mt_slot *slot;
@@ -579,7 +579,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  	int seat_slot;
  
  	if (!(device->seat_caps & EVDEV_DEVICE_TOUCH))
-@@ -512,7 +611,8 @@ fallback_flush_mt_down(struct fallback_d
+@@ -547,7 +646,8 @@ fallback_flush_mt_down(struct fallback_d
  	evdev_transform_absolute(device, &point);
  
  	touch_notify_touch_down(base, time, slot_idx, seat_slot,
@@ -589,7 +589,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  
  	return true;
  }
-@@ -543,7 +643,7 @@ fallback_flush_mt_motion(struct fallback
+@@ -578,7 +678,7 @@ fallback_flush_mt_motion(struct fallback
  
  	evdev_transform_absolute(device, &point);
  	touch_notify_touch_motion(base, time, slot_idx, seat_slot,
@@ -598,7 +598,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  
  	return true;
  }
-@@ -584,6 +684,11 @@ fallback_flush_st_down(struct fallback_d
+@@ -619,6 +719,11 @@ fallback_flush_st_down(struct fallback_d
  	struct libinput_device *base = &device->base;
  	struct libinput_seat *seat = base->seat;
  	struct device_coords point;
@@ -610,7 +610,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  	int seat_slot;
  
  	if (!(device->seat_caps & EVDEV_DEVICE_TOUCH))
-@@ -610,7 +715,8 @@ fallback_flush_st_down(struct fallback_d
+@@ -641,7 +746,8 @@ fallback_flush_st_down(struct fallback_d
  	point = dispatch->abs.point;
  	evdev_transform_absolute(device, &point);
  
@@ -620,7 +620,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  
  	return true;
  }
-@@ -622,6 +728,11 @@ fallback_flush_st_motion(struct fallback
+@@ -653,6 +759,11 @@ fallback_flush_st_motion(struct fallback
  {
  	struct libinput_device *base = &device->base;
  	struct device_coords point;
@@ -632,7 +632,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  	int seat_slot;
  
  	point = dispatch->abs.point;
-@@ -632,7 +743,8 @@ fallback_flush_st_motion(struct fallback
+@@ -663,7 +774,8 @@ fallback_flush_st_motion(struct fallback
  	if (seat_slot == -1)
  		return false;
  
@@ -642,7 +642,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  
  	return true;
  }
-@@ -851,6 +963,9 @@ fallback_process_touch(struct fallback_d
+@@ -882,6 +994,9 @@ fallback_process_touch(struct fallback_d
  		       struct input_event *e,
  		       uint64_t time)
  {
@@ -652,7 +652,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  	switch (e->code) {
  	case ABS_MT_SLOT:
  		if ((size_t)e->value >= dispatch->mt.slots_len) {
-@@ -882,10 +997,28 @@ fallback_process_touch(struct fallback_d
+@@ -912,10 +1027,28 @@ fallback_process_touch(struct fallback_d
  	case ABS_MT_POSITION_Y:
  		evdev_device_check_abs_axis_range(device, e->code, e->value);
  		dispatch->mt.slots[dispatch->mt.slot].point.y = e->value;
@@ -683,7 +683,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  }
  static inline void
  fallback_process_absolute_motion(struct fallback_dispatch *dispatch,
-@@ -1709,6 +1842,21 @@ fallback_dispatch_init_slots(struct fall
+@@ -1755,6 +1888,21 @@ fallback_dispatch_init_slots(struct fall
  		slots[slot].point.y = libevdev_get_slot_value(evdev,
  							      slot,
  							      ABS_MT_POSITION_Y);
@@ -705,7 +705,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  	}
  	dispatch->mt.slots = slots;
  	dispatch->mt.slots_len = num_slots;
-@@ -2545,6 +2693,15 @@ evdev_configure_device(struct evdev_devi
+@@ -2583,6 +2731,15 @@ evdev_configure_device(struct evdev_devi
  		return NULL;
  	}
  
@@ -723,7 +723,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  
 --- a/src/evdev.h
 +++ b/src/evdev.h
-@@ -130,6 +130,8 @@ struct mt_slot {
+@@ -139,6 +139,8 @@ struct mt_slot {
  	int32_t seat_slot;
  	struct device_coords point;
  	struct device_coords hysteresis_center;
@@ -732,7 +732,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  };
  
  struct evdev_device {
-@@ -156,6 +158,8 @@ struct evdev_device {
+@@ -165,6 +167,8 @@ struct evdev_device {
  
  	struct {
  		const struct input_absinfo *absinfo_x, *absinfo_y;
@@ -741,7 +741,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  		bool is_fake_resolution;
  
  		int apply_calibration;
-@@ -448,6 +452,27 @@ double
+@@ -500,6 +504,27 @@ double
  evdev_device_transform_y(struct evdev_device *device,
  			 double y,
  			 uint32_t height);
@@ -783,7 +783,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  /*
   * A coordinate pair in device coordinates, capable of holding non discrete
   * values, this is necessary e.g. when device coordinates get averaged.
-@@ -515,14 +520,18 @@ touch_notify_touch_down(struct libinput_
+@@ -523,14 +528,18 @@ touch_notify_touch_down(struct libinput_
  			uint64_t time,
  			int32_t slot,
  			int32_t seat_slot,
@@ -815,7 +815,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  };
  
  struct libinput_event_gesture {
-@@ -793,6 +795,204 @@ libinput_event_touch_get_y(struct libinp
+@@ -803,6 +805,204 @@ libinput_event_touch_get_y(struct libinp
  	return evdev_convert_to_mm(device->abs.absinfo_y, event->point.y);
  }
  
@@ -1020,7 +1020,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  LIBINPUT_EXPORT uint32_t
  libinput_event_gesture_get_time(struct libinput_event_gesture *event)
  {
-@@ -2181,7 +2381,9 @@ touch_notify_touch_down(struct libinput_
+@@ -2251,7 +2451,9 @@ touch_notify_touch_down(struct libinput_
  			uint64_t time,
  			int32_t slot,
  			int32_t seat_slot,
@@ -1031,7 +1031,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  {
  	struct libinput_event_touch *touch_event;
  
-@@ -2197,6 +2399,8 @@ touch_notify_touch_down(struct libinput_
+@@ -2267,6 +2469,8 @@ touch_notify_touch_down(struct libinput_
  		.slot = slot,
  		.seat_slot = seat_slot,
  		.point = *point,
@@ -1040,7 +1040,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  	};
  
  	post_device_event(device, time,
-@@ -2209,7 +2413,9 @@ touch_notify_touch_motion(struct libinpu
+@@ -2279,7 +2483,9 @@ touch_notify_touch_motion(struct libinpu
  			  uint64_t time,
  			  int32_t slot,
  			  int32_t seat_slot,
@@ -1051,7 +1051,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  {
  	struct libinput_event_touch *touch_event;
  
-@@ -2225,6 +2431,8 @@ touch_notify_touch_motion(struct libinpu
+@@ -2295,6 +2501,8 @@ touch_notify_touch_motion(struct libinpu
  		.slot = slot,
  		.seat_slot = seat_slot,
  		.point = *point,
@@ -1062,7 +1062,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  	post_device_event(device, time,
 --- a/src/libinput.h
 +++ b/src/libinput.h
-@@ -1475,6 +1475,228 @@ libinput_event_touch_get_y_transformed(s
+@@ -1542,6 +1542,228 @@ libinput_event_touch_get_y_transformed(s
  /**
   * @ingroup event_touch
   *
@@ -1293,12 +1293,12 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  struct libinput_event *
 --- a/src/libinput.sym
 +++ b/src/libinput.sym
-@@ -280,3 +280,16 @@ LIBINPUT_1.5 {
- 	libinput_device_config_tap_get_default_button_map;
- 	libinput_device_config_tap_set_button_map;
- } LIBINPUT_1.4;
+@@ -289,3 +289,16 @@ LIBINPUT_1.7 {
+ 	libinput_event_switch_get_time;
+ 	libinput_event_switch_get_time_usec;
+ } LIBINPUT_1.5;
 +
-+LIBINPUT_1.6_unreleased {
++LIBINPUT_1.7_unreleased {
 +	libinput_event_touch_get_major;
 +	libinput_event_touch_get_major_transformed;
 +	libinput_event_touch_get_minor;
@@ -1312,7 +1312,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
 +} LIBINPUT_1.5;
 --- a/test/test-touch.c
 +++ b/test/test-touch.c
-@@ -818,6 +818,245 @@ START_TEST(touch_fuzz)
+@@ -887,6 +887,245 @@ START_TEST(touch_fuzz)
  }
  END_TEST
  
@@ -1558,7 +1558,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  void
  litest_setup_tests_touch(void)
  {
-@@ -844,10 +1083,13 @@ litest_setup_tests_touch(void)
+@@ -914,10 +1153,13 @@ litest_setup_tests_touch(void)
  	litest_add("touch:protocol a", touch_protocol_a_init, LITEST_PROTOCOL_A, LITEST_ANY);
  	litest_add("touch:protocol a", touch_protocol_a_touch, LITEST_PROTOCOL_A, LITEST_ANY);
  	litest_add("touch:protocol a", touch_protocol_a_2fg_touch, LITEST_PROTOCOL_A, LITEST_ANY);
diff --git a/debian/patches/0002-extend-tools-to-print-and-display-touch-event-proper.patch b/debian/patches/0002-extend-tools-to-print-and-display-touch-event-proper.patch
index 6ec7e47..3231bfe 100644
--- a/debian/patches/0002-extend-tools-to-print-and-display-touch-event-proper.patch
+++ b/debian/patches/0002-extend-tools-to-print-and-display-touch-event-proper.patch
@@ -15,7 +15,7 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
 
 --- a/tools/event-debug.c
 +++ b/tools/event-debug.c
-@@ -584,14 +584,41 @@ print_touch_event_with_coords(struct lib
+@@ -606,14 +606,41 @@ print_touch_event_with_coords(struct lib
  	double y = libinput_event_touch_get_y_transformed(t, screen_height);
  	double xmm = libinput_event_touch_get_x(t);
  	double ymm = libinput_event_touch_get_y(t);
@@ -38,21 +38,21 @@ Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
  
  	print_event_time(libinput_event_touch_get_time(t));
  
--	printf("%d (%d) %5.2f/%5.2f (%5.2f/%5.2fmm)\n",
-+	printf("%d (%d) %5.2f/%5.2f (%5.2f/%5.2fmm)",
+-	printq("%d (%d) %5.2f/%5.2f (%5.2f/%5.2fmm)\n",
++	printq("%d (%d) %5.2f/%5.2f (%5.2f/%5.2fmm)",
  	       libinput_event_touch_get_slot(t),
  	       libinput_event_touch_get_seat_slot(t),
  	       x, y,
  	       xmm, ymm);
 +
 +	if (has_major)
-+		printf(" major:%3.2f/%3.2fmm", major, majormm);
++	        printq(" major:%3.2f/%3.2fmm", major, majormm);
 +	if (has_minor)
-+		printf(" minor:%3.2f/%3.2fmm", minor, minormm);
++	        printq(" minor:%3.2f/%3.2fmm", minor, minormm);
 +	if (has_orientation)
-+		printf(" o:%3.1f°", orientation);
++	        printq(" o:%3.1f°", orientation);
 +	if (has_pressure)
-+		printf(" p:%1.2f", pressure);
++	        printq(" p:%1.2f", pressure);
 +
 +	printf("\n");
  }
diff --git a/debian/patches/0004-Keep-stanza-for-new-symbols-on-version-0.22.0.patch b/debian/patches/0004-Keep-stanza-for-new-symbols-on-version-0.22.0.patch
index e8105fa..7ba3961 100644
--- a/debian/patches/0004-Keep-stanza-for-new-symbols-on-version-0.22.0.patch
+++ b/debian/patches/0004-Keep-stanza-for-new-symbols-on-version-0.22.0.patch
@@ -8,8 +8,6 @@ This is necessary to stay compatible with previous mir server
  src/libinput.sym | 28 ++++++++++++++--------------
  1 file changed, 14 insertions(+), 14 deletions(-)
 
-diff --git a/src/libinput.sym b/src/libinput.sym
-index b4b3599..2bbbe2c 100644
 --- a/src/libinput.sym
 +++ b/src/libinput.sym
 @@ -174,12 +174,25 @@ LIBINPUT_0.21.0 {
@@ -39,12 +37,12 @@ index b4b3599..2bbbe2c 100644
  
  LIBINPUT_1.2 {
  	libinput_device_config_tap_get_drag_enabled;
-@@ -280,16 +293,3 @@ LIBINPUT_1.5 {
- 	libinput_device_config_tap_get_default_button_map;
- 	libinput_device_config_tap_set_button_map;
- } LIBINPUT_1.4;
+@@ -289,16 +302,3 @@ LIBINPUT_1.7 {
+ 	libinput_event_switch_get_time;
+ 	libinput_event_switch_get_time_usec;
+ } LIBINPUT_1.5;
 -
--LIBINPUT_1.6_unreleased {
+-LIBINPUT_1.7_unreleased {
 -	libinput_event_touch_get_major;
 -	libinput_event_touch_get_major_transformed;
 -	libinput_event_touch_get_minor;
@@ -56,6 +54,3 @@ index b4b3599..2bbbe2c 100644
 -	libinput_event_touch_has_orientation;
 -	libinput_event_touch_has_pressure;
 -} LIBINPUT_1.5;
--- 
-2.9.3
-

commit 30284fc5bc2e851da5c4dd466b013a7370075dd2
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Wed May 17 15:53:32 2017 +0300

    release to experimental

diff --git a/debian/changelog b/debian/changelog
index dd0fe6b..97b8616 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-libinput (1.7.2-1) UNRELEASED; urgency=medium
+libinput (1.7.2-1) experimental; urgency=medium
 
   * New upstream release.
   * local-options: Add test/generate-gcov-report.sh to extend-diff-
     ignore.
   * Update symbols file.
 
- -- Timo Aaltonen <tjaalton@debian.org>  Thu, 23 Mar 2017 11:55:01 +0200
+ -- Timo Aaltonen <tjaalton@debian.org>  Wed, 17 May 2017 15:53:14 +0300
 
 libinput (1.6.3-1) unstable; urgency=medium
 

commit dcf4b91c42d9e4f1355399ffdf9752f764f8d5e2
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Wed May 17 15:17:35 2017 +0300

    Update symbols file.

diff --git a/debian/changelog b/debian/changelog
index 77e09bd..dd0fe6b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ libinput (1.7.2-1) UNRELEASED; urgency=medium
   * New upstream release.
   * local-options: Add test/generate-gcov-report.sh to extend-diff-
     ignore.
+  * Update symbols file.
 
  -- Timo Aaltonen <tjaalton@debian.org>  Thu, 23 Mar 2017 11:55:01 +0200
 
diff --git a/debian/libinput10.symbols b/debian/libinput10.symbols
index f98607e..edff3cb 100644
--- a/debian/libinput10.symbols
+++ b/debian/libinput10.symbols
@@ -11,6 +11,7 @@ libinput.so.10 libinput10 #MINVER#
  LIBINPUT_1.3@LIBINPUT_1.3 1.3.0
  LIBINPUT_1.4@LIBINPUT_1.4 1.4.0
  LIBINPUT_1.5@LIBINPUT_1.5 1.5.0
+ LIBINPUT_1.7@LIBINPUT_1.7 1.7.2
  libinput_config_status_to_str@LIBINPUT_0.12.0 0.15.0
  libinput_device_config_accel_get_default_profile@LIBINPUT_1.1 1.1.0
  libinput_device_config_accel_get_default_speed@LIBINPUT_0.12.0 0.15.0
@@ -120,6 +121,7 @@ libinput.so.10 libinput10 #MINVER#
  libinput_event_get_gesture_event@LIBINPUT_0.20.0 0.21.0
  libinput_event_get_keyboard_event@LIBINPUT_0.12.0 0.15.0
  libinput_event_get_pointer_event@LIBINPUT_0.12.0 0.15.0
+ libinput_event_get_switch_event@LIBINPUT_1.7 1.7.2
  libinput_event_get_tablet_pad_event@LIBINPUT_1.3 1.3.0
  libinput_event_get_tablet_tool_event@LIBINPUT_1.2 1.2.0
  libinput_event_get_touch_event@LIBINPUT_0.12.0 0.15.0
@@ -148,6 +150,11 @@ libinput.so.10 libinput10 #MINVER#
  libinput_event_pointer_get_time@LIBINPUT_0.12.0 0.15.0
  libinput_event_pointer_get_time_usec@LIBINPUT_0.21.0 0.21.0
  libinput_event_pointer_has_axis@LIBINPUT_0.12.0 0.15.0
+ libinput_event_switch_get_base_event@LIBINPUT_1.7 1.7.2
+ libinput_event_switch_get_switch@LIBINPUT_1.7 1.7.2
+ libinput_event_switch_get_switch_state@LIBINPUT_1.7 1.7.2
+ libinput_event_switch_get_time@LIBINPUT_1.7 1.7.2
+ libinput_event_switch_get_time_usec@LIBINPUT_1.7 1.7.2
  libinput_event_tablet_pad_get_base_event@LIBINPUT_1.3 1.3.0
  libinput_event_tablet_pad_get_button_number@LIBINPUT_1.3 1.3.0
  libinput_event_tablet_pad_get_button_state@LIBINPUT_1.3 1.3.0

commit 533c0a1fa8455d2a1b769e6e26f774fc9f10c6e7
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Wed May 17 14:58:32 2017 +0300

    local-options: Add test/generate-gcov-report.sh to extend-diff- ignore.

diff --git a/debian/changelog b/debian/changelog
index eda3afc..77e09bd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 libinput (1.7.2-1) UNRELEASED; urgency=medium
 
   * New upstream release.
+  * local-options: Add test/generate-gcov-report.sh to extend-diff-
+    ignore.
 
  -- Timo Aaltonen <tjaalton@debian.org>  Thu, 23 Mar 2017 11:55:01 +0200
 
diff --git a/debian/source/local-options b/debian/source/local-options
index c6e3758..5c590d8 100644
--- a/debian/source/local-options
+++ b/debian/source/local-options
@@ -1 +1,2 @@
 extend-diff-ignore = "(^|/)(.vimdir|CODING_STYLE|autogen.sh|doc/*|test/50-litest.conf|tools/publish-doc)"
+extend-diff-ignore = test/generate-gcov-report.sh

commit 044bab5443b575bfe133e58b8c310191fd627972
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Wed May 17 13:46:17 2017 +0300

    bump the version

diff --git a/debian/changelog b/debian/changelog
index bd947ad..eda3afc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-libinput (1.7.0-1) UNRELEASED; urgency=medium
+libinput (1.7.2-1) UNRELEASED; urgency=medium
 
   * New upstream release.
 

commit 4d6545a6a164a24228042708852e851d41f3bef8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri May 5 14:51:59 2017 +1000

    configure.ac: libinput 1.7.2
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/configure.ac b/configure.ac
index c517593..04c0755 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.64])
 
 m4_define([libinput_major_version], [1])
 m4_define([libinput_minor_version], [7])
-m4_define([libinput_micro_version], [1])
+m4_define([libinput_micro_version], [2])
 m4_define([libinput_version],
           [libinput_major_version.libinput_minor_version.libinput_micro_version])
 
@@ -36,7 +36,7 @@ AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz])
 # b) If interfaces have been changed or added, but binary compatibility has
 #    been preserved, change to C+1:0:A+1
 # c) If the interface is the same as the previous version, change to C:R+1:A
-LIBINPUT_LT_VERSION=22:3:12
+LIBINPUT_LT_VERSION=22:4:12
 AC_SUBST(LIBINPUT_LT_VERSION)
 
 AM_SILENT_RULES([yes])

commit 09acb266f8eb8538471b6472d9588187a9b46b71
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu May 4 14:35:47 2017 +0300

    update the changelog

diff --git a/debian/changelog b/debian/changelog
index c1196d1..bd947ad 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libinput (1.7.0-1) UNRELEASED; urgency=medium
+
+  * New upstream release.
+
+ -- Timo Aaltonen <tjaalton@debian.org>  Thu, 23 Mar 2017 11:55:01 +0200
+
 libinput (1.6.3-1) unstable; urgency=medium
 
   * New upstream release.

commit 4ab9c15cac163e27f2b92726019c165eaecb7451
Author: Paul Kocialkowski <contact@paulk.fr>
Date:   Fri Apr 28 15:29:04 2017 +0200

    udev: Add specific pressure range for the ASUS ZenBook UX21E
    
    This adds specific pressure range values for the Elantech touchpad
    found in the ASUS ZenBook UX21E.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=99975
    
    Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 46af543b49b4e2d75348c715d1c76c2e0d432514)

diff --git a/udev/90-libinput-model-quirks.hwdb b/udev/90-libinput-model-quirks.hwdb
index 73734e6..560e77a 100644
--- a/udev/90-libinput-model-quirks.hwdb
+++ b/udev/90-libinput-model-quirks.hwdb
@@ -87,6 +87,9 @@ libinput:name:*ETPS/2 Elantech Touchpad*:dmi:*
  LIBINPUT_ATTR_RESOLUTION_HINT=31x31
  LIBINPUT_ATTR_PRESSURE_RANGE=10:8
 
+libinput:name:*ETPS/2 Elantech Touchpad*:dmi:*svnASUSTeKComputerInc.:pnUX21E:*
+ LIBINPUT_ATTR_PRESSURE_RANGE=24:10
+
 ##########################################
 # Google
 ##########################################

commit 17692e5d24870e384f40ba95197396d868ab2b8b
Author: Paul Kocialkowski <contact@paulk.fr>
Date:   Fri Apr 28 15:29:03 2017 +0200

    udev: Select more generic pressure range values for Elantech touchpads
    
    The current pressure values for Elantech touchpads are too high for
    various devices and make the touchpad almost unusable on them.
    
    Decreasing the pressure range values makes those devices usable again.
    
    Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 1dfedc6995cf63e004bd3e0b1d22ae263feb7362)

diff --git a/udev/90-libinput-model-quirks.hwdb b/udev/90-libinput-model-quirks.hwdb
index eaa9345..73734e6 100644
--- a/udev/90-libinput-model-quirks.hwdb
+++ b/udev/90-libinput-model-quirks.hwdb
@@ -85,7 +85,7 @@ libinput:name:* Touchpad:dmi:*svnDellInc.:*
 ##########################################
 libinput:name:*ETPS/2 Elantech Touchpad*:dmi:*
  LIBINPUT_ATTR_RESOLUTION_HINT=31x31
- LIBINPUT_ATTR_PRESSURE_RANGE=24:10
+ LIBINPUT_ATTR_PRESSURE_RANGE=10:8
 
 ##########################################
 # Google

commit c24abedeb4d5fc0245dfcd7e3eed3561f5767b11
Author: Paul Kocialkowski <contact@paulk.fr>
Date:   Fri Apr 28 15:29:02 2017 +0200

    udev: Remove unused Elantech touchpad model binding
    
    The Elantech touchpad model binding in udev is currently unused, since
    pressure values were moved to a udev binding of their own.
    
    This gets rid of the deprecated model binding.
    
    Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 6af9f8e5fbb9f5588eeb51185d2cc0d7f93d34ee)

diff --git a/src/evdev.c b/src/evdev.c
index 2d18bed..3b4bc4b 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -2245,7 +2245,6 @@ evdev_read_model_flags(struct evdev_device *device)
 		MODEL(ALPS_TOUCHPAD),
 		MODEL(SYNAPTICS_SERIAL_TOUCHPAD),
 		MODEL(JUMPING_SEMI_MT),
-		MODEL(ELANTECH_TOUCHPAD),
 		MODEL(APPLE_INTERNAL_KEYBOARD),
 		MODEL(CYBORG_RAT),
 		MODEL(CYAPA),
diff --git a/src/evdev.h b/src/evdev.h
index 465b8a3..c9a44f8 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -111,7 +111,6 @@ enum evdev_device_model {
 	EVDEV_MODEL_ALPS_TOUCHPAD = (1 << 8),
 	EVDEV_MODEL_SYNAPTICS_SERIAL_TOUCHPAD = (1 << 9),
 	EVDEV_MODEL_JUMPING_SEMI_MT = (1 << 10),
-	EVDEV_MODEL_ELANTECH_TOUCHPAD = (1 << 11),
 	EVDEV_MODEL_LENOVO_X220_TOUCHPAD_FW81 = (1 << 12),
 	EVDEV_MODEL_APPLE_INTERNAL_KEYBOARD = (1 << 13),
 	EVDEV_MODEL_CYBORG_RAT = (1 << 14),
diff --git a/udev/90-libinput-model-quirks.hwdb b/udev/90-libinput-model-quirks.hwdb
index 1b9876f..eaa9345 100644
--- a/udev/90-libinput-model-quirks.hwdb
+++ b/udev/90-libinput-model-quirks.hwdb
@@ -86,7 +86,6 @@ libinput:name:* Touchpad:dmi:*svnDellInc.:*
 libinput:name:*ETPS/2 Elantech Touchpad*:dmi:*
  LIBINPUT_ATTR_RESOLUTION_HINT=31x31
  LIBINPUT_ATTR_PRESSURE_RANGE=24:10
- LIBINPUT_MODEL_ELANTECH_TOUCHPAD=1
 
 ##########################################
 # Google

commit 8ac3c49a6198e6ec9ee08d6959f30c949f059672
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Apr 19 14:11:45 2017 +1000

    doc: add documentation for touchpad pressure detection
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit bed7e62a0d92ccd3e985e73736b0990ac7219483)

diff --git a/doc/Makefile.am b/doc/Makefile.am
index 50fab04..af06272 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -29,6 +29,7 @@ header_files = \
 	$(srcdir)/test-suite.dox \
 	$(srcdir)/tools.dox \
 	$(srcdir)/touchpad-jumping-cursors.dox \
+	$(srcdir)/touchpad-pressure.dox \
 	$(srcdir)/touchpads.dox \
 	$(srcdir)/what-is-libinput.dox
 
diff --git a/doc/faqs.dox b/doc/faqs.dox
index 0b8db83..7820ad4 100644
--- a/doc/faqs.dox
+++ b/doc/faqs.dox
@@ -15,6 +15,11 @@ motion_normalization for a detailed explanation.
 
 See @ref tapping_default
 
+@section faq_touchpad_pressure Why does my touchpad lose track of touches
+
+The most common cause for this is an incorrect pressure threshold range.
+See @ref touchpad_pressure for more info.
+
 @section faq_kinetic_scrolling Kinetic scrolling does not work
 
 The X.Org synaptics driver implemented kinetic scrolling in the driver. It
diff --git a/doc/page-hierarchy.dox b/doc/page-hierarchy.dox
index ebfb65c..65749fe 100644
--- a/doc/page-hierarchy.dox
+++ b/doc/page-hierarchy.dox
@@ -5,6 +5,7 @@
 - @subpage clickpad_softbuttons
 - @subpage tapping
 - @subpage gestures
+- @subpage touchpad_pressure
 - @subpage palm_detection
 - @subpage t440_support
 - @subpage touchpad_jumping_cursor
diff --git a/doc/touchpad-pressure.dox b/doc/touchpad-pressure.dox
new file mode 100644
index 0000000..7c55c9f
--- /dev/null
+++ b/doc/touchpad-pressure.dox
@@ -0,0 +1,138 @@
+/**
+@page touchpad_pressure Touchpad pressure-based touch detection
+
+libinput uses the touchpad pressure values to detect wether a finger has
+been placed on the touchpad. This is @ref kernel_pressure_information and
+combines with a libinput-specific hardware database to adjust the thresholds
+on a per-device basis. libinput uses pressure thresholds primarily to filter
+out accidental light touches but pressure information is also used for
+some @ref palm_detection.
+
+Pressure thresholds are **not** directly configurable by the user, rather it
+is planned that libinput provides custom pressure thresholds for each device
+where necessary. See @ref touchpad_pressure_hwdb for instructions for your
+local device.
+
+@section kernel_pressure_information Information provided by the kernel
+
+The kernel sends multiple values to inform userspace about a finger touching
+the touchpad. The most basic is the ```EV_KEY/BTN_TOUCH``` boolean event
+that simply announces physical contact with the touchpad. The decision when
+this event is sent is usually made by the kernel driver and may depend on
+device-specific thresholds. These thresholds are transparent to userspace
+and cannot be modified.
+
+Many contemporary touchpad devices provide an absolute pressure axis in
+addition to ```BTN_TOUCH```. This pressure generally increases as the pressure
+increases, however few touchpads are capable of detection pressure. The
+pressure value is usually related to the covered area - as the pressure
+increases a finger flattens and thus covers a larger area. The range
+provided by the kernel is not mapped to a specific physical range and
+often requires adjustment. Pressure is sent by the ```ABS_PRESSURE``` axis
+for single-touch touchpads or ```ABS_MT_PRESSURE``` on multi-touch capable
+touchpads.
+
+Some devices provide additional touch size information through
+the ```ABS_MT_TOUCH_MAJOR/ABS_MT_TOUCH_MINOR``` axes and/or
+the ```ABS_MT_WIDTH_MAJOR/ABS_MT_WIDTH_MINOR``` axes. While the kernel
+documentation specifies how these axes are supposed to be mapped, few
+devices forward
+reliable information.
+
+@section touchpad_pressure_hwdb Debugging touchpad pressure ranges
+
+This section describes how to determine the touchpad pressure ranges
+required for a touchpad device and how to add the required hwdb entry
+locally. Note that the hwdb entry is **not public API** and **may change at
+any time**. Users are advised to @ref reporting_bugs "report a bug" with the
+updated pressure ranges when testing has completed.
+
+First, install the "evemu" package providing the ```evemu-record``` tool.
+Run ```evemu-record``` as root (without arguments) to see a list of devices
+and select the touchpad device. Pipe the actual output of the tool into a
+file for later analysis. For example:
+
+<pre>
+$ sudo evemu-record > touchpad-pressure.txt
+Available devices:
+/dev/input/event0:	Lid Switch
+/dev/input/event1:	Sleep Button
+/dev/input/event2:	Power Button
+/dev/input/event3:	AT Translated Set 2 keyboard
+/dev/input/event4:	SynPS/2 Synaptics TouchPad
+/dev/input/event5:	ELAN Touchscreen
+[...]
+Select the device event number [0-19]: 4
+#     Ctrl+C to quit, the output will be in touchpad-pressure.txt
+</pre>
+
+Now move a finger at **normal pressure** several times around the touchpad,
+as if moving the cursor normally around the screen. Avoid any accidental
+palm touches or any excessive or light pressure.
+
+The event recording is then filtered for pressure information, which is
+sorted and exported to a new file:
+<pre>
+$ grep --only-matching "ABS_MT_PRESSURE[ ]*[0-9]*" touchpad-pressure.txt | \
+	sed -e "s/ABS_MT_PRESSURE[ ]*//" | \
+	sort -n | uniq -c > touchpad-pressure-statistics.txt
+</pre>
+
+The file contains a list of (count, pressure-value) tuples which can be
+visualized with gnuplot. Copy the following into a file named
+```touchpad-pressure-statistics.gnuplot```:
+
+<pre>
+set style data lines
+plot 'touchpad-pressure-statistics.txt' using 2:1
+pause -1
+</pre>
+
+Now, you can visualize the touchpad pressure curve with the following
+command:
+<pre>
+$ gnuplot  touchpad-pressure-statistics.gnuplot
+</pre>
+
+The visualization will show a curve with the various pressure ranges, see
+[this bugzilla attachment](https://bugs.freedesktop.org/attachment.cgi?id=130659).
+In most cases, the thresholds can be guessed based on this curve. libinput
+employes a [Schmitt trigger](https://en.wikipedia.org/wiki/Schmitt_trigger)
+with an upper threshold and a lower threshold. A touch is detected when the


Reply to: