uk/Tips_And_Tricks.mdwn
changeset 1 1e57279b82b1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uk/Tips_And_Tricks.mdwn	Sun May 14 20:58:00 2017 +0300
@@ -0,0 +1,153 @@
+[[!meta title="Поради й рецепти"]]
+
+[[!toc]]
+
+# Багаторядкові повідомлення
+
+Ви можете надсилати багаторядкові повідомлення за допомогою команди `/msay`
+(див. [man-сторінку][manpage]).
+
+Ви можете призначити клавіші до `/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
+
+[manpage]: http://www.lilotux.net/~mikael/mcabber/files/mcabber.1.html
+