До show() у меня netwm нигде не дергается, я все делаю кутишными средствами.
В надежде, что тролли всегда правы
Но получается, что не всегда...
Вообще, одного climsg() должно быть достаточно во всех случаях, когда окно уже показано. Одного XChangeProperty() должно быть достаточно только
до того как окно показано, потому что оно ещё не управляется оконным менеджером. Надо смотреть весь код, так я не скажу почему так происходит.
Не забывай вызывать XFree. В namespace netwm уже есть атомы, они инициализируются во время init(), постоянно дёргать XInternAtom нехорошо.