Продвинутый скриншотинг
Периодически мне бывает нужно показать людям скриншот экрана. Однажды я устал делать всё ручками и автоматизировал этот процесс.
Сейчас при нажатии на PrtsSc:
- делается снимок текущего экрана
- заливается на сервер
- ссылка на картинку кладётся в буфер обмена
- всплывающее окошко говорит “какбе всё ок, ссылка в буфере”
Всю работу делает скрипт на bash из нескольких строчек:
#!/bin/sh
FNAME="$(echo $(date) | md5sum | awk '{ print $1}').png"
URL="http://it-omsk.com/pub/$FNAME"
import -window root /tmp/screen.png
scp /tmp/screen.png web@dedic:/web/it-omsk.com/pub/$FNAME
echo -n $URL | xclip
echo $URL
DISPLAY=:0.0 notify-send --expire-time=3000 "Screenshot uri saved to X clipboard"
Файл я заливаю с помощю scp (авторизация по rsa ключу). Имя файла — это хэш, чтобы было трудно вычислить другие файлы (паранойя-с). Больше пояснять то и нечего, мне кажется :-) Вызов скрипта я повесил на клавишу PrtSc.
Каждый раз делаю скриншот и кайфую от того, как всё теперь легко ))






Comments
floomby? ;)
Можно раскрыть как-то мысль? )
Наверное, имелся в виду сайт http://floomby.ru/
Если что-то может быть сделано без временных файлов, всегда следует рассмотреть этот вариант. Проще говоря, у тебя классическое небезопасное создание временных файлов в /tmp в скрипте.
Как вариант, сделать так:
import -window root png:- | ssh web@dedic “cat > /web/it-omsk.com/pub/$FNAME”
Плюс к тому, в твоем случае $DISPLAY должен бы определяться автоматом — обработка printscreen у тебя наверняка же иксовым приложением сделана. Да и без $DISPLAY import не работал бы.
Зато скрипт коротий и делает именно то, что мне надо — ни больше и не меньше :-) С $DISPLAY я решил не заморачиваться до тех пор, пока нужда в этом не настанет.
Хорошая идея. Можно и себе такую сделать? автор, надеюсь не против :)
Думаю не против так бы не размещал