WeeChat 0.2.6 - Guida utente

Client IRC veloce, leggero ed estendibile

Claudio M. Alessi

Questo manuale č software libero; puoi ridistribuirlo e/o modificarlo sotto i termini della Licenza Pubblica Generica GNU come pubblicato dalla Free Software Foundation; versione 3 della licenza o (a sua discrezione) qualsiasi versione successiva.

Questo programma č distribuito nella speranza di essere utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanza implicita di COMMERCIABILITA' o IDONEITA' PER UNO SCOPO PARTICOLARE. Vedere la Licenza Pubblica Generica GNU per ulteriori dettagli.

Dovresti aver ricevuto una copia della Licenza Pubblica Generica GNU con questo programma. In caso contrario vedi <http://www.gnu.org/licenses/>.

05-10-2007 22:21:42

Prefazione

Questo manuale documenta il client IRC WeeChat, esso è parte di WeeChat.

L'ultima versione di questo documento può essere trovata in questa pagina: http://weechat.flashtux.org/doc.php


Tabella dei contenuti

1. Introduzione
Descrizione
Prerequisiti
2. Installazione
Pacchetti binari
Pacchetti sorgenti
Sorgenti CVS
3. Uso
Eseguire WeeChat
Tasti di funzione
Linea di comando
WeeChat / Comandi IRC
Comandi WeeChat
Tasti di funzione
Comandi IRC
File di configurazione
Pipe FIFO
4. Plugin
Plugin in WeeChat
Scrivere plugin
Funzioni API
Compilare i plugin
Caricare plugin su WeeChat
Esempio di plugin
Plugin Charset
Impostazioni
FAQ
Plugin script
Caricare / scaricare script
Sintassi per linguaggio
WeeChat / API script
5. Autori / Supporto
Autori
Contributori
Ottenere supporto

Capitolo 1. Introduzione

Tabella dei contenuti

Descrizione
Prerequisiti

Questo capitolo descrive WeeChat e i prerequisiti per la sua installazione.

Descrizione

WeeChat (Wee Enhanced Environment for Chat) č un client IRC libero, veloce e leggero, progettato per molti sistemi operativi.

Le funzioni principali sono:

  • connessione multi-server (con SSL, IPv6, proxy)

  • molte GUI: Curses, wxWidgets, Gtk e Qt

  • piccolo, veloce e leggero

  • personalizzabile ed estensibile con plugin e script

  • conforme alle RFC 1459, 2810, 2811, 2812 e 2813

  • multi-piattaforma (GNU/Linux, *BSD, MacOS X, Windows e altri)

  • 100% GPL, software libero

L'homepage di WeeChat è qui: http://weechat.flashtux.org

Prerequisiti

Per installare WeeChat ti occorre:

  • un ambiente unix-like funzionante (con tool di compilazione per pacchetti sorgenti)

  • i privilegi di "root" (per installare WeeChat)

  • a seconda della GUI, una delle seguenti librerie:

    • Curses: libreria ncurses

    • Gtk: *** GUI non ancora sviluppata ***

    • WxWidgets: *** GUI non ancora sviluppata ***

    • Qt: *** GUI non ancora sviluppata ***

Capitolo 2. Installazione

Questo capitolo spiega come installare WeeChat.

Pacchetti binari

I pacchetti binari sono disponibili per queste distribuzioni:

  • Debian (o qualsiasi distribuzione Debian compatibile): apt-get install weechat

  • Mandriva/RedHat (o qualsiasi distribuzione RPM compatibile): rpm -i /chemin/weechat-x.y.z-1.i386.rpm

  • Gentoo: emerge weechat

Per le altre distribuzioni consultare il proprio manuale per le istruzioni di installazione.

Pacchetti sorgenti

Tutto quello che devi fare è eseguire in una console o in un terminale:

$ ./configure
$ make

A questo punto ottieni i privilegi di root e installa WeeChat:

$ su
(inserisci la password di root)
# make install

Sorgenti CVS

Attenzione: i sorgenti CVS sono per utenti avanzati: potrebbero non compilare o non essere stabili. Sei avvisato!

Per ottenere i sorgenti CVS usa questo comando:

$ cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/weechat co weechat

Esegui questo script: ./autogen.sh

Quindi segui le istruzioni del pacchetto sorgente (vedi la sezione “Pacchetti sorgenti”)

Capitolo 3. Uso

Questo capitolo spiega come eseguire WeeChat, i tasti di funzione usati di default, i comandi interni e di IRC, il file di configurazione e l'uso dei pipe FIFO.

Eseguire WeeChat

Argomenti della linea di comando:

Parametri Descrizione
-a, --no-connect Disabilita la connessione automatica sui server all'avvio
-c, --config Mostra l'aiuto per la configurazione (lista delle opzioni)
-d, --dir <path> Imposta il percorso come home per WeeChat (usato per i file di configurazione, log, plugin e script utente). Il valore di default è "~/.weechat". Nota che la directory viene creata se non viene trovata da WeeChat.
-f, --key-functions Mostra le funzioni interne di WeeChat per i tasti
-h, --help Mostra l'aiuto
-i, --irc-commands Mostra la lista dei comandi IRC
-k, --keys Mostra i tasti di default di WeeChat
-l, --license Mostra la licenza di WeeChat
-p, --no-plugin Disabilita il caricamento automatico dei plugin
-v, --version Mostra la versione di WeeChat
-w, --weechat-commands Mostra la lista dei comandi di WeeChat

E' anche possibile passare un URL per uno o più server IRC, come segue:

irc[6][s]://[pseudonimo[:mot_passe]@]irc.esempio.org[:porta][/canale][,canale[...]

Esempio di join su #weechat e #toto sul server "irc.freenode.net", porta di default (6667), col nick "nono":

$ weechat-curses irc://nono@irc.freenode.net/#weechat,#toto

Per avviare WeeChat, usare questo comando:

  • per la GUI Curses: weechat-curses

  • per la GUI Gtk: weechat-gtk

  • per la GUI wxWidgets: weechat-wxwidgets

  • per la GUI Qt: weechat-qt

Quando esegui WeeChat per la prima volta, un file di configurazione di default viene creato con le opzioni di default. Il file di configurazione di default è: "~/.weechat/weechat.rc"

Puoi editare questo file come preferisci per configurare WeeChat (SOLO se WeeChat non è in esecuzione) o puoi impostare i parametri con il comando "/set" su WeeChat (vedi la sezione “Comandi WeeChat”)

Tasti di funzione

Tasto Azione
Freccia a sinistra / Ctrl + B Va al carattere precedente nella linea di comando
Freccia a destra / Ctrl + F Va al carattere successivo nella linea di comando
Ctrl + freccia a sinistra Va alla parola precedente nella linea di comando
Ctrl + freccia a destra Va alla parola successiva nella linea di comando
Home / Ctrl + A Va all'inizio della linea di comando
Ctrl + C poi B Inserisce il codice per il testo in grassetto
Ctrl + C poi C Inserisce il codice per il testo colorato
Ctrl + C poi O Inserisce il codice per reimpostare il colore
Ctrl + C poi R Inserisce il codice per invertire il colore
Ctrl + C poi U Inserisce il codice per il testo sottolineato
End / Ctrl + E Va alla fine della linea di comando
Ctrl + K Cancella dal cursore fino alla fine della linea di comando
Ctrl + L Ridisegna l'intera finestra
Ctrl + R Cerca il testo nel buffer della history (due volte: cerca il testo esatto)
Ctrl + S poi Ctrl + U Imposta il marker unread su tutti i buffer
Ctrl + T Trasporta i caratteri
Ctrl + U Cancella dal cursore fino all'inizio della linea di comando
Ctrl + W Cancella la parola precedente nella linea di comando
Ctrl + Y Incolla il contenuto degli appunti
Backspace / Ctrl + H Cancella il carattere precedente nella linea di comando
Delete / Ctrl + D Cancella il carattere successivo nella linea di comando
Tab / Shift + Tab Completa un comando o un nick (Tab di nuovo: trova il prossimo completamento)
Qualsiasi carattere Inserisce il carattere alla posizione del cursore nella linea di comando
Enter / Ctrl + J / Ctrl + M Esegue il comando o invia il messaggio (in modalità ricerca: ferma la ricerca)
Freccia sù / Freccia giù Richiama l'ultimo comando/messaggio (in modalità ricerca: cerca sù/giù)
Ctrl + freccia sù / Ctrl + freccia giù Richiama l'ultimo comando/messaggio nell'history globale (comune per tutti i buffer)
PageUp / PageDown Scorre sù/giù una pagina nell'history del buffer
Alt + PageUp / Alt + PageDown Scorre sù/giù poche linee nell'history del buffer
Alt + Home / Alt + End Scorre in alto/basso nel buffer
F5 / Alt + freccia a sinistra Passa al buffer precedente
F6 / Alt + freccia a destra Passa al buffer successivo
F7 Passa alla finestra precedente
F8 Passa alla finestra successiva
F9 / F10 Scorre il topic
F11 / F12 Scorre la nicklist
Alt + F11 / Alt + F12 Va all'inizio/la fine della nicklist
Alt + A Passa al prossimo buffer con attività (con priorità: highlight, messaggio, altro)
Alt + B Va alla parola precedente nella linea di comando
Alt + D Cancella la parola successiva nella linea di comando
Alt + F Va alla parola successiva nella linea di comando
Alt + H Pulisce la hotlist (notifica dell'attivià negli altri buffer)
Alt + I Rimuove l'ultimo messaggio dalla infobar
Alt + J poi Alt + D Mostra il buffer DCC
Alt + J poi Alt + L Passa all'ultimo buffer
Alt + J poi Alt + P Passa al buffer precedentemente visualizzato
Alt + J poi Alt + R Passa al buffer dati raw di IRC
Alt + J poi Alt + S Passa al buffer del server
Alt + J poi Alt + X Passa al primo canale nel prossimo server (o al buffer del server se nessun canale è aperto)
Alt + numero (0-9) Passa al buffer in base al numero (0 = 10)
Alt + J poi numero (01-99) Passa al buffer in base al numero
Alt + K Cattura il tasto e inserisce il suo codice nella linea di comando
Alt + N Scorre all'highlight successivo
Alt + P Scorre all'highlight precedente
Alt + R Cancella l'intera linea di comando
Alt + S Cambia i server nel buffer dei server (se l'opzione "look_one_server_buffer" è abilitata)
Alt + U Scorre alla prima linea non letta nel buffer
Alt + W poi Alt + freccia Passa alla finestra in base alla direzione

Linea di comando

La linea di comando di WeeChat (in basso alla finestra) ti consente di inviare testo nei canali ed eseguire comandi di WeeChat o di IRC (vedi la sezione “WeeChat / Comandi IRC”).

I comandi cominciano col carattere "/", seguiti dal nome del comando. Per esempio, per iniziare una conversazione privata con "toto":

/query toto

Il testo inviato al canale è qualsiasi testo che non comincia con il carattere "/". Per esempio, per inviare il testo "ciao" nel canale corrente:

ciao

Tuttavia, è possibile cominciare col carattere "/", aggiungendone un altro. Per esempio, per inviare il testo "/query toto" nel canale corrente:

//query toto

Se l'opzione per inviare i colori IRC ("irc_colors_send") è abilitata, puoi usare i codici e gli attributi dei colori, come segue (premi Ctrl-C seguito dalla lettera, con il valore opzionale):

Codice Descrizione
^Cb testo in grassetto
^Ccxx colore del testo "xx" (vedi la tabella dei colori in basso)
^Ccxx,yy colore del testo "xx" e sfondo "yy" (vedi la tabella dei colori in basso)
^Co disabilita i colori e gli attributi
^Cr inverte il video (scambia il colore del testo con lo sfondo)
^Cu testo sottolineato

Nota: lo stesso codice (senza il numero per ^Cc) può essere usato per disattivare l'attributo.

I codici colore per ^Cc sono:

Codice Colore
00 bianco
01 nero
02 blu scuro
03 verde scuro
04 rosso chiaro
05 rosso scuro
06 magenta
07 arancione
08 giallo
09 verde chiaro
10 azzurro
11 azzurro chiaro
12 blu chiaro
13 magenta chiaro
14 grigio
15 grigio chiaro (bianco)

Esempio: visualizzazione di "ciao a tutti!" con "ciao" in blu chiaro grassetto, e "a tutti" in rosso chiaro sottolineato:

^Cc12^Cbciao^Cb^Cc04^Cu a tutti^Cu^Cc!

WeeChat / Comandi IRC

Questo capitolo elenca tutti i comandi di WeeChat ed IRC.

Comandi WeeChat

alias [nome_alias [commando [argomenti]]]

crea un alias per un comando

nome_alias: nome dell'alias
   comando: nome del comando (comando WeeChat o IRC, più comandi possono essere separati da un punto e virgola)
 argomenti: argomenti per il commando

$* è rimpiazzato da tutti gli argomenti.

Le variabili $nick, $channel e $server sono rimpiazzate dal nick/canale/server corrente.

buffer [azione [arg] | numero | [[server] [canale]]]

gestisce i buffer

 azione: azione da eseguire:
   move: sposta il buffer nella lista (pu&ňgrave; essere relativo, per esempio -1)
  close: chiude il buffer (arg opzionale è il messaggio di part, per il canale)
   list: elenca i buffer aperti (nessun parametro implica questa lista)
 notify: imposta il livello di notifica per il buffer (0=nessuno, 1=highlight, 2=1+msg, 3=2+join/part)
 	 (quando eseguito sul buffer del server, questo imposta il livello di notifica di default per l'intero server)
 scroll: scorre l'history (pu&oegrave; essere relativo, e può terminare con una lettera: s=sec, m=min, h=ora, d=giorno, M=mese, y=anno); se c'è solo la lettera scorre a cominciare da questo elemento

 numero: salta al buffer in base al numero
server,
 canale: salta al buffer in base al server e/o al nome del canale

Esempi:
	sposta il buffer: /buffer move 5
	chiude il buffer: /buffer close questo è il msg di part
     imposta la notifica: /buffer notify 2
      scorre 1 giorno sù: /buffer scroll 1d  ==  /buffer scroll -1d  ==  /buffer scroll -24h
scorre all'inizio
        di questo giorno: /buffer scroll d
   scorre 15 minuti dopo: /buffer scroll +15m
     scorre 20 msg sopra: /buffer scroll -20
       salta su #weechat: /buffer #weechat

comando builtin

lancia il comando builtin di WeeChat/IRC (non guarda al gestore dei plugin o agli alias)

command: comando da eseguire (un '/' viene aggiunto automaticamente se non viene trovato all'inizio
del comando)


clear [-all | numero [numero ...]]

pulisce la/le finestra/e

  -all: pulisce tutti i buffer
numero: pulisce il buffer in base al numero

connect [-all [-nojoin] | nomeserver [nomeserver ...] [-nojoin] | hostname [-port porta] [-ipv6] [-ssl]]

connette al/ai server

      -all: connette a tutti i server
nomeserver: nome interno del server su cui connettersi
   -nojoin: non entra in alcun canale (anche se l'autojoin è abilitato sul server)
  hostname: l'hostname su cui connettersi, creando un server temporaneo
      port: porta del server (intero, di default è 6667)
      ipv6: usa il protocollo IPv6
       ssl: usa il protocollo SSL

disconnect [-all | nomeserver [nomeserver ...]]

disconnette dal/dai server

      -all: disconnette da tutti i server
nomeserver: nome del server dalla quale disconnettersi

dcc azione [nickname [file]]

inizia una DCC (file o chat) o chiude una chat

  azione: 'send' (file) or 'chat' or 'close' (chat)
nickname: nickname a cui inviare il file o la chat
    file: nome del file (sull'host locale)

debug dump | buffer | windows

mostra messaggi di debug

   dump: salva un dump della memoria nel file di log di WeeChat (lo stesso dump è scritto quando WeeChat crasha)
 buffer: fa un dump del contenuto del buffer con valori esadecimali nel file di log
windows: mostra l'albero delle finestre

help [comando]

mostra l'aiuto relativo ai comandi

comando: nome del comando di WeeChat o IRC

history [clear | valore]

show buffer command history

clear: pulisce l'history
value: numero di voci dell'history da visualizzare

ignore [maschera [[tipo | comando] [canale [server]]]]

ignora messaggi IRC e/o host

maschera: nick o maschera dell'host da ignorare
    tipo: tipo di messaggio da ignorare (action, ctcp, dcc, pv)
 comando: comando IRC
  canale: nome del canale per l'ignore
  server: nome del server per l'ignore

Per ogni argomento, '*' significa tutti.
Senza argomento, il comando /ignore elenca tutti gli ignore definiti.

key [key [funzione/comando]] [unbind key] [funzioni] [call funzione ["arg"]] [reset -yes]

lega/slega i tasti

      key: mostra o lega questo tasto a una funzione interna o a un comando (che inizia con "/")
   unbind: slega un tasto
 funzioni: elenca le funzioni interne per i tasti di funzione
     call: chiama una funzione in base al nome (con argomenti opzionali)
    reset: ripristina le associazioni ai valori di default e cancella TUTTE le associazioni personali (usare con prudenza!)

plugin [list [nome]] | [listfull [nome]] | [load nomefile] | [autoload] | [reload [nome]] | [unload [nome]]

elenca/carica/scarica plugin

    list: elenca i plugin caricati
listfull: elenca i plugin caricati con informazioni dettagliate per ogni plugin
    load: carica un plugin
autoload: carica automaticamente i plugin nel sistema o nella directory dell'utente
  reload: ricarica un plugin (se non è dato il nome, scarica tutti i plugin, poi carica automaticamente i plugin)
  unload: scarica uno o tutti i plugin

Senza argomento, il comando /plugin elenca i plugin caricati.

reconnect [-all [-nojoin] | nomeserver [nomeserver ...] [-nojoin]]

riconnette al/ai server

      -all: riconnette a tutti i server
nomeserver: nome del server su cui riconnettersi
   -nojoin: non entra in alcun canale (anche se l'autojoin è abilitato sul server)

save [file]

salva la configurazione sul disco

file: nome del file su cui scrivere la configurazione

server [list [nomeserver]] | [listfull [nomeserver]] | [add nomeserver hostname [-port porta] [-temp] [-auto | -noauto] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 nick2 nick3] [-username nomeutente] [-realname nomereale] [-command comando] [-autojoin canale[,canale]] ] | [copy nomeserver nuovonomeserver] | [rename nomeserver nuovonomeserver] | [keep nomeserver] | [del nomeserver]

elenca, aggiunge o rimuove server

      list: elenca i server (nessun parametro implica questa lista)
  listfull: elenca i server con informazioni dettagliate per ogni server
       add: crea un nuovo server
nomeserver: nome del server, per uso interno e di visualizzazione
  hostname: nome o indirizzo IP del server
     porta: porta del server (intero, di default è 6667)
      temp: crea un server temporaneo (non salvato nel file di configurazione)
      auto: connette automaticamente al server quanto parte WeeChat
    noauto: non connette al server quando parte WeeChat (default)
      ipv6: usa il protocollo IPv6
       ssl: usa il protocollo SSL
  password: password per il server
     nick1: primo nick per il server
     nick2: nick alternativo per il server
     nick3: secondo nick alternativo per il server
nomeutente: nome utente
 nomereale: nome reale dell'utente
      copy: duplica il server
    rename: rinomina il server
      keep: lascia il server nel file di configurazione (solo per server temporanei)
       del: cancella un server
   deloutq: cancella i messaggi dalla coda in uscita (tutti i messaggi che WeeChat stà inviando correntemente)

set [opzione [ = valore]]

imposta le opzioni di configurazione

opzione: nome dell'opzione (se il nome è completo e non è dato nessun valore, viene visualizzato un aiuto per l'opzione)
 value: valore per l'opzione

Opzione può essere: nomeserver.server_xxx dove "nomeserver" è un nome interno per il server e "xxx" un'opzione per questo server.

setp [opzione [ = valore]]

imposta le opzioni di configurazione dei plugin

opzione: nome dell'opzione del plugin
  value: valore per l'opzione

L'opzione è formata: plugin.opzione, esempio: perl.mioscript.elemento1

unalias nome_alias

rimuove un alias

nome_alias: nome dell'alias da rimuovere

unignore [numero | [maschera [[tipo | comando] [canale [server]]]]]

toglie dall'ignore un messaggio IRC e/o un host

  numero: # dell'ignore da non ignorare (il numero è visualizzato dalla lista di ignore)
maschera: maschera del nick o dell'host da non ignorare
    tipo: tipo di messaggio da non ignorare (action, ctcp, dcc, pv)
 comando: comando IRC
  canale: nome del canale per l'unignore
  server: nome del server per l'unignore

Per ogni argomento, '*' significa tutti.
Senza argomento, il comando /unignore elenca tutti gli ignore definiti.

upgrade [percorso_del_binario]

aggiorna WeeChat senza disconnettersi dai server

percorso_del_binario: percorso del binario di WeeChat (di default è il binario corrente)

Questo comando esegue di nuovo un binario di WeeChat, quindi questo dovrebbe essere stato compilato o installato con un gestore di pacchetti prima di eseguire questo comando.

uptime [-o]

mostra l'uptime di WeeChat

-o: invia l'uptime nel canale corrente come un messaggio IRC

window [list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv [pct] | resize pct | merge [all]]

gestisce le finestre

  list: elenca le finestre aperte (nessun parametro implica questo elenco)
    -1: salta alla finestra precedente
    +1: salta alla finestra successiva
    b#: salta alla finestra successiva visualizzando il buffer numero #
    up: passa alla finestra sù la corrente
  down: passa alla finestra giù la corrente
  left: passa alla finestra a sinistra
 right: passa alla finestra a destra
splith: spezza la finestra corrente orizzontalmente
splitv: spezza la finestra corrente verticalmente
resize: ridimensiona la finestra, la nuova dimensione è il <pct> percento della finestra originaria
 merge: fonde una finestra con un altra (all = lascia solo una finestra)

Per splith e splitv, pct è una percentuale che rappresenta la dimensione della nuova finestra, calcolata con la finestra corrente come dimensione di riferimento. Per esempio 25 significa crea una nuova finestra di dimensione = dimensione_corrente / 4

Tasti di funzione

Funzione Descrizione
return termina la linea
tab completa le parole
tab_previous trova il completamento precedente per la parola
backspace cancella il carattere precedente
delete cancella il carattere successivo
delete_end_line cancella fino alla fine della linea
delete_beginning_line cancella fino all'inizio della linea
delete_line cancella l'intera linea
delete_previous_word cancella la parola precedente
delete_next_word cancella la parola successiva
clipboard_paste incolla il contenuto corrente degli appunti
transpose_chars trasporta i caratteri
home va all'inizio della linea
end va alla fine della linea
left si sposta un carattere a sinistra
previous_word si sposta alla parola precedente
right si sposta un carattere a destra
next_word si sposta alla prossima parola
up chiama il comando precedente nell'history
up_global chiama il comando precedente nell'history globale
down chiama il prossimo comando nell'history
down_global chiama il prossimo comando nell'history globale
page_up scorre una pagina sù
page_down scorre una pagina giù
scroll_up scorre poche linee sù
scroll_down scorre poche linee giù
scroll_top scorre in alto il buffe
scroll_bottom scorre in basso il buffer
scroll_topic_left scorre a sinistra il topic
scroll_topic_right scorre a destra il topic
nick_beginning visualizza l'inizio della nicklist
nick_end visualizza la fine della nicklist
nick_page_up scorre la nicklist di una pagina sù
nick_page_down scorre la lista dei nick una pagina giù
jump_smart salta al buffer con attività
jump_dcc salta al buffer DCC
jump_raw_data salta al buffer dati raw di IRC
jump_last_buffer salta all'ultimo buffer
jump_previous_buffer salta al buffer precedente
jump_server salta al buffer del server
jump_next_server salta al prossimo server
switch_server passa al server attivo nel buffer dei server
scroll_previous_highlight scorre all'highlight precedente nel buffer
scroll_next_highlight scorre all'highlight successivo nel buffer
scroll_unread scorre alla prima linea non letta nel buffer
set_unread imposta il marker unread su tutti i buffer
hotlist_clear pulisce l'hotlist
infobar_clear pulisce l'infobar
refresh fa il refresh dello schermo
grab_key cattura un tasto
insert inserisce una stringa nella command line
search_text cerca il testo nel buffer dell'history

Comandi IRC

admin [target]

trova informazioni sull'amministratore del server

target: server

ame messaggio

invia un CTCP action a tutti i canali di tutti i server connessi

messaggio: messaggio da inviare

amsg testo

invia un messaggio a tutti i canali di tutti i server connessi

testo: testo da inviare

away [-all] [messaggio]

imposta lo status di away

     -all: imposta lo stato di away su tutti i server connessi
messaggio: messaggio per l'away (se non è dato il messaggio, lo status di away è rimosso)

ban [canale] [nickname [nickname ...]]

banna nick o host

  canale: canale per il ban
nickname: utente o host da bannare

ctcp destinatario tipo [argomenti]

invia un messaggio CTCP (protocollo Client-To-Client)

destinatario: nick o canale a cui inviare il CTCP
        tipo: tipo di CTCP (esempi: "version", "ping", ..)
   argomenti: argomenti per il CTCP

cycle [canale[,canale]] [messaggio_di_part]

lascia e rientra in un canale

           canale: nome del canale da ciclare
messaggio_di_part: messaggio di part (visualizzato agli altri utenti)

dehalfop [nickname [nickname]]

rimuove lo stato di half-operatore del canale dai nickname 

deop [nickname [nickname]]

rimuove lo stato di operatore del canale dai nickname

devoice [nickname [nickname]]

rimuove il voice dai nickname

die

arresta il server

halfop [nickname [nickname]]

da lo stato di half-operatore del canale al/ai nickname

info [target]

ottiene informazioni descrittive sul server

target: nome del server

invite nickname canale

invita un nick in un canale

nickname: nick da invitare
  canale: canale su cui invitare

ison nickname [nickname ...]

controlla se un nickname è correntemente su IRC

nickname: nickname

join canale[,canale] [chiave[,chiave]]

entra in un canale

canale: channel name to join
chiave: chiave d'accesso al canale

kick [canale] nickname [commento]

rimuove forzatamente un utente da un canale

  canale: canale dov'è l'utente
nickname: nickname da kickare
commento: commento per il kick

kickban [canale] nickname [commento]

kicka e banna un nick da un canale

  canale: canale dov'è l'utente
nickname: nickname da kickare e bannare
commento: commento per il kick

kill nickname commento

chiude una connessione client-server

nickname: nickname
commento: commento per il kill

links [[server] maschera_server]

elenca tutti i nomi dei server che sono conosciuti dal server rispondendo alla query

         server: questo server dovrebbe rispondere alla query
maschera_server: la lista dei server deve corrispondere a questa maschera

list [canale[,canale] [server]]

elenca i canali e i loro topic

canale: canale da elencare (una regexp è consentita)
server: nome del server

lusers [maschera [target]]

ottiene statistiche sulla dimensione della rete IRC

maschera: solo i server che corrispondono alla maschera
  target: server per inoltrare la richiesta

me messaggio

invia un CTCP action al canale corrente

messaggio: messaggio da inviare

mode { channel {[+|-]|o|p|s|i|t|n|b|v} [limite] [utente] [maschera di ban] } | { nickname {[+|-]|i|w|s|o} }

cambia i modi del canale o dell'utente

modi del canale:
  canale: nome del canale da modificare
  o: da/prende i privilegi di operatore del canale
  p: flag canale privato
  s: flag canale segreto
  i: flag canale solo-invito
  t: flag topic impostabile solo da un operatore del canale
  n: nessun messaggio nel canale da client all'esterno
  m: canale moderato
  l: imposta il limite di utenti nel canale
  b: imposta una maschera di ban per lascia gli utenti fuori
  e: imposta una maschera di eccezione
  v: da/prende l'abilità di parlare in un canale moderato
  k: imposta la chiave del canale (password)
modi dell'utente:
  nickname: nickname da modificare
  i: segna l'utente come invisibile
  s: segna l'utente per ricevere notice dal server
  w: l'utente riceve i wallop
  o: flag operatore

motd [target]

ottiene il "Message Of The Day"

target: nome del server

msg destinatario[,destinatario] text

invia un messaggio a un nick o un canale

destinatario: nico o canale (può essere una maschera, '*' = canale corrente)
       testo: testo da inviare

names [canale[,canale]]

elenca i nickname del/dei canale/i

canale: nome del canale

nick [-all] nickname

cambia il nickname corrente

    -all: imposta il nuovo nickname per tutti i server connessi
nickname: nuovo nickname

notice nickname testo

invia un messaggio di notice all'utente

nickname: utente a cui inviare il notice
   testo: testo da inviare

op nickname [nickname]

da lo stato di operatore del canale al/ai nickname

oper utente password

ottiene i privilegi di operatore

utente/password: usati per ottenere i privilegi nel server IRC corrente

part [canale[,canale]] [messaggio_di_part]

lascia un canale

           canale: nome del canale da lasciare
messaggio_di_part: messaggio di parte (visualizzato agli altri utenti)

ping server1 [server2]

pinga il server

server1: server da pingare
server2: inoltra il ping su questo server

pong demone [demone2]

risponde a un messaggio di ping

 demone: demone che ha risposto al messaggio di Ping
demone2: inoltre il messaggio a questo demone

query nickname [testo]

invia un messaggio privato a un nick

nickname: nickname per la conversazione privata
   testo: testo da inviare

quit [messaggio_di_quit]

chiude tutte le connessioni ed esce

messaggio_di_quit: messaggio di quit (visualizzato agli altri utenti)

quote data

invia dati raw al server senza analizzarli

data: dati raw da inviare

rehash

dice al server di ricaricare il suo file di configurazione

restart

dice al server di riavviare sè stesso

service nickname reserved distribution type reserved info

registra un nuovo servizio

distribution: visibilità del servizio
        type: riservato per usi futuri

servlist [maschera [tipo]]

elenca i servizi correntemente connessi alla rete

maschera: elenca solo i servizi che corrispondono a questa maschera
    tipo: elenca solo i servizi di questo tipo

squery servizio testo

consegna un messaggio a un servizio

servizio: nome del servizio
   testo: testo da inviare

squit server commento

disconnette il server dai link

  server: nome del server
commento: commento per il quit

stats [query [server]]

richiede statistiche sul server

 query: c/h/i/k/l/m/o/y/u (vedi RFC1459)
server: nome del server

summon utente [target [canale]]

da agli utenti che sono nell'host che esegue un server IRC un messaggio chiedendogli
gentilmente di entrare su IRC

utente: nome utente
target: nome del server
canale: nome del canale

time [target]

richiede l'ora locale al server

target: richiede l'ora al server specificato

topic [canale] [soggetto]

get/set channel topic

  canale: nome del canale
soggetto: nuovo soggetto del canale (se è "-delete" allora il soggetto sarà rimosso)

trace [target]

trova il route al server specifico

target: server

unban [canale] nickname [nickname ...]

unbanna nick o host

  canale: canale per l'unban
nickname: utente o host per l'unban

userhost nickname [nickname ...]

ritorna un elenco di informazioni sui nickname

nickname: nickname

users [target]

elenca gli utenti loggati sul server

target: server

version [server | nickname]

da informazioni sulla versione del nick o del server (corrente o specificato) 

  server: nome del server
nickname: nickname

voice [nickname [nickname]]

da il voice al/ai nickname

wallops testo

invia un messaggio a tutti gli utenti correntemente connessi che hanno impostato il modo utente 'w' da loro stessi

testo: testo da inviare

who [maschera ["o"]]

genera una richiesta che ritorna un elenco di informazioni

maschera: solo le informazioni ce corrispondono a questa maschera
       o: sono ritornati solo gli operatori in base alla maschera fornita

whois [server] nickname[,nickname]

richiede informazioni su uno o più utenti

  server: nome del server
nickname: nickname (può essere una maschera)

whowas nickname [,nickname [,nickname ...]] [count [target]]

chiede informazioni su un nickname che non esiste più

nickname: nickname da cercare
   count: numero di risposte da ritornare (ricerca completa se il numero è negativo)
  target: le risposte dovrebbero corrispondere a questa maschera

File di configurazione

Elenca le opzioni per il file di configurazione:

Opzione Tipo Valori Default Descrizione
look_save_on_exit booleano 'on' o 'off' 'on' Salva il file di configurazione all'uscita
look_set_title booleano 'on' o 'off' 'on' Imposta il titolo della finestra (del terminale per la GUI Curses) con nome e versione
look_startup_logo booleano 'on' o 'off' 'on' Visualizza il logo di WeeChat all'avvio
look_startup_version booleano 'on' o 'off' 'on' Visualizza la versione di WeeChat all'avvio
look_weechat_slogan stringa qualsiasi stringa 'the geekest IRC client!' Lo slogan di WeeChat (se vuoto, lo slogan non è usato)
look_one_server_buffer booleano 'on' o 'off' 'off' Usa lo stesso buffer per tutti i server
look_open_near_server booleano 'on' o 'off' 'off' Apre nuovi canali/privati vicini al server
look_scroll_amount intero tra 1 e 2147483647 3 Quante linee da scorrere con scroll_up e scroll_down
look_buffer_timestamp stringa qualsiasi stringa '[%H:%M:%S]' Timestamp per i buffer
look_color_nicks_number intero tra 1 e 10 10 Numero di colori da usare per i nick
look_color_actions booleano 'on' o 'off' 'on' Visualizza le azioni con colori differenti
look_nicklist booleano 'on' o 'off' 'on' Visualizza la finestra della nicklist (per le finestre dei canali)
look_nicklist_position string 'left', 'right', 'top', 'bottom' 'right' Posizione della nicklist (sopra, sinistra, destra (default), sotto)
look_nicklist_min_size intero tra 0 e 100 0 Dimensione minima per la nicklist (larghezza o altezza, dipendentemente da look_nicklist_position (0 = nessuna dimensione minima))
look_nicklist_max_size intero tra 0 e 100 0 Dimensione massima per la nicklist (larghezza o altezza, dipendentemente da look_nicklist_position (0 = nessuna dimensione massima))
look_nicklist_separator booleano 'on' o 'off' 'on' Separatore tra chat e nicklist
look_no_nickname stringa qualsiasi stringa '-cmd-' Testo da visualizzare al posto del nick quando disconnesso
look_nickmode booleano 'on' o 'off' 'on' Visualizza i modi del nick ((half)op/voice) prima di ogni nick
look_nickmode_empty booleano 'on' o 'off' 'off' Visualizza uno spazio se i modi del nick non sono (half)op/voice
look_nick_prefix stringa qualsiasi stringa '' Testo da visualizzare prima di ogni nick nella finestra di chat
look_nick_suffix stringa qualsiasi stringa ' |' Testo da visualizzare dopo il nick nella finestra di chat
look_align_nick stringa 'none', 'left', 'right' 'right' Allineamento del nick (dimensione fissa per i nick nella finestra di chat (none, left, right))
look_align_other booleano 'on' o 'off' 'on' Allineamento per gli altri messaggi (che non cominciano con un nick)
look_align_size intero tra 8 e 64 14 Dimensione per l'allineamento del nick e degli altri messaggi
look_align_size_max intero tra 8 e 64 20 Dimensione massima per l'allineamento del nick e degli altri messaggi (dovrebbe essere >= a look_align_size)
look_align_text_offset intero tra -1 e 64 -1 Offset per l'allineamento delle linee dei messaggi (eccetto per le prime linee), di default è -1 (allineato dopo il nick), un valore nullo o positivo è l'offset dopo l'inizio della linea
look_nick_completor stringa qualsiasi stringa ':' La stringa inserita dopo il completamento del nick
look_nick_completion_ignore stringa qualsiasi stringa '[]-^' Caratteri ignorati per il completamento del nick
look_nick_completion_smart booleano 'on' o 'off' 'on' Completamento intelligente per i nick (completa prima con l'ultima persona con la quale si ha parlato)
look_nick_complete_first booleano 'on' o 'off' 'off' Completa solo con il primo nick trovato
look_infobar booleano 'on' or 'off' 'on' Abilita l'infobar
look_infobar_timestamp stringa qualsiasi stringa '%B, %A %d %Y' Timestamp per l'ora nell'infobar
look_infobar_seconds booleano 'on' o 'off' 'on' Visualizza i secondi nell'ora dell'infobar
look_infobar_delay_highlight intero tra 0 e 2147483647 7 Intervallo (in secondi) per l'evidenziamento dei messaggi nell'infobar (0 = disabilita l'evidenziamento di notifica dell'infobar)
look_hotlist_names_count intero tra 0 e 32 3 Numero massimo di nomi nella hotlist (0 = nessun nome visualizzato, solo il buffer dei numeri)
look_hotlist_names_level intero tra 1 e 15 12 Livello per la visualizzazione dei nomi nell'hotlist (combinazione di: 1=join/part, 2=messaggio, 4=privato, 8=highlight, per esempio: 12=privato+highlight)
look_hotlist_names_length intero tra 0 e 32 0 Lunghezza massima de nomi nell'hotlist (0 = nessun limite)
look_hotlist_sort stringa 'group_time_asc', 'group_time_desc', 'group_number_asc', 'group_number_desc', 'number_asc', 'number_desc' 'group_time_asc' Tipo di ordinamento per l'hotlist (group_time_asc (default), group_time_desc, group_number_asc, group_number_desc, number_asc, number_desc)
look_day_change booleano 'on' o 'off' 'on' Visualizza un messaggio speciale quando cambia il giorno
look_day_change_timestamp stringa qualsiasi stringa '%a, %d %b %Y' Timestamp per la data visualizzata quando cambia il giorno
look_read_marker carattere qualsiasi carattere ' ' Usa un marker sui server/canali per mostrare la prima linea non letta
look_input_format stringa qualsiasi stringa '[%n(%m)] ' Formato per l'input del prompt ('%c' è rimpiazzato dal canale o dal server, '%n' dal nick e '%m' dai modi del nick)
look_paste_max_lines intero tra 0 e 2147483647 3 Numero massimo di linee da incollare senza chiedere all'utente (0 = disabilita questa funzione)
col_real_white booleano 'on' o 'off' 'off' Se impostato, usa il colore bianco reale, disabilitato di default per termini con lo sfondo bianco (se non hai mai usato lo sfondo bianco, dovresti attivare questa opzione per vedere il bianco reale invece che il colore di default del terminale)
col_separator colore Colore Curses o Gtk 'blue' Colore per il separatore di finestre (quando spezzate)
col_title colore Colore Curses o Gtk 'default' Colore per la barra del titolo
col_title_more colore Colore Curses o Gtk 'lightmagenta' Colore per il '+' quando si scorre il topic
col_title_bg colore Colore Curses o Gtk 'blue' Sfondo per la barra del titolo
col_chat colore Colore Curses o Gtk 'default' Colore per il testo di conversazione
col_chat_time colore Colore Curses o Gtk 'default' Colore per l'ora nella finestra di conversazione
col_chat_time_sep colore Colore Curses o Gtk 'brown' Colore per il separatore dell'ora (finestra di conversazione)
col_chat_prefix1 colore Colore Curses o Gtk 'lightcyan' Colore per il 1° e 3° carattere del prefisso
col_chat_prefix2 colore Colore Curses o Gtk 'white' Colore per il carattere di mezzo del prefisso
col_chat_server colore Colore Curses o Gtk 'brown' Colore per il nome del server
col_chat_join colore Colore Curses o Gtk 'lightgreen' Colore per la freccia di join (prefisso)
col_chat_part colore Colore Curses o Gtk 'lightred' Colore per la freccia di part/quit (prefisso)
col_chat_nick colore Colore Curses o Gtk 'lightcyan' Colore per i nick in azione (finestra di conversazione)
col_chat_host colore Colore Curses o Gtk 'cyan' Colore per gli hostname (finestra di conversazione)
col_chat_channel colore Colore Curses o Gtk 'white' Colore per i nomi del canale in azione (finestra di conversazione)
col_chat_dark colore Colore Curses o Gtk 'green' Colore per i separatori scuri (finestra di conversazione)
col_chat_highlight colore Colore Curses o Gtk 'yellow' Colore per il nick evidenziato (finestra di conversazione)
col_chat_bg colore Colore Curses o Gtk 'default' Sfondo per la finestra di conversazione
col_chat_read_marker colore Colore Curses o Gtk 'yellow' Colore per il marker dei dati non letti
col_chat_read_marker_bg colore Colore Curses o Gtk 'magenta' Sfondo per il marker dei dati non letti
col_status colore Colore Curses o Gtk 'default' Colore per la barra di stato
col_status_delimiters colore Colore Curses o Gtk 'cyan' Colore per i delimitatori della barra di stato
col_status_channel colore Colore Curses o Gtk 'white' Colore per il canale corrente nella barra di stato
col_status_data_msg colore Colore Curses o Gtk 'yellow' Colore per la finestra con nuovi messaggi (barra di stato)
col_status_private colore Colore Curses o Gtk 'lightmagenta' Colore per la finestra con messaggi privati (barra di stato)
col_status_highlight colore Colore Curses o Gtk 'lightred' Colore per la finestra con evidenziamento (barra di stato)
col_status_data_other colore Colore Curses o Gtk 'default' Colore per la finestra con nuovi dati (non messaggi) (barra di stato)
col_status_more colore Colore Curses o Gtk 'white' Colore per la finestra con nuovi dati (barra di stato)
col_status_bg colore Colore Curses o Gtk 'blue' Sfondo per la finestra di stato
col_infobar colore Colore Curses o Gtk 'black' Colore per il testo della infobar
col_infobar_delimiters colore Colore Curses o Gtk 'blue' Colore per i delimitatori della infobar
col_infobar_highlight colore Colore Curses o Gtk 'white' Colore per le notifiche in evidenza della infobar
col_infobar_bg colore Colore Curses o Gtk 'cyan' Sfondo per la finestra dell'infobar
col_input colore Colore Curses o Gtk 'default' Colore per il testo in ingresso
col_input_server colore Colore Curses o Gtk 'brown' Colore per il testo in ingresso (nome del server)
col_input_channel colore Colore Curses o Gtk 'white' Colore per il testo in ingresso (nome del canale)
col_input_nick colore Colore Curses o Gtk 'lightcyan' Colore per il testo in ingresso (nome del nick)
col_input_delimiters colore Colore Curses o Gtk 'cyan' Colore per il testo in ingresso (delimitatori)
col_input_text_not_found colore Colore Curses o Gtk 'red' Colore per il testo non trovato
col_input_actions colore Colore Curses o Gtk 'lightgreen' Colore per le azioni nella finestra di ingresso
col_input_bg colore Colore Curses o Gtk 'default' Sfondo per la finestra di ingresso
col_nick colore Colore Curses o Gtk 'default' Colore per i nickname
col_nick_away colore Colore Curses o Gtk 'cyan' Colore per i nickname away
col_nick_chanowner colore Colore Curses o Gtk 'lightgreen' Colore per il simbolo del proprietario del canale (specifico per unrealircd)
col_nick_chanadmin colore Colore Curses o Gtk 'lightgreen' Colore per il simbolo dell'amministratore del canale (specifico per unrealircd)
col_nick_op colore Colore Curses o Gtk 'lightgreen' Colore per il simbolo dell'operatore
col_nick_halfop colore Colore Curses o Gtk 'lightmagenta' Colore per il simbolo degli half-operatori
col_nick_voice colore Colore Curses o Gtk 'yellow' Colore per il simbolo voice
col_nick_user colore Colore Curses o Gtk 'blue' Colore per il simbolo dell'utente
col_nick_more colore Colore Curses o Gtk 'lightmagenta' Colore per il '+' durante lo scorrimento dei nick
col_nick_sep colore Colore Curses o Gtk 'blue' Colore per il separatore del nick
col_nick_self colore Colore Curses o Gtk 'white' Colore per il nick locale
col_nick_color1 colore Colore Curses o Gtk 'cyan' Colore per il nick
col_nick_color2 colore Colore Curses o Gtk 'magenta' Colore per il nick
col_nick_color3 colore Colore Curses o Gtk 'green' Colore per il nick
col_nick_color4 colore Colore Curses o Gtk 'brown' Colore per il nick
col_nick_color5 colore Colore Curses o Gtk 'lightblue' Colore per il nick
col_nick_color6 colore Colore Curses o Gtk 'default' Colore per il nick
col_nick_color7 colore Colore Curses o Gtk 'lightcyan' Colore per il nick
col_nick_color8 colore Colore Curses o Gtk 'lightmagenta' Colore per il nick
col_nick_color9 colore Colore Curses o Gtk 'lightgreen' Colore per il nick
col_nick_color10 colore Colore Curses o Gtk 'blue' Colore per il nick
col_nick_private colore Colore Curses o Gtk 'default' Colore per l'altro nick nella finestra privata
col_nick_bg colore Colore Curses o Gtk 'default' Sfondo per i nickname
col_chat_dcc_selected colore Colore Curses o Gtk 'white' Colore per la DCC selezionata (finestra di conversazione
col_dcc_waiting colore Colore Curses o Gtk 'lightcyan' Colore per lo stato "waiting" della dcc
col_dcc_connecting colore Colore Curses o Gtk 'yellow' Colore per lo stato "connecting" della dcc
col_dcc_active colore Colore Curses o Gtk 'lightblue' Colore per lo stato "active" della dcc
col_dcc_done colore Colore Curses o Gtk 'lightgreen' Colore per lo stato "done" della dcc
col_dcc_failed colore Colore Curses o Gtk 'lightred' Colore per lo stato "failed" della dcc
col_dcc_aborted colore Colore Curses o Gtk 'lightred' Colore per lo stato "aborted" della dcc
history_max_lines intero tra 0 e 2147483647 4096 Numero massimo di linee nella history per una finestra del server/canale/privato (0 = illimitato)
history_max_commands intero tra 0 e 2147483647 100 Numero massimo di comandi utente nell'history (0 = illimitato)
history_display_default intero tra 0 e 2147483647 5 Numero massimo di comandi da visualizzare di default nell'elenco dell'history (0 = illimitato)
log_auto_server booleano 'on' o 'off' 'off' Logga automaticamente i messaggi del server
log_auto_channel booleano 'on' o 'off' 'off' Logga automaticamente le conversazioni in canale
log_auto_private booleano 'on' o 'off' 'off' Logga automaticamente le conversazioni private
log_plugin_msg booleano 'on' o 'off' 'off' Logga i messaggi dai plugin (script)
log_path stringa qualsiasi string '%h/logs/' Percorso per i file di log di WeeChat ('&h' sarà rimpiazzato dall'home di WeeChat, ~/.weechat di default)
log_timestamp stringa qualsiasi stringa '%Y %b %d %H:%M:%S' Timestamp per il log (vedi il manuale di strftime per i specificatori di data/ora)
log_hide_nickserv_pwd booleano 'on' o 'off' 'on' Nasconde la password visualizzata dal nickserv
irc_display_away stringa 'off', 'local', 'channel' 'off' Visualizza un messaggio quando si (dis)attiva l'away
irc_show_away_once booleano 'on' o 'off' 'on' Mostra un messaggio di away remoto solo una volta in privato
irc_default_msg_part stringa qualsiasi stringa 'WeeChat %v' Messaggio di part di default (uscendo dal canale) ('%v' sarè rimpiazzato dalla versione di WeeChat nella stringa)
irc_default_msg_quit stringa qualsiasi stringa 'WeeChat %v' Messaggio di quit di default ('%v' sarà rimpiazzato dalla versione di WeeChat nella stringa)
irc_notice_as_pv booleano 'on' o 'off' 'off' Visualizza i notice come messaggi privati
irc_away_check intero tra 0 e 2147483647 0 Intervallo fra due controlli per l'away (in minuti, 0 = non controlla mai)
irc_away_check_max_nicks intero tra 0 e 2147483647 0 Non controlla i nick away nei canali con un alto numero di nick (0 = illimitato)
irc_lag_check intero tra 30 e 2147483647 60 Intervallo tra due controlli per il lag (in secondi)
irc_lag_min_show intero tra 0 e 2147483647 1 Lag minimo da mostrare (in secondi)
irc_lag_disconnect intero tra 0 e 2147483647 5 Disconnette dopo un lag importante (in minuti, 0 = non disconnette mai)
irc_anti_flood intero tra 0 e 5 2 Anti-flood: # secondi tra due messaggi utente (0 = nessun anti-flood)
irc_fifo_pipe booleano 'on' o 'off' 'off' Crea un Pipe FIFO per il controllo remoto
irc_highlight stringa qualsiasi string '' Lista di parole da evidenziare separate da virgole (confronto case insensitive, le parole possono cominciare o finire con "*" per l'abbinamento parziale)
irc_colors_receive booleano 'on' o 'off' 'on' Quando è off, i codici dei colori nei messaggi in ingresso sono ignorati
irc_colors_send booleano 'on' o 'off' 'on' Consente all'utente di inviare colori con codici speciali (^Cb=grassetto, ^Ccxx=colore, ^Ccxx,yy=colore+sfondo, ^Cu=sottolineato, ^Cr=inverso)
irc_send_unknown_commands booleano 'on' o 'off' 'off' Invia comandi sconosciuti al server IRC
dcc_auto_accept_files booleano 'on' o 'off' 'off' Accetta automaticamente file dcc in entrata
dcc_auto_accept_chats booleano 'on' o 'off' 'off' Accetta automaticamente conversazioni dcc in entrata (usare con prudenza!)
dcc_timeout intero tra 5 e 2147483647 300 Timeout per le richieste dcc (in secondi)
dcc_blocksize intero tra 1024 e 102400 65536 Blocco di dimensione per i pacchetti dcc in byte (default: 65535)
dcc_fast_send booleano 'on' o 'off' 'on' Non attende per l'ACK quando stà inviando un file
dcc_port_range stringa qualsiasi stringa '' Limita le dcc in uscita ad usare solo le porte nel rango specificato (utile per il NAT) (sintassi: una singola porta, es. 5000 o un rango di porte, es. 5000-5015, un valori vuoto significa ogni porta)
dcc_own_ip stringa qualsiasi stringa '' Indirizzo IP o DNS usato per le dcc in uscita (se vuoto, è usato l'IP dell'interfaccia locale)
dcc_download_path stringa qualsiasi stringa '%h/dcc' Percorso sul quale scrivere i file in ingresso dalle dcc (default: home dell'utente)
dcc_upload_path stringa qualsiasi stringa '~' Percorso dal quale leggere i file da inviare tramite dcc (quando il percorso non è specificato)
dcc_convert_spaces booleano 'on' o 'off' 'on' Converte gli spazi in underscore quando invia file
dcc_auto_rename booleano 'on' o 'off' 'on' Rinomina i messaggi in ingresso se già esistono (aggiunge '.1', '.2', ...)
dcc_auto_resume booleano 'on' o 'off' 'on' Fa il resume automaticamente il trasferimento dcc se la connessione con l'host remoto viene persa
proxy_use booleano 'on' o 'off' 'off' Usa un server proxy per connettersi al server irc
proxy_type stringa 'http', 'socks4', 'socks5' 'http' Tipo di proxy (http (default), socks4, socks5)
proxy_ipv6 booleano 'on' o 'off' 'off' Connette al proxy via ipv6
proxy_address stringa qualsiasi stringa '' Indirizzo del server proxy (IP o hostname)
proxy_port intero tra 0 e 65535 3128 Porta per la connessione al server proxy
proxy_username stringa qualsiasi stringa '' Nome utente per il server proxy
proxy_password stringa qualsiasi stringa '' Password per il server proxy
plugins_path stringa qualsiasi stringa '%h/plugins' Percorso per cercare i plugin ('%h' sarà rimpiazzato con l'home di WeeChat, ~/.weechat di default)
plugins_autoload stringa qualsiasi stringa '*' Lista separata di plugin da caricare automaticamente all'avvio separata da virgole, "*" significa tutti i plugin trovati (i nomi possono essere parziali, per esempio "perl" va bene per "libperl.so")
plugins_extension stringa qualsiasi stringa '.so' Le estensioni per i plugin standard nei nomi dei file, usati per l'autoload (se vuota, tutti i file vengono caricati quando autoload è "*")
server_name stringa qualsiasi string '' nome associato al server IRC (solo per visualizzazione)
server_autoconnect booleano 'on' o 'off' 'on' Connette automaticamente al server quando WeeChat parte
server_autoreconnect booleano 'on' o 'off' 'on' Riconnette automaticamente quando disconnesso dal server
server_autoreconnect_delay intero tra 0 e 65535 30 Intervallo (in secondi) prima di provare a riconnettersi al server
server_address stringa qualsiasi stringa '' Indirizzo IP o hostname del server IRC
server_port intero tra 0 e 65535 6667 Porta per la connessione al server
server_ipv6 booleano 'on' o 'off' 'off' Usa il protocollo IPv6 per la comunicazione col server
server_ssl booleano 'on' o 'off' 'off' Usa SSL per la comunicazione col server
server_password stringa qualsiasi stringa '' Password per il server IRC
server_nick1 stringa qualsiasi stringa '' Nickname da usare sul server IRC
server_nick2 stringa qualsiasi stringa '' Nickname alternativo da usare sul server IRC (se il nickname è in uso)
server_nick3 stringa qualsiasi stringa '' Secondo nickname alternativo da usare sul server IRC (se il nickname alternativo è già usato)
server_username stringa qualsiasi stringa '' Nome utente da usare sul server IRC
server_realname stringa qualsiasi stringa '' Nome reale da usare nel server IRC
server_hostname stringa qualsiasi stringa '' IP/hostname personale per il server (opzionale, se vuoto è usato l'hostname locale)
server_command stringa qualsiasi stringa '' Comando/i da eseguire quando connesso al server (molti comandi dovrebbero essere separati da ';', usare '\;' per un punto e virgola, le variabili speciali $nick, $channel e $server sono rimpiazzate dai loro valori)
server_command_delay intero tra 0 e 3600 0 Intervallo (in secondi) dopo il quale il comando sarà eseguito (esempio: attende un po' per l'autenticazione)
server_autojoin stringa qualsiasi stringa '' Lista di canali su cui entrare quando connesso al server separata da virgole (esempio: "#canale1,#canale2,#canale3 chiave1,chiave2")
server_autorejoin booleano 'on' o 'off' 'on' Rientra automaticamente nei canali quando kickato
server_notify_levels stringa qualsiasi stringa '' Lista di livelli di notifica per i canali di questo server separata da virgole (formato; #canale;1,..), il nome del canale '*' è riservato per il livello di notifica di default del server

I colori per la GUI Curses sono:

Parola chiave Colore
default colore di default (trasparente per lo sfondo)
black nero
red rosso scuro
lightred rosso chiaro
green verde scuro
lightgreen verde chiaro
brown marrone
yellow giallo
blue blu scuro
lightblue blu chiaro
magenta magenta scuro
lightmagenta magenta chiaro
cyan azzurro scuro
lightcyan azzurro chiaro
white bianco

Pipe FIFO

Puoi controllare WeeChat da remoto, inviando comandi o testo al Pipe FIFO (devi avere l'opzione "irc_fifo_pipe" abilitata, è disabilitata di default).

Il Pipe FIFO è situato in "~/.weechat/" ed è chiamato "weechat_fifo_xxxxx" (dove xxxxx è l'ID del processo (PID) del WeeChat in esecuzione). Così se più WeeChat sono in esecuzione, puoi avere molti pipe FIFO, uno per ogni sessione.

La sintassi per i/il comandi/testo del Pipe FIFO è:

server,canale *testo o comando qui

dove server e canale sono opzionali, ma se si specifica il canale, si dovrebbe specificare anche il server.

Qualche esempio:

  • cambia il nick in "mionick|out" su freenode:

    $ echo 'freenode */nick mionick|out' >~/.weechat/weechat_fifo_12345

  • visualizza del testo sul canale #weechat:

    $ echo 'freenode,#weechat *ciao a tutti!' >~/.weechat/weechat_fifo_12345

  • visualizza del testo sul canale corrente (il buffer visualizzato da WeeChat):

    $ echo '*ciao!' >~/.weechat/weechat_fifo_12345

    Attenzione: questo è pericoloso e non dovresti farlo eccetto se non sai cosa fai!

  • invia due comandi per caricare/scaricare script Perl (devi separarli con "\n"):

    $ echo -e "freenode */perl unload\nfreenode */perl autoload" >~/.weechat/weechat_fifo_12345

Puoi scrivere uno script per inviare un comando a tutti i WeeChat in esecuzione allo stesso tempo, per esempio:

#!/bin/sh
if [ $# -eq 1 ]; then
    for fifo in ~/.weechat/weechat_fifo_*
    do
        echo -e "$1" >$fifo
    done
fi

Se lo script è chiamato "auto_weechat_command", puoi eseguirlo con:

$ ./auto_weechat_command "freenode,#weechat *ciao"

Capitolo 4. Plugin

Questo capitolo descrive l'interfaccia per i plugin di WeeChat (API) e i plugin script di default (Perl, Python, Ruby, Lua), forniti con WeeChat.

Plugin in WeeChat

Un plugin è un programma C che può chiamare funzioni di WeeChat definite in un'interfaccia.

Questo programma C non richiede i sorgenti di WeeChat per compilare e può essere caricato dinamicamente su WeeChat con il comando /plugin.

Il plugin dev'essere una libreria dinamica, per il caricamento dinamico dal sistema operativo. Sotto GNU/Linux, il file ha l'estensione ".so", ".dll" sotto Windows.

Scrivere plugin

Il plugin deve includere il file "weechat-plugin.h" (disponibile nel codice sorgente di WeeChat). Questo file definisce le strutture e i tipi usati per comunicare con WeeChat.

Il plugin deve avere alcune variabili e funzioni (obbligatorie, senza di queste il plugin non può essere caricato):

Variabile Descrizione
char plugin_name[] nome del plugin
char plugin_version[] versione del plugin
char plugin_description[] breve descrizione del plugin

Funzione Descrizione
int weechat_plugin_init (t_weechat_plugin *plugin) funzione chiamata quando il plugin viene caricato, deve ritornare PLUGIN_RC_OK in caso di successo, PLUGIN_RC_KO in caso di errore (in cui il plugin NON verrà caricato)
void weechat_plugin_end (t_weechat_plugin *plugin) funzione chiamata quando il plugin viene scaricato

Funzioni API

set_charset

Prototipo: void set_charset (t_weechat_plugin *plugin, char *charset)

Imposta un nuovo set di caratteri per il plugin.

Argomenti:

  • plugin: puntatore alla struttura del plugin

  • charset: nuovo set di caratteri da usare

Esempio:

plugin->set_charset (plugin, "ISO-8859-1");

iconv_to_internal

Prototipo: void iconv_to_internal (t_weechat_plugin *plugin, char *charset, char *string)

Convert string to WeeChat internal charset (UTF-8). Converte una stringa nel set di caratteri interno di WeeChat (UTF-8).

Argomenti:

  • plugin: puntatore alla struttura del plugin

  • charset: set di caratteri da convertire

  • string: stringa da convertire

Valore di ritorno: la stringa convertita.

Nota: il risultato dev'essere liberato da una chiamata a "free" dopo l'uso.

Esempio:

char *str = plugin->iconv_to_internal (plugin, "ISO-8859-1", "iso string: é ŕ");

iconv_from_internal

Prototipo: void iconv_from_internal (t_weechat_plugin *plugin, char *charset, char *string)

Converte una stringa dal set di caratteri interno a WeeChat (UTF-8) in un altro.

Argomenti:

  • plugin: puntatore alla struttura del plugin.

  • charset: set di caratteri target

  • string: stringa da convertire

Valore di ritorno: la stringa convertita.

Nota: il risultato dev'essere liberato da una chiamata a "free" dopo l'uso.

Esempio:

char *str = plugin->iconv_from_internal (plugin, "ISO-8859-1", "utf-8 string: é ŕ");

ascii_strcasecmp

Prototipo: int ascii_strcasecmp (t_weechat_plugin *plugin, char *string1, char *string2)

Confronto fra stringhe locale e case independent

Argomenti:

  • plugin: puntatore alla struttura del plugin

  • string1: prima stringa per il confronto

  • string2: seconda stringa per il confronto

Valore di ritorno: differenza fra le due stringhe: negativo se string1 < string2, zero se string1 == string2, positivo se string1 > string2

Esempio:

if (plugin->ascii_strcasecmp (plugin, "abc", "def") != 0) ...

ascii_strncasecmp

Prototipo: int ascii_strncasecmp (t_weechat_plugin *plugin, char *string1, char *string2, int max)

Confronto fra stringhe locale e case independent, per numero "massimo" di caratteri

Argomenti:

  • plugin: puntatore alla struttura del plugin

  • string1: prima stringa per il confronto

  • string2: seconda stringa per il confronto

  • max: numero massimo di caratteri per il confronto

Valore di ritorno: differenza fra due stringhe: negativo se string1 < string2, zero se string1 == string2, positivo se string1 > string2

Esempio:

if (plugin->ascii_strncasecmp (plugin, "abc", "def", 2) != 0) ...

explode_string

Prototipo: char **explode_string (t_weechat_plugin *plugin, char *string, char *separators, int num_items_max, int *num_items)

Esplode una stringa in base a uno o più delimitatori.

Argomenti:

  • plugin: puntatore alla struttura plugin

  • string: stringa da esplodere

  • separators: delimitatori usati per l'esplosione

  • num_items_max: numero massimo di elementi creati (0 = nessun limite)

  • num_items: puntatore a int che conterrà il numero di elementi creati

Valore di ritorno: vettore di stringhe, NULL in caso di problemi.

Nota: il risultato dev'essere liberato con una chiamata a "free_exploded_string" dopo l'uso.

Esempio:

char **argv;
int argc;
argv = plugin->explode_string (plugin, string, " ", 0, &argc);
...
if (argv != NULL)
    plugin->free_exploded_string (plugin, argv);

free_exploded_string

Prototipo: char **free_exploded_string (t_weechat_plugin *plugin, char **string)

Libera la memoria usata dall'esplosione di una stringa.

Argomenti:

  • plugin: puntatore alla struttura plugin

  • string: stringa esplosa dalla funzione "explode_string"

Valore di ritorno: nessuno.

Esempio:

char *argv;
int argc;
argv = plugin->explode_string (plugin, string, " ", 0, &argc);
...
if (argv != NULL)
    plugin->free_exploded_string (plugin, argv);

mkdir_home

Prototipo: int mkdir_home (t_weechat_plugin *plugin, char *directory)

Crea una directory nell'home di WeeChat.

Argomenti:

  • plugin: puntatore alla struttura plugin

  • directory: directory da creare

Valore di ritorno: 1 se la directory è stata creata con successo, 0 se si è verificato un errore.

Esempio:

if (!plugin->mkdir_home (plugin, "temp"))
    plugin->print_server(plugin, "Failed to create 'temp' directory in WeeChat home.");

exec_on_files

Prototipo: void exec_on_files (t_weechat_plugin *plugin, char *directory, int (*callback)(t_weechat_plugin *, char *))

Esegue una funzione su tutti i file di una directory.

Argomenti:

  • plugin: puntatore alla struttura plugin

  • directory: directory per la ricerca dei file

  • callback: funzione chiamata per ogni file trovato

Valore di ritorno: nessuno.

Esempio:

int callback (t_weechat_plugin *plugin, char *file)
{
    plugin->print_server (plugin, "file: %s", file);
    return 1;
}
...
plugin->exec_on_files (plugin, "/tmp", &callback);

print

Prototipo: void print (t_weechat_plugin *plugin, char *server, char *channel, char *message, ...)

Visualizza un messaggio nel buffer di WeeChat, identificato dal server e dal canale (entrambi possono essere NULL per il buffer corrente).

Argomenti:

  • plugin: puntatore alla struttura plugin

  • server: nome interno del server su cui trovare il buffer per la visualizzazione del messaggio (può essere NULL)

  • channel: nome del canale su cui trovare il buffer per la visualizzazione del messaggio (può essere NULL)

  • message: messaggio

Per visualizzare testo colorato, ci sono i seguenti codici:

Codice Descrizione
0x02 testo in grassetto
0x03 + "xx" testo di colore "xx" (vedi la sezione “get_irc_color” per i colori)
0x03 + "xx,yy" testo di colore "xx" e sfondo "yy" (vedi la sezione “get_irc_color” per i colori)
0x0F disabilita colori e attributi
0x12 inverte il video (inverte il colore del testo con lo sfondo)
0x1F testo sottolineato

Nota: lo stesso codice (senza numero per 0x03) può essere usato per fermare l'attributo.

Valore di ritorno: nessuno.

Esempi:

plugin->print (plugin, NULL, NULL, "ciao");
plugin->print (plugin, NULL, "#weechat", "ciao");
plugin->print (plugin, "freenode", "#weechat", "ciao");
plugin->print (plugin, NULL, NULL,
               "prova: \x02 grassetto \x0F\x03%02d blu \x03%02d verde",
               plugin->get_irc_color (plugin, "blue"),
               plugin->get_irc_color (plugin, "green"));

print_server

Prototipo: void print_server (t_weechat_plugin *plugin, char *message, ...)

Visualizza un messaggio nel buffer del server corrente.

Argomenti:

  • plugin: puntatore alla struttura plugin

  • message: messaggio

Per visualizzare testo colorato, vedi la sezione “print”.

Valore di ritorno: nessuno.

Esempio:

plugin->print_server (plugin, "ciao");

print_infobar

Prototipo: void print_infobar (t_weechat_plugin *plugin, int time, char *message, ...)

Visualizza un messaggio nell'infobar per un tempo specifico.

Argomenti:

  • plugin: puntatore alla struttura plugin

  • time: tempo (in secondi) per la visualizzazione del messagio (0 = non viene mai cancellato)

Valore di ritorno: nessuno.

Esempio:

plugin->print_infobar (plugin, 5, "ciao");

infobar_remove

Prototipo: void infobar_remove (t_weechat_plugin *plugin, int count)

Rimuove uno o più messaggi nella pila dell'infobar.

Argomenti:

  • plugin: puntatore alla struttura plugin

  • count: numero di messaggi da rimuovere (se l'argomento è <= 0, tutti i messaggi vengono rimossi)

Valore di ritorno: nessuno.

Esempio:

plugin->infobar_remove (1);

log

Prototipo: void log (t_weechat_plugin *plugin, char *server, char *channel, char *me