evdev: Bindings to libevdev

[ bsd3, library, system ] [ Propose Tags ]

Provides access to the Linux event device interface.


[Skip to Readme]
Versions [RSS] [faq] 0.1.0.0, 0.1.0.1, 0.2.0.0, 0.2.0.1, 1.0.0.0, 1.1.0.0, 1.1.0.1, 1.2.0.0, 1.2.0.1, 1.3.0.0, 2.0.0.0, 2.0.0.1, 2.1.0 (info)
Change log CHANGELOG.md
Dependencies base (>=4.11 && <5), bytestring (==0.10.*), containers (>=0.6.2 && <0.7), extra (>=1.6.18 && <1.8), monad-loops (>=0.4.3 && <0.5), time (>=1.9.3 && <1.11), unix (>=2.7.2 && <2.8) [details]
License BSD-3-Clause
Author George Thomas
Maintainer George Thomas
Category System
Home page https://github.com/georgefst/evdev
Source repo head: git clone git://github.com/georgefst/evdev.git
Uploaded by GeorgeThomas at 2020-05-30T16:19:08Z
Distributions NixOS:2.1.0
Downloads 2410 total (30 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Candidates


Readme for evdev-2.0.0.0

[back to package description]

Evdev

This library provides access to the Linux evdev interface, for reading input events from devices. It uses c2hs-generated bindings to libevdev, which should be available on almost any modern Linux distro.

It aims to expose the full set of functionality exposed by libevdev, while providing stronger types, and a higher level of abstraction - no worrying about memory management, ordering of operations etc.

Getting started

Your user will need to be a member of the input group in order to read from devices. Try usermod -a -G input [username].

If you wish to make use of concurrency, e.g. to use functions like allEvents, be sure to pass the option -threaded to GHC, in order to enable the threaded runtime.

The evdev-examples folder contains a basic evtest clone, with the added ability to read events from multiple devices concurrently.

Streamly

For a higher-level, more functional API based on event streams, see evdev-streamly.