Subject: Re: bsetroot in {black,open}box
From: Jan Schaumann <>
List: tech-pkg
Date: 11/20/2002 20:28:42
[this is my last response on this topic, as I find the discussion
exhausted and OT on this list]

"Greg A. Woods" <> wrote:
> [ On Wednesday, November 20, 2002 at 17:18:25 (-0500), Jan Schaumann wrote: ]
> See, now this is where I'm still having troubles with the explanations
> of why bsetroot can't be renamed.
> If "themes" don't include code then there's no problem here and you can
> rename bsetroot to anything you want and/or put it in any private
> directory you want and simply patch the associated window manager to
> match.

A theme in blackbox (or openbox) is a single text file, which describes
the attributes of the windows.  It also includes a line specifying what
to do about the root-window, in partiuclar, it may contain a command
that is executed -- this command is _intended_ to set the background,
but could possibly be used to execute *any* command.

Since it's used to set the background in virtually all themes, these
themes actually do call, *literally*, "bsetroot <args>".  If the
command 'bsetroot' does not exist (b/c it has been renamed to
'foobox-bsetroot'), the theme will not work.

I'll repeat this part again, since it did not seem to communicate:
blackbox and openbox (and others) can use the same themes.  That is why
it's important to keep the same name, so that on a system where both
blackbox and openbox are installed, the sysadmin only needs to install a
particular theme _once_, rather than installing two themes with a diff

-rootCommand:   bsetroot <args>
+rootCommand:   openbox-bsetroot <args>

> So, which is it?  Is there code in these *box "theme" things, or not?

Why don't you take a look for yourself?  You could probably understand
things much better if you knew exactly what we're discussing here.

> Well, yes, that's not the whole story.  If this 'bsetroot' thing is
> useful on its own then it may be useful to have some version of it in a
> stand-alone package.

Well, it is.  Which is why I imported it as a separate package.  But
wait, I already said that.

