summaryrefslogtreecommitdiff
path: root/doc
AgeCommit message (Collapse)AuthorFilesLines
2018-07-12doc: move the meson.build in as subdir()Peter Hutterer2-10/+149
Doing so means we can ditch the specific input list for doxygen and just copy all files over into our builddir/doc/ subdir, then use that subdirectory as input data. This relies on meson putting a subdir() into a subdirectory in the build directory. This isn't technically guaranteed but I also suspect that if meson ever changes that, lots of other projects will break. Even in that case we should build just fine since we now filter for *.h and *.dox and don't copy any other doxygen-commented files into the builddir anyway. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-07-10doc: add a subsection on how to use libinput record --autorestartPeter Hutterer1-0/+29
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-07-10doc: libinput-measure is a section, not a subsectionPeter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-07-06doc: drop the git version into the documentationPeter Hutterer1-1/+1
The libinput/doc/latest is now built automatically from git, so it's good to have a reference to show which commit it was being built from. Add a section to the readme with git commit information that is replaced by meson. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-07-05doc: add the switches page to a "other devices" categoryPeter Hutterer2-3/+7
It felt a bit lost at the bottom of the "pages" list. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-07-05doc: build doxygen output into "Documentation"Peter Hutterer1-0/+1
Slightly more obvious than just "html". Main motivation here is that we want to provide the documentation as artifact from GitLab's CI, so having it unzip to something slightly more meaningful makes sense. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-07-03tools: rename list-quirks to the more generic "quirks list"Peter Hutterer1-6/+8
Enables us to easily add more tools where needed and it is more consistent with the existing tools. The commands are now: libinput quirks list libinput quirks validate Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/66 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-06-27doc: fix typo in pointer acceleration docsPeter Hutterer1-1/+1
Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/69 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-06-21doc: update docs to use a .yml suffix for libinput recorded filesPeter Hutterer1-5/+5
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-06-21doc: use @verbatim, not @code for shell commandsPeter Hutterer5-58/+58
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-06-21doc: update docs to drop hwdb referencesPeter Hutterer5-130/+82
In favour of the device quirks system. Fixes #55 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-06-19doc: point to the gitlab ci file for a list of required packagesPeter Hutterer1-3/+12
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-06-08Implement a quirks system to replace the udev property parsingPeter Hutterer2-0/+103
Previously, we had all extra device information ("This is an Apple Touchpad", "This touchpad causes pointer jumps", etc.) in the udev hwdb. The problem with the hwdb is that updating it is nontrivial for the average user and debugging when things go wrong is even harder. Plus, the hwdb has a matching scheme that is unpredictable unless one is familiar with the implementation. This patch set moves the hwdb entries into .ini style text files, with a simple line-based parser. A new libinput list-quirks tool can list the quirks applied to any given device, in --verbose mode it prints all matches as they apply or not apply. The data files are currently unused by libinput, that comes in a later patch. They're installed though, the defaults point to the /usr/share/libinput directory and for *temporary* local overrides the single file /etc/libinput/local-overrides.quirks. Failure to parse any file is a hard failure for the quirks system, but if the local override file doesn't exist that's fine. THIS IS NOT A CONFIGURATION INTERFACE! None of these settings are exposed via the libinput_device_config_* calls. There is no API guarantee for these files, think of them as source code. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-06-05doc: Fix URLs for GitLab, HTTPSDaniel Stone4-6/+6
The GitLab migrations means that bugs should now be reported there rather than Bugzilla. Though the repository is still available via anongit, cloning through GitLab allows use of HTTPS. All freedesktop.org URLs are also preferentially served over HTTPS rather than unsecured HTTP. Signed-off-by: Daniel Stone <daniels@collabora.com>
2018-06-04doc: point at --verbose for libinput debug-eventsPeter Hutterer1-1/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-06-04doc: improve the 'tools' pagePeter Hutterer1-20/+80
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-06-01doc: move the "Users" section to the top of the "pages" sectionPeter Hutterer1-7/+8
On the off-chance that someone actually looks at this page, let's put the comment most at risk by a TLDR attention span at the top. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-30Restore the old trackpoint pointer accel picturePeter Hutterer1-30/+111
Accidentally updated the wrong picture. This reverts part of commit d6e531349745ff38ae457169d5089ea61297accf. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-30doc: update the touchpad pointer acceleration graphsPeter Hutterer1-363/+378
Part of d6e531349745ff38ae457169d5089ea61297accf but I updated the wrong svg in that commit. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-21Merge branch 'wip/custom-pointer-accel-revert'Peter Hutterer2-356/+0
2018-05-21Merge branch 'wip/touchpad-pointer-accel-v7'Peter Hutterer1-111/+30
2018-05-21filter: improve touchpad accelerationPeter Hutterer1-111/+30
This seems to give me roughly the same behaviour as macos does on the default 0 speed setting. * Default speed is lower than before by around 30% [1] * Acceleration kicks in much sooner (130mm/s vs 250mm/s before) * Acceleration kicks in slower at lower speeds, so the change from 130mm/s to 150mm/s is less than that of 320mm/s to 350mm/s * The effect of the speed setting is a wide-range constant (de|ac)celeration [2], which means: * The unaccelerated baseline up until the threshold now changes with the speed setting * The threshold is now the same for all speeds * The range of the speed setting should now easily cover all desired device speeds. * Acceleration is steeper at higher speeds * Deceleration was left as-is. [1] This may or may not fix the jumping pointer issues caused by the previous high defaults. When you have high default acceleration you move the finger slower. This slow movement caused some touchpads (mostly seen on Lenovos) to create pointer jumps. These weren't seen on synaptics previously because of a combination of higher user finger speed (thus not triggering the bug) or just not being as obvious (2px jump vs 10 px jump). [2] The speed setting is actually a curve, the closer you get to 1.0 the more difference you see between two different values. The curve's points are: -1/0, 0/1, 1/5, so the resolution is closer for slow speeds. We still have double resolution on the setting though so you'll find what you want. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-21Revert "Expose a custom acceleration profile"Peter Hutterer2-356/+0
This looked good on paper but clearly no-one (including myself) ever tested this in a real-life situation or they would've noticed that the constant factor is missing, causing a segfault on the first two-finger scroll event, touchpad gesture or button scrolling. Adding the constant factor makes the API much worse and the benefit is unclear, so out of the window it goes. We can revisit this for libinput 1.12 but this isn't going to make the next release. This reverts commit d8bd650540e68e8b648e76180c5eee0f19a3b893. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-15Update the README and the graphs showing libinput in the stackPeter Hutterer2-14/+32
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-15touchpad: add a tool to measure the touchpad fuzzPeter Hutterer2-0/+91
Well, I say "measure" but really at this point it just reads the properties/axes and then does it's best to auto-generate a hwdb entry that matches the user's hardware and sets a fuzz value on the device. Ideally this reduces the number of hand-holding required in bugzillas. There are plenty of things that can go wrong, so our fallback is still to throw up our hands and point to the documentation. https://bugs.freedesktop.org/show_bug.cgi?id=98839 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-14doc: fix typoPeter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-11doc: update pointer acceleration doc with the fixed graphsPeter Hutterer4-9179/+842
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-03doc: add two more items I need for trackpoint bugsPeter Hutterer1-0/+6
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-03doc: drop doc for POINTINGSTICK_CONST_ACCEL, no longer in usePeter Hutterer1-3/+0
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-04-26Expose a custom acceleration profilePeter Hutterer2-0/+356
This adds a third profile to the available profiles to map device-specific speed to an acceleration factor, fully defined by the caller. There has been a consistent call for different acceleration profiles in libinput, but very little specifics in what actually needs to be changed. "faster horses" and whatnot (some notable exceptions in e.g. bug 101139). Attempts to change the actual acceleration function will likely break things for others. This approach opens up the profile itself to a user-specific acceleration curve. A caller can set an acceleration curve by defining a number of points on that curve to map input speed to an output factor. That factor is applied to the input delta. libinput does relatively little besides mapping the deltas to the device-specific speed, querying the curve for that speed and applying that factor. The curve is device-specific, the input speed is in device units/ms. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-04-16doc: add a description of the internal architecturePeter Hutterer2-0/+283
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-04-13doc: add a section on what happens when a bug was resolvedPeter Hutterer1-0/+54
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-04-12doc: expand the "reporting bugs" pagePeter Hutterer1-28/+76
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-04-10doc: axis overrides need to go to systemd, not libinputPeter Hutterer1-4/+2
And remove the double-slash in the error message pointing here. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-04-09doc: debugging touchpad pressure/size ranges is interactivePeter Hutterer1-1/+11
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-04-03doc: expand on the palm detection documentation a bitPeter Hutterer2-24/+155
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-03-20meson: point users to disabled documentation when dot/doxygen is missingPeter Hutterer1-1/+4
Especially dot is hard to find for some users, so provide the solution to their problems right there in the error message. And because users are likely to just copy/paste, remove the disable-libwacom option. Save them from themselves... Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-03-07touchpad: handle a palm down in the tapped statePeter Hutterer1-338/+598
We expected the first event after TAPPED to be a finger down. If that finger has been recognised as palm, the finger state isn't TOUCH_BEGIN so we get an invalid state in our FSM. libinput bug: 0: invalid tap event TAP_EVENT_PALM in state TAP_STATE_TAPPED https://bugs.freedesktop.org/show_bug.cgi?id=105370 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-03-01doc: more references to libinput-recordPeter Hutterer2-6/+13
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-03-01doc: add a section to the tools page for record/replayPeter Hutterer1-0/+94
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-02-13evdev: add a quirk to disable debouncing on the MS Nano TranscieversPeter Hutterer1-713/+1
A set of wireless devices that can scramble the timestamps, so we get press/release within 8ms even though I doubt the user is capable of doing this. Since they're generally good quality anyway, let's just disable debouncing on those until someone complains and we need something more sophisticated. https://bugs.freedesktop.org/show_bug.cgi?id=104415 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-02-06timer: change the timer offset warning to a client bugPeter Hutterer1-0/+22
This looks like a libinput bug (well, it does say "libinput bug" on the package) but it hasn't been that for a long time. The cause is almost always insufficient motivation to call libinput_dispatch() by the caller, or at least not doing it with the celerity libinput demands (and deserves, if I may say so). Up-, down- or side-grade it to a client bug, so the outrage can be directed elsewhere, preferably away from me. And add a section to the documentation, just in case someone actually reads this stuff. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
2017-11-30doc: more and more documentation about hwdb updatesPeter Hutterer3-39/+145
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-11-29doc: update the pointer acceleration page for the 1.9 trackpoint accelPeter Hutterer1-8/+11
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-11-29doc: add a doc for trackpointsPeter Hutterer3-0/+171
2017-11-22debounce: handle a timeout in MAYBE_SPURIOUS statePeter Hutterer1-249/+120
Sequences to trigger: - spurious debouncing is enabled - release a button in IS_DOWN state -> RELEASE_DELAYED - short timeout triggers RELEASE_WAITING If a button press now comes before the long timeout expires, we transition to MAYBE_SPURIOUS where the long timeout may expire. In that case we should transition to pressed state again. Reported-by: Vicente Bergas <vicencb@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-11-20touchpad: work palm detection into the tap state machinePeter Hutterer1-1096/+1091
Unlike the already-existing thumb detection, a touch may be labelled palm at any time, not just during the initial touch down. This requires full integration into the tap state machine to unwind properly. For most states, a palm detection simply ignores the finger and reverts to the most recent state. One exception is the case of two fingers down, one finger up followed by the remaining finger detected as a palm finger. This triggers a single-finger tap but with timestamps that may be from the wrong finger. Since we're within a short tap timeout anyway this should not matter too much. The special state PALM_UP is only handled in one condition (DEAD). Once a touch is a palm we basically skip over it from then on. If we end up in the DEAD state after a button press we still need to handle the palm up events accordingly to be able to return to IDLE. That transition also requires us to have an accurate count of the real fingers down (palms don't count) so we need a separate nfingers_down counter for tapping. https://bugs.freedesktop.org/show_bug.cgi?id=103210 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-11-20evdev: add new debouncing codePeter Hutterer4-6/+924
The current debouncing code monitors events and switches on when events are too close together. From then on, any event can be delayed. Vicente Bergas provided an algorithm that avoids most of these delays: on a button state change we now forward the change without delay but start a timer. If the button changes state during that timer, the changes are ignored. On timer expiry, events are sent to match the hardware state with the client's view of the device. This is only done if needed. Thus, a press-release sequence of: PRP sends a single press event, a sequence of PRPR sends press and then the release at the end of the timeout. The timeout is short enough that the delay should not be noticeable. This new mode is called the 'bounce' mode. The old mode is now referred to as 'spurious' mode and only covers the case of a button held down that loses contact. It works as before, monitoring a button for these spurious contact losses and switching on. When on, button release events are delayed as before. The whole button debouncing moves to a state machine which makes debugging a lot easier. See the accompanying SVG for the diagram. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-11-08doc: add a FAQ regarding "please add a configuration option"Peter Hutterer1-0/+14
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-11-02doc: update test suite page for ninja and other recent changesPeter Hutterer1-34/+69
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>