Пишем сообщения в mcabber в своем редакторе

Помнится я писал про многострочные сообщения в mcabber, но пользователи GNU Screen могут вдвойне порадоваться — с появлением в mcabber плагинов появился и плагин для них(и не только, о чем ниже). Плагин позволяет открыть в новом окне screen'а редактор ($EDITOR или указанный вами редактор специально для mcabber).

Имя сему плагину extsay.
Пишем в mcabberrc волшебные строчки
set extsay_script_path = путь/к/скрипту/extsay
module load extsay
Не забываем подключить модуль работы mcabber с именованными каналами fifo, ибо работает плагин именно с его помощью.

Утягиваем волшебный скрипт extsay.sh из hg.

Именно от сего скрипта и зависит как у нас будет обрабатываться команда extsay, в том файле что вы вытяните из hg обработка завязана именно на GNU Screen, но тем кто его не использует сочувствую никто не запрещает отредактировать его под свои нужды — запускать vim в новом терминале или gedit. Мне же как счастливому пользователю screen'а сего делать не пришлось (хотя скрпит всё-равно поправил под себя — указал fifo и редактор)

Так же в плагине предусмотрено не только открытия отдельного окна в screen но и разбиение (split) на регионы(включается благодоря set extsay_split_win = 1). Т.е. пишем /extsay (или вешаем это на хоткей) и регион с mcabber делится на два — в вверхнем сам mcabber, в нижнем наш редактор — высота которого устанавливается опцией extsay_win_height(к примеру, set extsay_win_height = 10 в конфиге выставит высоту в 10 строк).
При изменении скрипта эти переменные можно так же использовать для своих нужд (скрипту передается три параметра, первый из которых jid), к примеру на каком теге/виртуально рабочем столе запускать редактор или ещё что-нибудь.

Сама же команда extsay это смесь say и say_to, т.е. /extsay [jid] (если jid не указан то используется текущий активный)

В общем плагин чудный во всех отношениях!

Пакеты для арчеводов i686 mcabber-module-fifo и mcabber-module-extsay (PKGBUILD'ы в AUR не выкладываю, уж извините) или в моей репозитарии для i686.


Список всех модулей mcabber тут.
@kusayu 11-08-2011
Как бы это адаптировать под tmux...
muhas 11-08-2011
там в скрипте extsay.sh прописан вроде везде screen - заменить на tmux сопоставив параметры

только я что-то сходу в скрипте не вижу где же собственно окно скрина создается, хотя всё остальное вижу...
@kusayu 11-08-2011
А оно не создается. Подразумевается, что окно скрина уже создано. screen -r -X в работающий (-Х) отключенный (-r) сеанс. Вот только непонятно, а если сеансов много?
@kusayu 11-08-2011
screen -r -X отправляет команду в...// fixed
@kusayu 11-08-2011
Там первая команда 'screen -r -X other' но она не срабоает, если сеансов больше одного О_о
Он вообще работает, этот скрипт?
muhas 11-08-2011
работает, ещё как
хотя двух сеансов скрина я в жизни не пускал ни разу
@kun 11-10-2011
FAIL
Я таки сел за extsay, адаптировал скрипт к тмуксу а там, внезапно, ещё либы на сишке, заточенные под скрин.
Их я точно не асилю
melekin 12-06-2012
Что то у меня extsay не собирается с последним mcabber. Сборка проходит без ошибок, а самой библиотеки libextsay.so не наблюдаю. Ubuntu 12.04x64
Mcabber последний, собирал из Mercurial. Не подскажешь что может быть?
melekin 12-06-2012
все собралось))) ./configure --help творит чудеса)))