evemu records and replays device descriptions and events, making it possible to emulate input devices through the kernel's input system. Emulated devices are for most practical purposes indistinguishable from real devices.

Getting evemu

Check your distribution's package list for the evemu package. If it is not present, you can get the source from

$> git clone git://git.freedesktop.org/git/evemu
$> cd evemu
$> ./autogen.sh
$> ./configure --prefix=/usr
$> make && sudo make install

For Red Hat Enterprise Linux 6 and compatible distributions, a yum repository and the packages are available.

Running evemu

evemu provides two binaries for recording and replaying devices, evemu-record and evemu-play. In most cases, simply running

sudo evemu-record > recording.evemu

and then selecting the device to record from the list is sufficient. For more options, please see the evemu-record man page.

Ctrl+C terminates the recording and the .evemu file can be attached to a bug report.

To replay events, run evemu-play with the recordings file.

sudo evemu-play recording.evemu

This creates a new device based on the recording and replays the events when the user hits return. Ctrl+C terminates and removes the virtual device. Again, see the man pages for details.

Submitting useful evemu recordings

  • When reproducing the event sequence that triggered the bug, try to reproduce only the event sequence that triggered the bug, no unrelated events. Keep in mind that event sequences are are raw device data. If specific pointer positioning on the target host is required, this must be noted separately in the bug report.
  • Test if your recording reproduces the bug locally with evemu-play. If not, then chances are it will not reproduce it on the maintainer's machine either.

Development and discussion

evemu development is discussed at the input-tools@lists.freedesktop.org mailing list. Please submit patches in git-format, signed-off by you (and the author of the patch where applicable). Use a subject prefix of "PATCH evemu", which can be configured in your git repository by running

git config --add format.subjectprefix "PATCH evemu"

Reporting bugs

File a bug in the freedesktop bugzilla at https://bugs.freedesktop.org/enter_bug.cgi?product=evemu

Maintainers' corner

Steps to make a Release of evemu