struct libevdev *dev = NULL;
int fd;
int rc = 1;
fd = open("/dev/input/event0", O_RDONLY|O_NONBLOCK);
rc = libevdev_new_from_fd(fd, &dev);
if (rc < 0) {
fprintf(stderr, "Failed to init libevdev (%s)\n", strerror(-rc));
exit(1);
}
printf("Input device name: \"%s\"\n", libevdev_get_name(dev));
printf("Input device ID: bus %#x vendor %#x product %#x\n",
libevdev_get_id_bustype(dev),
libevdev_get_id_vendor(dev),
libevdev_get_id_product(dev));
if (!libevdev_has_event_type(dev, EV_REL) ||
!libevdev_has_event_code(dev, EV_KEY, BTN_LEFT)) {
printf("This device does not look like a mouse\n");
exit(1);
}
do {
struct input_event ev;
rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
if (rc == 0)
printf("Event: %s %s %d\n",
libevdev_event_type_get_name(ev.type),
libevdev_event_code_get_name(ev.type, ev.code),
ev.value);
} while (rc == 1 || rc == 0 || rc == -EAGAIN);
# libevdev
libevdev is a wrapper library for evdev devices. it moves the common
tasks when dealing with evdev devices into a library and provides a library
interface to the callers, thus avoiding erroneous ioctls, etc.
The eventual goal is that libevdev wraps all ioctls available to evdev
devices, thus making direct access unnecessary.
This wiki page is largely a placeholder, documentation about libevdev and examples are available in the [API documentation](http://www.freedesktop.org/software/libevdev/doc/latest).
## Releases
* **stable:** [1.3.2 - released Dec 4, 2014](http://lists.freedesktop.org/archives/input-tools/2014-December/001132.html)
### Older releases
* [0.2 - released July 23, 2013](http://lists.freedesktop.org/archives/input-tools/2013-July/000001.html)
* [0.2.1 - released July 25, 2013](http://lists.freedesktop.org/archives/input-tools/2013-July/000005.html)
* [0.3 - released Aug 8, 2013](http://lists.freedesktop.org/archives/input-tools/2013-August/000048.html)
* [0.4 - released Sep 18, 2013](http://lists.freedesktop.org/archives/input-tools/2013-September/000342.html)
* [0.4.1 - released Nov 5, 2013](http://lists.freedesktop.org/archives/input-tools/2013-November/000469.html)
* [0.5 - released Nov 22, 2013](http://lists.freedesktop.org/archives/input-tools/2013-November/000528.html)
* [0.6 - released Dec 23, 2013](http://lists.freedesktop.org/archives/input-tools/2013-December/000624.html)
* [0.9.1 - released Jan 29, 2014](http://lists.freedesktop.org/archives/input-tools/2014-January/000763.html)
* [1.0 - released Feb 18, 2014](http://lists.freedesktop.org/archives/input-tools/2014-February/000766.html)
* [1.0.1 - released Mar 6, 2014](http://lists.freedesktop.org/archives/input-tools/2014-March/000815.html)
* [1.1 - released Mar 25, 2014](http://lists.freedesktop.org/archives/input-tools/2014-March/000843.html)
* [1.2 - released Apr 30, 2014](http://lists.freedesktop.org/archives/input-tools/2014-April/000895.html)
* [1.3 - released Sep 9, 2014](http://lists.freedesktop.org/archives/input-tools/2014-September/001112.html)
* [1.3.1 - released Nov 12, 2014](http://lists.freedesktop.org/archives/input-tools/2014-November/001123.html)
## git Repository
* git://anongit.freedesktop.org/libevdev
* ssh://git.freedesktop.org/git/libevdev
## cgit Web Frontend
*
## Documentation
[API documentation](http://www.freedesktop.org/software/libevdev/doc/):
* [libevdev 1.3](http://www.freedesktop.org/software/libevdev/doc/1.3)
* [libevdev 1.2](http://www.freedesktop.org/software/libevdev/doc/1.2)
* [libevdev 1.1](http://www.freedesktop.org/software/libevdev/doc/1.1)
* [libevdev 1.0](http://www.freedesktop.org/software/libevdev/doc/1.0)
* [current development version](http://www.freedesktop.org/software/libevdev/doc/latest)
### Documentation for pre-releases
* [0.6](http://www.freedesktop.org/software/libevdev/doc/0.6)
* [0.5](http://www.freedesktop.org/software/libevdev/doc/0.5)
* [0.4](http://www.freedesktop.org/software/libevdev/doc/0.4)
* [0.3](http://www.freedesktop.org/software/libevdev/doc/0.3)
* [0.2](http://www.freedesktop.org/software/libevdev/doc/0.2)
## Downloads
Source tarballs are available
## Development
Please submit patches to the [input-tools@lists.freedesktop.org](http://lists.freedesktop.org/mailman/listinfo/input-tools) mailing list.
## Reporting Bugs
libevdev has a bugzilla component in the [freedesktop.org Bugzilla](https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev)