summaryrefslogtreecommitdiff
path: root/doc
AgeCommit message (Collapse)AuthorFilesLines
2016-08-18doc: fix wrong argument to udevadm hwdbPeter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-08-15doc: split middle button emulation into a separate pagePeter Hutterer3-0/+36
Easier to link to from bug reports Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-08-09Merge branch 'wip/litest-serial-parallel-v3'Peter Hutterer1-7/+14
2016-08-09doc: add build instructionsPeter Hutterer3-0/+77
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-08-05doc: add some info about configuring devices in wayland/xorgPeter Hutterer1-0/+46
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-08-02test: if we're in a debugger, use single-fork mode onlyPeter Hutterer1-1/+2
Don't fork by default if we're in gdb. Note that is_debugger_attached() is now inside #ifndef LITEST_NO_MAIN, gdb for the litest selftest will now require a manual CK_FORK=no. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-08-02test: add a make-like job control to run tests in parallelPeter Hutterer1-0/+6
Add a make-like -j/--jobs option to split the number of parallel test processes. Defaults to 8 if not specified, future patches will default this to 1 for special cases where filters are specified or gdb is detected. Each subprocess overwrites argv[0] to be easier identifiable in the ps output when we're trying to figure out which tests are still running. A -j1 is equivalent to the previous functionality, i.e. we don't fork. One quirk needed for check: any test case not part of a test runner will not be freed and thus triggers valgrind. We do test filtering by splitting up the tests across multiple forks (i.e. each process has several tests that are in the list but not added to the runner). Thus we need to mark those we expect check to free as used. Then on cleanup we traverse the test list, add all the unused one to a test runner and free that test runner (without actually running it). This cleans up both the filtered tests in each subprocess and the whole test list in the parent process which doesn't run a test itself. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-08-02test: merge all tests into a single binaryPeter Hutterer1-7/+7
Call it a libinput-test-suite-runner, in subsequent patches we'll handle doing parallel tests ourselves instead of relying on automake features. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-07-04Merge branch 'wip/tablet-pad-modes-v3'Peter Hutterer4-2/+840
2016-07-04touchpad: remove software middle button when emulation is enabledPeter Hutterer1-0/+4
Expose the middle button emulation on software buttons as proper config option. When enabled, remove the middle button software button area. https://bugs.freedesktop.org/show_bug.cgi?id=96663 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-30doc: add a section to the FAQ on how to retrigger hwdb changesPeter Hutterer1-0/+31
I'm typing this way too often into bugreports Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-06-22pad: Add a new API for modes and mode groupsPeter Hutterer1-2/+57
Move mode control to libinput. This reduces some flexibility on what we can do with modes but makes it a lot easier for anyone to implement modes correctly and have the LEDs apply appropriately, etc. Let's go with the option to make the 95% use-case easy. Note: whether the mode is actually used is up to the caller, e.g. under Windows and OS X the mode only applies to the rings/strips, not the buttons. A tablet pad has 1 or more mode groups, all buttons/ring/strips are assigned to a mode group. That group has a numeric mode index and is hooked to the LEDs. libinput will switch the LEDs accordingly. The mode group is a separate object. This allows for better APIs when it comes to: * checking whether a button/ring/strip is part of a mode group * checking whether a button will trigger a mode transition and in the future potentially: * checking which mode transition will happen * setting which button should change the mode transition * changing what type of mode transition should happen. * moving a button from one mode group to the other This patch adds the basic scaffolding, without any real implementation. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Proofread-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-22doc: add two svgs showing the modesPeter Hutterer3-0/+783
Separate patch to avoid crowding out the actual content in the patch with the documentation. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-02doc: add a check to compare local files with those in the makefilePeter Hutterer1-0/+10
Avoid forgetting about adding svgs/dotfiles to the Makefile.am Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-06-02doc: ship the doc sources even when not building with docsPeter Hutterer1-7/+8
No effect so far because the dist-hook prevents us from making a tarball without the sources anyway. But for correctness split the two up. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-06-02touchpad: warn if we have invalid touchpad rangesPeter Hutterer3-0/+121
Quite a few bugs are caused by touchpad ranges being out of whack. If we get input events significantly outside the expected range (5% width/height as error margin) print a warning to the log. And add a new doc page to explain what is happening and how to fix it. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-05-27doc: grammar fix in the MakefilePeter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-05-27doc: add the missing svg files to the Makefile.amPeter Hutterer1-0/+8
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-05-27doc: sort the svg files alphabeticallyPeter Hutterer1-2/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-05-09doc: add an entry about tablets in left-handed modePeter Hutterer2-0/+500
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-04-28touchpad: detect and warn about kernel tracking pointer jumpsPeter Hutterer3-0/+56
If a touch moves by more than 20mm within a single frame, reset the motion history, effectively discarding the movement. This is a relatively common bug and almost always needs a kernel fix, so add an explanatory page to the docs. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-04-18doc: add a graphic illustrating pad vs tool supportPeter Hutterer2-0/+327
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-04-18Add the LIBINPUT_DEVICE_CAP_TABLET_PAD capability and matching interfacePeter Hutterer1-6/+40
This interface handles the buttons on the physical tablet itself, including the touch ring and the strip. A notable difference to other libinput interfaces here is that we do not use linux/input.h event codes for buttons. Instead, the buttons are merely numbered sequentially, starting at button 1. This means: * the API is different, instead of get_button() we have get_button_number() to drive the point home * there is no seat button count. pads are inherently different devices and compositors should treat them as such. The seat button count makes sense when you want to know how many devices have BTN_LEFT down, but it makes no sense for buttons where all the semantics are handled by the compositor anyway. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-04-08doc: minor fixesPeter Hutterer1-1/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-04-06Fix spelling mistakesEric Engestrom1-1/+1
Signed-off-by: Eric Engestrom <eric@engestrom.ch> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-04-05touchpad: add a middle button software areaPeter Hutterer2-32/+12
Middle button interaction is most commonly to paste and it is a single-event interaction (button press). We provided middle button in software button mode by emulating it with a two-finger press with L+R down at the same time. This is also what many touchpads are spectacularly bad at, it is very common to detect the physical button down event before the second finger registers, resulting in left or right clicks where a middle button should be triggered. Unless the fingers are resting on the touchpad for at least one scanout, the success rate for middle button emulation is only at 70% or so. This patch adds a 25%-width middle button area between the left and the right software button, everything else stays the same. To avoid immediate breakage, the middle button emulation remains but may be removed in the future. The doc is updated to only refer to the middle button area now. https://bugs.freedesktop.org/show_bug.cgi?id=94755 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-02-11test: add tablet test for out-of-bounds motion coordinatesPeter Hutterer2-0/+293
The newer Cintiqs have a minimum value of 400/400 advertised by the kernel but the actual sensor goes past the 0/0 origin. Test this, make sure that a value outside the boundaries generates negative mm values. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-02-10doc: update tablet svg to show tilt as anglePeter Hutterer1-10/+11
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-02-09tablet: change tilt axes to use degreesPeter Hutterer1-4/+8
The Wacom tilt range is 64 degrees so we map everything into that until we know otherwise. This commit also switches the tilt axes around to align the angles with the x/y orientation, i.e. tilting the top of the stylus towards the positive x axis now generates a positive x tilt. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-02-02doc: add the tablet support page to the related pages hierarchyPeter Hutterer1-0/+4
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-01-27Merge branch 'master' into tablet-supportPeter Hutterer2-713/+760
2016-01-27touchpad: add a config option to disable tap-and-dragPeter Hutterer2-713/+760
There are a number of use-cases where tapping may be desirable, but tap-and-drag is not, e.g. where tapping is used to select multiple items in a list. Having tap-and-drag on hinders this, and the nature of the interaction means it cannot be detected based on timeouts, movement thresholds, etc. Provide an option instead to turn tap-an-drag off. Tap-and-drag remains enabled by default (though tapping is disabled by default). For the touchpad tap state diagram, the new option disables the transition from state TOUCH to state TAPPED and releases the button immediately instead. This means that multitap-and-drag is disabled too since we now just loop around in the single-tap state for multitap. It also makes tapping more responsive - we don't have to wait for the timeout before we know whether it's a tap event. The first touch time is noted, we now send the button press with the time of the first touch and the release with the time of the release. This ensures a realistic time diff between the two events. https://bugs.freedesktop.org/show_bug.cgi?id=93502 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.netto> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-01-25Merge branch 'master' into tablet-supportPeter Hutterer3-0/+899
2016-01-22tablet: hook up relative motion eventsPeter Hutterer1-0/+6
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-01-22tablet: add support for relative x/y motion deltasPeter Hutterer2-0/+26
Instead of an explicit tablet mode that device must be changed into, let the caller decide which coordinates are preferred. The tablet mode may be application-specific and usually depends on the tool as well. This patch adds an interface to get a motion delta for the x/y axes in pixel-like coordinates. libinput provides some magic to convert the tablet data into something that resembles pixels from a mouse motion. For unaccelerated relative motion, the caller should use the mm values from the tablet and calculate deltas manually. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-01-20Merge branch 'wip/3-finger-pinch-gesture'Peter Hutterer3-0/+899
2016-01-20doc: explain the gesture ambiguity for 2-slot touchpadsPeter Hutterer2-0/+518
Not much we can do about this until we get SMBus/RMI4 in the kernel or better touchpads in general but this way we can at least point to some official explanation. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-01-20gestures: add support for three-finger pinch gesturesPeter Hutterer2-0/+381
https://bugs.freedesktop.org/show_bug.cgi?id=92834 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-01-19Merge branch 'master' into tablet-supportPeter Hutterer1-2/+2
2016-01-13doc: add section names to motion normalization subheadersPeter Hutterer1-2/+2
Otherwise the first word is used as section header and discarded from the output. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-01-11tablet: a tip event can replace an axis eventPeter Hutterer1-1/+2
When we're only dealing with BTN_TOUCH we can make the tip event independent of the axis event. Now that we handle pressure thresholds to trigger tip state this does not work, we'd have to send an axis event with the new pressure and then a tip event. Since the pressure triggers the tip event this seems disconnected. Make the tip event officially capable of carrying axes. A caller can then decide how to forward this to the next layer. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-01-11tablet: add pressure threshold handlingPeter Hutterer1-0/+16
On tablets with ABS_PRESSURE use a pressure value to determine tip state, not BTN_TOUCH. This enables us (down the road) to have device-specific pressure thresholds. For now we use a 5% default for all devices. The threshold is a range, if we go past the upper range we initiate the tip down, if we go below the lower range we release the tip again. This affects two current tests: * Once we have pressure offsets and pressure thresholds, we're biased towards pressure. So we can only check that distance is zero when there is a pressure value, not the other way round. * When the pressure threshold is exceeded on proximity in with a nonzero distance, we can only warn and handle the pressure as normal. Since this is a niche case anyway anything fancier is likely unnecessary. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Jason Gerecke <jason.gerecke@wacom.com>
2016-01-05doc: add missing tip event to the allowed set of eventsPeter Hutterer1-2/+2
We can call the various has_changed() functions on a tip event. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-01-05doc: fix and improve the tablet documentationPeter Hutterer1-49/+47
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-01-05doc: improve absolute axis documentation a bitPeter Hutterer1-6/+12
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-12-23tablet: add libinput_tablet_tool_is_unique()Peter Hutterer1-1/+3
For checking if a tablet tool can be uniquely identified by libinput. In practice this means checking for a nonzero serial number, but let's not restrict ourselves to allowing just that. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-12-15doc: a couple of tablet documentation fixesPeter Hutterer1-0/+22
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-12-15tablet: support tool-specific pressure offsetsPeter Hutterer1-0/+29
If a tool wears out, it may have a pre-loaded pressure offset. In that case, even when the tool is not physically in contact with the tablet surface it will send pressure events. Use automatic pressure offset detection, similar to what the X.Org wacom driver does. On proximity-in, check the pressure and if the distance is above 50% of the range and the pressure is nonzero but below 20% of the range, use that value as pressure offset. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Ping Cheng <pingc@wacom.com>
2015-12-14doc: add missing tablet-axes.svgPeter Hutterer1-0/+563
Missing from 4677c48ab66c90cda2b66f57061401482f6d9f09 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-12-14Merge branch 'master' into tablet-supportPeter Hutterer1-0/+18