<big>K</big>ickshaw accepteert de volgende XML-elementen en attribuutnamen, attribuutwaarden en inhoud die geassocieerd zijn met deze elementen:

<tt><b>Element:</b>			<b>Attribuutnamen:</b>
menu           		id, label, icon, execute
separator      		label
item           		label, icon
↳action        		name
 ↳prompt       		n.v.t.
 ↳command      		n.v.t.
 ↳startupnotify		n.v.t.
  ↳enabled     		n.v.t.
  ↳icon        		n.v.t.
  ↳name        		n.v.t.
  ↳wmclass     		n.v.t.

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

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

Menu-ID's bestaande uit lege strings zijn geldig, maar zoals elke andere menu-ID kunnen ze slechts één keer voorkomen in een menu.

— — —

De volgende menu's zijn equivalent en worden beide geaccepteerd door Openbox en 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>

Een menu wordt altijd weergegeven in Kickshaw zoals het eruit zou zien in Openbox, dus het tweede voorbeeld benadert meer een WYSIWYG-benadering. Het nadeel is dat voor grote menu's dit een menu-bestand enigszins verwarrend kan maken. Daarom slaat Kickshaw standaard het menu altijd op in het eerste formaat (dit kan worden gewijzigd in de opties). Bij het opslaan van een bestand gebruikt het programma standaard tabulaties voor inspringingen, maar bij het lezen van het bestand is het onbelangrijk of deze inspringingen zijn gedaan met spaties of tabulaties, evenals eventuele witruimte.

— — —

Een menu kan tegenstrijdige menu-attributen bevatten, zoals in het volgende voorbeeld:

<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 dit geval volgt Kickshaw het voorbeeld van Openbox en toont het de waarde van het icon-attribuut vanuit het menu binnen de root-menu, terwijl het de waarden van de label- en execute-attributen toont vanuit het menu buiten de root-menu.
