f31522130f
Build system (5 gaps hardened): - COOKBOOK_OFFLINE defaults to true (fork-mode) - normalize_patch handles diff -ruN format - New 'repo validate-patches' command (25/25 relibc patches) - 14 patched Qt/Wayland/display recipes added to protected list - relibc archive regenerated with current patch chain Boot fixes (fixable): - Full ISO EFI partition: 16 MiB → 1 MiB (matches mini, BIOS hardcoded 2 MiB offset) - D-Bus system bus: absolute /usr/bin/dbus-daemon path (was skipped) - redbear-sessiond: absolute /usr/bin/redbear-sessiond path (was skipped) - daemon framework: silenced spurious INIT_NOTIFY warnings for oneshot_async services (P0-daemon-silence-init-notify.patch) - udev-shim: demoted INIT_NOTIFY warning to INFO (expected for oneshot_async) - relibc: comprehensive named semaphores (sem_open/close/unlink) replacing upstream todo!() stubs - greeterd: Wayland socket timeout 15s → 30s (compositor DRM wait) - greeter-ui: built and linked (header guard unification, sem_compat stubs removed) - mc: un-ignored in both configs, fixed glib/libiconv/pcre2 transitive deps - greeter config: removed stale keymapd dependency from display/greeter services - prefix toolchain: relibc headers synced, _RELIBC_STDLIB_H guard unified Unfixable (diagnosed, upstream): - i2c-hidd: abort on no-I2C-hardware (QEMU) — process::exit → relibc abort - kded6/greeter-ui: page fault 0x8 — Qt library null deref - Thread panics fd != -1 — Rust std library on Redox - DHCP timeout / eth0 MAC — QEMU user-mode networking - hwrngd/thermald — no hardware RNG/thermal in VM - live preload allocation — BIOS memory fragmentation, continues on demand
68 lines
2.9 KiB
ReStructuredText
68 lines
2.9 KiB
ReStructuredText
.. _trackpoints:
|
|
|
|
==============================================================================
|
|
Trackpoints and Pointing Sticks
|
|
==============================================================================
|
|
|
|
This page provides an overview of trackpoint handling in libinput, also
|
|
referred to as Pointing Stick or Trackstick. The device itself is usually a
|
|
round plastic stick between the G, H and B keys with a set of buttons below
|
|
the space bar.
|
|
|
|
.. figure:: button-scrolling.svg
|
|
:align: center
|
|
|
|
A trackpoint
|
|
|
|
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.
|
|
|
|
.. _trackpoint_range:
|
|
|
|
------------------------------------------------------------------------------
|
|
Motion range on trackpoints
|
|
------------------------------------------------------------------------------
|
|
|
|
It is difficult to associate motion on a trackpoint with a physical
|
|
reference. Unlike mice or touchpads where the motion can be
|
|
measured in mm, the trackpoint only responds to pressure. Without special
|
|
equipment it is impossible to measure identical pressure values across
|
|
multiple laptops.
|
|
|
|
The values provided by a trackpoint are motion deltas, usually corresponding
|
|
to the pressure applied to the trackstick. For example, pressure towards the
|
|
screen on a laptop provides negative y deltas. The reporting rate increases
|
|
as the pressure increases and once events are reported at the maximum rate,
|
|
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 hard to generalize, see
|
|
`Observations on trackpoint input data
|
|
<https://who-t.blogspot.com/2018/06/observations-on-trackpoint-input-data.html>`_
|
|
for more details.
|
|
|
|
.. figure:: trackpoint-delta-illustration.svg
|
|
:align: center
|
|
|
|
Illustration of the relationship between reporting rate and delta values on a trackpoint
|
|
|
|
The delta range itself can vary greatly between laptops, some devices send a
|
|
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.
|
|
|
|
libinput provides a :ref:`Magic Trackpoint Multiplier
|
|
<trackpoint_multiplier>` to normalize the trackpoint input data.
|