Note: this wiki is no longer maintained. If you have any questions related to this wiki, please post them on the CrunchBang forums.
The Openbox menu (aka obmenu) is highly flexible, and using what are known as pipe menus you can display virtually anything in your menu, but it does have the downside of by default not automatically updating to show newly installed applications, these need to be added by hand.
There are two ways of editing the Openbox menu, a GUI tool called obmenu, or editing the menu file directly.
Obmenu can be accessed from the menu, Preferences –> Openbox Config –> GUI Menu Editor.
Using obmenu is pretty self explanatory, to edit an entry select it and edit the details on the bottom, or to add an entry select 'new item' from the top.
The menu.xml file can also be accessed from the menu, through Preferences –> Openbox Config –> Edit menu.xml.
The menu file uses XML syntax, you will see a lot of entries like this:
<item label="Run Program"> <action name="Execute"> <execute> gmrun </execute> </action> </item>
<item label="Run Program">
This is the label shown on the menu, in this case 'Run Program'.
This is what happens when the entry is clicked, in this case, something is executed.
<execute> gmrun </execute>
This is the command that is actually run.
These are closing tags for the above entries, all opening tags need to have matching closing tags.
Pipe menus are menus that when used run a terminal program and display the output in the menu, this can be used for a variety of things, such as displaying the time, or the weather in the menu, showing a calendar, a todo list and showing what music you're currently playing. In the default menu, you already have a couple of pipe menus. The Places sub menu is a pipe menu that builds a view of your home directory, if you click on a picture it will launch an image viewer, if you click on a text file it will launch a text editor.
For instructions on installing scripts please read the ADMIN Installing Scripts page.
Once you've done that you then need to add an entry to you main menu.
First click the line where you want the menu item to be added, then select 'Pipemenu' from the Add menu, in the label section add a name, then in the command section add the full path of you script eg
~/bin/scriptname, and save.
Go to the section where you want to add the entry then add something like this:
<menu execute="~/bin/scriptname" id="scriptname" label="scriptname"/>
Save and exit.
Then to reload the menu, either in a terminal, type:
Or in the menu, go to Preferences –> Openbox Config –> Reconfigure
If you want applications you've just installed to show up automatically theres a pipemenu for that. Open up the Menu.xml file and add:
<menu id="/Debian" />
Where you would like the menu to appear.
Then open ~/.config/openbox/rc.xml, (in the menu under under Preferences –> Openbox Config –> edit rc.xml). Then find the section (fairly near the bottom) containing:
<!-- system menu files on Debian systems <file>/var/lib/openbox/debian-menu.xml</file> <file>debian-menu.xml</file> -->
and change it to:
<!-- system menu files on Debian systems --> <file>/var/lib/openbox/debian-menu.xml</file> <file>debian-menu.xml</file>
Then you need to install the menu application, either in the terminal type:
sudo apt-get install menu
or use synaptic (in the menu, System –> Package Manager), search for menu, right click and select mark for installation and then select apply. And finally type: