Что он делает:
1. Делает скриншот активного окна (опция -window) или всего экрана (без опций)
2. Загружает скриншот на pix.academ.org
3. Копирует ссылку на полноразмерную картинку в буфер обмена
4. По окончании показывает в области уведомлений об успехе или неудаче операции
Запуск скрипта повесил на горячие клавиши: Prt. Scr. для всего экрана и Ctrl+Prt. Scr. для активного окна.
Что в случаи необходимости передачи скрина кому-либо избавляет от кучи рутинных операций: достаточно нажать Prt. Scr. а затем Ctrl+V в нужном месте.
Код
#!/bin/sh
TMP_DIR=/tmp
TMP_FILE=$(date +%y.%m.%d_%H:%M:%S.png)
TMP_PATH="$TMP_DIR/$TMP_FILE"
PROG_NAME=Screenme
dependencies="awk xprop import notify-send curl xclip"
nodep=""
for dep in $dependencies
do
if ! which $dep >/dev/null 2>&1
then
echo "no \`$dep' found in your \$PATH"
nodep=1
fi
done
[ -n "$nodep" ] && exit 1
if [ "$1" = "-window" ]
then
win=$(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')
else
win=root
fi
if ! import -quiet -silent -frame -border -window "$win" "$TMP_PATH"
then
notify-send "$PROG_NAME" 'Error occured while making screenshot'
exit 1
fi
if ! page=$(curl -s -F "image=@$TMP_PATH" -F action=upload_image http://pix.academ.org/)
then
notify-send "$PROG_NAME" 'HTTP error while uploading screenshot'
exit 1
fi
rm "$TMP_PATH";
url=$(echo "$page" | awk 'BEGIN{FS="[][]"}; /\[IMG\]/{print $3}')
if [ -z "$url" ]
then
notify-send "$PROG_NAME" 'Uploading error: no image url found'
exit 1
fi
echo -n "$url" | xclip -selection clipboard
notify-send "$PROG_NAME" 'Upload success, url copyed to clipboard'
TMP_DIR=/tmp
TMP_FILE=$(date +%y.%m.%d_%H:%M:%S.png)
TMP_PATH="$TMP_DIR/$TMP_FILE"
PROG_NAME=Screenme
dependencies="awk xprop import notify-send curl xclip"
nodep=""
for dep in $dependencies
do
if ! which $dep >/dev/null 2>&1
then
echo "no \`$dep' found in your \$PATH"
nodep=1
fi
done
[ -n "$nodep" ] && exit 1
if [ "$1" = "-window" ]
then
win=$(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')
else
win=root
fi
if ! import -quiet -silent -frame -border -window "$win" "$TMP_PATH"
then
notify-send "$PROG_NAME" 'Error occured while making screenshot'
exit 1
fi
if ! page=$(curl -s -F "image=@$TMP_PATH" -F action=upload_image http://pix.academ.org/)
then
notify-send "$PROG_NAME" 'HTTP error while uploading screenshot'
exit 1
fi
rm "$TMP_PATH";
url=$(echo "$page" | awk 'BEGIN{FS="[][]"}; /\[IMG\]/{print $3}')
if [ -z "$url" ]
then
notify-send "$PROG_NAME" 'Uploading error: no image url found'
exit 1
fi
echo -n "$url" | xclip -selection clipboard
notify-send "$PROG_NAME" 'Upload success, url copyed to clipboard'