Extension Development :: Note to extension builders
MyDSL is dynamic. MyDSL extensions use the Fluxbox menu specifiation. The menu entry of a MyDSL extensions are snipetts of menu code. They get loaded into /tmp/mydsl.menu during boot time or upon demand. Other window managers would not know about MyDSL menu items, neither their location or the format. Other window managers use their own menu specifications, e.g., jwm uses xml. To this end I have created a naming convention and structure to enable processing of MyDSL extensions without change the many core DSL MyDSL processes including dsl-config, mydsl-load, mountci, desktop.lua, desktop.sh, etc.
make Therefore a program needs to be created to convert from flux format to xml or whatever the new window manager uses as its menu specification. The make program is called during the boot process as well as the upon demand. It is also called when switching to a new window manager. The fact that actual output of make is in a known location by window manager makes it possible. Also the removal of the menu item upon an umount of a uci or upon shutdown/reboot. All core DSL MyDSL processing uses the new more flexible structure.
restart The code needed by the window manager to redraw its menu. Examples are of course included for both jwm and fluxbox. Having a separate code file makes it extremely flexible.
menu_template Some window managers require special headers to demark an include. Example is jwm. Also is used as a target place holder for the make program for the desire insertion point.
So by using the above naming convention and location for your custom scripts, to process your window manager's handling of MyDSL extensions, no changes need to be done to any core DSL program. Not even .xinitrc
Oh...duh. The mydsl menu for an arbitrary window manager. I get it now, mostly, thanks.
I assume that a window manager with no applications menu would simply not need these scripts?
I think I might need to look at an example (and the scripts in 4.1) to get the full picture. I'm guessing the location of the main menu for a submitted window manager extension would need to be specified in make, or maybe menu_template.Only part of the new structure is in 4.1RC1, the rest and final structure will be 4.1RC2. I just finished it today.
FYI the biggest and most difficult work was to implement user=name option. It affects more files than the new mydsl processing structure.
4.1 really has a different base structure than all prior versions of DSL. It is the last of the major restructuring that I wanted to accomplish.Robert:
(Shamelessly skipping to the end of the thread here and shamefully out of date with recent dsl developments - will catch up soon though)
At the risk of having not read something important above, am I correct in thinking that, icon size aside, we extension builders can just go building our extensions with /tmp/mydsl.menu files exactly as we always have?
Quote (roberts @ Oct. 16 2007,21:29)
Note 32x32 xpm style icons are being supported with DSLv4.x. Place your xpm icon in the /tmp/mydsl.icons/ directory. Naming convention is consistent with that current used for menu items.
Yes, you can go on building extensions as usual. I did this to be backward compatible to the existing repository. And to continue to fully support DSL 3.4.x as well as 4.x
The only thing that is new (additional) is that I ask is to also make or convert the icon image in home/dsl/.xtdesk and store it as a 32x32 icon in /tm/mydsl.icons/ext_name.xpm
You can use imagemagick's convert program or xv, to convert gif,jpg,png,tif icons to xpm. Or better yet design a new icon using mikshaw's iconView.lua program.