The '-b' option specifies the number of significant bits in the (output) color specifications. It must range between 1 and 8, inclusive. Use values less than 8 (the default) to limit color use by increasing the color granularity.
Values for 'r', 'g', and 'b' should range between 0 and 255, inclusive. 0 means 'off', and 255 means 'fully on'.
bggen doesn't actually affect your background directly. bggen merely generates a small PPM (Portable Pixmap Format) datafile that XV can read and display.
To use bggen, you should pipe its output into an XV command, such as: "xv -root -quit -slow24"
The default 'size' is 1024 pixels, which should be as tall as your display. If your display is taller than that, you should specify its actual height, otherwise you will get a bizarre repeating effect, that you probably didn't want. Note: If you specify small values of '-s', you can get some neat effects.
The '-w' argument has been added to improve the performance of various stippling algorithms (as in XV). More information to work with, and such. Try using '-w 16' on these command lines to see what is meant.
Light Blue to Dark Blue bggen 100 100 255 50 50 150 | xv -ro -q -slow24 - RGB Rainbow bggen 0 0 255 0 255 0 255 0 0 | xv -ro -q -slow24 - Green Cylinders bggen 0 0 0 0 255 0 0 0 0 -s 128 | xv -ro -q -slow24 - Blue to Magenta bggen 0 0 255 200 0 100 | xv -ro -q -slow24 - Full Rainbow bggen 0 0 255 0 255 255 0 255 0 255 255 0 255 0 0 | xv -ro -q -slow24 - Repeating Rainbow bggen 0 0 255 0 255 255 0 255 0 255 255 0 255 0 0 255 0 255 0 0 255 -s 256 | xv -ro -q -slow24 -
It'd probably be nice if the program used some X calls to determine screen size. It'd also probably be nice if the program could take colors by 'name', and also by hexadecimal value.