37

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

1 Answer 1

53

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

4
  • 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
    Commented Jul 24, 2014 at 8:02
  • xev and xinput test don't show you touch events while xinput test-xi2 does.
    – u149796
    Commented May 7, 2015 at 9:01
  • 1
    @dkreuter, I have added your qualification inline.
    – HalosGhost
    Commented May 7, 2015 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
    Commented Nov 17, 2015 at 13:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .