Kickshaw 接受以下 XML 元素和屬性名稱、屬性值以及與這些元素相關的內容：

<tt><b>元素:</b>				<b>屬性名稱:</b>
menu           		id, label, icon, execute
separator      		label
item           		label, icon
↳action        		name
 ↳prompt       		不適用
 ↳command      		不適用
 ↳startupnotify		不適用
  ↳enabled     		不適用
  ↳icon        		不適用
  ↳name        		不適用
  ↳wmclass     		不適用

					<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 屬性值。
