Багаторядкові повідомлення
Ви можете надсилати багаторядкові повідомлення за допомогою команди /msay
(див. man-сторінку).
Ви можете призначити клавіші до /msay toggle
та (чи) до /msay
toggle_verbatim
, щоб мати змогу швидко перемикати багаторядковий режим:
# Alt-m для перемикання в/із багаторядкового режиму
bind M109 = msay toggle
# Alt-M для перемикання в/із verbatim-багаторядкового режиму
bind M77 = msay toggle_verbatim
Швидкий перехід до контакту
Ви можете використовувати команду /roster search
для переходу до визначеного
контакту у списку. Або навіть призначати для цього клавіші, наприклад, якщо ви
дуже багато розмовляєте із john.doe@jabber.foo, ви можете призначити F1:
bind 265 = roster search john.doe
Зауваження: Ця команда шукає лише серед видимих контактів, отож якщо ви ввімкнули приховування відсутніх у мережі контактів, вона може нічого не знайти, якщо контакт поза мережею.
Або ви можете визначити скорочення для цієї команди, якщо ви часто її використовуєте із різними параметрами:
alias rsearch = roster search
Тепер, завдяки доповненню команд, вам треба набрати лише /rs<tab>
.
Одна бесіда із декількома контактами
(Для цього вам знадобиться версія MCabber не менша за 0.9.2)
Ви використовуєте jabber з декількома транспортами, й маєте контакти, які
використовують декілька різних систем? MCabber може вести один журнал бесід для
них усіх.
Скажімо, у вас є контакти abc@jabber.org та abc@icq.jabber.org. Спочатку вам
треба об'єднати існуючі файли журналів за допомогою merge_history.py
.
$ cd ~/.mcabber/histo/
$ merge_history abc\@jabber.org abc\@icq.jabber.org > abc
$ mv abc abc\@jabber.org
$ rm abc\@icq.jabber.org
Тепер треба створити символічне посилання
(abc@icq.jabber.org -> abc@jabber.org
):
$ ln -sf abc\@jabber.org abc\@icq.jabber.org
Після перезавантаження MCabber завантажить журнал бесіди лише один раз для двох
контактів. Обидва контакти будуть мати однакові буфери бесід. Команди, які
працюють із буфером бесіди, як то /buffer scroll_lock/purge/clean
, виконані на
одному контакті, вплинуть й на буфер іншого, бо насправді це один і той же
буфер.
Таким чином можна зібрати до купи скільки завгодно контактів, не тільки два... :)
Показ доступності контактів із транспорту
За допомогою FIFO та скрипта обробки подій ви можете позначати контакти із
транспорту іншим кольором коли транспорт відключено. У mcabberrc
:
color roster clear
color roster * * green
color roster dn_? * brightblack
color roster * *@icq.jabber.org red
color roster dn_? *@icq.jabber.org red
Це позначить контакти як недоступні на початку. Тоді у eventcmd.sh
, там де
обробляється подія STATUS
(`"$1" = 'STATUS')
if [ "$3" = 'icq.jabber.org' ]; then
if [ "$2" = '_' ]; then
echo "color roster * *@icq.jabber.org red" > ~/.mcabber/fifo
echo "color roster dn_? *@icq.jabber.org red" > ~/.mcabber/fifo
else
echo "color roster * *@icq.jabber.org white" > ~/.mcabber/fifo
echo "color roster dn_? *@icq.jabber.org brightblack" > ~/.mcabber/fifo
fi
fi
Цей код змінюватиме забарвлення контактів кожен раз, як транспорт змінюватиме свій статус.
Відкладені дії (наприклад, повідомлення для контакту у 'dnd')
Ви можете відкласти виконання якоїсь дії до тих пір, доки контакт не стане
готовим її прийняти (або доки не трапиться якась інша подія). Додайте до
eventcmd.sh
:
if [ -f ~/.mcabber/jobs/"$1_$2_$3" ]; then
cat ~/.mcabber/jobs/"$1_$2_$3" > ~/.mcabber/fifo
rm ~/.mcabber/jobs/"$1_$2_$3"
fi
Та створіть директорію для відкладених завдань:
$ mkdir ~/.mcabber/jobs/
Тепер ви можете робити речі на кшталт цієї:
$ cat > ~/.mcabber/jobs/STATUS_O_buddy@jabber.org <<EOF
> say_to -q buddy@jabber.org Привіт! Це автоматичне повідомлення.
> say_to -q buddy@jabber.org Будь ласка, коли звільнишся, зроби те-то й те-то.
> EOF
Отож ви не будете турбувати контакт, доки він перебуває у dnd
, і в той же час
вам не треба тримати це повідомлення в голові.
Згортання груп при старті
Використовуючи hook'и ви можете згортати рідко використовувані групи контактів
(наприклад, група транспортів та інших технічних контактів) при старті. У
mcabberrc
:
set hook-post-connect = source ~/.mcabber/post-connect.rc
set hook-pre-disconnect = source ~/.mcabber/pre-disconnect.rc
А в ~/.mcabber/post-connect.rc
:
group fold Технічні
group fold Старі
Автоматична зміна статусу при від'єднанні screen
Якщо ви хочете встановлювати відповідний статус, коли ви закриваєте термінал з
screen, в якому запущений mcabber, додайте до вашого ~/.logout
(або
~/.bash_logout
, якщо ви користуєтеся BASH):
# mcabber auto-away - скоріше за все, працюватиме лише в Linux, бо використовується /proc
if [ -p .mcabber/mcabber.fifo ]; then
MCABBER_PID=$(pgrep -u $USER mcabber)
if [ -n $MCABBER_PID ]; then
MCABBER_STY=$(cat /proc/$MCABBER_PID/environ | tr '\0' '\n' | grep '^STY=' | cut -d'=' -f2)
if [ -n $MCABBER_STY ]; then
if [ -z "$(screen -list | grep $MCABBER_STY.*\(Attached\))" ]; then
echo /status notavail > .mcabber/mcabber.fifo
fi
fi
fi
fi