вторник, июля 21, 2009

Чиним Gajim

Вот уже год, наверное, я мучаюсь в поисках очередной панацеи: идеального jabber-клиента под Linux. Требований у меня к идеальному клиенту не много:
1. Он должен нормально управляться с клавиатуры. То есть уметь показывать новые эвенты и ростер с минимальным количеством нажатий клавиш. Мышь мы не рассматриваем ибо времяубивалка.
2. Совсем недавное появившееся требование: должен нормально работать с конференциями. А именно должен уметь в идеале сворачивать их в ростер, не вылогиниваясь, и оповещать о новых сообщениях.
3. Должен уметь не вести историю. Для выбранных учетных записей или контактов. Чем гибче он это будет неуметь, тем лучше :)
4. Необязательная, но приятная хотелка: уметь показывать несколько последних сообщений. Не противоречит 3, т.к. я не хочу иметь локальную историю, но хочу иметь контекст последних сообщений.

Рассматриваются варианты: Pidgin, Psi, Gajim.

Pidgin плохо работает с конференциями, прямо скажем неюзабельно. Кроме того обладает киллер-багом, из-за которого я терял сообщения. Он прячет оповещения о событиях через 10 минут после возникновения [fixed in 2.6.0]. Кроме того имеет каких-то сложных разработчиков, общаться с которыми в багтрекере неприятно.

Psi почти всем хорош. Работа с конференциями только на "3", но и с такой я жил. Плохо только то, что в моем Гноме он смотрится и ведет себя как совсем не родной. В совокупности с компизом имеет раздражающий баг с прорисовкой. Отказались

Gajim - самый большой молодец. Нативный для GTK, идеальная работа с конференциями. Но не умеет хотелку с временной историей (и разработчики наотрез отказались делать эту фичу) и управление с клавиатуры требует дополнительных телодвижений (отдельное приложение gajim-remote, которе надо вызывать по хоткеям). До недавнего времени не рассматривался из-за своего киллер-бага. Он мог наглухо повиснуть или вылететь при закрывании окна сообщений. Сначала пытался терпеть, потом перестал использовать, а недавно начал общаться с разработчиками и, кажется, понял в чем причина. Отрепортовал и изобрел для себя воркэраунд, которым, собственно, и хочу поделиться.
Баг возникает тогда, когда закрывается последняя таба в окне с использованием горячих клавиш Esc или CTRL+w. Смело отключаем Esc расширенной настройкой
escape_key_closes
, а от второй отвыкаем :) Баг больше не проявляется. Клиент счастлив.