libinput is a generic input device handling library. It abstracts commonly-used concepts such as keyboard, pointer and touchpad handling behind an API.