<big>K</big>ickshaw принимает следующие элементы XML, имена атрибутов, значения атрибутов и содержимое, связанное с этими элементами:

<tt><b>Элемент:</b>            <b>Имена атрибутов:</b>
menu           		id, label, icon, execute
separator      		label
item           		label, icon
↳action        		name
 ↳prompt       		<i>неприменимо</i>
 ↳command      		<i>неприменимо</i>
 ↳startupnotify		<i>неприменимо</i>
  ↳enabled     		<i>неприменимо</i>
  ↳icon        		<i>неприменимо</i>
  ↳name        		<i>неприменимо</i>
  ↳wmclass     		<i>неприменимо</i>

					<b>Значения атрибутов:</b>
action         		Execute, Exit, Reconfigure,
               		Restart, SessionLogout

					<b>Содержание:</b>
enabled        		yes, no</tt>

Идентификаторы (ID) меню, состоящие из пустых строк, являются допустимыми, но, как и любой другой ID меню, могут появляться только один раз в меню.

— — —

Следующие меню эквивалентны и оба принимаются Openbox и 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>

Меню всегда отображается в Kickshaw так, как оно выглядит в Openbox, поэтому последний из двух примеров ближе к подходу WYSIWYG. Однако это может привести к тому, что для больших меню файл будет выглядеть несколько запутанно. По умолчанию Kickshaw всегда сохраняет меню в первоначальном формате (это можно изменить в настройках). При сохранении файла программа использует табуляцию для отступов по умолчанию, но при чтении файла не имеет значения, были ли эти отступы сделаны пробелами или табуляцией, так же как и любые пробелы.

— — —

Меню может содержать противоречивые атрибуты меню, как в следующем примере:

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

В этом случае Kickshaw следует примеру Openbox и отображает значение атрибута «icon» изнутри корневого меню, в то время как значения атрибутов «label» и «execute» показывает извне корневого меню.
