-display is followed by the display to open.
-idle is followed by the number of seconds between polls for idleness. The default is 5.
-keystroke tells unclutter not to use a timeout to determine when to remove the cursor, but to instead wait until a key has been pressed (released, really).
-jitter is followed by the amount of movement of the pointer that is to be ignored and considered as random noise. The default is 0.
-exec is followed by a command to execute on idle. This is for example useful to disable a touchpad.
-grab means use the original method of grabbing the pointer in order to remove the cursor. This often doesn't interoperate too well with some window managers.
-noevents stops unclutter sending a pseudo EnterNotify event to the X client whose cursor has been stolen. Sending the event helps programs like emacs think that they have not lost the pointer focus. This option is provided for backwards compatibility in case some clients get upset.
-reset resets the timeout for idleness after the cursor is restored for some reason (such as a window being pushed or popped) even though the x y coordinates of the cursor have not changed. Normally, the cursor would immediately be removed again.
-root means remove the cursor even if it is on the root background, where in principle it should not be obscuring anything useful.
-onescreen restricts unclutter to the single screen specified as display, or the default screen for the display. Normally, unclutter will unclutter all the screens on a display.
-not is followed by a list of window names where the cursor should not be removed. The first few characters of the WM_NAME property on the window need to match one the listed names. This argument must be the last on the command line.
The -keystroke option does not distinguish modifier keys from keys which actually generate characters. If desired this could be implemented in a simple way by using XLookupString to see if any characters are returned.