WM_STATE
A propriedade que o gerenciador de janelas define numa janela cliente para dizer em que estado ela está — e que, na prática, virou o recibo que prova que uma janela é mesmo uma aplicação.
A maioria das propriedades do ICCCM é escrita pelo cliente e lida pelo gerenciador de janelas. A WM_STATE vai no sentido contrário. Depois que o gerenciador adota uma janela de nível superior, em geral envolvendo-a numa moldura própria, ele define a propriedade com dois campos: o estado e o ID da janela de ícone, se houver. Os estados são WithdrawnState (0), NormalState (1) e IconicState (3). A lacuna no 2 não é erro: ZoomState e InactiveState (4) apareceram nos primeiros rascunhos e ficaram no Xutil.h marcados como obsoletos, onde continuam. Um cliente que quer mudar de estado pede enviando WM_CHANGE_STATE à janela raiz, e um que quer sumir de vez desmapeia sua janela e envia um UnmapNotify sintético para que o gerenciador saiba que foi de propósito.
O efeito colateral superou a finalidade. Como só as janelas cliente gerenciadas carregam a WM_STATE, a propriedade é a forma mais simples de distinguir a janela real da aplicação da moldura em volta dela e de todas as janelas auxiliares da árvore. xprop, xdotool, wmctrl e a _NET_CLIENT_LIST do EWMH localizam clientes procurando por ela. Uma janela sem WM_STATE sob um gerenciador de janelas em execução é, portanto, um menu, uma moldura ou uma aplicação que ninguém adotou.