Fvwm attempts to be ICCCM 2.0 compliant. Check http://tronche.com/gui/x/icccm/ for more info. In addition,
ICCCM states that it should be possible for applications to receive any keystroke, which is not consistent
with the keyboard shortcut approach used in fvwm and most other window managers. In particular you cannot
have the same keyboard shortcuts working with your fvwm and another fvwm running within Xnest (a nested X
server running in a window). The same problem exists with mouse bindings.

The ICCCM states that windows possessing the property

Client accepts input or input focus: False

should not be given the keyboard input focus by the window manager. These windows can take the input focus
by themselves, however. A number of applications set this property, and yet expect the window manager to
give them the keyboard focus anyway, so fvwm provides a window style, Lenience, which allows fvwm to overlook
this ICCCM rule. Even with this window style it is not guaranteed that the application accepts focus.

The differences between ICCCM 1.1 and 2.0 include the ability to take over from a running ICCCM 2.0 compliant
window manager; thus

fvwm; vi ~/.fvwm/config; fvwm -replace

resembles the Restart command. It is not exactly the same, since killing the previously running wm may
terminate your X session, if the wm was started as the last client in your .Xclients or .Xsession file.

Further additions are support for client-side colormap installation (see the ICCCM for details) and the
urgency hint. Clients can set this hint in the WM_HINTS property of their window and expect the window
manager to attract the user’s attention to the window. Fvwm has two re-definable functions for this purpose,
“UrgencyFunc” and “UrgencyDoneFunc”, which are executed when the flag is set/cleared. Their default
definitions are:

AddToFunc UrgencyFunc
+ I Iconify off
+ I FlipFocus
+ I Raise
+ I WarpToWindow !raise 5p 5p
AddToFunc UrgencyDoneFunc
+ I Nop