README for bsetbg

### introduction ###

bsetbg is a shell script that is intended to provide a standard root image
application for the blackbox window manager (although it will work under any
other window manager as well). bsetbg acts as a wrapper both to bsetroot and
to whatever application(s) you prefer to use for setting images on the root
window.

### installation ###

(o) copy the script to a directory in your path. 
(o) chmod it to make it executable (chmod 755 /path/to/bsetbg).

If you're lazy, do nothing. bsetbg will work out of the box for 99% of the
population.

If you're at least vaguely curious, run bsetbg in an xterm without any
arguments.  This way, you can watch what it does.

If you're a "power user", read the 'configuration' section below.

### configuration ### 

bsetbg reads it's configuration from ~/.bsetbgrc . If it can't find this file,
it will search for a list of applications in the system path and use the
positive matches to create it. If you would prefer for this not to happen, you
can create your own config file using the included sample.config .
~/.bsetbgrc should contain the following variables:

CENTER=  application and arguments for centering an image on the root window
FULL=    application and arguments for stretching/contracting an image to fill
         the root window
TILE=    application and arguments to tile the root window
DEFAULT= action to take place by default if none of the above have been
specified.

If you let bsetbg create the configuration file, the only applications that
will be included in it are the ones that were found in your path. bsetbg will
choose one of them to be the default and comment out the rest, so if you don't
like what it chooses, edit the file and change the default values to whatever
you like.

### usage ###

** normal usage:

  bsetbg -full|-tile|-center <image>

Running bsetbg without any arguments except the name of the image will cause
it to set the image with the default values, which will vary from person to
person. For the ultimate control over your theme, always tell bsetbg what you
want it to do.

** advanced usage: 

If you use a certain program or set of arguments to achieve a particular
effect  that goes beyond the scope of bsetbg's normal functionality, you can
include the application and its necessary command line options after the
-app flag:

  bsetbg -app <application> <"command line options"> <image>

Here is an example in which bsetbg will try to run xv to center the image
against a colored background:

  bsetbg -app xv "-rbg rgb:27/40/8b -root -rmode 5 -quit" <image>

Note that you MUST enclose the application's options in quotes. If you don't,
bsetbg will bail out and give you an error message.

Before bsetbg runs the command, it will check to make sure that the application
(xv in our example) is present on the target system. If it's not, bsetbg will
fall back to setting the image using the default values from the
configuration. If you want to control what the fallback option will be, use
either -center, -tile, or -full after the options for the application:
 
  bsetbg -app xv "-rbg rgb:20/2b/32 -root -rmode 5 -quit" -center <image>

In the above example, bsetbg will fall back to setting the image in centered
mode if xv isn't available.

** other usage:

bsetbg can also be used in place of bsetroot. Just give bsetbg the same
arguments that you would normally pass to bsetroot. Example:

  rootCommand:   bsetbg -gradient flatinterlaced -from rgb:46/51/5c -to rgb:34/3c/45

  rootCommand:   bsetbg -solid SteelBlue

** informational usage:

'bsetbg -help' does what you'd expect it to.

'bsetbg -info' will output information about bsetbg's current configuration
values. Use this when you're debugging an incorrect configuration.

### troubleshooting ### 

This section is sort of a FAQ.

(o) Help! My background is messed up when I try to use a png image!

If you are using xv, your version probably hasn't been patched to include png
support. You have two options: 
1), you can download the source and the patches and compile xv yourself (see
the url at the end of this document), or 
2), you can try to hunt down a binary version of xv that was compiled with the
png patch.  The one in most Linux distributions should be fine.

If you aren't using xv, then whatever it is that you are using is having a
problem with png images. consult the documentation on it.


(o) When I switch to a new blackbox style, the background doesn't change.

Most likely, there's an error with bsetbg. If you alt+f[1-5] to go back to your
console, you can see bsetbg's error message. Alternatively, run bsetbg from an
xterm and look at its output.

In most instances, there will be a problem with your config file. You can
either try to fix it yourself, or you can rename your ~/.bsetbgrc to something
else and then run bsetbg without any arguments in order to force the creation
of a new configuration file.


(o) When I try to set an image in full/tiled/centered mode, the image is not 
    full/tiled/centered.

You've probably given the values in the config file the wrong arguments for
what they are meant to do. Either let bsetbg create a new file (see above), or
else read the "configuration" section if this document.


(o) I'm a moron who can't be bothered to read your fine and well-written
    README.  Can I email you with my stupid questions?

Don't even think about it.

### other stuff ###

qiv lives at:
   http://www.klografx.de/software/qiv.shtml

xli can be found at:
   http://pantransit.reptiles.org/prog/#xli

display (part of ImageMagick) can be found at:
   http://www.imagemagick.org/

wmsetbg is a part of the Window Maker window manager. Window Maker can be
found at:
   http://windowmaker.org/

Esetroot is a part of the Enlightenment window manager:
   http://enlightenment.org/ 

xv can be found at:
   http://www.trilon.com/xv/downloads.html

blackbox homepage:
   http://blackboxwm.sourceforge.net/

and lastly, bsetbg:
   http://lordzork.com/blackbox/


### more other stuff ###

many thanks are due to: 
youngjun han, for the inspiration to do it in the first place 
zak johnson, for invaluable suggestions 
brad hughes, for help in debugging (not to mention, creating a smashing window 
manager) 
and last but not least, mycat, mr. man.

send all comments/suggestions/constructive criticism/blueprints for futuristic
weapons/etc to lordzork@lordzork.com 

bsetbg has only been tested under Linux and FreeBSD. If it doesn't work on
your system, email me the details and I'll try to fix it.

Copyright (c) 2000, 2002 Timothy M. King (tmk@lordzork.com)
