diff -r eff7327bcabe -r 1e57279b82b1 uk/Tips_And_Tricks.mdwn --- /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`. + +# Одна бесіда із декількома контактами + +(Для цього вам знадобиться версія 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 < 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 +