Несомненным лидером по созданию снимков c экрана (скриншотов) в linux является программа Shutter. Но после перехода на Ubuntu 17.10 данный софт просто перестал работать, постоянно вылетая и вынося мой мозг. Решил замутить что-то свое, а сами скриншоты складыват на свой FTP.
За основу был взят проект Gyazo и его Linux-версия Gyazo for Linux. Написан он на руби и использует стандартные утилиты самой ОС.
Установка
Зависимости
Так как скрипт зависит от некоторых внешних проектов — доставим их в систему:
sudo apt-get install ruby imagemagick xdotool xclip
Установка через apt-get
# Качаем скрипт curl -s https://packagecloud.io/install/repositories/gyazo/gyazo-for-linux/script.deb.sh | sudo bash # Ставим sudo apt-get install gyazo
Установка через yum Install
# Качаем скрипт curl -s https://packagecloud.io/install/repositories/gyazo/gyazo-for-linux/script.rpm.sh | sudo bash # Ставим sudo yum install gyazo
Установка ручками
# Скачиваем скрипт wget -c https://github.com/gyazo/Gyazo-for-Linux/raw/master/src/gyazo.rb # Делаем его исполняемым chmod +x ./gyazo.rb # Переносим в папку с программами sudo mv gyazo.rb /usr/local/bin/gyazo
Настройка
По умолчанию gyazo отправляет все сделанные скриншоты на свои сервера и возращает ссылку имеено на них. Но если внимательно посмотерть на исходный код, то станет понятно, что это поведение можно переопределить через специально созданный файл конфигурации.
Создаем файл $HOME/.gyazo.config.yml
, перезаписывающий дефолтные настройки и вносим туда реквизиты вашего сервера и название системной утилиты для создания, собственно, скриншотов:
# доменное имя host: screens.kobzarev.com # путь к загрузчику cgi: /upload.php # порт http_port: 80 # есть ли поддержка https use_ssl: false # команда запуска скриншотера command: gnome-screenshot -a -f
Где command
может принимать одно из значений в зависимотси от вашего дистрибутива:
Программа | Команда запуска |
---|---|
scrot | scrot -s |
gnome-screenshot | gnome-screenshot -a -f |
xfce4-screenshooter | xfce4-screenshooter -r -o gyazo |
Либо выбираете любую другую утилиту для вашей версии ОС.
Загрузчик
Сам аплоадер файлов, вы можете написать на любом удобном вам языке программирования, который вы больше всего знаете и понимаете. Я выбрал для этой цели PHP. Мой загрузчик upload.php
в урезанном варианте выглядит примерно так:
<?php // Приставка для имени файла. $uri = "http://screens.kobzarev.com/"; // Если передан файл. if ( isset( $_FILES['imagedata']['name'] ) ) { // Генерим имя для загруженного файла. $path = date('Y-m-d-U') . '.png'; // Перемещаем из временной папки в нужный нам каталог. if ( move_uploaded_file( $_FILES['imagedata']['tmp_name'], $path ) ) { // Отдаем полный URL. echo $uri , $path; } else { // При ошибке - отдаем только домен. echo $uri; } } else { // При ошибке - отдаем только домен. echo $uri; } ?>
Шорткат
Осталось только повесить наш скрипт на понравившуюся вам комбинацию клавиш и всё. Я предпочитаю Win + Print:
Теперь наша поделка будет делать скриншот выделенной области по нажатию шортката, заливать его на наш FTP, копировать прямую веб-ссылку на полученный файл и открывать его в браузере в отдельной вкладке.
Вопросы и комментарии приветствуются.