I do like the idea of submenus, given the ever growing extension collection. But I also first cringed at the thought of retooling all the existing extensions to support a new menu file format, that does not have to be done. And also after retooling all the extensions, what if that format was not ideal and needed to be altered? The existing JWM menu spec allows for submenus within an extension already, and many have those. A new menu file format to allow the same submenus within an extension while adding the new general submenu parameter would not necessarily be any simpler to use then using the existing JWM menu spec to do the same. The awk script to make other menus from the JWM spec can be fairly simply tweaked to accomodate other WM's.
The beauty of WM's now being an extension means that desired functionality can be worked into the extension itself rather than changing the existing extension menu format. We can come up with a few general submenu titles and use those titles in the WM_makemenu script to create the submenu categories for extensions that support it. Here is an example menu file that could do that:
Submenu: "HAM Radio"
<JWM>
<Menu label="somemenuname">
<Program label="xwota">/usr/local/bin/xwota</Program>
<Program label="xdx">/usr/local/bin/xdx</Program>
</Menu>
</JWM>
This could be used to create a Ham Radio submenu section, add a "somemenuname" with xdx and xwota as its submenus under the Ham Radio category.
The WM_makemenu could look for a few defined submenu titles, create that in the resulting menu, and add any extensions with that submenu title into that area of the menu. Any other extensions installed after that that are in the Ham Radio category would be added under that submenu. I may do this with Windowmaker soon to provide an example.
We would just need to decide on a few submenu categories, and more could be added later. Of course, this method would only create submenus for extensions that support them. Even right before release, we had to change the name of all the library extensions and that was when we had maybe around 100 extensions. That was a headache, and it was only changing the name and related md5 and info file entries and not repacking. I prefer change by attrition when possible, in this case the submenu being added when extensions are new or updated, replacing the old ones in time.
I will also add a "wmaker_setup" utility that will allow for use of Windowmaker simply by loading the extension and running that utility, even if another WM is in use. Or it could fuction to rebuild the menu in the case of a tampered with menu or after uninstalling an extension. Exiting to a prompt and startx would put you in Windowmaker then and also setup it's menu. All the functions to make that happen already exist, but a simple setup script would allow changing WM's in mid stream.
EDIT: On closer look this would require a change to the JWM makemenu function though Hackedbox should remain unaffected. Let me try this out on Windowmaker, and don't submit any extensions with this kind of thing at this point.