[openbox] wmsetbg alternative

Marc Wilson msw at cox.net
Wed Dec 15 22:45:48 EST 2004


On Wed, Dec 15, 2004 at 10:13:13AM -0500, David Courtney wrote:
> > You can use the "xsetroot" utility, that - as far as I know - comes with
> > X. E.g. xsetroot -solid #000000 would set the backgroundcolor to solid
> > black.
> 
> xsetroot doesn't set the necessary for properties for transparent
> windows to work.

You mean it doesn't set the proper atoms for incompetently-written
applications creating pseudo-transparency to work.

In a nutshell... applications setting the root pixmap will usually set one
or more of _XSETROOT_ID, _XROOTPMAP_ID, and ESETROOT_PMAP_ID to contain a
copy of the pixmap they're setting on the root window.  The first two come
from xv or wmsetbg (at least it's the only one I've ever observed setting
them), the third one obviously comes from Esetroot, which is part of Eterm.

Correction... blackbox's bsetroot will set the first two, as the requisite
code was imported from wmsetbg lo these many moons ago.

Ever wonder why Eterm can't do pseudo-transparency?  The ONLY one it looks
for is ESETROOT_PMAP_ID.  Sanely written apps do parent-relative against
the root pixmap if they can't find a copy of it stored in the X server (via
one of the above)... poorly written apps fail.

Last time I checked, aterm was perfectly capable of figuring out what the
root pixmap contained even if none of these were set.  If you *really* want
to confuse aterm, though, set the root pixmap with Esetroot, then reset it
to something neutral with xsetroot.  Xsetroot isn't aware of the
ESETROOT_PMAP_ID atom, so it doesn't reset it, but aterm is, with the
effect that you have aterm doing cookie-cutter cutouts of the former
background inside its windows.

-- 
 Marc Wilson |     I'll be Grateful when they're Dead.
 msw at cox.net |



More information about the openbox mailing list