<big>K</big>ickshaw akceptuje następujące elementy XML i nazwy atrybutów, wartości atrybutów i treści z nimi związane:

<tt><b>Element:</b>			<b>Nazwy atrybutów:</b>
menu           		id, label, icon, execute
separator      		label
item           		label, icon
↳action        		name
 ↳prompt       		<i>nie dot.</i>
 ↳command      		<i>nie dot.</i>
 ↳startupnotify		<i>nie dot.</i>
  ↳enabled     		<i>nie dot.</i>
  ↳icon        		<i>nie dot.</i>
  ↳name        		<i>nie dot.</i>
  ↳wmclass     		<i>nie dot.</i>

					<b>Wartości atrybutów:</b>
action         		Execute, Exit, Reconfigure,
               		Restart, SessionLogout

					<b>Treści:</b>
enabled        		yes, no</tt>

ID menu składające się z pustych ciągów znaków są prawidłowe, ale jak każde inne ID menu, mogą występować tylko raz w menu.

— — —

Następujące menu są równoważne i akceptowane zarówno przez Openbox, jak i 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>

Menu jest zawsze pokazywane w Kickshaw tak, jakby było w Openbox, więc drugi z tych dwóch przykładów jest bardziej zbliżony do podejścia WYSIWYG. Wada polega na tym, że dla dużych menu może to sprawić, że plik menu wygląda nieco myląco. Z tego powodu, domyślnie Kickshaw zawsze zapisuje menu w formacie pierwszego przykładu (można to zmienić w opcjach).

Podczas zapisywania pliku, program używa domyślnie tabulatorów do wcięć, ale podczas odczytu pliku, czy wcięcia zostały wykonane spacjami czy tabulatorami, jest bez znaczenia, tak samo jak wszelkie białe znaki.

— — —

Menu może zawierać sprzeczne atrybuty menu, jak w poniższym przykładzie:

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

W tym przypadku Kickshaw podąża za przykładem Openbox i pokazuje wartość atrybutu „icon" z menu wewnątrz menu głównego, podczas gdy pokazuje wartości atrybutów „label" i „execute" z menu na zewnątrz menu głównego.
