Processes inputs read from
/dev/input device streams.
Add the following dependency to your
.package(url: "https://github.com/sersoft-gmbh/device-input.git", from: "7.0.0"),
InputDevice is the entry point for streaming input events. Create an input device by passing it the path to the input file. By default, an input device "grabs" its input file when it begins streaming for events. By doing so, no other process (e.g. the default system input handler) will receive the events of the input device. However, this only works on Linux. You can manually pass
false to the
grabDevice parameter in the initializer if you explicitly don't want to grab the device.
You then use the asynchronouse
events sequence on the input device.
Registered event consumers are passed an array of
InputEvent structs. It represents an
input_event from the linux source, but uses native swift types instead of C types. Constants help dealing with events. However, it is currently optimized for handling key state change events. Axis events and other types might need additional work (see the section below about possible features).
While not yet integrated, the following features might provide added value and could make it into DeviceInput in the future:
InputEvent that is optimized for the various kinds of events sent by the input subsystem.
The API is documented using header doc. If you prefer to view the documentation as a webpage, there is an online version available for you.
If you find a bug / like to see a new feature in DeviceInput there are a few ways of helping out:
See LICENSE file.
|Last commit: 21 weeks ago