36

Is it possible to display all events that are generated in Xorg? Such as keyboard pressed, mouse events...?

Nidal
  • 8,856
  • 11
  • 55
  • 74
fstab
  • 880
  • 4
  • 11
  • 18

1 Answers1

51

A pretty quick search would likely yield xev as a result. It will not show you everything that is pressed or typed in X ever. But rather, will allow you to see information about keycodes and mouse movements.

However, with the -root option, you might be able to get xev to monitor the whole X session. Note, if you do this, you'll make it pretty difficult to actually interact with any program since xev will be capturing all input.

xev -root comes with an implied "YMMV". Another possible solution is to use xinput to get the job done (though you need a recent version (1.6.1 or above)):

$ xinput test-xi2 --root

While the above should be able to capture all events, if your xinput doesn't support test-xi2 or --root, you can use xinput test on a particular keyboard or mouse device.

See also this other question: Record every keystroke and store in a file

HalosGhost
  • 4,732
  • 10
  • 33
  • 41
  • 1
    Actually, `xev` should show you *all* events... it's just that it only monitors one window at a time. Perhaps one could hack a script to launch multiple copies of `xev` each monitoring one window so that you end up monitoring all of them? – Celada Jul 24 '14 at 08:02
  • xev and xinput test don't show you touch events while xinput test-xi2 does. – u149796 May 07 '15 at 09:01
  • 1
    @dkreuter, I have added your qualification inline. – HalosGhost May 07 '15 at 13:16
  • 10
    *"However, with the -root option, you might be able to get xev to monitor the whole X session."* <= This is wrong. This way, `xev` will only capture events on the "root window", i.e. normally your desktop background. `xinput` is the correct solution for capturing all events regardless of the currently active window. – Fritz Nov 17 '15 at 13:07