Багаторядкові повідомлення

Ви можете надсилати багаторядкові повідомлення за допомогою команди /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