Shell Perl
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


These scripts take pictures from your webcam when certain events are detected.

  a working v4l2 compatible webcam (test with the bin/cam-view script)

  netpbm (to work around camera warmup time)

There are scripts to detect different actions:

    if you use xscreensaver, this will take a picture at some random time
    within a minute after the screensaver is deactivated.  This way it almost
    guarantees that you'll be at the computer when a picture is taken.

    integrates with dbus to receive events from gnome-screensaver, same as

    this script attempts to take a picture every five minutes if it sees a
    connection in netstat to's XMPP server.  This XMPP
    connection seems to be active all the time when quakelive is running.
    I'm trying to see if I can capture any good facial expressions while I'm
    playing (all I've found so far is that I barely move and am always in the
    same position when playing).

You can put more scripts in bin named watch-for-foo and they will be started
by the control script.  Send me additional scripts for other events; pull
requests on github are welcome.

Control with
    ctlwatchers start
    ctlwatchers stop
    ctlwatchers status
    ctlwatchers restart
    ctlwatchers start-if-not-running

The watch-for-* scripts will spawn bin/take-picture to actually take the
picture and they will be placed in the same dir that ctlwatchers exists,
unless you set PICSOFOURLIVES_DESTDIR to a directory name.

The image files will be named
    YYYY-MM-DD HH:MM:SS (extra text).png
where the latter form is used if bin/take-picture is passed arguments to be the
"extra text".

I usually start it manually when I first login, but you can put something like
the following in your crontab:

*/5 * * * * PICSOFOURLIVES_DESTDIR=/target/dir /home/user/picsofourlives/ctlwatchers start-if-not-running > /dev/null 2>&1

which will attempt to start it every 5 minutes.

My process is:
  - start it when logging in
  - every once and a while, check the directory for new images (it's a shortcut
    in my Places menu)
  - open kflickr using the desktop icon in the directory
  - drag the ones I want to upload, select the flickr set to upload to
  - move the ones I've uploaded into pics-transfered
  - move other ones I didn't upload but that I want to keep into pics-extra

I don't upload every picture taken automatically because sometimes they come
out crappy (blurry because of movement) and because I deactivate my
screensaver dozens of times a day and I really only want to make two or three
at most available from each day.