The wrapper shellscript to compiz-boxmenu-editor made the mistake of hardcoding $(PREFIX). To fix this, the shellscript was turned into a template which is now generated by the makefile. The generated shellscript also performs minimum version checks needed for the editor to run. Currently, that'd be at least python 2.6.
The 1.1.3 release of Compiz Boxmenu holds some fixes for the Makefile and deskmenu-menu.c that make the program compilable on both Linux systems and BSD systems. Kudos to the people at #netbsd and one of my friends for helping me with this!
All this includes is a bugfix for freeing the blank string. The free should only happen when the placeholder string isn't blank.
This features just a few compiliation warning removals and a fancy new editor. I still need to get this fully working on BSD systems, since someone was interested in packaging it for one.
It's been a while since I have worked on this, and I figured that since the menu program itself is fine (unless pipeitems are to be placed back in, which I have a vaguely more okay idea on how to do them), I should work on revamping the editor to be more oriented towards managing menus.
http://dl.dropbox.com/u/12096853/old_cbeditor_vs_new_mockup.png
Here is the old editor, and the new idea for it next to it. In the toolbar for it, there is the obvious new, edit, and delete buttons for items and the menus stuffed in config dir for compiz boxmenu. The save button is for the menu, and the convert button will probably do either one of two things:... read more
Made a package just now for it using multipkg (it's under the packages folder). Try testing the package on an Ubuntu or Debian livecd before installing it on your system. If there are any missing/mislabeled dependencies, be sure to hit the bugtracker and tell me about it.
Everything pretty much remains the same as in writing pipeitems except for two things:
Adding a pipemenu is done by
<item type="launcher">
<icon>someicon</icon>
<command mode2="pipe">yourpipe opts</command>
<name>somename</name>
</item>
And that output should be as if the contents of the menu were that (no creating self-containing menu). I wish to reimplement pipeitems as soon as I can, but it's going to be tricky considering how the parsing works.
*crdlb for the original compiz-deskmenu
*Openbox developers for developing the pipemenus feature, which inspired the pipeitems feature
A pipeitem is similar to Openbox's pipemenus feature. Unlike pipemenus, pipeitems place their generated items directly inside their parent menu. This allows for some interesting possibilities, like a menu turning into a launcher if the app the menu is supposed to control isn't running.
The most common elements you might use in your pipeitem:
<menu name="namehere" icon="someoptionalicon">contents</menu>: generates a menu to place your items in
<item type="launcher"><name>optional name</name><command>optional command</command><icon>optional icon</icon></item>: creates a standard launcher/menu item
<separator name="optname" icon="opticon"/>: Creates a normal or decorated separator.
Attributes you should be aware of:
mode="exec": Available to menu, separator, and name elements. Optionally sets the name to be dynamically generated (for performance reasons, though, you shouldn't use this since the pipeitem is dynamically generated)
mode1="file": Available to menu, separator, and icon elements. Optionally sets the icon based on filepath.
12.17.2010
* Pipeitems are now replaced by pipemenus
* Pipemenus are launchers with command mode set to "pipe"
* Windowlist can show only current viewport &/ minimized windows
* MASSIVE Cache speed up
12.12.2010
* Windowlist and vplist in menus now autorefresh
12.10.2010 (only for *b versions)
* Updated GUI for filebrowser type
* Made filebrowser
* Added service for it
* Added binary for it
12.7.2010
* Fix boxmenu editor vplist bug
* Commit real fix for vplist issue w/turning on icons
12.6.2010
* Added temporary fix for vplist issue where it would not take no argument
* Isolated documents list into own function
* Made viewport list as a dbus service
* Made windowlist as a dbus service
* Made documents list as a dbus service
* Made binaries for access to each new service's features
12.3.2010
* Remove unnecessary structure due to new method for windowlist
* Rewrote the separator bit so it retains prelight and still be inactive
* Fixed bug involving windowlist and viewports
* Add second dbus-only feature: pinnable mode
* Intelligently find where menu chunks are on first scan
12.1.2010
* Get rid of Ghooks since menus are generated during each call
* Introduce precacheing
11.27.2010
* Renamed some dbus stuff to correspond with new fork name
* Added precache configuration and feature
* Fixed bug where it would attempt to load a non-existent default config file
11.26.2010
* Reintroduce dbus and make the main binary act more like a daemon
* Error reporting is back to normal
11.22.2010
* Get rid of compiling bugs
* Change separator decorator mode to stuff a button in its menu item
11.21.2010
* Added "decoration" functionality to the separator (for now, it derives its fg & bg via your hover colors)
* Fixed bug involving exec: named menus
* Updated UI
11.20.2010
* code optimization
* some UI sanity for the newitemdialog
11.18.2010
* Added Recent Documents item type
* Updated GUI to configure the Recent Documents type
* use actual tab characters in menu generation
* error handling for inexecutable pipeitems
* use custom command to open recent documents
11.17.2010
* Updated compiz-deskmenu-editor that works with previous menu.xml files for this program, although you will need to remove your reload item manually (it won't show in the gui editor or the menu)
* No longer depends on dbus
* Edit other menu files for compiz-deskmenu-editor (this is done by compiz-deskmenu-editor /path/to/file.ext)
* Expand the tilde whenever it is used in an executable name, launcher's command, pipe's command, or icon location if set to file mode
11.16.2010
* Viewport icon choice
11.13.2010
* Allow the user to toggle the use of icons in window list (this is done through the extended icon customization I added)
* Allow the user to toggle the use of icons in viewport list (see above item for more detail)
* Removed the reload item since the edited show method for the menu for pipeitems to work makes this obsolete
* Allow the user to set custom icons for menus, viewport lists, and window lists
* Allow the user to set icons from files
* Fix bug involving commands with spaces in their names
* Expand the tilde whenever it is used in an executable name, launcher's command
* Updated compiz-deskmenu-editor to allow access to previously mentioned features
* Updated compiz-deskmenu-editor autodetects whether to set icon mode to file or normal depending on the presence of /'s in the Icon property of a dragged *.desktop file
* bugfix for compiz-deskmenu-editor: delete the exec attribute if it is set back to normal instead of putting mode="normal"
* And last, but not least, pipeitems! These work a little differently than pipemenus since they do not create their own submenu (which can mean a dastardly huge menu if you accidentally place it in your toplevel). If you're interested in creating a submenu for your pipeitems, either have your pipeitem script make its own submenu or add a menu just for it with the editor.
TODO: Add ability to write custom filter for recent documents
TODO: Isolate & rewrite Recent documents feature into function
TODO: Make recent documents, viewport list, windowlist, and filebrowser? able to call up without menu file
TODO: Make file browser component \(hints: cairo-dock's quick browser, old pcmanfm for detect mime-types, gtkfilechooser\)?
TODO: Split the menu file only once and store the split result
TODO: Add compile flags for further tweakability \(disabling/enabling certain features\)
TODO: Run pipemenu input as own menu \(be sure to auto insert menu tags if it doesn't make its own menu\)... [read more](/p/compizboxmenu/news/2010/11/stuff-you-can-help-with/)
First official release of compiz boxmenu not as a patch over compiz deskmenu. The changes originally came from this thread: https://bbs.archlinux.org/viewtopic.php?id=108404