Skip to content
Commits on Source (48)
......@@ -161,7 +161,7 @@ variables:
- touch .img_ready
artifacts:
name: image-$CURRENT_DOCKER_IMAGE-check
expire_in: 20 min
expire_in: 6 hrs
paths:
- .img_ready
allow_failure: true
......
......@@ -136,7 +136,7 @@ devices is something other than 1:1. A normalized axes thus is only useful to
determine that the stylus is e.g. at 78% from the left, 34% from the top of
the device. Without knowing the per-axis resolution, these numbers are
meaningless. Worse, calculation based on previous coordinates is simply wrong:
a movement from 0/0 to 50%/50% is not a 45% degree line.
a movement from 0/0 to 50%/50% is not a 45-degree line.
This could be alleviated by providing resolution and information about the
aspect ratio to the caller. Which shifts processing and likely errors into the
......
......@@ -50,6 +50,9 @@ buttons enabled for the trackpoint. Available options are
**disabled on external mouse** (disable the device while an external mouse
is plugged in).
.. _config_pointer_acceleration:
------------------------------------------------------------------------------
Pointer acceleration
------------------------------------------------------------------------------
......
......@@ -5,14 +5,169 @@
Contributing to libinput
==============================================================================
Contributions to libinput are always welcome. Any patches should be sent to
the
`wayland-devel <https://lists.freedesktop.org/mailman/listinfo/wayland-devel>`_
email list with a subject prefix of ``[PATCH libinput]``. The easiest
way to achieve that is to run the following command in the libinput
repository: ::
Contributions to libinput are always welcome. Please see the steps below for
details on how to create merge requests, correct git formatting and other
topics:
git config --add format.subjectprefix "PATCH libinput"
.. contents::
:local:
Likewise, any new features should also be discussed publicly on the
wayland-devel list.
Questions regarding this process can be asked on ``#wayland-devel`` on
freenode or on the `wayland-devel@lists.freedesktop.org
<https://lists.freedesktop.org/mailman/listinfo/wayland-devel>`_ mailing
list.
------------------------------------------------------------------------------
Submitting Code
------------------------------------------------------------------------------
Any patches should be sent via a Merge Request (see the `GitLab docs
<https://docs.gitlab.com/ce/gitlab-basics/add-merge-request.htm>`_)
in the `libinput GitLab instance hosted by freedesktop.org
<https://gitlab.freedesktop.org/libinput/libinput>`_.
To submit a merge request, you need to
- `Register an account <https://gitlab.freedesktop.org/users/sign_in>`_ in
the freedesktop.org GitLab instance.
- `Fork libinput <https://gitlab.freedesktop.org/libinput/libinput/forks/new>`_
into your username's namespace
- Get libinput's main repository: ::
git clone https://gitlab.freedesktop.org/libinput/libinput.git
- Add the forked git repository to your remotes (replace ``USERNAME``
with your username): ::
cd /path/to/libinput.git
git remote add gitlab git@gitlab.freedesktop.org:USERNAME/libinput.git
git fetch gitlab
- Push your changes to your fork: ::
git push gitlab BRANCHNAME
- Submit a merge request. The URL for a merge request is: ::
https://gitlab.freedesktop.org/USERNAME/libinput/merge_requests
Select your branch name to merge and ``libinput/libinput`` ``master`` as target branch.
------------------------------------------------------------------------------
Commit History
------------------------------------------------------------------------------
libinput strives to have a
`linear, 'recipe' style history <http://www.bitsnbites.eu/git-history-work-log-vs-recipe/>`_
This means that every commit should be small, digestible, stand-alone, and
functional. Rather than a purely chronological commit history like this: ::
doc: final docs for view transforms
fix tests when disabled, redo broken doc formatting
better transformed-view iteration (thanks Hannah!)
try to catch more cases in tests
tests: add new spline test
fix compilation on splines
doc: notes on reticulating splines
compositor: add spline reticulation for view transforms
We aim to have a clean history which only reflects the final state, broken up
into functional groupings: ::
compositor: add spline reticulation for view transforms
compositor: new iterator for view transforms
tests: add view-transform correctness tests
doc: fix Doxygen formatting for view transforms
This ensures that the final patch series only contains the final state,
without the changes and missteps taken along the development process.
The first line of a commit message should contain a prefix indicating
what part is affected by the patch followed by one sentence that
describes the change. For example: ::
touchpad: add software button behavior
fallback: disable button debouncing on device foo
If in doubt what prefix to use, look at other commits that change the
same file(s) as the patch being sent.
------------------------------------------------------------------------------
Commit Messages
------------------------------------------------------------------------------
Read `on commit messages <http://who-t.blogspot.de/2009/12/on-commit-messages.html>`_
as a general guideline on what commit messages should contain.
Commit messages **should** contain a **Signed-off-by** line with your name
and email address. If you're not the patch's original author, you should
also gather S-o-b's by them (and/or whomever gave the patch to you.) The
significance of this is that it certifies that you created the patch, that
it was created under an appropriate open source license, or provided to you
under those terms. This lets us indicate a chain of responsibility for the
copyright status of the code.
We won't reject patches that lack S-o-b, but it is strongly recommended.
When you re-send patches, revised or not, it would be very good to document the
changes compared to the previous revision in the commit message and/or the
merge request. If you have already received Reviewed-by or Acked-by tags, you
should evaluate whether they still apply and include them in the respective
commit messages. Otherwise the tags may be lost, reviewers miss the credit they
deserve, and the patches may cause redundant review effort.
------------------------------------------------------------------------------
Coding Style
------------------------------------------------------------------------------
Please see the `CODING_STYLE.md
<https://gitlab.freedesktop.org/libinput/libinput/blob/master/CODING_STYLE.md>`_
document in the source tree.
------------------------------------------------------------------------------
Tracking patches and follow-ups
------------------------------------------------------------------------------
Once submitted to GitLab, your patches will be reviewed by the libinput
development team on GitLab. Review may be entirely positive and result in your
code landing instantly, in which case, great! You're done. However, we may ask
you to make some revisions: fixing some bugs we've noticed, working to a
slightly different design, or adding documentation and tests.
If you do get asked to revise the patches, please bear in mind the notes above.
You should use ``git rebase -i`` to make revisions, so that your patches
follow the clear linear split documented above. Following that split makes
it easier for reviewers to understand your work, and to verify that the code
you're submitting is correct.
A common request is to split single large patch into multiple patches. This can
happen, for example, if when adding a new feature you notice a bug in
libinput's core which you need to fix to progress. Separating these changes
into separate commits will allow us to verify and land the bugfix quickly,
pushing part of your work for the good of everyone, whilst revision and
discussion continues on the larger feature part. It also allows us to direct
you towards reviewers who best understand the different areas you are
working on.
When you have made any requested changes, please rebase the commits, verify
that they still individually look good, then force-push your new branch to
GitLab. This will update the merge request and notify everyone subscribed to
your merge request, so they can review it again.
There are also many GitLab CLI clients, if you prefer to avoid the web
interface. It may be difficult to follow review comments without using the
web interface though, so we do recommend using this to go through the review
process, even if you use other clients to track the list of available
patches.
------------------------------------------------------------------------------
Code of Conduct
------------------------------------------------------------------------------
As a freedesktop.org project, libinput follows the `freedesktop.org
Contributor Covenant <https://www.freedesktop.org/wiki/CodeOfConduct>`_.
Please conduct yourself in a respectful and civilised manner when
interacting with community members on mailing lists, IRC, or bug trackers.
The community represents the project as a whole, and abusive or bullying
behaviour is not tolerated by the project.
......@@ -22,7 +22,7 @@ A single gesture cannot change the finger count. For example, if a user
puts down a fourth finger during a three-finger swipe gesture, libinput will
end the three-finger gesture and, if applicable, start a four-finger swipe
gesture. A caller may however decide that those gestures are semantically
identical Tand continue the two gestures as one single gesture.
identical and continue the two gestures as one single gesture.
.. _gestures_pinch:
......
......@@ -153,6 +153,7 @@ src_rst = files(
'tapping.rst',
'test-suite.rst',
'timestamps.rst',
'tablet-debugging.rst',
'tools.rst',
'touchpad-jumping-cursors.rst',
'touchpad-pressure.rst',
......@@ -160,6 +161,7 @@ src_rst = files(
'touchpad-jitter.rst',
'touchpads.rst',
'trackpoints.rst',
'trackpoint-configuration.rst',
'what-is-libinput.rst',
'features.rst',
'development.rst',
......
......@@ -192,7 +192,7 @@ libinput uses two triggers for thumb detection: pressure and
location. A touch exceeding a pressure threshold is considered a thumb if it
is within the thumb detection zone.
.. note:: "Pressure" on touchpads is synonymous with "contact area", a large touch
.. note:: "Pressure" on touchpads is synonymous with "contact area." A large touch
surface area has a higher pressure and thus hints at a thumb or palm
touching the surface.
......
......@@ -77,23 +77,28 @@
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M185.2,422.4 L185.2,413.4 M185.2,16.7 L185.2,25.7 '/> <g transform="translate(185.2,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
<text><tspan font-family="Arial" > 5</tspan></text>
<path stroke='black' d='M159.2,422.4 L159.2,413.4 M159.2,16.7 L159.2,25.7 '/> <g transform="translate(159.2,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
<text><tspan font-family="Arial" > 0.2</tspan></text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M263.2,422.4 L263.2,413.4 M263.2,16.7 L263.2,25.7 '/> <g transform="translate(263.2,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
<text><tspan font-family="Arial" > 0.4</tspan></text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M315.2,422.4 L315.2,413.4 M315.2,16.7 L315.2,25.7 '/> <g transform="translate(315.2,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
<text><tspan font-family="Arial" > 10</tspan></text>
<path stroke='black' d='M367.1,422.4 L367.1,413.4 M367.1,16.7 L367.1,25.7 '/> <g transform="translate(367.1,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
<text><tspan font-family="Arial" > 0.6</tspan></text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M445.1,422.4 L445.1,413.4 M445.1,16.7 L445.1,25.7 '/> <g transform="translate(445.1,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
<text><tspan font-family="Arial" > 15</tspan></text>
<path stroke='black' d='M471.1,422.4 L471.1,413.4 M471.1,16.7 L471.1,25.7 '/> <g transform="translate(471.1,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
<text><tspan font-family="Arial" > 0.8</tspan></text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M575.0,422.4 L575.0,413.4 M575.0,16.7 L575.0,25.7 '/> <g transform="translate(575.0,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
<text><tspan font-family="Arial" > 20</tspan></text>
<text><tspan font-family="Arial" > 1</tspan></text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
......@@ -107,7 +112,7 @@
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<g transform="translate(315.1,471.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle">
<text><tspan font-family="Arial" >delta (units)</tspan></text>
<text><tspan font-family="Arial" >delta (units/ms)</tspan></text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
......@@ -119,19 +124,10 @@
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='rgb(148, 0, 211)' d='M516.2,34.7 L558.4,34.7 M55.3,422.4 L60.5,418.5 L65.7,414.6 L70.9,410.7 L76.1,406.8 L81.3,402.9
L86.5,399.0 L91.7,395.1 L96.9,391.2 L102.1,387.3 L107.3,383.5 L112.5,379.6 L117.7,375.7 L122.9,371.8
L128.1,367.9 L133.3,364.0 L138.5,360.1 L143.6,356.2 L148.8,352.3 L154.0,348.4 L159.2,344.5 L164.4,340.6
L169.6,336.7 L174.8,332.8 L180.0,328.9 L185.2,325.0 L190.4,321.1 L195.6,317.2 L200.8,313.3 L206.0,310.0
L211.2,310.0 L216.4,310.0 L221.6,310.0 L226.8,310.0 L232.0,310.0 L237.2,310.0 L242.4,310.0 L247.6,310.0
L252.8,310.0 L258.0,310.0 L263.2,310.0 L268.4,310.0 L273.6,310.0 L278.8,310.0 L284.0,310.0 L289.2,310.0
L294.4,310.0 L299.6,310.0 L304.8,310.0 L310.0,310.0 L315.2,310.0 L320.3,310.0 L325.5,310.0 L330.7,310.0
L335.9,310.0 L341.1,310.0 L346.3,310.0 L351.5,310.0 L356.7,310.0 L361.9,310.0 L367.1,310.0 L372.3,310.0
L377.5,310.0 L382.7,310.0 L387.9,310.0 L393.1,310.0 L398.3,310.0 L403.5,310.0 L408.7,310.0 L413.9,310.0
L419.1,310.0 L424.3,310.0 L429.5,310.0 L434.7,310.0 L439.9,310.0 L445.1,310.0 L450.3,310.0 L455.5,310.0
L460.7,310.0 L465.9,310.0 L471.1,310.0 L476.3,310.0 L481.5,310.0 L486.7,310.0 L491.8,310.0 L497.0,310.0
L502.2,310.0 L507.4,310.0 L512.6,310.0 L517.8,310.0 L523.0,310.0 L528.2,310.0 L533.4,310.0 L538.6,310.0
L543.8,310.0 L549.0,310.0 L554.2,310.0 L559.4,310.0 L564.6,310.0 L569.8,310.0 L575.0,310.0 '/></g>
<path stroke='rgb(148, 0, 211)' d='M516.2,34.7 L558.4,34.7 M55.3,421.2 L75.8,420.3 L96.2,419.2 L116.7,418.0 L137.1,416.9 L157.6,415.8
L178.1,414.7 L198.5,413.7 L219.0,412.8 L239.4,411.8 L259.9,410.9 L280.4,410.1 L300.8,409.3 L321.3,408.5
L341.7,407.8 L362.2,407.1 L382.7,406.4 L403.1,405.8 L423.6,405.2 L444.1,404.6 L464.5,404.1 L485.0,403.5
L505.4,403.0 L525.9,402.6 L546.4,402.1 L566.8,401.7 L575.0,401.5 '/></g>
</g>
<g id="gnuplot_plot_2" ><title>-0.75</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
......@@ -140,19 +136,10 @@
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='rgb( 0, 158, 115)' d='M516.2,52.7 L558.4,52.7 M55.3,422.4 L60.5,415.3 L65.7,408.1 L70.9,401.0 L76.1,393.8 L81.3,386.7
L86.5,379.6 L91.7,372.4 L96.9,365.3 L102.1,358.1 L107.3,351.0 L112.5,343.9 L117.7,336.7 L122.9,329.6
L128.1,322.4 L133.3,315.3 L138.5,308.2 L143.6,301.0 L148.8,293.9 L154.0,286.7 L159.2,279.6 L164.4,272.5
L169.6,270.7 L174.8,270.7 L180.0,270.7 L185.2,270.7 L190.4,270.7 L195.6,270.7 L200.8,270.7 L206.0,270.7
L211.2,270.7 L216.4,270.7 L221.6,270.7 L226.8,270.7 L232.0,270.7 L237.2,270.7 L242.4,270.7 L247.6,270.7
L252.8,270.7 L258.0,270.7 L263.2,270.7 L268.4,270.7 L273.6,270.7 L278.8,270.7 L284.0,270.7 L289.2,270.7
L294.4,270.7 L299.6,270.7 L304.8,270.7 L310.0,270.7 L315.2,270.7 L320.3,270.7 L325.5,270.7 L330.7,270.7
L335.9,270.7 L341.1,270.7 L346.3,270.7 L351.5,270.7 L356.7,270.7 L361.9,270.7 L367.1,270.7 L372.3,270.7
L377.5,270.7 L382.7,270.7 L387.9,270.7 L393.1,270.7 L398.3,270.7 L403.5,270.7 L408.7,270.7 L413.9,270.7
L419.1,270.7 L424.3,270.7 L429.5,270.7 L434.7,270.7 L439.9,270.7 L445.1,270.7 L450.3,270.7 L455.5,270.7
L460.7,270.7 L465.9,270.7 L471.1,270.7 L476.3,270.7 L481.5,270.7 L486.7,270.7 L491.8,270.7 L497.0,270.7
L502.2,270.7 L507.4,270.7 L512.6,270.7 L517.8,270.7 L523.0,270.7 L528.2,270.7 L533.4,270.7 L538.6,270.7
L543.8,270.7 L549.0,270.7 L554.2,270.7 L559.4,270.7 L564.6,270.7 L569.8,270.7 L575.0,270.7 '/></g>
<path stroke='rgb( 0, 158, 115)' d='M516.2,52.7 L558.4,52.7 M55.3,420.4 L75.8,418.7 L96.2,416.7 L116.7,414.8 L137.1,412.8 L157.6,410.9
L178.1,409.1 L198.5,407.3 L219.0,405.6 L239.4,404.0 L259.9,402.4 L280.4,401.0 L300.8,399.6 L321.3,398.2
L341.7,397.0 L362.2,395.8 L382.7,394.6 L403.1,393.5 L423.6,392.5 L444.1,391.4 L464.5,390.5 L485.0,389.6
L505.4,388.7 L525.9,387.8 L546.4,387.0 L566.8,386.3 L575.0,386.0 '/></g>
</g>
<g id="gnuplot_plot_3" ><title>-0.5</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
......@@ -161,19 +148,10 @@
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='rgb( 86, 180, 233)' d='M516.2,70.7 L558.4,70.7 M55.3,422.4 L60.5,412.0 L65.7,401.6 L70.9,391.2 L76.1,380.9 L81.3,370.5
L86.5,360.1 L91.7,349.7 L96.9,339.3 L102.1,328.9 L107.3,318.5 L112.5,308.2 L117.7,297.8 L122.9,287.4
L128.1,277.0 L133.3,266.6 L138.5,256.2 L143.6,245.8 L148.8,235.5 L154.0,225.1 L159.2,217.6 L164.4,217.6
L169.6,217.6 L174.8,217.6 L180.0,217.6 L185.2,217.6 L190.4,217.6 L195.6,217.6 L200.8,217.6 L206.0,217.6
L211.2,217.6 L216.4,217.6 L221.6,217.6 L226.8,217.6 L232.0,217.6 L237.2,217.6 L242.4,217.6 L247.6,217.6
L252.8,217.6 L258.0,217.6 L263.2,217.6 L268.4,217.6 L273.6,217.6 L278.8,217.6 L284.0,217.6 L289.2,217.6
L294.4,217.6 L299.6,217.6 L304.8,217.6 L310.0,217.6 L315.2,217.6 L320.3,217.6 L325.5,217.6 L330.7,217.6
L335.9,217.6 L341.1,217.6 L346.3,217.6 L351.5,217.6 L356.7,217.6 L361.9,217.6 L367.1,217.6 L372.3,217.6
L377.5,217.6 L382.7,217.6 L387.9,217.6 L393.1,217.6 L398.3,217.6 L403.5,217.6 L408.7,217.6 L413.9,217.6
L419.1,217.6 L424.3,217.6 L429.5,217.6 L434.7,217.6 L439.9,217.6 L445.1,217.6 L450.3,217.6 L455.5,217.6
L460.7,217.6 L465.9,217.6 L471.1,217.6 L476.3,217.6 L481.5,217.6 L486.7,217.6 L491.8,217.6 L497.0,217.6
L502.2,217.6 L507.4,217.6 L512.6,217.6 L517.8,217.6 L523.0,217.6 L528.2,217.6 L533.4,217.6 L538.6,217.6
L543.8,217.6 L549.0,217.6 L554.2,217.6 L559.4,217.6 L564.6,217.6 L569.8,217.6 L575.0,217.6 '/></g>
<path stroke='rgb( 86, 180, 233)' d='M516.2,70.7 L558.4,70.7 M55.3,416.8 L75.8,412.1 L96.2,406.6 L116.7,401.1 L137.1,395.6 L157.6,390.3
L178.1,385.2 L198.5,380.3 L219.0,375.6 L239.4,371.1 L259.9,366.8 L280.4,362.7 L300.8,358.8 L321.3,355.1
L341.7,351.6 L362.2,348.2 L382.7,345.0 L403.1,341.9 L423.6,338.9 L444.1,336.1 L464.5,333.5 L485.0,330.9
L505.4,328.5 L525.9,326.1 L546.4,323.9 L566.8,321.7 L575.0,320.9 '/></g>
</g>
<g id="gnuplot_plot_4" ><title>-0.25</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
......@@ -182,19 +160,10 @@
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='rgb(230, 159, 0)' d='M516.2,88.7 L558.4,88.7 M55.3,422.4 L60.5,408.8 L65.7,395.1 L70.9,381.5 L76.1,367.9 L81.3,354.2
L86.5,340.6 L91.7,327.0 L96.9,313.3 L102.1,299.7 L107.3,286.1 L112.5,272.5 L117.7,258.8 L122.9,245.2
L128.1,231.6 L133.3,217.9 L138.5,204.3 L143.6,190.7 L148.8,177.0 L154.0,163.4 L159.2,149.8 L164.4,145.9
L169.6,145.9 L174.8,145.9 L180.0,145.9 L185.2,145.9 L190.4,145.9 L195.6,145.9 L200.8,145.9 L206.0,145.9
L211.2,145.9 L216.4,145.9 L221.6,145.9 L226.8,145.9 L232.0,145.9 L237.2,145.9 L242.4,145.9 L247.6,145.9
L252.8,145.9 L258.0,145.9 L263.2,145.9 L268.4,145.9 L273.6,145.9 L278.8,145.9 L284.0,145.9 L289.2,145.9
L294.4,145.9 L299.6,145.9 L304.8,145.9 L310.0,145.9 L315.2,145.9 L320.3,145.9 L325.5,145.9 L330.7,145.9
L335.9,145.9 L341.1,145.9 L346.3,145.9 L351.5,145.9 L356.7,145.9 L361.9,145.9 L367.1,145.9 L372.3,145.9
L377.5,145.9 L382.7,145.9 L387.9,145.9 L393.1,145.9 L398.3,145.9 L403.5,145.9 L408.7,145.9 L413.9,145.9
L419.1,145.9 L424.3,145.9 L429.5,145.9 L434.7,145.9 L439.9,145.9 L445.1,145.9 L450.3,145.9 L455.5,145.9
L460.7,145.9 L465.9,145.9 L471.1,145.9 L476.3,145.9 L481.5,145.9 L486.7,145.9 L491.8,145.9 L497.0,145.9
L502.2,145.9 L507.4,145.9 L512.6,145.9 L517.8,145.9 L523.0,145.9 L528.2,145.9 L533.4,145.9 L538.6,145.9
L543.8,145.9 L549.0,145.9 L554.2,145.9 L559.4,145.9 L564.6,145.9 L569.8,145.9 L575.0,145.9 '/></g>
<path stroke='rgb(230, 159, 0)' d='M516.2,88.7 L558.4,88.7 M55.3,409.5 L75.8,398.8 L96.2,386.3 L116.7,373.7 L137.1,361.2 L157.6,349.1
L178.1,337.4 L198.5,326.1 L219.0,315.3 L239.4,305.0 L259.9,295.2 L280.4,285.9 L300.8,276.9 L321.3,268.4
L341.7,260.3 L362.2,252.6 L382.7,245.2 L403.1,238.2 L423.6,231.5 L444.1,225.1 L464.5,218.9 L485.0,213.1
L505.4,207.5 L525.9,202.1 L546.4,197.0 L566.8,192.1 L575.0,190.2 '/></g>
</g>
<g id="gnuplot_plot_5" ><title>0</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
......@@ -203,19 +172,10 @@
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='rgb(240, 228, 66)' d='M516.2,106.7 L558.4,106.7 M55.3,422.4 L60.5,405.5 L65.7,388.6 L70.9,371.8 L76.1,354.9 L81.3,338.0
L86.5,321.1 L91.7,304.3 L96.9,287.4 L102.1,270.5 L107.3,253.6 L112.5,236.8 L117.7,219.9 L122.9,203.0
L128.1,186.1 L133.3,169.2 L138.5,152.4 L143.6,135.5 L148.8,118.6 L154.0,101.7 L159.2,84.9 L164.4,68.0
L169.6,51.1 L174.8,49.2 L180.0,49.2 L185.2,49.2 L190.4,49.2 L195.6,49.2 L200.8,49.2 L206.0,49.2
L211.2,49.2 L216.4,49.2 L221.6,49.2 L226.8,49.2 L232.0,49.2 L237.2,49.2 L242.4,49.2 L247.6,49.2
L252.8,49.2 L258.0,49.2 L263.2,49.2 L268.4,49.2 L273.6,49.2 L278.8,49.2 L284.0,49.2 L289.2,49.2
L294.4,49.2 L299.6,49.2 L304.8,49.2 L310.0,49.2 L315.2,49.2 L320.3,49.2 L325.5,49.2 L330.7,49.2
L335.9,49.2 L341.1,49.2 L346.3,49.2 L351.5,49.2 L356.7,49.2 L361.9,49.2 L367.1,49.2 L372.3,49.2
L377.5,49.2 L382.7,49.2 L387.9,49.2 L393.1,49.2 L398.3,49.2 L403.5,49.2 L408.7,49.2 L413.9,49.2
L419.1,49.2 L424.3,49.2 L429.5,49.2 L434.7,49.2 L439.9,49.2 L445.1,49.2 L450.3,49.2 L455.5,49.2
L460.7,49.2 L465.9,49.2 L471.1,49.2 L476.3,49.2 L481.5,49.2 L486.7,49.2 L491.8,49.2 L497.0,49.2
L502.2,49.2 L507.4,49.2 L512.6,49.2 L517.8,49.2 L523.0,49.2 L528.2,49.2 L533.4,49.2 L538.6,49.2
L543.8,49.2 L549.0,49.2 L554.2,49.2 L559.4,49.2 L564.6,49.2 L569.8,49.2 L575.0,49.2 '/></g>
<path stroke='rgb(240, 228, 66)' d='M516.2,106.7 L558.4,106.7 M55.3,398.0 L75.8,377.7 L96.2,354.1 L116.7,330.2 L137.1,306.6 L157.6,283.6
L178.1,261.4 L198.5,240.1 L219.0,219.7 L239.4,200.2 L259.9,181.7 L280.4,163.9 L300.8,147.0 L321.3,130.9
L341.7,115.6 L362.2,101.0 L382.7,87.0 L403.1,73.7 L423.6,61.0 L444.1,48.8 L464.5,37.3 L485.0,26.2
L503.2,16.7 '/></g>
</g>
<g id="gnuplot_plot_6" ><title>0.5</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
......@@ -224,9 +184,8 @@
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='rgb( 0, 114, 178)' d='M516.2,124.7 L558.4,124.7 M55.3,422.4 L60.5,399.0 L65.7,375.7 L70.9,352.3 L76.1,328.9 L81.3,305.6
L86.5,282.2 L91.7,258.8 L96.9,235.5 L102.1,212.1 L107.3,188.7 L112.5,165.3 L117.7,142.0 L122.9,118.6
L128.1,95.2 L133.3,71.9 L138.5,48.5 L143.6,25.1 L145.5,16.7 '/></g>
<path stroke='rgb( 0, 114, 178)' d='M516.2,124.7 L558.4,124.7 M55.3,360.4 L75.8,308.6 L96.2,248.7 L116.7,187.8 L137.1,127.6 L157.6,69.2
L176.6,16.7 '/></g>
</g>
<g id="gnuplot_plot_7" ><title>1</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
......@@ -235,9 +194,7 @@
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='rgb(229, 30, 16)' d='M516.2,142.7 L558.4,142.7 M55.3,422.4 L60.5,392.5 L65.7,362.7 L70.9,332.8 L76.1,303.0 L81.3,273.1
L86.5,243.2 L91.7,213.4 L96.9,183.5 L102.1,153.7 L107.3,123.8 L112.5,93.9 L117.7,64.1 L122.9,34.2
L125.9,16.7 '/></g>
<path stroke='rgb(229, 30, 16)' d='M516.2,142.7 L558.4,142.7 M55.3,300.7 L75.8,199.0 L96.2,81.4 L107.3,16.7 '/></g>
</g>
<g fill="none" color="#FFFFFF" stroke="rgb(229, 30, 16)" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
......@@ -251,3 +208,4 @@
</g>
</g>
</svg>
.. _tablet-debugging:
==============================================================================
Debugging tablet issues
==============================================================================
.. _tablet-capabilities:
------------------------------------------------------------------------------
Required tablet capabilities
------------------------------------------------------------------------------
To handle a tablet correctly, libinput requires a set of capabilities
on the device. When these capabilities are missing, libinput ignores the
device and prints an error to the log. This error messages reads
::
missing tablet capabilities: xy pen btn-stylus resolution. Ignoring this device.
or in older versions of libinput simply:
::
libinput bug: device does not meet tablet criteria. Ignoring this device.
When a tablet is rejected, it is usually possible to verify the issue with
the ``libinput record`` tool.
- **xy** indicates that the tablet is missing the ``ABS_X`` and/or ``ABS_Y``
axis. This indicates that the device is mislabelled and the udev tag
``ID_INPUT_TABLET`` is applied to a device that is not a tablet.
A bug should be filed against `systemd <http://github.com/systemd/systemd>`__.
- **pen** or **btn-stylus** indicates that the tablet does not have the
``BTN_TOOL_PEN`` or ``BTN_STYLUS`` bit set. libinput requires either or both
of them to be present. This indicates a bug in the kernel driver
or the HID descriptors of the device.
- **resolution** indicates that the device does not have a resolution set
for the x and y axes. This can be fixed with a hwdb entry, locate and read
the `60-evdev.hwdb
<https://github.com/systemd/systemd/tree/master/hwdb/60-evdev.hwdb>`__ file
on your machine and file a pull request with the fixes against
`systemd <https://github.com/systemd/systemd/>`__.
......@@ -422,37 +422,3 @@ libinput uses the **libinput_device_group** to decide on touch arbitration
and automatically discards touch events whenever a tool is in proximity.
The exact behavior is device-dependent.
.. _tablet-capabilities:
------------------------------------------------------------------------------
Required tablet capabilities
------------------------------------------------------------------------------
To handle a tablet correctly, libinput requires a set of capabilities
on the device. When these capabilities are missing, libinput ignores the
device and prints an error to the log. This error messages reads
::
missing tablet capabilities: xy pen btn-stylus resolution. Ignoring this device.
or in older versions of libinput simply:
::
libinput bug: device does not meet tablet criteria. Ignoring this device.
When a tablet is rejected, it is usually possible to check the issue with
the ``evemu-descibe`` tool.
- **xy** indicates that the tablet is missing the ``ABS_X`` and/or ``ABS_Y``
axis. This indicates that the device is mislabelled and the udev tag
``ID_INPUT_TABLET`` is applied to a device that is not a tablet.
- **pen** or **btn-stylus** indicates that the tablet does not have the
``BTN_TOOL_PEN`` or ``BTN_STYLUS`` bit set. libinput requires either or both
of them to be present. This usually indicates a bug in the kernel driver
or the HID descriptors of the device.
- **resolution** indicates that the device does not have a resolution set
for the x and y axes. This can be fixed with a hwdb entry, locate and read
the 60-evdev.hwdb file on your machine to address this.
......@@ -5,7 +5,7 @@ Touchpad pressure-based touch detection
==============================================================================
libinput uses the touchpad pressure values and/or touch size values to
detect wether a finger has been placed on the touchpad. This is
detect whether 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
these thresholds primarily to filter out accidental light touches but
......
.. _trackpoint_configuration:
==============================================================================
Trackpoint configuration
==============================================================================
The sections below describe the trackpoint magic multiplier and how to apply
it to your local device. See :ref:`trackpoint_range` for an explanation on
why this multiplier is needed.
.. note:: The magic trackpoint multiplier **is not user visible configuration**. It is
part of the :ref:`device-quirks` system and provided once per device.
User-specific preferences can be adjusted with the
:ref:`config_pointer_acceleration` setting.
.. _trackpoint_multiplier:
------------------------------------------------------------------------------
The magic trackpoint multiplier
------------------------------------------------------------------------------
To accomodate for the wildly different input data on trackpoint, libinput
uses a multiplier that is applied to input deltas. Trackpoints that send
comparatively high deltas can be "slowed down", trackpoints that send low
deltas can be "sped up" to match the expected range. The actual acceleration
profile is applied to these pre-multiplied deltas.
Given a trackpoint delta ``(dx, dy)``, a multiplier ``M`` and a pointer acceleration
function ``f(dx, dy) → (dx', dy')``, the algorithm is effectively:
::
f(M * dx, M * dy) → (dx', dy')
.. _trackpoint_multiplier_adjustment:
..............................................................................
Adjusting the magic trackpoint multiplier
..............................................................................
This section only applies if:
- the trackpoint default speed (speed setting 0) is unusably slow or
unusably fast, **and**
- the lowest speed setting (-1) is still too fast **or** the highest speed
setting is still too slow, **and**
- the :ref:`device-quirks` for this device do not list a trackpoint multiplier
(see :ref:`device-quirks-debugging`)
If the only satisfactory speed settings are less than -0.75 or greater than
0.75, a multiplier *may* be required.
A specific multiplier will apply to **all users with the same laptop
model**, so proceed with caution. You must be capable/willing to adjust
device quirks, build libinput from source and restart the session frequently
to adjust the multiplier. If this does not apply, wait for someone else with
the same hardware to do this.
Finding the correct multiplier is difficult and requires some trial and
error. The default multiplier is always 1.0. A value between 0.0 and 1.0
slows the trackpoint down, a value above 1.0 speeds the trackpoint up.
Values below zero are invalid.
.. warning:: The multiplier is not a configuration to adjust to personal
preferences. The multiplier normalizes the input data into a range that
can then be configured with the speed setting.
To adjust the local multiplier, first
:ref:`build libinput from git master <building_libinput>`. It is not
required to install libinput from git. The below assumes that all
:ref:`building_dependencies` are already
installed.
::
$ cd path/to/libinput.git
# Use an approximate multiplier in the quirks file
$ cat > quirks/99-trackpont-override.quirks <<EOF
[Trackpoint Override]
MatchUdevType=pointingstick
AttrTrackpointMultiplier=1.0
EOF
# Use your trackpoint's event node. If the Attr does not show up
# then the quirk does not apply to your trackpoint.
$ ./builddir/libinput quirks list /dev/input/event18
AttrTrackpointMultiplier=1.0
# Now start a GUI program to debug the trackpoint speed.
# ESC closes the debug GUI
$ sudo ./builddir/libinput debug-gui
Replace the multiplier with an approximate value and the event node with
your trackpoint's event node. Try to use trackpoint and verify the
multiplier is good enough. If not, adjust the ``.quirks`` file and re-run the
``libinput debug-gui``. Note that the ``libinput debug-gui`` always feels
less responsive than libinput would behave in a normal install.
Once the trackpoint behaves correctly you are ready to test the system
libinput:
::
$ sudo cp quirks/99-trackpoint-override.quirks /etc/libinput/local-overrides.quirks
Now verify the override is seen by the system libinput
::
$ libinput quirks list
AttrTrackpointMultiplier=1.0
If the multiplier is listed, restart your Wayland session or X server. The
new multiplier is now applied to your trackpoint.
If the trackpoint behavior is acceptable, you are ready to submit this file
upstream. First, find add a more precise match for the device so it only
applies to the built-in trackpoint on your laptop model. Usually a
variation of the following is sufficient:
::
[Trackpoint Override]
MatchUdevType=pointingstick
MatchName=*TPPS/2 IBM TrackPoint*
MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadT440p*
AttrTrackpointMultiplier=1.0
Look at your ``/sys/class/dmi/id/modalias`` file for the values to add. Verify
that ``libinput quirks list`` still shows the ``AttrTrackpointMultiplier``. If
it does, then you should :ref:`report a bug <reporting_bugs>` with the contents of
the file. Alternatively, file a merge request with the data added.
.. _trackpoint_range_measure:
------------------------------------------------------------------------------
Measuring the trackpoint range
------------------------------------------------------------------------------
This section only applied to libinput version 1.9.x, 1.10.x, and 1.11.x and
has been removed. See :ref:`trackpoint_multiplier` for versions 1.12.x and later.
If using libinput version 1.11.x or earlier, please see
`the 1.11.0 documentation <https://wayland.freedesktop.org/libinput/doc/1.11.0/trackpoints.html#trackpoint_range_measure>`_
......@@ -18,6 +18,12 @@ libinput always treats the buttons below the space bar as the buttons that
belong to the trackpoint even on the few laptops where the buttons are not
physically wired to the trackpoint device anyway, see :ref:`t440_support`.
.. _trackpoint_buttonscroll:
------------------------------------------------------------------------------
Button scrolling on trackpoints
------------------------------------------------------------------------------
Trackpoint devices have :ref:`button_scrolling` enabled by default. This may
interfer with middle-button dragging, if middle-button dragging is required
by a user then button scrolling must be disabled.
......@@ -42,9 +48,10 @@ the delta values increase. The figure below shows a rough illustration of
this concept. As the pressure
decreases, the delta decrease first, then the reporting rate until the
trackpoint is in a neutral state and no events are reported. Trackpoint data
is hart to generalize, see
<a href="https://who-t.blogspot.com/2018/06/observations-on-trackpoint-input-data.html">
Observations on trackpoint input data</a> for more details.
is hard to generalize, see
`Observations on trackpoint input data
<a href="https://who-t.blogspot.com/2018/06/observations-on-trackpoint-input-data.html">`_
for more details.
.. figure:: trackpoint-delta-illustration.svg
:align: center
......@@ -56,146 +63,6 @@ maximum delta value of 30, others can go beyond 100. However, the useful
delta range is a fraction of the maximum range. It is uncomfortable to exert
sufficient pressure to even get close to the maximum ranges.
.. _trackpoint_multiplier:
------------------------------------------------------------------------------
The magic trackpoint multiplier
------------------------------------------------------------------------------
To accomodate for the wildly different input data on trackpoint, libinput
uses a multiplier that is applied to input deltas. Trackpoints that send
comparatively high deltas can be "slowed down", trackpoints that send low
deltas can be "sped up" to match the expected range. The actual acceleration
profile is applied to these pre-multiplied deltas.
Given a trackpoint delta (dx, dy), a multiplier M and a pointer acceleration
function f(dx, dy) → (dx', dy'), the algorithm is effectively:
::
f(M * dx, M * dy) → (dx', dy')
The magic trackpoint multiplier **is not user visible configuration**. It is
part of the :ref:`device-quirks` system and provided once per device.
User-specific preferences can be adjusted with the pointer acceleration speed
setting **libinput_device_config_accel_set_speed()**.
.. _trackpoint_multiplier_adjustment:
..............................................................................
Adjusting the magic trackpoint multiplier
..............................................................................
This section only applies if:
- the trackpoint default speed (speed setting 0) is unusably slow or
unusably fast, **and**
- the lowest speed setting (-1) is still too fast **or** the highest speed
setting is still too slow, **and**
- the :ref:`device-quirks` for this device do not list a trackpoint multiplier
(see :ref:`device-quirks-debugging`)
If the only satisfactory speed settings are less than -0.75 or greater than
0.75, a multiplier *may* be required.
A specific multiplier will apply to **all users with the same laptop
model**, so proceed with caution. You must be capable/willing to adjust
device quirks, build libinput from source and restart the session frequently
to adjust the multiplier. If this does not apply, wait for someone else with
the same hardware to do this.
Finding the correct multiplier is difficult and requires some trial and
error. The default multiplier is always 1.0. A value between 0.0 and 1.0
slows the trackpoint down, a value above 1.0 speeds the trackpoint up.
Values below zero are invalid.
.. note:: The multiplier is not a configuration to adjust to personal
preferences. The multiplier normalizes the input data into a range that
can then be configured with the speed setting.
To adjust the local multiplier, first :ref:`building_libinput`
"build libinput from git master". It is not required to install libinput
from git. The below assumes that all :ref:`building_dependencies` are already
installed.
::
$ cd path/to/libinput.git
# Use an approximate multiplier in the quirks file
$ cat > quirks/99-trackpont-override.quirks <<EOF
[Trackpoint Override]
MatchUdevType=pointingstick
AttrTrackpointMultiplier=1.0
EOF
# Use your trackpoint's event node. If the Attr does not show up
# then the quirk does not apply to your trackpoint.
$ ./builddir/libinput quirks list /dev/input/event18
AttrTrackpointMultiplier=1.0
# Now start a GUI program to debug the trackpoint speed.
# ESC closes the debug GUI
$ sudo ./builddir/libinput debug-gui
Replace the multiplier with an approximate value and the event node with
your trackpoint's event node. Try to use trackpoint and verify the
multiplier is good enough. If not, adjust the ``.quirks`` file and re-run the
``libinput debug-gui``. Note that the ``libinput debug-gui`` always feels
less responsive than libinput would behave in a normal install.
Once the trackpoint behaves correctly you are ready to test the system
libinput:
::
$ sudo cp quirks/99-trackpoint-override.quirks /etc/libinput/local-overrides.quirks
Now verify the override is seen by the system libinput
::
$ libinput quirks list
AttrTrackpointMultiplier=1.0
If the multiplier is listed, restart your Wayland session or X server. The
new multiplier is now applied to your trackpoint.
If the trackpoint behavior is acceptable, you are ready to submit this file
upstream. First, find add a more precise match for the device so it only
applies to the built-in trackpoint on your laptop model. Usually a
variation of the following is sufficient:
::
[Trackpoint Override]
MatchUdevType=pointingstick
MatchName=*TPPS/2 IBM TrackPoint*
MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadT440p*
AttrTrackpointMultiplier=1.0
Look at your ``/sys/class/dmi/id/modalias`` file for the values to add. Verify
that ``libinput quirks list`` still shows the ``AttrTrackpointMultiplier``. If
it does, then you should :ref:`report a bug <reporting_bugs>` with the contents of
the file. Alternatively, file a merge request with the data added.
.. _trackpoint_range_measure:
------------------------------------------------------------------------------
Measuring the trackpoint range
------------------------------------------------------------------------------
This section only applied to libinput version 1.9.x, 1.10.x, and 1.11.x and
has been removed. See :ref:`trackpoint_multiplier` for versions 1.12.x and later.
libinput provides a :ref:`Magic Trackpoint Multiplier
<trackpoint_multiplier>` to normalize the trackpoint input data.
If using libinput version 1.11.x or earlier, please see
`the 1.11.0 documentation <https://wayland.freedesktop.org/libinput/doc/1.11.0/trackpoints.html#trackpoint_range_measure>`_
......@@ -12,3 +12,5 @@ Troubleshooting
touchpad-jumping-cursors.rst
touchpad-jitter.rst
touchpad-pressure-debugging.rst
trackpoint-configuration.rst
tablet-debugging.rst
project('libinput', 'c', 'cpp',
version : '1.11.902',
version : '1.12.0',
license : 'MIT/Expat',
default_options : [ 'c_std=gnu99', 'warning_level=2' ],
meson_version : '>= 0.41.0')
......@@ -165,6 +165,11 @@ configure_file(input : 'udev/80-libinput-device-groups.rules.in',
install : true,
install_dir : dir_udev_rules,
configuration : udev_rules_config)
configure_file(input : 'udev/90-libinput-model-quirks.rules.in',
output : '90-libinput-model-quirks.rules',
install : true,
install_dir : dir_udev_rules,
configuration : udev_rules_config)
litest_udev_rules_config = configuration_data()
litest_udev_rules_config.set('UDEV_TEST_PATH', meson.build_root() + '/')
......@@ -172,6 +177,10 @@ litest_groups_rules_file = configure_file(input : 'udev/80-libinput-device-group
output : '80-libinput-device-groups-litest.rules',
install : false,
configuration : litest_udev_rules_config)
litest_model_quirks_file = configure_file(input : 'udev/90-libinput-model-quirks.rules.in',
output : '90-libinput-model-quirks-litest.rules',
install : false,
configuration : litest_udev_rules_config)
############ libepoll-shim (BSD) ############
......@@ -251,6 +260,7 @@ quirks_data = [
'quirks/30-vendor-razer.quirks',
'quirks/30-vendor-synaptics.quirks',
'quirks/30-vendor-wacom.quirks',
'quirks/50-system-acer.quirks',
'quirks/50-system-apple.quirks',
'quirks/50-system-asus.quirks',
'quirks/50-system-chicony.quirks',
......@@ -480,7 +490,6 @@ src_python_tools = files(
'tools/libinput-measure-touchpad-tap.py',
'tools/libinput-measure-touchpad-pressure.py',
'tools/libinput-measure-touch-size.py',
'tools/libinput-measure-trackpoint-range.py',
)
config_noop = configuration_data()
......@@ -504,7 +513,6 @@ src_man = files(
'tools/libinput-measure-touchpad-tap.man',
'tools/libinput-measure-touchpad-pressure.man',
'tools/libinput-measure-touch-size.man',
'tools/libinput-measure-trackpoint-range.man',
)
foreach m : src_man
......@@ -759,6 +767,8 @@ if get_option('tests')
join_paths(meson.build_root(), '80-libinput-test-device.rules'))
config_h.set_quoted('LIBINPUT_DEVICE_GROUPS_RULES_FILE',
join_paths(meson.build_root(), '80-libinput-device-groups.rules'))
config_h.set_quoted('LIBINPUT_MODEL_QUIRKS_UDEV_RULES_FILE',
join_paths(meson.build_root(), '90-libinput-model-quirks.rules'))
def_no_main = '-DLITEST_NO_MAIN'
def_disable_backtrace = '-DLITEST_DISABLE_BACKTRACE_LOGGING'
......
......@@ -4,3 +4,8 @@
MatchUdevType=keyboard
MatchBus=ps2
AttrKeyboardIntegration=internal
[Bluetooth Keyboards]
MatchUdevType=keyboard
MatchBus=bluetooth
AttrKeyboardIntegration=external
[Acer Switch Alpha 12]
MatchName=AT Translated Set 2 keyboard
MatchDMIModalias=dmi:*svnAcer:pnSwitchSA5-271:*
ModelTabletModeNoSuspend=1
......@@ -34,6 +34,7 @@ MatchProduct=0x030E
AttrSizeHint=130x110
AttrTouchSizeRange=20:10
AttrPalmSizeThreshold=900
AttrThumbSizeThreshold=700
[Apple Touchpad OneButton]
MatchUdevType=touchpad
......
......@@ -7,3 +7,11 @@ MatchBus=usb
MatchVendor=0x4F2
MatchProduct=0x1558
AttrTPKComboLayout=below
# Lenovo MIIX 720 comes with a detachable touchpad-keyboard combo
[Chicony Lenovo MIIX 720 Touchpad]
MatchUdevType=touchpad
MatchBus=usb
MatchVendor=0x17ef
MatchProduct=0x60a6
AttrTPKComboLayout=below
......@@ -5,6 +5,12 @@ MatchName=* Touchpad
MatchDMIModalias=dmi:*svnDellInc.:*
ModelTouchpadVisibleMarker=1
[Dell i2c Touchpads]
MatchBus=i2c
MatchUdevType=touchpad
MatchDMIModalias=dmi:*svnDellInc.:*
AttrMscTimestamp=watch
[Dell Lattitude E6220 Touchpad]
MatchName=*AlpsPS/2 ALPS GlidePoint
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeE6220:*
......