<big>K</big>ickshaw는 다음과 같은 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>

메뉴는 Openbox에서 보이는 것처럼 항상 Kickshaw 안에서 표시되기 때문에, 두 예시 중 뒤의 예시가 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 속성 값은 표시합니다.
