So, people keep asking for session management. I think I see a way to give
them what they want yet keep blackbox simple.
Implement a Slit app which would act kind of like bbpager or bbkeys. It just
sits there listening for 'new window', 'dead window', etc. It should be a
simple square with maybe a camera icon rather than the keyhole of bbkeys. When
the user clicks the camera the program dumps the list of windows it is
maintaining to a file. Then clean up bblaunch (the code is quite ugly) and
have it parse this file as an option.
bbsnapshot has a loop kind of like this:
wait for blackbox message
if message is:
new window
request window information, read all hints, be sure to store geometry info
as well as the command it stores (this way rxvt -e mutt will run mutt next
time), then add the window to a list
dead window
simply remove window from list
window status change
find window in list and update its data. This could mean it moved
workspaces, was resized, etc.
on exit the program should write out the list as well.
the file could be in most any format it just needs to store:
application name
command line
workspace
shaded
omnipresent
decorated
maximized
geometry
Someone with experience with the bbtools code should be able to write this in 2
or 3 days. A newbie to the code but not to coding should be able to knock it
out in a week or so.
Either bbpager or bbkeys has most of this written, so you could also start by
field stripping one of these two apps.