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.

Reply via email to