42.13.2 Recording Input

Function: recent-keys &optional include-cmds

This function returns a vector containing the last 300 input events from the keyboard or mouse. All input events are included, whether or not they were used as parts of key sequences. Thus, you always get the last 300 input events, not counting events generated by keyboard macros. (These are excluded because they are less interesting for debugging; it should be enough to see the events that invoked the macros.)

If include-cmds is non-nil, complete key sequences in the result vector are interleaved with pseudo-events of the form (nil . COMMAND), where COMMAND is the binding of the key sequence (see Command Loop Overview).

A call to clear-this-command-keys (see Information from the Command Loop) causes this function to return an empty vector immediately afterward.

Command: open-dribble-file filename

This function opens a dribble file named filename. When a dribble file is open, each input event from the keyboard or mouse (but not those from keyboard macros) is written in that file. A non-character event is expressed using its printed representation surrounded by ‘<…>’. Be aware that sensitive information (such as passwords) may end up recorded in the dribble file.

You close the dribble file by calling this function with an argument of nil.

See also the open-termscript function (see Terminal Output).