<big>K</big>ickshaw accetta gli elementi XML seguenti e i nomi degli attributi, i valori degli attributi e i contenuti associati a questi elementi:

<tt><b>Elemento:</b>			<b>Nomi degli attributi:</b>
menu           		id, label, icon, execute
separator      		label
item           		label, icon
↳action        		name
 ↳prompt       		<i>non applicabile</i>
 ↳command      		<i>non applicabile</i>
 ↳startupnotify		<i>non applicabile</i>
  ↳enabled     		<i>non applicabile</i>
  ↳icon        		<i>non applicabile</i>
  ↳name        		<i>non applicabile</i>
  ↳wmclass     		<i>non applicabile</i>

					<b>Valori degli attributi:</b>
action         		Execute, Exit, Reconfigure,
               		Restart, SessionLogout
               		
               		<b>Contenuti:</b>
enabled        		yes, no</tt>

Gli ID del menu composti da stringhe vuote sono validi, ma come ogni altro ID del menu possono comparire solo una volta in un menu.

— — —

I seguenti menu sono equivalenti e accettati sia da Openbox che da 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 menu viene sempre mostrato in Kickshaw come apparirebbe in Openbox, quindi il secondo degli esempi è più vicino a un approccio WYSIWYG. Tuttavia, per menu di grandi dimensioni, questo può rendere il file del menu un po' confuso. Per questo motivo, per impostazione predefinita Kickshaw salva sempre il menu nel formato precedente (questo può essere modificato nelle preferenze).

Durante il salvataggio di un file, il programma utilizza tab per i rientri per impostazione predefinita, ma durante la lettura del file, se tali rientri sono stati fatti con spazi o tab è irrilevante, così come qualsiasi spazio vuoto.

— — —

Un menu può contenere attributi di menu contraddittori, come nell'esempio seguente:

<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>

In questo caso, Kickshaw segue l'esempio di Openbox e mostra il valore dell'attributo icon dal menu interno al menu radice, mentre mostra i valori degli attributi label ed execute dal menu esterno al menu radice.
