18 февраля 2007 г.

Tkabber: настройка и фичи

Я уже писал, что совершенно неожиданно tkabber стал моим постоянно используемым jabber-клиентом. Так вот, теперь я хочу написать о его базовой настройке, дабы пользователь, увидевший его впервые не махнул на него рукой, как это некогда сделал я, а посмотрел на него с другой, лучшей стороны.

Итак, имеем: установленный tkabber со всеми зависимостями. Необходимо: настроить подключение к нескольким аккаунтам, подружить клиент с SSL, сделать шрифт менее страшным, подключить проверку орфографии и настроить OSD.

А настройка начинается с установки всего необходимого (ispell-russian для проверки орфографии и tcltls для поддержки SSL):
$ sudo apt-get install irussian tcltls xosd

Теперь выкачиваем osd.tcl (нажать по ссылке правой клавишей - сохранить как...) и сохраняем в папке с плагинами (адрес плагина должен выглядеть так: ~/.tkabber/plugins/osd/osd.tcl для локальной установки или /usr/share/tkabber/plugins/osd/osd.tcl для глобальной), обратите внимание, что файл плагина должен лежать в одноименной папке.

После того, как все будет поставлено, создаем в папке ~/.tkabber таинственный файл с названием config.tcl, текст можно править любым редактором, я использовал свой любимый vim:
$ vim ~/.tkabber/config.tcl

Вот его мы и будем терзать. Вставлять в этот файл комментарии (формата "# комментарий") не только не запрещается, но и рекомендуется. Приступим к правке:
set use_ispell 1

Вышеозначенная строчка включит ispell.
set loginconfX(profile) "example.com"
set loginconfX(user) login
set loginconfX(password) ""
set loginconfX(server) example.com
set loginconfX(resource) tkabber
set loginconfX(priority) 16
set loginconfX(usealtserver) 0
set loginconfX(altserver) example.com
set loginconfX(altport) 5223
set loginconfX(stream_options) ssl
set loginconfX(useproxy) 0
set loginconfX(allowauthplain) 0
set loginconfX(httpproxy) localhost
set loginconfX(httpproxyport) 3128
set loginconfX(httplogin) ""
set loginconfX(httppassword) ""

Этот набор настроек отвечает за автоматически заполенные поля в окне настройки соединения, которое возникает при запуске программы. Если аккаунт один - то X после loginconf удаляем, первая строка тоже не нужна. Если аккаунтов несколько, то меняем X на соответствующие цифры (для первого аккаунта loginconf1, для второго loginconf2 и т.д. В этом случае в окошке входа появится кнопка "Профили", по нажатию на которую мы будем видеть список из названий профилей, указанных в loginconfX(profile) и выбирать из них. Теперь подробнее по пунктам.

user отвечает за логин (только то, что стоит до "@", т.е. если ваш адрес login@example.com, то вы вставляете login), password отвечает за пароль (лучше не хранить пароль в файле конфигурации - там он не шифруется, поэтому строку про пароль лучше вообще удалить - в этом случае он сохранит пароль где-то в другом месте в зашифрованном виде). server - то, что стоит после "@" (то есть, если ваш адрес login@example.com, то вы вставляете example.com). resource - ресурс, priority - приоритет, usealtserver (0=нет, 1=да) - задавать ли сервер в ручную (допустим, если вы используете Google Talk или сервер, который в силу каких-то причин требует явного указания адреса сервера), altserver и altport - соответственно жестко задаваемые сервер и порт, если вы используете задаваемый вручную сервер (в противном случае можно их оставить, тогда они будут уже заполнены, если вы захотите включить их вручную перед установкой соединения), stream_options ssl заставит tkabber автоматически использовать ssl (внимание! замечена бага: как только вы включаете tkabber, ssl выключен независимо от настроек этой опции, для того, чтобы он включился нужно ткнуть "профили" и заново выбрать профиль, можно тот же). useproxy (0=нет, 1=да) - использовать ли прокси, allowauthplain (0=нет, 1=да) - использовать ли пересылку регистрационных данных "голым" текстом (может требоваться например Google Talk, без SSL лучше не трогать), httpproxy, httpproxyport, httplogin и httppassword отвечают за настройки proxy, если вы их используете. Ненужные пункты в процессе настройки можно просто выкинуть.

Перейдем к шрифту. Начните с выбора нужного вам шрифта (запустите xfontsel и выберите), я буду производить манипуляции на примере шрифта -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r. Добавляем строки:
set font "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r"
option add *font \
"-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r" \
userDefault

Теперь со шрифтами все в порядке. И остается последний пункт - OSD. Для этого нам понадобится добавить следующее:
proc postload {} {
# Set OSD plugin options
namespace eval ::osd {}
set ::osd::osdfont "-misc-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r"
set ::osd::options "-c yellow -A right -s 1 -p bottom"
}
set ::osd {presence chat_message}

Естественно, в качестве osdfont можете использовать тот шрифт, что вам нравится. options тоже можете заполнить на свой вкус (подробно они описаны в man osd_cat). set ::osd {presence chat_message} отвечает за то, в каких случаях будут выскакивать OSD-сообщения, например, в нашем случае - это когда у пользователей из нашего ростера изменяется статус (presence) и когда мы получаем новое сообщение (chat_message). Мне это подсказали в официальной конференции tkabber, более подробных разъяснений мне добиться не удалось - никакой документации по использованию osd.tcl не существует.

Во время использования tkabber с osd мною была замечена следующая особенность: при просмотре видео через gl2-вывод (mplayer file.avi -vo gl2) при появлении сообщений, видео начинало жестоко тормозить. Не знаю, как OSD влияет на другие OpenGL-приложения, это мне еще только предстоит выяснить.

17 февраля 2007 г.

Разговор с программером

Есть у меня один старый знакомый, с которым я довольно долго не общался. Недавно он мне в асю постучался. Рассказал, что занимается программерством (у них какой-то проект вроде БК, естественно, коммерческий). Ну я тоже рассказал, что теперь я счастливый линуксоид. После чего узнал о том, что:
  1. я дурак, потому что не согласен с его мнением;

  2. я (и все остальные сторонники опенсорс) завидуем разработчикам коммерческого ПО, так как мы (то есть сторонники опенсорс) не зашибаем бабло на софте;

  3. линукс говно, потому что ни разу им не пользовался;

  4. мы (т.е. сторонники опенсорс) напоминаем им (т.е. старонником коммерческого ПО) тараканов на кухне;

  5. таким фанатиком коммерческого софта является человек, ни копейки не заплативший за тот софт, которым пользуется, включая винду, офис, фотошоп, тучу игрушек, 3д-макс и прочее.
Скажите, они (разработчики коммерческого ПО) все такие идиоты, или мне попался клинический случай?

15 февраля 2007 г.

FeedBurner

Организовал себе FeedBurner. Просьба ко всем читателям сменить подписку на http://feeds.feedburner.com/vondererlinux.

Также, хочу сказать, что запустил второй блог, vonderer Live, в котором буду постить свои мысли, а так же рецензии, отзывы и обзоры на различные темы, не связанные с ПО. Там пока что не подключен FeedBurner, но я займусь решением этого вопроса в самое ближайшее время.

9 февраля 2007 г.

Blogger beta и пара советов.

Обновился-таки до blogger beta, который уже и не бэта. Для тех, кто "еще кипятит", но к кому "уже идут", пара полезных замечаний:
1) вот здесь очень хорошо описано, как сделать т.н. 'Label Cloud';
2) Если захотите использовать "свертывание" статьи в ссылку "подробнее..." в новом шаблоне, все делается очень просто:
<b:if cond='data:blog.pageType == "item"'>
span.fullpost {display:inline;}
<b:else/>
span.fullpost {display:none;}
</b:if>

вставляем между <style> и </style>, если оных нет - прописываем в пределах <head>.
После находим в "развернутом" шаблоне <data:post.body/>, сразу после него ставим
<b:if cond='data:blog.pageType != "item"'><br />
<a expr:href='data:post.url'>Read more!</a>
</b:if>

По желанию меняем Read more! на нужный текст и добавляем переносы строк перед ним. :)

Свертываемую часть сообщения надо заключить в тэг <span class=fullpost></span>.

P.S. Господа читатели, будьте внимательны, когда втыкаете этот хак на свои блоги. Не знаю ни одного случая, когда бы он не работал, то есть, если у вас какие-то проблемы, попробуйте перепроверить код. Я не html-корректор, чтобы делать это за вас. Более того, я в веб-вёрстке не смыслю ровным счётом ничего. Мои знания ограничиваются необходимыми для разметки записей в блоги и таблицами, и даже их я знаю далеко не в совершенстве. Если по каким-то причинам у вас в блоге это не работает, я не смогу разработать новый хак для какого-то экзотического шаблона блоггера. Впрочем, я сомневаюсь, что после перепроверки и исправления у вас останутся какие-то проблемы.

P.P.S. Да, этот способ не идеален и отображает ссылку на «подробнее» подо всеми записями блога, даже под теми, в которых скрытие не используется. Адекватное решение мне также неизвестно. Спасибо за внимание и за понимание. Удачи в личной и в блоггерской жизни! :)

6 февраля 2007 г.

Изменения.

Исправил пост о продвинутых клиентах Jabber, несправедливо оговоренный мною клиент tkabber реабилитирован. Спасибо читателям за конструктивную критику.

3 февраля 2007 г.

Клиенты Jabber. Часть 3. Продвинутые и эффективные.



Вот, собственно, мы и добрались до самого интересного. А именно - "продвинутых" клиентов: psi, gajim и tkabber. Выбрать лучший среди них невозможно, лично я для себя даже еще не решил, каким же клиентом пользоваться. Каждый из трех клиентов использует свои графические библиотеки: psi - Qt, gajim - GTK2, tkabber - tk. Рассмотрим каждый из них по отдельности.

Tkabber.
статья была исправлена 6 февраля 2007 года


Многоуважаемые читатели меня пристыдили за несправедливую оценку tkabber, за что им огромное спасибо. Итак, начнем с ростера и чата. После небольшой пляски с бубном вокруг конфигов были выбраны шрифт -misc-fixed-...-koi8-r, цветовая схема ocean-deep и набор иконок gabber (как самый приличный на вид). Программа в момент обрела столь милый моему сердцу "экономный" внешний вид, без всякого рода вычурных (и уродливых) символов, с моноширинным шрифтом и изящной темной цветовой схемой. Красота!

Набор настроек разветвлен и огромен, есть что попробовать, над чем поковыряться:

На борту имеются: компактный интерфейс, работа с вкладками (в том числе дозволено расположить эти вкладки внизу окна, что вызвало мой искренний восторг), звуки (довольно мерзкие - из ICQ Pro, но при наличии рук можно выбрать любые другие - мне, например, звуки kopete нравятся), поддержка транспортов (и даже специализированных иконок для стандартных транспортов - icq, msn и прочие), возможность добавления конференций в контакт-лист (нечто подобное есть в gajim, но там оно неудобнее) и очень удобный инструмент обзора служб:

Отдельной группы для транспортов не предусмотрено: они оказываются "не в списке", отсюда был мой неверный вывод о глюках в работе с ними. На самом деле, транспорты работают отлично. Многопользовательский чат не блещет какими-то изысками, но функцию свою выполняет:

Теперь немного о недостатках. В силу того, что используется tk - часть комбинаций клавиш работает не так, как хотелось бы (например, я иногда нажимаю Backspace, не убрав палец с клавиши Shift, здесь это вставит \b, вместо того, чтобы удалить последний символ), но, полагаю, это настраивается. Еще один недостаток - в работе с несколькими серверами. То есть, сама поддержка работы с несколькими серверами присутствует - достаточно снять флажок "отключиться от остальных", но вот сохранить для подключения больше одного аккаунта мне не удалось - ко второй учетной записи приходилось каждый раз вводить данные.

Gajim. GTK2 и Jabber в действии.

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

Как видим, все при нем. Работа с транспортами - "на отлично", значки подобраны в соответствии с протоколом, но, к сожалению, не настраиваются. Интересная особенность - ростер можно смотреть отдельно по аккаунтам, а можно использовать общий вид, не разбитый на аккаунты. "Замочек" в строке с названием аккаунта означает, что используется SSL.

Окно чата вызывает особенное умиление. Это как раз тот баланс между излишним аскетизмом и излишней навороченностью, который и нужен клиенту Jabber. Вверху - полоса со значком протокола, ником собеседника, его статусом и состоянием чата (кроме "собеседник печатает" есть еще "собеседник просматривает чат"/"собеседник закрыл окно чата" - такого нет больше нигде!). Программа также использует вкладки:

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

А вот набор опций меня слегка разочаровал. Не то, чтобы их было мало, но клиент оказался довольно неповоротливым, впрочем, как и многие другие GTK2-программы. Еще одной ложкой дегтя стало отсутствие всплывающего уведомления о новых сообщениях в уже открытых чатах. Не спорю, для новых сообщений и пользователях, изменяющих свой статус есть уведомления с помощью libnotify, но как-либо настроить их невозможно. Собственно, это является единственной причиной, по которой я не пользуюсь gajim постоянно - звук я могу услышать далеко не всегда по объективной причине - днем я слушаю музыку, а ночью выключаю колонки. Держать же окно чата постоянно открытым мне неудобно, я переключаюсь на другой тэг и работаю там. Третьим недостатком gajim стала его тормознутость. Python вообще отличается неспешностью работы. GTK2 ему в этом способствует.

Psi. Кроссплатформенный. Быстрый. Гибкий.

Последним сегодня я рассмотрю, наверное, самый известный jabber-клиент Psi. Он является "самым кроссплатформенным" из рассмотренных мною, так как существует не только в инкарнациях для linux и Window$, но и в версии для Mac OSX. Кроме того, размеры Psi крайне скромны - 3~4 MB. Кроссплатформенная библиотека Qt, как всегда, на высоте. Из всех рассмотренных мною клиентов Psi оказался в рядах самых быстрых. Волей-неволей приходится снять шляпу перед Qt и признать, что в GTK2 я постепенно разочаровываюсь. Посмотрим теперь на саму программу (я немного изменил ее внешний вид в процессе эксплуатации - подключил разнообразные иконки, надеюсь, читатели меня простят. :) ):

Настраиваемые панели, иконки транспортов, сменные наборы иконок, все эти мелочи делают Psi одним из лучших, если не лучшим, клиентом Jabber. Окно чата Psi смотрится чуть хуже, чем окно чата Gajim:

Впрочем, не намного. Информация о том, что собеседник печатает, отражается в цвете его ника в заголовке вкладки - он становится зеленым. К сожалению, это работает не для всех тем Qt/KDE. Так, тема Domino (скришоты Kopete, SIM) отказывалась отображать ник соответствующим цветом. Есть возможность использования компактного интерфейса (только чат и строка ввода).

Для чатов Psi использует отдельные окна. К сожалению, модераторы опять среди остальных пользователей. В остальном многопользовательский чат не уступает Gajim.

Выше я уже сказал пару слов о гибкости Qt-приложений. Развернутые опции позволяют провести очень тонкую настройку. Также, я уже говорил о том, что каждому стандартному транспорту можно назначить иконки, кроме того, существуют транспорты, которые либо редки, либо довольно экзотичны, - в Psi можно настроить иконки и для них, просто введя название транспорта (например, mrim для mrim.jabber.ru - Mail.Ru instant messanger) в соответствующем разделе опций.

Также, приятной особенностью явилась возможность отключения аккаунтов без удаления их из списка. Например, не пользуюсь я Google Talk, но могу включить его в любой момент. Красота!

Кроме всего прочего, имеется собственная система всплывающих оповещений. К сожалению, и у Psi не все так гладко. Например, с отправкой/получением файлов через Psi у меня возникало больше проблем, чем когда я использовал Gajim.

За сим откланиваюсь, в надежде, что мои статьи о клиентах Jabber помогли вам сделать свой выбор, или просто открыть для вас программы, о которых вы не знали.