Tkabber - Tipy

Z Jabber.cz Wiki
Přejít na: navigace, hledání

Tento článek pojednává o tipech pro XMPP/jabber klienta Tkabber

Mnoho tipů na této stránce využívá editací změn ve vašem konfiguračním skriptu, který je umístěn ve vašem domovském adresáři. Tento soubor má název config.tcl v OS Linux je v adresáři ~/.tkabber/config.tcl v OS Windows musíte hledat na disku s nainstalovaným operačním systémem, většinou C:\Documents and Settings/[vaše přihlašovací jméno]/ dále pokračuje cesta dle verze Windows , např ve Windows7 pokačuje cesta následovně: AppData/Roaming/Tkabber/config.tcl ve WindowsXP pokačuje Data Aplikací/Tkabber/config.tcl

Vyhledávání

Pokud ve kterémkoliv okně s textovou komunikací stiskněte kombinaci kláves Ctrl+s zobrazí se vyhledávací proužek ve kterém můžete hledat zpět i vpřed. Pro další zkratky koukněte do menu: Help > Quick help

Zkratky

Tkabber umožňuje nastavit zkratky pro rychlé psaní slov, vět. Nejprve si zkratky nadefinujete příkazem /abbrev, např: /abbrev Ah Ahoj jak se máš? Pro vybrání pak stačí napsat "Ah" (citlivé na velikost písmen, proto doporučuji definovat všechno malými písmeny) poté stisknout Shift+mezerník a věta se nahradí za definované "Ah"

Pro seznam všech definovaných zkratek stačí napsat /listabbrevs

Pro výmaz zkratky "Ah" napište /unabbrev Ah

Další šikovné zkratky zjistíte napsáním / a mačkáním klávesy tabelátor (TAB). Najdete např.: zobrazení vizitky, service discovery, poslání pozvánky, nastavení tématu, připojení a opuštění místnosti.

Enter na numerické části klávesnice

Nefunguje Vám odesílání pomocí enteru na numerické části klávesnice? Řešením je přidat následující kód do souboru config.tcl ve vašem domovském adresáři (vše za znakem # je poznámka):

###############################################################################
# Remap KP_Enter (Enter on a Keypad) to Return
bind all <Key-KP_Enter> {
   set event Return
   if {[expr {%s & 0x01}]} {
       set event Shift-$event
   }
   if {[expr {%s & 0x04}]} {
       set event Control-$event
   }
   if {[expr {%s & 0x08}]} {
       set event Alt-$event
   }
   if {$event == "Return"} {
       set event Key-$event
   }
   event generate %W <$event>
   }

Změna klávesy pro zavíraní záložky (TABu)

###############################################################################
# změna resp. rozšíření zavírání okna o klávesovou zkratku Ctrl+W
hook::add finload_hook {
    bind . <Control-Key-w> [bind . <Control-Key-F4>]
}

Změna fontu

###############################################################################
# nastaveni fontu a velikosti pro roster a texty
#velikost pisma 11
set font -monotype-arial-medium-r-*-*-11-*-100-100-*-*-iso10646-1

#velikost pisma 13
set font "-monotype-arial-medium-r-*-*-13-*-100-100-*-*-iso10646-1"
# nastaveni fontu a velikosti pro texty tkabberu (záložky, status bar, nastavení)
option add *font -monotype-arial-medium-r-*-*-11-*-100-100-*-*-iso10646-1
# fonty v Tkabberu 0.10.1+ s Tcl/Tk 8.5+ (XFT):
# font pro celkove rozhrani aplikace:
option add *font "FreeSans 10"
# font pro roster (volitelne):
option add *Roster*font "{Bitstream Vera Sans} 11"
# font pro hlavni cast se zpravami (volitelne):
option add *Chat*Text.font {{Times New Roman} 13 bold italic}
# T.j.: cely popis fontu uvadejte bud {v zavorkach} nebo "v uvozovkach"
# fonty s mezerou v nazvu dejte {do zavorek}
# funkcni jsou kombinace "italic bold" i "bold italic"
# v pripade neuvedeni fontu pro roster/chat se u nich pouzije font pro celkove rozhrani aplikace

Nastavení více účtů

###############################################################################
# defaultni konfigurace jednoho uctu:
set loginconf(user)          "prihlasovaci_jmeno_1"
set loginconf(password)      "heslo_1"
set loginconf(resource)      Zdroj_1
set loginconf(server)        adresa_serveru_1
set loginconf(port)          5222 #port (standard 5222)
set loginconf(priority)      8 # priorita
set loginconf(usessl)        1 # pouziti SSL (1=ano, 0=ne)
set loginconf(sslport)       5223 # SSL port (standard 5223)
set loginconf(useproxy)      0 # pouziti proxy (1=ano, 0=ne)

# vytvori v prihlasovacim dialogu menu pro vyber uctu:
# Podle prikladu bude ucet pojmenovan "uzivatelske_jmeno1@adresa_serveru_1"
if {![info exists ::loginconf(profile)]} {
       set ::loginconf(profile)      "$::loginconf(user) @ $::loginconf(server)"
}

# dalsi ucty vytvorime pridanim ocislovanim u jednotlivych konfiguraci, pri dalsich uctech opet navysujeme:
set loginconf1(user)          "prihlasovaci_jmeno_2"
set loginconf1(password)      "heslo_2"
set loginconf1(resource)      Zdroj_2
set loginconf1(server)        adresa_serveru_2
set loginconf1(port)          5222 #port (standard 5222)
set loginconf1(priority)      8 # priorita
set loginconf1(usessl)        1 # pouziti SSL (1=ano, 0=ne)
set loginconf1(sslport)       5223 # SSL port (standard 5223)
set loginconf1(useproxy)      0 # pouziti proxy (1=ano, 0=ne)

# vytvori v prihlasovacim dialogu menu pro vyber uctu:
# Podle prikladu bude ucet pojmenovan "uzivatelske_jmeno1@adresa_serveru_1"
if {![info exists ::loginconf1(profile)]} {
       set ::loginconf1(profile)      "$::loginconf1(user) @ $::loginconf1(server)"
}

Automatické přihlášení

###############################################################################
# Automaticky prihlasi ucet s loginconf (defaultni konfigurace viz vyse, defaultni konfiguraci lze nastavit primo v Tkabberu)
set autologin 1

MUC

V MUC staci napsat

Kick

/kick přezdívka
důvod vyhození na novém řádku

Ban

/ban přezdívka
důvod trvalého vyhození na novém řádku

Leave

/leave důvod opuštění místnosti

Service discovery z menu

Na konec souboru disco.tcl stačí přidat:

proc disco::browser::add_menu_item {m connid jid} {
       $m add command -label [::msgcat::mc "Service Discovery"] \
       -command [list disco::browser::open_win $jid -connection $connid]
}
               
hook::add chat_create_user_menu_hook disco::browser::add_menu_item 60
hook::add chat_create_conference_menu_hook disco::browser::add_menu_item 60
hook::add roster_create_groupchat_user_menu_hook disco::browser::add_menu_item 60
hook::add roster_conference_popup_menu_hook disco::browser::add_menu_item 60
hook::add roster_service_popup_menu_hook disco::browser::add_menu_item 60
hook::add roster_jid_popup_menu_hook disco::browser::add_menu_item 60
hook::add message_dialog_menu_hook disco::browser::add_menu_item 60
hook::add search_popup_menu_hook disco::browser::add_menu_item 60

Po kliknutí na kontakt přibyde v menu položka Service Discovery, která usnadní spuštění např. Ad-Hoc Commands

Service discovery z menu (pro verzi > 0.11)

Předchozí návod již nefunguje od jisté vývojové (SVN) verze řady 0.11. Nahrazuje jej tento kód (liší se pouze v první části). Přidat na konec souboru disco.tcl:

proc disco::browser::add_menu_item {m xlib jid} {
       $m add command -label [::msgcat::mc "Service Discovery"] \
       -command [list disco::browser::open_win $xlib $jid]
}

hook::add chat_create_user_menu_hook disco::browser::add_menu_item 60
hook::add chat_create_conference_menu_hook disco::browser::add_menu_item 60
hook::add roster_create_groupchat_user_menu_hook disco::browser::add_menu_item 60
hook::add roster_conference_popup_menu_hook disco::browser::add_menu_item 60
hook::add roster_service_popup_menu_hook disco::browser::add_menu_item 60
hook::add roster_jid_popup_menu_hook disco::browser::add_menu_item 60
hook::add message_dialog_menu_hook disco::browser::add_menu_item 60
hook::add search_popup_menu_hook disco::browser::add_menu_item 60  

Klávesové zkratky

Příklad přidání klávesové zkratky na vyčištění okna chatu klávesou F12 (zapisuje se do config.tcl souboru ve vašem domovském adresáři):

bind . <Key-F12> clearChatWindow
proc clearChatWindow {} {
   foreach chatid [chat::opened] {
	if {[.nb raise] eq [ifacetk::nbpage [chat::winid $chatid]]} {
	    ::plugins::clear::clear_chat_win $chatid
	    return
	}
    }
}

Jak tedy vytvořit k pro jinou položku v menu? Za slovem proc následuje název procedury, kterou pomocí příkazu bind připojíte ke klávesové zkratce (1.řádek). Po stisknutí se pustí příkazy v proceduře (ve složených závorkách) v tomto případě se provádí cyklus (foreach) přes všechny otevřené okna a pro právě otevřené se pustí příkaz, který spustí v pluginu pro čištění okna příkaz, který spustí vyčištění (::plugins::clear::clear_chat_win $chatid), pomocí return se funkce ukončí (resp. urychlí ukončení cyklu). Název funkce, kterou chceme spustit se musí dohledat v tcl souborech tkabberu. Je to trochu složitější, ale jde to nastavit na téměř libovolnou akci což zase jiní klienti neumějí, prostě Tkabber není klient pro běžného uživatele PC.

Pluginy

Pro Tkabber existuje řada pluginů, které vylepšují jeho funkce či vzhled. Zde je výčet několika zajímavějších:

Kopírování status zprávy

Uživatel Lolek napsal plugin, který umožňuje zkopírovat status zprávu do schránky.

Instalace:Soubor stáhnete na adrese http://lolek.jabbim.cz/tkabber/copy_status.tcl soubor umístíte do adresáře plugins/general/ ve zdrojových kódech Tkabberu.

Avatar v rosteru

Po zapnutí pluginu a vyvolání vizitky s fotografií se uloží (obnoví) zmenšená fotka (o rozměrch 30x30 px) v rámečku před nickem a stavem.

Instalace:Pro zdárnou instalaci prý budete potřebovat SVN verzi Tkabberu. Stáhnete Rosteravatars.zip rozbalit se má do složky plugins, nefungovalo mi, proto jsem použil přímo na soubor složku plugins/roster. Uživatelé bez avataru budou mít šedý stín postavy s ruským nápisem "bez fota", pokud chcete raději obrázek bez ruského nápisu, nahraďte soubor nophoto.png souborem http://lolek.jabbim.cz/tkabber/nophoto.png . Můžete obrázky přidávat a aktualizovat sami, obrázek musí být ve formátu PNG (průhlednost není v automatické změně podporována) o velikosti 30x30px

Avatar v chatu

Pokud chcete zobrazovat avatar také v chat okně, použijte plugin Vcardavatar

Instalace:Pro zdárnou instalaci prý budete potřebovat SVN verzi Tkabberu. Stáhnete Vcardavatars.zip soubor rozbalíte do složky plugins, mě tento postup nefungoval (tkabber plugin nenačetl) a tak jsem přesunul soubory z rozbalené složky vcardavatars do složky plugins/chat. Po zapnutí tkabberu se v nastavení zobrazí nová položky Plugins Management ve které plugin zapnete.

Blokování uživatelů v MUC

Pro blokování slouží plugin Bmuc Ovládá se přes menu v konferenční místnosti.

Jabbim disk

Plugin http://ru.tkabber.jabe.ru/images/ru.tkabber.jabe.ru/7/7f/Jdiskurl.zip má prý vypsat odkaz na soubor Jabbim disku (netestoval jsem, na toto v jdisku existuje příkaz a nevím jestli plugin funguje i s novou verzí jdisku, ale klidně otestujte a text upravte)

Poslední stavy

Plugin Histballoon zobrazuje ve vyskakovacím okně ("bublině") po najetí myši na stavový řádek posledních 20 stavů zobrazovaných průběžně v tomtéž řádku, takže vám žádná změna neunikne.

Ukládání fotografie z vizitky

Tento plugin Savebtn má zobrazit ve vizitce (vCard) na kartě 'Photo' tlačítko pro uložení obrázku do souboru.

Odmítat autorizace

Plugin Reject_subscription umožňuje blokovat žádosti o autorizace od kontaktů mimo váš roster.

Gmail

Plugin gmail oznamuje novou příchozí poštu na účet. Je proto použita nová záložka.

Podbarvení ob řádek

Plugin stripes umožňuje podbarvit sudé resp. liché řádky jinou barvou a tím pomoct čtení zprávy. Do svého konfiguračního souboru si musíte přidat řádky:

option add *Chat.oddBackground  gray77
option add *Chat.evenBackground gray84

Poslední hodnota na řádku uvádí barvu řádku, jazyk ve kterém je tkabber napsán obsahuje předdefinované názvy barev jako je např. 'gray77' jejich seznam lze nalézt na http://www.tcl.tk/man/tcl8.5/TkCmd/colors.htm Barvu by mělo jít zadat také hexadecimálně ve tvaru #RGB