diff --git a/README.md b/README.md index 72da761..7e36d0e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Забавные и полезные скрипты -__say__ - +__say__ + Говорит в динамики (почти) человеческим голосом: - текущее время (требуется некоторая доработка); - текущую дату; @@ -17,3 +18,20 @@ __say__ - --- +__scrn-sht__ + +Скрипт для получения изображения экрана (или выделенной области): +- в буфер обмена; +- в файл. + +После запуска скрипта требуется щёлкнуть по свободному месту на рабочем столе +для получения снимка всего экрана, либо по какому либо окну для получения +изображения только этого окна. Так же имеется возможность выделить +интересующую область, потянув за мышку с зажатой левой кнопкой. + +Для работы скрипта требуются следующие утилиты: +- `import` из комлекта ImageMagick (`graphics/ImageMagick7`); +- `xclip` (`x11/xclip`). + +--- + diff --git a/scrn-sht b/scrn-sht new file mode 100755 index 0000000..f70950a --- /dev/null +++ b/scrn-sht @@ -0,0 +1,58 @@ +#!/bin/sh +# + +_usage() { + cat < + + -h - show this help + + -o clip - grab screenshot to clipboard + -o file - grab screenshot and save it to the file +EOF + + exit ${1} +} + +if [ $# -lt 1 ]; then _usage 2; fi + +DATE=$( date +%Y%m%d_%H%M%S ) +DIR="${HOME}/media/screenshots" +FILE="${DIR}/$( hostname | cut -d. -f1 )_${DATE}.png" +SHOT=$( which import ) +XCLIP=$( which xclip ) + +[ -z ${SHOT} ] && { + echo "ER: no screenshot app in \$PATH" + echo "IN: provide ${lightgreen}import${nc} from ImageMagick(1) into your \$PATH" + exit 1 +} + +[ -z ${XCLIP} ] && { + echo "ER: no xclip app in \$PATH" + echo "IN: provide ${lightgreen}xclip${nc} into your \$PATH" + exit 1 +} + +mkdir -p ${DIR} || { + echo "ER: cannot create ${DIR} dir" + exit 1 +} + +while getopts ho: OPT; do + case ${OPT} in + o) + case ${OPTARG} in + clip) + ${SHOT} -frame -silent png:- | \ + ${XCLIP} -selection clipboard -target image/png + ;; + file) ${SHOT} -frame -silent ${FILE} ;; + esac + ;; + h) _usage 0 ;; + *) _usage 2 ;; + esac +done +