uk/Tips_And_Tricks.mdwn
changeset 1 1e57279b82b1
equal deleted inserted replaced
0:eff7327bcabe 1:1e57279b82b1
       
     1 [[!meta title="Поради й рецепти"]]
       
     2 
       
     3 [[!toc]]
       
     4 
       
     5 # Багаторядкові повідомлення
       
     6 
       
     7 Ви можете надсилати багаторядкові повідомлення за допомогою команди `/msay`
       
     8 (див. [man-сторінку][manpage]).
       
     9 
       
    10 Ви можете призначити клавіші до `/msay toggle` та (чи) до `/msay
       
    11 toggle_verbatim`, щоб мати змогу швидко перемикати багаторядковий режим:
       
    12 
       
    13     # Alt-m для перемикання в/із багаторядкового режиму
       
    14     bind M109 = msay toggle
       
    15     # Alt-M для перемикання в/із verbatim-багаторядкового режиму
       
    16     bind M77 = msay toggle_verbatim
       
    17 
       
    18 # Швидкий перехід до контакту
       
    19 
       
    20 Ви можете використовувати команду `/roster search` для переходу до визначеного
       
    21 контакту у списку. Або навіть призначати для цього клавіші, наприклад, якщо ви
       
    22 дуже багато розмовляєте із john.doe@jabber.foo, ви можете призначити F1:
       
    23 
       
    24     bind 265 = roster search john.doe
       
    25 
       
    26 **Зауваження:** Ця команда шукає лише серед видимих контактів, отож якщо ви
       
    27 ввімкнули приховування відсутніх у мережі контактів, вона може нічого не знайти,
       
    28 якщо контакт поза мережею.
       
    29 
       
    30 Або ви можете визначити скорочення для цієї команди, якщо ви часто її
       
    31 використовуєте із різними параметрами:
       
    32 
       
    33     alias rsearch = roster search
       
    34 
       
    35 Тепер, завдяки доповненню команд, вам треба набрати лише `/rs<tab>`.
       
    36 
       
    37 # Одна бесіда із декількома контактами
       
    38 
       
    39 (Для цього вам знадобиться версія MCabber не менша за 0.9.2)  
       
    40 Ви використовуєте jabber з декількома транспортами, й маєте контакти, які
       
    41 використовують декілька різних систем? MCabber може вести один журнал бесід для
       
    42 них усіх.
       
    43 
       
    44 Скажімо, у вас є контакти abc@jabber.org та abc@icq.jabber.org. Спочатку вам
       
    45 треба об'єднати існуючі файли журналів за допомогою `merge_history.py`.
       
    46 
       
    47     $ cd ~/.mcabber/histo/
       
    48     $ merge_history abc\@jabber.org abc\@icq.jabber.org > abc
       
    49     $ mv abc abc\@jabber.org
       
    50     $ rm abc\@icq.jabber.org
       
    51 
       
    52 Тепер треба створити символічне посилання
       
    53 (`abc@icq.jabber.org -> abc@jabber.org`):
       
    54 
       
    55     $ ln -sf abc\@jabber.org abc\@icq.jabber.org
       
    56 
       
    57 Після перезавантаження MCabber завантажить журнал бесіди лише один раз для двох
       
    58 контактів. Обидва контакти будуть мати однакові буфери бесід. Команди, які
       
    59 працюють із буфером бесіди, як то `/buffer scroll_lock/purge/clean`, виконані на
       
    60 одному контакті, вплинуть й на буфер іншого, бо насправді це один і той же
       
    61 буфер.
       
    62 
       
    63 Таким чином можна зібрати до купи скільки завгодно контактів, не тільки два...
       
    64 :)
       
    65 
       
    66 # Показ доступності контактів із транспорту
       
    67 
       
    68 За допомогою FIFO та скрипта обробки подій ви можете позначати контакти із
       
    69 транспорту іншим кольором коли транспорт відключено. У `mcabberrc`:
       
    70 
       
    71     color roster clear
       
    72     color roster *     *                green
       
    73     color roster dn_?  *                brightblack
       
    74     color roster *     *@icq.jabber.org red
       
    75     color roster dn_?  *@icq.jabber.org red
       
    76 
       
    77 Це позначить контакти як недоступні на початку. Тоді у `eventcmd.sh`, там де
       
    78 обробляється подія `STATUS` (`"$1" = 'STATUS')
       
    79 
       
    80     if [ "$3" = 'icq.jabber.org' ]; then
       
    81             if [ "$2" = '_' ]; then
       
    82                     echo "color roster * *@icq.jabber.org red" > ~/.mcabber/fifo
       
    83                     echo "color roster dn_? *@icq.jabber.org red" > ~/.mcabber/fifo
       
    84             else
       
    85                     echo "color roster * *@icq.jabber.org white" > ~/.mcabber/fifo
       
    86                     echo "color roster dn_? *@icq.jabber.org brightblack" > ~/.mcabber/fifo
       
    87             fi
       
    88     fi
       
    89 
       
    90 Цей код змінюватиме забарвлення контактів кожен раз, як транспорт змінюватиме
       
    91 свій статус.
       
    92 
       
    93 # Відкладені дії (наприклад, повідомлення для контакту у 'dnd')
       
    94 
       
    95 Ви можете відкласти виконання якоїсь дії до тих пір, доки контакт не стане
       
    96 готовим її прийняти (або доки не трапиться якась інша подія). Додайте до
       
    97 `eventcmd.sh`:
       
    98 
       
    99     if [ -f ~/.mcabber/jobs/"$1_$2_$3" ]; then
       
   100             cat ~/.mcabber/jobs/"$1_$2_$3" > ~/.mcabber/fifo
       
   101             rm ~/.mcabber/jobs/"$1_$2_$3"
       
   102     fi
       
   103 
       
   104 Та створіть директорію для відкладених завдань:
       
   105 
       
   106     $ mkdir ~/.mcabber/jobs/
       
   107 
       
   108 Тепер ви можете робити речі на кшталт цієї:
       
   109 
       
   110     $ cat > ~/.mcabber/jobs/STATUS_O_buddy@jabber.org <<EOF
       
   111     > say_to -q buddy@jabber.org Привіт! Це автоматичне повідомлення.
       
   112     > say_to -q buddy@jabber.org Будь ласка, коли звільнишся, зроби те-то й те-то.
       
   113     > EOF
       
   114 
       
   115 Отож ви не будете турбувати контакт, доки він перебуває у `dnd`, і в той же час
       
   116 вам не треба тримати це повідомлення в голові.
       
   117 
       
   118 # Згортання груп при старті
       
   119 
       
   120 Використовуючи hook'и ви можете згортати рідко використовувані групи контактів
       
   121 (наприклад, група транспортів та інших технічних контактів) при старті. У
       
   122 `mcabberrc`:
       
   123 
       
   124     set hook-post-connect   = source ~/.mcabber/post-connect.rc
       
   125     set hook-pre-disconnect = source ~/.mcabber/pre-disconnect.rc
       
   126 
       
   127 А в `~/.mcabber/post-connect.rc`:
       
   128 
       
   129     group fold Технічні
       
   130     group fold Старі
       
   131 
       
   132 # Автоматична зміна статусу при від'єднанні screen
       
   133 
       
   134 Якщо ви хочете встановлювати відповідний статус, коли ви закриваєте термінал з
       
   135 screen, в якому запущений mcabber, додайте до вашого `~/.logout` (або
       
   136 `~/.bash_logout`, якщо ви користуєтеся BASH):
       
   137 
       
   138     # mcabber auto-away - скоріше за все, працюватиме лише в Linux, бо використовується /proc
       
   139     if [ -p .mcabber/mcabber.fifo ]; then
       
   140       MCABBER_PID=$(pgrep -u $USER mcabber)
       
   141       if [ -n $MCABBER_PID ]; then
       
   142         MCABBER_STY=$(cat /proc/$MCABBER_PID/environ | tr '\0' '\n' | grep '^STY=' | cut -d'=' -f2)
       
   143     
       
   144         if [ -n $MCABBER_STY ]; then
       
   145           if [ -z "$(screen -list | grep $MCABBER_STY.*\(Attached\))" ]; then
       
   146             echo /status notavail > .mcabber/mcabber.fifo
       
   147           fi
       
   148         fi
       
   149       fi
       
   150     fi
       
   151 
       
   152 [manpage]: http://www.lilotux.net/~mikael/mcabber/files/mcabber.1.html
       
   153