четверг, 7 июля 2011 г.

Вставка скриншотов на форумы в один клик

Меня часто спрашивают, как я умудряюсь так быстро вставлять мелкие скриншоты на форумы, ссылки на них в мессенджеры, и т.д. Вот решил рассказать.

Сразу оговорюсь - это рецепт под линукс, как такое реализовать под виндой - не знаю.

Как это происходит:
  1. Нажимаем клавишу Ctrl (настраивается)
  2. Нажимаем правую кнопку мыши (настраивается)
  3. Выделяем квадрат на экране
  4. Отпускаем кнопки. 
Всё!
Ссылка на изображение в буфере обмена, а само изображение в глобальной сети! На всё - 3 секунды. Круто?

Всё просто. Я использую сервис синхронизации Dropbox. Отличная вещь, бесплатно дают 2Гб места, а так же можно получить прямые публичные ссылки на файлы, что нам и надо. Подробнее о нём можно почитать в сети, написано много.

Сама идея использовать этот сервис для автоматической заливки скриншотов в сеть придумана не мной, а подсмотрена где-то на просторах интернета. Но предложенный там скрипт работал немного некорректно, пришлось модифицировать.

И так, что для этого понадобится: Собственно установленный клиент Dropbox'а, менеджер эффектов Compiz, и несколько вспомогательных пакетов. Для пользователей Ubuntu выполняем строку:

sudo apt-get install compiz compizconfig-settings-manager compiz-plugins libnotify-bin xsel


Далее нам нужен скрипт, который будет формировать прямую ссылку на файл в сети:


#!/bin/bash

DPDIR='/home/user/Dropbox/Public'
DOPDIR='/images'
ID=XXXXXXXX

# создание случайного имени файла
matrix='abcdefghijklmnopqrstuvwxyz'
length=20
while [ "${n:=1}" -le "$length" ]
do
tempfn="$tempfn${matrix:$(($RANDOM%${#matrix})):1}"
let n+=1
done

fullname=$DPDIR$DOPDIR'/'$tempfn'.'${1##*.}

if [ -e "$1" ]
then
cp -f "$1" "$fullname"
file=`basename "$fullname"`
link="http://dl.getdropbox.com/u/$ID$DOPDIR/$file"
notify-send -i go-down "Dropbox" "Ссылка скопирована в буфер обмена"
echo -n "$link" | xsel -b -i
fi


Сохраняем этот скрипт под любым именем куда-нибудь, и даём ему права на исполнение. При этом надо задать переменные DPDIR, DOPDIR и ID.
  •  DPDIR - путь к Public-каталогу дропбокса. По умолчанию он как у меня (про имя пользователя только не забудьте).
  •  DOPDIR - каталог внутри Public, можно любой. Туда будут складываться все изображения, сохранённые данным способом.
  •  ID - ваш ID на дропбоксе. Его можно узнать, скопировав куда-нибудь любую публичную ссылку на файл, и взять оттуда эти цифры: 
http://dl.getdropbox.com/u/XXXXXXXX/дальнейший/путь

В скрипт добавлена генерация случайного имени файла из-за того, что если такой приём применять на разных машинах, на которых настроена синхронизация, имена файлов совпадут. При этом скриншот, сделанный на первой машине, может затереться другим скриншотом. А ведь ссылки на них могут быть уже даны на какой-нибудь серьёзной конференции, или еще где-нибудь! И с лёгкой руки, на месте важного графика окажутся какие-нибудь сиськи :)


Основные приготовления сделаны. После этого открываем менеджер настройки CompizConfig (Система - Параметры), находим там в разделе "дополнения" пункт "снимок экрана". Вписываем в поле "каталог" временный каталог ( /tmp ), а в поле "запустить приложение" путь к нашему скрипту. Вот как выглядит у меня



Там же можно настроить горячие клавиши. У меня, как видно на скриншоте, это Ctrl + Button3 (правая кнопка мыши)

Всё, после этого можно пользоваться.

4 комментария: