I like it.
If I'm not mistaken, at least one other wm (Afterstep) has gone this
route of having a lib for outside apps. It has great advantages in
terms of memory efficiency and flexability. I would probably use
afterstep if it wasn't a bear to configure.
The thing you have to be careful of is how things are configured.
The aim needs to be to keep things simple. I suggest having one set
of configs for gradients that all bbapps use. You lose a little bit
of the flex that you could have, but it makes it easy to have a
consistent look to the desktop and each app doesn't have to re-invent
the gradient wheel.
Also, I suggest that part of the shared library code include what
configuration code that is in bb now, so that each bb app can have
a small config file of it's own. This is so that bbmail can be
configured to know where to look for mail and what app to use,
bbpager can know how many desks etc. etc. etc. These are all kept
separate from the main bb config so that the config files are easier
to maintain because people only have the ones they care about.
Perhaps a ~/.blackbox/config directory would be in order containing
all the config files for bbapps.
Perhaps the toolbar and even the menu become bbapps (on by default?).
Blackbox itself stays the same size or even gets smaller, and you
still have the ability to do all the things you want, and not have to
think about them if you don't. No worrying about compile-time or
run-time options. If you want it, run the bbapp in your .xinitrc or
whatever.
Wow this is a lot longer than I planned. I hope that there's at
least something valueable there.. :)
Ben
On Fri, 29 Sep 2000, Wilbert Berendsen wrote:
> Hi all,
>
> Reading the sometimes ferocious, then peaceful commentaries about
> new
> features, wish lists, newbie questions, compile time options, I
> started
> (no: I was already) thinking about some direction to take now.
>
> The main `problem' is the paradox between `Feature Rich' and
> `Minimalist.'
> I say `paradox' because, in the spirit of UNIX thinking, it must be
> possible to get both.
>
> - I think there should be a kind of well defined blackbox API
> (something
> that makes all Blakcbox actions available from other apps, like
> bbkeys
> already does)
>
> - The gradient rendering code could move in a shared library so
> bbtools
> can just link to it.
>
> - eventually some other code (resource, menus, style switching,
> binding
> code) go in a specialized `libbb' Possibly style switching in
> this lib so
> all bbtools update their style at once, when used without
> Blackbox styles
> could be changed as well via a simple shellcommand app. (like
> eesh)
>
> - An app like bbkeys can be used to call Blackbox functions via the
> Blackbox api, so all actions, also posting menus etc can be bound
> to
> keys.
>
> - Other apps (pager, desktop background changer or whatever) should
> be
> able to connect to Blackbox to get signals at certain events.
> (Even
> toolbar or slit could be separate apps this way ;-)
>
> BBLibs should always be contained and installed with the main
> Blackbox
> package. (i.e. no separate looking for libs)
>
> I think when done right, Blackbox can be as minimalistic as ever
> while
> having an open api to construct versatile things with.
>
> ;-) 'm very sorry i didn't include a patch ;-) I really would like
> to do,
> but however I do program some bit of Z80 assembly, C and Tcl/Tk, I
> think
> mastering c++ will take me some more time;)
>
> wilbie
>
--
Millihelen, noun: The amount of beauty required to launch one ship.