Description

Sets the WM name to a given string, so that it could be detected using _NET_SUPPORTING_WM_CHECK protocol.

May be useful for making Java GUI programs work, just set WM name to LG3D and use Java 1.6u1 (1.6.0_01-ea-b03 works for me) or later.

To your ~/.xmonad/xmonad.hs file, add the following line:

import XMonad.Hooks.SetWMName

Then edit your startupHook:

startupHook = setWMName "LG3D"

For details on the problems with running Java GUI programs in non-reparenting WMs, see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6429775 and related bugs.

Setting WM name to "compiz" does not solve the problem, because of yet another bug in AWT code (related to insets). For LG3D insets are explicitly set to 0, while for other WMs the insets are "guessed" and the algorithm fails miserably by guessing absolutely bogus values.