Случайно увидел на habrahabr несколько статей посвященных удобному созданию скриншотов. Пришлось немного изменить готовые скрипты для себя, так как перед выкладыванием скриншотов хотелось бы их редактировать.
Для создания скриншотов будет использоваться scrot, для редактирования pinta, а для хранения изображений habreffect . Конечная цель, чтобы после создания скриншота, запускалась программа для его редактирования, после чего он закачивался на хостинг изображений, а ссылка копировалась в буфер обмена. Также желательно иметь возможность удалять сообщения на всякий случай и выводить сообщение через notify-send.
Сначала установим все необходимые программы.
Так как Pinta отсутствует в оффициальных репозиториях, подключим необходимый ppa. Если вы будете использовать другой редактор, например GIMP, то этот пункт можно пропустить.
sudo add-apt-repository ppa:moonlight-team/pinta
sudo aptitude update
sudo aptitude install pinta
Ставим необходимые программы для снятия скриншота, загрузки и копирования ссылки в буфер обмена:
sudo aptitude install scrot curl xsel libnotify-bin
Создаем файл screen.sh и делаем его исполняемым, также сразу создадим файл для лога:
sudo touch /usr/local/bin/screen.sh
sudo touch /var/log/screen.log
sudo chmod 666 /var/log/screen.log
sudo chmod +x /usr/local/bin/screen.sh
Пишем код, который будет делать скриншот, сохранять его в /tmp, открывать программу редактирования, загружать его на хостинг и сохранять в лог ссылку на изображение и на его удаление.
Для этого открываем текстовый редактор, например gedit:
sudo gedit /usr/local/bin/screen.sh
И вставляем туда следующий код:
#!/bin/bash
trap "_exit" INT KILL TERM QUIT
_exit
() {
rm -f
$SCREEN_FILE
exit
}
FINISH=""
LOG_FILE=‘/var/log/screen.log’
SCREEN_FILE="$(mktemp -q -t screenshot_XXXXXXXXXXXXXXXXXX).png"
scrot $1 $SCREEN_FILE
[ $? -ne 0 ] && FINISH="[ FAIL ]"
pinta $SCREEN_FILE
LOG_STR=$( curl -s -F "upload=yes" -F "file=@$SCREEN_FILE" -L http://habreffect.ru/upload.php |\
sed -ne ‘/original-link\|delete/s/^.*\(http.\+\)".*$/\1/gp’ | tr ‘\n‘ ‘ ‘ |\
sed -e "s/’\ $/\ \]\n/;s/[\ \t]/\t\[del: /;s/^/$(date '+%d.%m.%Y %H:%M')\t/" |\
tee -ai $LOG_FILE | awk '{print $3}' )
[ $? -ne 0 ] && FINISH="[ FAIL ]"
echo $LOG_STR | xsel -b -i
notify-send -t 5000 -i dialog-information "$FINISH Скриншот загружен"\
"<a href=\"$LOG_STR\">Посмотреть…</a>"
_exit
Теперь назначим какое-нибудь удобное сочетание клавиш для создания скриншота. Так как print и alt+print заняты, я выбрал ctrl+print. Добавим это сочетание в список горячих клавиш, для GNOME это делается примерно так:

Вот и все, теперь по нажатию ctrl+print будет запускаться наш скрипт. Он сделает скриншот и запустит редактор, после завершения редактирования файл будет загружен на сервер и появится соответствующая запись в /var/log/screen.log .