Programming and Scripting :: Screenshot script



Works with imagemagick.uci.  Takes arguments for choosing a window <win>, area <area>, or screen <scr>. Creates and stores to $HOME/screenshots/

#!/bin/bash

# Just run it with the argument "win" (for a screenshot of a certain window),
# "scr" (for a screenshot of the entire screen) or "area" (for a screenshot of
# the selected area).

# load imagemagick if not loaded
[ -d /opt/imagemagick ] || mydsl-load /mnt/hda3/imagemagick.uci

DIR="${HOME}/screenshots" DATE="$(date +%Y%m%d@%H%M%S)"
NAME="${DIR}/screenshot-${DATE}.png" LOG="${DIR}/screenshots.log"
IMGK="/opt/imagemagick/bin"

# Check if the dir to store the screenshots exists, else create it:
if [ ! -d "${DIR}" ]; then mkdir "${DIR}"; fi

# Screenshot a selected window
if [ "$1" = "win" ]; then $IMGK/import "${NAME}"; fi

# Screenshot the entire screen
if [ "$1" = "scr" ]; then $IMGK/import -window root "${NAME}"; fi

# Screenshot a selected area
if [ "$1" = "area" ]; then $IMGK/import "${NAME}"; fi

if [[ $# = 0 ]]; then
 # Display a warning if no area defined
 echo "No screenshot area has been specified. Screenshot not taken." echo
"${DATE}: No screenshot area has been defined. Screenshot not taken." >>
"${LOG}" else
 # Save the screenshot in the directory and edit the log
 echo "${NAME}" >> "${LOG}" fi


original here.