This document is intended to assist Linux developers who would like to have access to low level pen data and tablet events. The information here will be useful to those writing a compositor, or for those writing an application that needs to work outside the usual pathways for input events.
Kernel events are the lowest level events that you can get from the device (without writing your own driver). Other parts of the input stack use the kernel events to generate their own events. Under most circumstances, kernel events become X or Wayland events and then those events ultimately become UI toolkit events.
Wacom-related kernel events are absorbed from USB or Bluetooth devices by the Wacom kernel driver. These events are emitted through the Linux kernel's standardized input-event protocol. As such you have access to Wacom pen/touch data the same way you would have access to mouse data. Processing the Wacom data is matter of supporting regular input data like coordinates, plus the extra data like pressure and tilt that Wacom devices provide.
Types of Applications You Can Write With Kernel Events
Most developers wishing to use pen and tablet events in their applications will choose to use events emitted from a UI toolkit like GTK or QT. Only use kernel events in your application if you know that they are required for your purpose.
Kernel Events Supported Tablets
All Wacom tablets supported by the Wacom driver are supported by this API. Get the driver that supports your device at: https://github.com/linuxwacom/input-wacom.
Kernel Event - Supported Kernels
The most up to date list of which kernel adds support for a given tablet can be found here: https://github.com/linuxwacom/input-wacom/wiki/Device-IDs
Most tablets released after 2016 work on Kernels 4.12 or later out of the box.