37

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

Nidal
  • 8,956
fstab
  • 890

1 Answers1

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

HalosGhost
  • 4,790
  • 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