<big>K</big>ickshaw accepta els següents elements XML i noms d'atributs, valors d'atributs i continguts associats amb aquests elements:

<tt><b>Element:</b>			<b>Noms d'Atribut:</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>Valors d'Atribut:</b>
action         		Execute, Exit, Reconfigure,
               		Restart, SessionLogout

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

Les IDs del menú que consisteixen en cadenes buides són vàlides, però com qualsevol altra ID del menú, només poden aparèixer una vegada en un menú.

— — —

Els següents menús són equivalents i són acceptats tant per Openbox com per 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ú sempre es mostra a Kickshaw tal com apareixeria a Openbox, per tant, l'últim dels dos exemples és més proper a l'enfocament WYSIWYG. La desavantatge és que, per a menús grans, això pot fer que l'aspecte d'un fitxer de menú sigui una mica confús. Per aquest motiu, per defecte Kickshaw sempre guarda el menú en el format anterior (això es pot canviar a les opcions). En desar un fitxer, el programa utilitza tabuladors per a les indentacions de manera predeterminada, però a l'hora de llegir el fitxer, si les indentacions es van realitzar amb espais o tabuladors és irrelevant, així com qualsevol espai en blanc.

— — —

Un menú pot contenir atributs de menú contradictoris, com es mostra en l'exemple següent:

<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 aquest cas, Kickshaw segueix l'exemple de Openbox i mostra el valor de l'atribut icon des de dins del menú Root, mentre mostra els valors dels atributs label i execute des de fora del menú Root.
