<big>K</big>ickshaw akzeptiert die folgenden XML-Elemente und Attributnamen, -Werte und mit diesen Elementen assoziierte Werte:

<tt><b>Element:</b>			<b>Attributname:</b>
menu           		id, label, icon, execute
separator      		label
item           		label, icon
↳action        		name
 ↳prompt       		<i>nicht verfügbar</i>
 ↳command      		<i>nicht verfügbar</i>
 ↳startupnotify		<i>nicht verfügbar</i>
  ↳enabled     		<i>nicht verfügbar</i>
  ↳icon        		<i>nicht verfügbar</i>
  ↳name        		<i>nicht verfügbar</i>
  ↳wmclass     		<i>nicht verfügbar</i>

					<b>Attributwerte:</b>
action         		Execute, Exit, Reconfigure,
               		Restart, SessionLogout

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

Aus leeren Strings bestehende Menü-IDs sind gültig, können aber wie jede andere Menü-ID innerhalb des Menüs nur einmal vorkommen.

— — —

Die folgenden Menüs sind äquivalent und werden beide von Openbox und Kickshaw akzeptiert.

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

Ein Menü wird innerhalb Kickshaws stets gleich wie in Openbox angezeigt, daher ist das letztere der beiden Beispiele näher an einem WYSIWYG-Ansatz. Der Nachteil ist dass grössere Menüdateien in diesem Fall etwas verwirrend sein können. Aus diesem Grund speichert Kickshaw standardmässig die Datei im ersteren Format (änderbar in den Optionen). Wenn eine Datei gesichert wird, verwendet das Programm standardmässig Tabulatoren zur Einrückung, aber für das Lesen der Datei ist die Frage, ob solche Einrückungen mit Leerzeichen oder Tabulatoren erfolgen, irrelevant, was generell für jeglichen Leerraum gilt.

— — —

Ein Menü kann wie im folgenden Beispiel sich widersprechende Menüattribute enthalten:

<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 diesem Fall folgt Kickshaw dem Beispiel von Openbox und zeigt den Icon-Attributwert des Root-Menüs, während es die Label- und Execute-Attributwerte ausserhalb des Root-Menüs anzeigt.
