Универсальный способ быстро сделать скриншот в linux

от автора

Как дошло до жизни такой

С переходом ubuntu на unity как-то резко пришло просветление и жажда чего-то такого, что не приходилось бы раз в пол года переделывать с нуля. Поставил себе arch, а там дошло до минимализма и нежной любви к xfce.

Правда, лень моя тогда ещё была не столь развита и скриншоты делались при помощи GIMP’а.
За подробностями — прошу под кат.

Прошло время…

И надоело мне это нудное дело. Решил я автоматизировать получение скриншотов и, немного покопавшись, обнаружил, что любимый консольный графический редактор ImageMagick выполняет эту работу на раз:

import -window root $filename.png # или любое другое расширение, как удобно 

И у нас появляется снимок всего экрана. Повесить на любое сочетание клавиш проблем не составит

Пойдём дальше. Если сделать:

import $filename.png 

то выделенная область (или выбранное окно) сохраняется в виде того же файла. Правда, неприятность в том, что окно сохраняется без рамки. Добавление ключика "-frame" исправляет это.

Ну, уже образовался небольшой скриптик, который сохраняет скриншот с датой:

#!/bin/bash  case $1 in  full)         import -window root ~/Images/Screenshots/screen_$(date +%F_%H-%M-%S).png ;;  window)         import -frame ~/Images/Screenshots/screen_$(date +%F_%H-%M-%S)_window.png ;; esac 

Его можно развесить на разные сочетания клавиш и делать скриншоты всего экрана, либо выделенной области/окна.
Можно на этом и останоситься…

Но Лень шептала: «Продолжай, всегда есть, что можно улучшить»

Так и случилось. Ведь можно сразу же класть скриншоты прямо в облако:

#!/bin/bash  case $1 in  full)         import -window root ~/Dropbox/Public/Screenshots/screen_$(date +%F_%H-%M-%S).png ;;  window)         import -frame ~/Dropbox/Public/Screenshots/screen_$(date +%F_%H-%M-%S)_window.png ;; esac 

Душа радовалась. Но, если уж оно сразу в облаке, можно пойти дальше и тут же получать ссылку на паблик. В этом поможет утилитка xclip, которая работает с буфером обмена и CLI-интерфейс для dropbox. В результате, получается такая штука:

#!/bin/bash  case $1 in  full) 	name=~/Dropbox/Public/Screenshots/screen_$(date +%F_%H-%M-%S).png 	import -window root $name  	dropbox puburl $name | xclip -i;;  window) 	name=~/Dropbox/Public/Screenshots/screen_$(date +%F_%H-%M-%S)_window.png 	import -frame $name  	dropbox puburl $name | xclip -i;; esac 

У нас в primary-буфере оказывается ссылка на свежесозданный файл.
Вот, кстати, и он (правда, переложен в другое место)
screenshot
То, что это выполняется при помощи imagemagick позволяет вытворять со скриншотом всё, что угодно, вплоть до изменения масштаба, сжатия до необходимого качества и так далее. Каждый изголяется, как может, а инструмент позволяет.
А вот то, что от этого скрипта нужно, он выполняет на все 100%. Надеюсь, многим поможет.

ссылка на оригинал статьи http://habrahabr.ru/post/203972/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *