“There are many distinct software components in desktop ecosystem. There are tools like Mesa for rendering (and each of its drivers), the Linux KMS/DRM subsystem, buffer allocation with GBM, the userspace libdrm library, libinput and evdev, and much more still.
[...]
libinput
Like libdrm abstracts the DRM subsystem, libinput provides the userspace end of evdev.”