Pidgin всегда и везде

pidgin
Эта статья про клиент обмена мгновенными сообщениями Pidgin. Про то как синхронизировать настройки и зашифровать сообщения. А еще эта статья про унификацию. Мне нравится находить и использовать общие для разных операционных систем решения. Будь то программы или технологии, как например DropBox или EncFS. Теперь и клиент обмена мгновенными сообщениями.

Длинное вступление

За долгое время знакомства с компьютером я перепробовал множество IM(Instant messaging) протоколов и клиентов к ним. Со временем основным протоколом стал Jabber, хотя до сих пор остаются контакты в ICQ и Yahoo. Но использую последние редко. Клиентов тоже было множество (Exodus, Coccinella, Psi, Tkabber, Gajim, Mcabber, Miranda IM …), Pidgin тоже пробовал, но как то не пошел. В итоге остановился Gajim в Linux и Miranda в Windows.

Долгое время эта связка меня устраивала. Пока в поисках замены Ubuntu с ее Unity я эту самую Ubuntu с Unity не опробовал. Все оказалось не так уж и страшно. Более того мне понравилось и теперь это мое основное рабочее окружение. А вот Gajim с Unity работать отказался, пришлось искать замену. Тогда я и поставил Pidgin во второй раз. Оказалось что он тоже не так уж и плох, да и с Unity дружит. Заодно посмотрел на него и под Windows уже имея ввиду.

Один для всех

Извиняюсь за длинное вступление, мне показалось важным описать путь приведший меня к этому клиенту. Теперь ближе к теме: Pidgin — модульный клиент мгновенного обмена сообщениями для GNU/Linux, Windows и BSD. Распространяется на условиях GNU General Public License. Pidgin использует библиотеку GTK+ для отображения интерфейса.

Поддерживает множество протоколов (всего 17), интересующие меня Jabber, ICQ и Yahoo присутствуют. Мультипротокольность большой плюс программы, но не единственный. Стандартные функции такие как расширенные статусы, SSL/TLS … есть. Из дополнительных поддержка метакотактов, комментарии к пользователям из контакт-листа и многие другие. В целом клиент с достойным функционалом и внешним видом.

Кроме того есть CLI фронтэнд именуемый Finch. Вернее к библиотеке libpurple лежащей в основе программы есть два фронтэтда графический Pidgin и консольный Finch. Иногда, для прокачки скила, я использую исключительно интерфейс командной строки. На бытовом уровне этот навык может пригодится когда например необходимо протянуть время работы ноута от батареи. И тут в тему, Finch пошел на замену используемого раньше IM клиента Mcabber.

Существует еще несколько надстроек над libpurple, наиболее интересны Adium и Instantbird. Насколько они совместимы по настройкам и плагинам я не проверял, но надеюсь совместимы, особенно – Adium. Родной клиент под Mac OS X, совместимый по настройка был бы очень в тему.

Что еще можно рассказать? Написана программа в 1999 году Марком Спенсером и назвалась GAIM (GTK+ AOL Instant Messenger). Навязчивые требования America Online привели к смене названия на Pidgin. Заодно сменили название основной библиотеки с libgaim — на libpurple. Само название “пиджин” это игра слов, с одной стороны так именуется упрощенный язык, с другой созвучно Pigeon (анг. голубь), отсюда логотип программы. Пурпурный цветом логотип обязан названию основной библиотеки libpurple. А Finch соответственно зяблик, в смысле тоже птица (наверно тут тоже игра слов).

Ставится просто, в Windows, скачиваем инсталатор и дальше по стандартной схеме. Для Ubuntu командуем:


sudo apt-get install pidgin
sudo apt-get install finch

Синхронизируем

Теперь про унификацию. Я уже пытался использовать одни клиент на все системы. Tkabber, отличный jabber клиент, но уж очень кошмарно выглядел под Ubuntu. Gajim наоборот, как многие GTK приложения, под Windows. Теперь когда новый кандидат везде устроил почему бы не синхронизировать настройки контактов, историю сообщений …? Сказано – сделано. Для синхронизации я использовал DropBox. Хотя подойдет и любой другой облачный сервис, просто DropBox мне удобней и привычней. Побочный эффект – добавляется система резервного копирования.

Делается все просто. Каталог с настройками, называется он .purple и находится в домашнем каталоге пользователя, копируется на Dropbox. Старый каталог удаляется а на его место создается символическая ссылка каталога на DropBox. Важно делать именно так, наоборот работать не будет. Повторяем на других системах удаляем каталог с настройками, создаем символическую ссылку с каталога на Dropbox’е.

В Linux:


cd ~
mv .purple DropBox\
ln -s DropBox\.purple

В Windows, если это Windows 7:


mklink /D “C:\Users\User\AppData\Roaming\.purple” “C:\Users\User\Documents\My Dropbox\.purple”

В Windows XP символические ссылки есть, но нет программ для их создания. Можно воспользоваться утилитой Junction:


junction -s “C:\Documents and Settings\User\Application Data\.purple” “C:\Documents and Settings\User\My Documents\My Dropbox\.purple”

Схема не без недостатков. Первый – нужно давать время на синхронизацию перед запуском Pidgin, и после выхода перед выключением компьютера. Второй – одновременно можно держать запущенным только один клиент. Еще один будет описан ниже в главе про безопасность.

На еще один вариант синхронизации я наткнулся когда искал способ перенести историю сообщений. К сожалению я не нашел плагина для переноса истории сообщений в Pidgin. Зато я нашел целый сервис для хранения и синхронизации истории сообщений – IM History. Поддерживается множество клиентов, Pidgin присутствует. Можно сказать хороший, годный сервис.

Шифрование и безопасность

Одна из особенностей клиента все пароли к учетным записям хранятся в открытом виде. И это принципиальная позиция разработчиков . Тут я с ними склонен согласится, множество программ якобы шифрующих пароли ничего на самом деле не шифруют. Есть даже плюсы – меньше забот при работе с забывчивыми пользователями. Ну а о безопасности нужно позаботится самим. Вариантов решения задачи несколько.

Пользователям Linux проще. Начать можно с того что во многих дистрибутивах домашний каталог шифруется. Например в Ubuntu для этого используется eCryptfs. Это уже само по себе исключает доступ к паролям случайного человека. Кроме того существуют плагины позволяющие использовать стандартные сервисы хранения паролей такие как GNOME Keyring(pidgin-gnome-keyring) и KWallet (libpurple-kwallet-plugin). Просто устанавливаем плагин и пользуемся:


sudo add-apt-repository ppa:pidgin-gnome-keyring/ppa
sudo apt-get update && sudo apt-get install pidgin-gnome-keyring

Я что делать если вы пользователь Windows? Или как я синхронизируете клиент через DropBox (вот он еще один недостаток)? Тут на помощь придет EncFS. Я уже подробно рассказывал как использовать EncFS под разными операционными системами, добавлю только что при использовании EncFs для шифрования каталога с настройками Pidgin добавляется еще один бонус – шифруется еще и вся история сообщений.

Теперь можно поговорить про шифрование переписки. Для Pidgin существует несколько плагинов для шифрования переписки. Наиболее интересны два Pidgin-GPG и Off-the-Record Messaging (OTR). Есть варианты как для Windows, так и для Linux. Первый позволяет использовать для шифрования OpenPGP, второй реализует поддержку популярного для систем мгновенного обмена сообщениями стандарта OTR. Какой из них использовать? Тут на ваш выбор, я использую OTR – меньше лишних телодвижений.

Для примера установим Off-the-Record Messaging плагин, в Ubuntu это делается так:

sudo apt-get install pidgin-otr

В Windows достаточно скачать инсталятор отсюда
и запустить на установку. После запускаем Pidgin и в меню Сервис –> Модули активируем установленный плагин. Также потребуется выбрать учетные записи для которых использовать модуль и сгенерировать ключи шифрования (вкладка настроить).

Командная строка

Еще Pidgin’ом можно управлять из командной строки. Может пригодится если нужно получить определенную реакцию компьютера на какое то событие. А можно просто посылать сообщения по расписанию с использованием cron. Например изменить статус и послать сообщение:

purple-remote "setstatus?status=available&message=$TEXT"

Более сложный вариант со случайной цитатой(найдено на просторах сети):


purple-remote "setstatus?status=available&message=$(wget -qO - http://greatwords.ru/random | sed -ne '/quote-p\|info-p/!b;s/<[^>]*>//g;s/ / /g;s/sclear();//;p' | fold -sw 160)

Добавим плагинов

Маловато будет? Добавим плагинов. Модульность одно из главных достоинств клиента. Список доступных плагинов можно найти тут. Весь список перечислять не буду, там их много. Про некоторые используемые мной плагины я рассказал в этой статье. Добавлю еще несколько.

  • Skype в Pidgin, плагин pidgin-skype.
  • Интеграция с панелью задач Windows 7, плагин pidgin-win7.
  • Web интерфейс,плагин WebPidgin-Z

По установке хотелось сказать что все плагины я устанавливал в только в Linux’е там это проще, даже не знаю как это делается в Windows, шутка :-). Итак если вы используете одну операционную систему и вам нужна синхронизация на нескольких компьютерах в том числе и плагинов то складывайте .dll или .so в подкаталог \.purple\plugins. Если системы разные то в Windows это каталог plugins в каталоге программы, в Linux и Ubuntu в частности apt-get install сделает все сам (обычно плагины устанавливаются в /usr/lib/purple-2/).

На этом пока все.