Время для прочтения: 1 мин. 22 сек.

Свой скриншотер с блек-джеком и шлюхами

Несомненным лидером по созданию снимков 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 может принимать одно из значений в зависимотси от вашего дистрибутива:

ПрограммаКоманда запуска
scrotscrot -s
gnome-screenshotgnome-screenshot -a -f
xfce4-screenshooterxfce4-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, копировать прямую веб-ссылку на полученный файл и открывать его в браузере в отдельной вкладке.

Вопросы и комментарии приветствуются.

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

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

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.