<big>K</big>ickshaw acepta los siguientes elementos XML y nombres de atributos, valores de atributos y contenidos asociados a estos elementos:

<tt><b>Elemento:</b>			<b>Nombres de atributos:</b>
menu           		id, label, icon, execute
separator      		label
item           		label, icon
↳action        		name
 ↳prompt       		N/D
 ↳command      		N/D
 ↳startupnotify		N/D
  ↳enabled     		N/D
  ↳icon        		N/D
  ↳name        		N/D
  ↳wmclass     		N/D

					<b>Valores de atributos:</b>
action         		Execute, Exit, Reconfigure,
               		Restart, SessionLogout

					<b>Contenidos:</b>
enabled        		yes, no</tt>

Los identificadores de menú que consisten en cadenas vacías son válidos, pero al igual que cualquier otro identificador de menú, solo pueden aparecer una vez en un menú.

— — —

Los siguientes menús son equivalentes y son aceptados tanto por Openbox como por Kickshaw.

<tt><b>(1)</b> &lt;openbox_menu&gt;

      &lt;menu id="menu1" label="Menu1"&gt;
        &lt;item label="item"/&gt;
      &lt;/menu&gt;

      &lt;menu id="root-menu"&gt;
        &lt;menu id="menu1"/&gt;
      &lt;/menu&gt;

    &lt;/openbox_menu&gt;</tt>

<tt><b>(2)</b> &lt;openbox_menu&gt;

      &lt;menu id="root-menu"&gt;
        &lt;menu id="menu1" label="Menu1"&gt;
          &lt;item label="item"/&gt;
        &lt;/menu&gt;
      &lt;/menu&gt;

    &lt;/openbox_menu&gt;</tt>

Un menú siempre se muestra dentro de Kickshaw tal como aparecería en Openbox, por lo que el segundo de los dos ejemplos se acerca más a un enfoque de WYSIWYG. La desventaja es que, para menús grandes, esto puede hacer que un archivo de menú se vea un tanto confuso. Por esa razón, de manera predeterminada, Kickshaw siempre guarda el menú en el formato anterior (esto se puede cambiar en las opciones). Al guardar un archivo, el programa utiliza tabuladores para las sangrías de manera predeterminada, pero para leer el archivo, no importa si estas sangrías se hicieron con espacios o tabuladores, al igual que cualquier espacio en blanco.

— — —

Un menú puede contener atributos de menú contradictorios, como en el siguiente ejemplo:

<tt>&lt;openbox_menu&gt;

  &lt;menu id="menu1" label="outside" icon="out.jpg" execute="out" /&gt;

  &lt;menu id="root-menu"&gt;
    &lt;menu id="menu1" label="inside" icon="in.jpg" execute="in" /&gt;
  &lt;/menu&gt;

&lt;/openbox_menu&gt;</tt>

En este caso, Kickshaw sigue el ejemplo de Openbox y muestra el valor del atributo "icon" desde dentro del menú Root, mientras muestra los valores de los atributos "label" y "execute" desde fuera del menú Root.
