WM_COMMAND
La propiedad de ICCCM con la línea de comandos con la que se arrancó un programa, pensada para poder reiniciarlo tras cerrar sesión, y que sigue siendo una ventana directa a argv.
La propiedad es anterior a ICCCM: X11R1, de 1987, ya tenía XSetCommand, que coloca argv sobre la ventana de primer nivel como lista de cadenas separadas por NUL, y el shell de aplicación de Xt la fija por su cuenta, así que xterm, xclock y todo programa Athena o Motif la llevan. xprop muestra WM_COMMAND(STRING) = { "xterm", "-geometry", "80x24" }. El propósito eran las sesiones. En la primera versión de ICCCM el gestor de ventanas enviaba WM_SAVE_YOURSELF vía WM_PROTOCOLS, el programa actualizaba WM_COMMAND con un comando que recrease su estado actual, o la vaciaba si no podía, y el gestor la leía y la guardaba. Junto con WM_CLIENT_MACHINE, que existía en origen para que rsh supiera en qué máquina ejecutar el comando, eso era toda la gestión de sesiones.
ICCCM 2.0 desaconsejó el procedimiento en 1994 en favor de XSMP, pero dejó la propiedad para los programas que nunca aprendieron lo nuevo: el smproxy de xsm, el dtsession de CDE y el guardado de sesión de Window Maker leen todos WM_COMMAND para anotar qué lanzar la próxima vez, y el viejo módulo FvwmSaveDesk de FVWM la escribía directamente en un script de shell. GTK y Qt no la fijan en absoluto. Lo que queda es el efecto secundario: argv está ahí legible para cualquier cliente del display, así que una contraseña en la línea de comandos aparece no solo en ps en la propia máquina sino en xprop en cualquier máquina que tenga el display delante.