#!/bin/sh
#
# webshot: hackish thing to take a picture of a whole webpage.
#
# idea from sippey (http://www.sippey.com/2004/blog-snaps/)
# inspiration from bradfitz
#
# usage: webshot url filename
#
# JPEG seems to be the best format.

BROWSER=firebird
XSERVER=vncserver
XDISPLAY=:1
URL=$1
FILE=${2:-screenshot.jpg}

echo starting X on :1
$XSERVER -geometry 800x80000 -depth 24 $XDISPLAY

export DISPLAY=$XDISPLAY

echo launching browser
$BROWSER -id Screenshot -P Screenshot & 

sleep 5

echo opening $URL
$BROWSER -P "Screenshot" -remote "openurl(
    javascript:window.open('$URL','qq','fullscreen=yes,toolbar=no');
);"

sleep 10

echo resizing
$BROWSER -P "Screenshot" -remote "openurl(
    javascript:window.resizeTo(800,window.document.height+20);
);"

sleep 1

echo importing

# Does this work portably? I doubt it. It works for me though!
WINDOWID=$(
   xwininfo -root -tree -display $XDISPLAY | \
   grep '     0x' | head -1 | cut -d'"' -f1
) 

import -window $WINDOWID -geometry 200x $FILE

echo killing X server
vncserver -kill $XDISPLAY 

