Title: mcabber
Author: Viva Calman
Date: 2014-08-11 20:55:38
Correction code: 165191939015107

После того, как обзавелся собственным jabber-сервером, вопрос выбора консольного клиента решился сам собой. Подняв у себя ICQ-транспорт, я перетащил туда контакты, после чего торжественно закрыл Pidgin. Надеюсь, что навсегда.

Теперь у меня на все нужды один mcabber.

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

Попробовал также клиент poezio. написан на питоне, имеет пару вкусностей, например — табы для открытых комнат и диалогов, но в остальном мне не торкнуло, поэтому остался на mcabber-е, который в общем-то имеет все, что мне нужно (ладно, не все, но почти)

Проблемы были лишь в следующем — уведомления о сообщениях и открытие URL-ов. Простенький костыль уведомлений я прикрутил сразу же (вызов libnotify в eventcmd), хотя на будущее нужен какой-нибудь индикатор входящих, который будет мигать в трее или на экране. Но это потом, когда раскурю, например, wxPython, который умеет эти самые иконки в трее создавать. Куда более актуальной задачей было открытие URL-ов. И эту задачу удалось решить достаточно простым путем.

Был прикручен плагин urlopen.

В дебиане пришлось поставить пакеты с библиотеками (на память libncursesw5-dev,libglib2.0-dev,libloudmouth11-dev,pkg-config,cmake,libpgpme1-dev) в общем, все вылезет в процессе сборки, не ошибетесь, после чего удалось собрать красивые deb-пакетики, чтобы не засорять систему.

после этого был создан простенький скрипт, который закидывал все обработанные URL-ы в файлик, на основе которого генерится динамическая менюшка для FVWM.

Менюшка генерится скриптиком на перле. Это еще старый скриптик, со времен моего первого освоения этого чудесного WM-а

#!/usr/bin/perl -w

my $file=$ARGV[0];

$ofile="/home/calman/.fvwm/".$file;
my $menu;

open (MENUFILE,"$ofile") or die $!;

while(<MENUFILE>)
{
    $menu=$file."Menu";
    print "AddToMenu ".$menu." ".$_;
}
close(MENUFILE);

Формат входного файлика элементарен:

"заголовок_пункта_меню" команда_на_выполнение

Понятное дело, что командой на выполнение оказывается вызов огнелиса с передачей ему URL-a в качестве параметра запуска

А вот сам urlcmd выглядит так, примитивненько, кривенько, но работающе

#!/bin/bash

FMFILE="/home/calman/.fvwm/FvwmURLS"
LINE=$(cat $FMFILE|wc -l)
echo $LINE

if [ $LINE -gt 20 ]; then
    sed -e '1d' $FMFILE >> $FMFILE.tmp
    mv $FMFILE.tmp $FMFILE
fi

PREVIEW=$( echo $1 | sed 's/\(.\{,40\}\).*/\1/')
echo "\" v-c:" $PREVIEW "\" Exec exec firefox" $1 >> $FMFILE

Есть проверочка на количество строк в файле и есть обрезка URL-а для заголовка.

Ну и маленький префикс, чтобы видеть, с какой учетки какой URL-пришел.

Ну и как выглядят три mcabber-а и менюшка, на нетбуке

^HOME