#!/bin/sh # screenshot # Written in 2019 by Lucas # CC0 1.0 Universal/Public domain - No rights reserved # # To the extent possible under law, the author(s) have dedicated all # copyright and related and neighboring rights to this software to the # public domain worldwide. This software is distributed without any # warranty. You should have received a copy of the CC0 Public Domain # Dedication along with this software. If not, see # . usage() { cat - <<. >&2 Usage: ${0##*/} ${0##*/} -id id ${0##*/} -name name ${0##*/} -window . exit 1 } err() { printf "%s: %s\n" "${0##*/}" "$*" >&2 exit 1 } save_screenshot() { xwdtopnm | pnmtopng >~/media/ss/"$(date +%Y%m%d-%H%M%S)".png } case $# in 0) xwd -silent -root | save_screenshot ;; 1) [ "$1" = "-window" ] || err "Unknown option \"$1\"." xwd -silent | save_screenshot ;; 2) [ "$1" = "-id" ] || [ "$1" = "-name" ] || err "Unknown option \"$1\"." [ -n "$2" ] || err "$1 expects a non-empty parameter." xwd -silent "$1" "$2" | save_screenshot ;; *) usage ;; esac