Two-finger scrolling

The default on two-finger capable touchpads (almost all modern touchpads are capable of detecting two fingers). Scrolling is triggered by two fingers being placed on the surface of the touchpad, then moving those fingers vertically or horizontally.

+---------------------------+   +---------------------------+
|                           |   |                           |
|            ^              |   |                           |
|       ___  | ___          |   |       ___    ___          |
|      // \\ |// \\         |   |   <--// \\--// \\---->    |
|      \\__\\|\\__\\        |   |      \\__\\ \\__\\        |
|       \    \ \    \       |   |       \    \ \    \       |
|        \   v\ \    \      |   |        \    \ \    \      |
+---------\    \-\    \-----+   +---------\    \-\    \-----+

      Vertical scrolling            Horizontal scrolling

For scrolling to trigger, a built-in distance threshold has to be met but once engaged any movement will scroll. In other words, to start scrolling a sufficiently large movement is required, once scrolling tiny amounts of movements will translate into tiny scroll movements.

Scrolling in both directions at once is possible by meeting the required distance thresholds to enable each direction separately.

Edge scrolling

On some touchpads, edge scrolling is available, triggered by moving a single finger along the right edge (vertical scroll) or bottom edge (horizontal scroll).

+--------------------------+      +---------------------------+
|                        ^ |      |                           |
|                        | |      |                           |
|                        |_|      |                           |
|                       // \\     |                           |
|                       \\__\\    |                           |
|                        \    \   |         ___               |
|                        v\    \  |   <----// \\----------->  |
+--------------------------\    \ +--------\\__\\-------------+
                                            \    \

      Vertical scrolling            Horizontal scrolling

Due to the layout of the edges, diagonal scrolling is not possible.

Edge scrolling conflicts with Clickpad software buttons and is not usually available on clickpads.

On-Button scrolling

Scrolling when a button is held down is available on selected devices. The motion of a device is converted into scrolling motion.

For example, Lenovo devices provide a pointing stick that emulates scroll events when the trackstick's middle mouse button is held down.

     +---+---+---+---+          ^
     | F | G_|_H | J |          | 
   +-+-+-+-// \\-+-+-+-+    <---|---> scroll movement
   | C | V \\__\\N | M |        |
   +---+---+\    \-+---+        v
             \    \ 

       +----+-_-+----+
       |    // \\    |
       +---//__//----+
          /    / 

Note that libinput's support for top software buttons enables the use of the middle button for button scrolling (even when the touchpad is disabled).