weechat/doc/weechat_doc_en.texi
2005-09-25 07:49:09 +00:00

1916 lines
54 KiB
Plaintext

\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename weechat_doc_en.info
@settitle WeeChat - fast, light and extensible IRC client
@c %**end of header
@c WeeChat documentation (english version)
@c
@c Copyright (c) 2005 by FlashCode <flashcode@flashtux.org>
@c
@c This manual is free software; you can redistribute it and/or modify
@c it under the terms of the GNU General Public License as published by
@c the Free Software Foundation; either version 2 of the License, or
@c (at your option) any later version.
@c
@c This manual is distributed in the hope that it will be useful,
@c but WITHOUT ANY WARRANTY; without even the implied warranty of
@c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@c GNU General Public License for more details.
@c
@c You should have received a copy of the GNU General Public License
@c along with this program; if not, write to the Free Software
@c Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@c pdf : texi2pdf weechat_doc_en.texi
@c html: makeinfo --html --no-split --number-sections weechat_doc_en.texi
@c tex
@c \overfullrule=0pt
@c end tex
@documentlanguage en
@titlepage
@title WeeChat - User guide
@subtitle Fast, light and extensible IRC client
@subtitle Documentation for WeeChat v0.1.5 - September, 24 2005
@author FlashCode <@email{flashcode@@flashtux.org, flashcode AT flashtux.org}>
@page
This manual documents WeeChat IRC client, it is part of WeeChat.@*
@*
Latest version of this document can be found on this page:@*
@uref{http://weechat.flashtux.org/doc.php}@*
@*
Copyright @copyright{} 2005 FlashCode
<@email{flashcode@@flashtux.org, flashcode AT flashtux.org}>@*
@*
This document may be used under the terms the GNU General Public License
version 2 or higher.
@end titlepage
@everyheading @thischapter @| @|
@everyfooting @thistitle @| @| Page @thispage
@contents
@node Top, Introduction, (dir), (dir)
@menu
* Introduction:: What is WeeChat ?
* Installation:: WeeChat installation
* Usage:: WeeChat usage
* Extensions:: WeeChat extensions
* Authors / Support:: Contact authors and get support
@end menu
@c ******************************* Introduction *******************************
@node Introduction, Installation, Top, Top
@chapter Introduction
@menu
* Description::
* Pre-requisites::
@end menu
@node Description, Pre-requisites, Introduction, Introduction
@section Description
WeeChat (Wee Enhanced Environment for Chat) is a free IRC client, fast and light,
designed for many operating systems.@*
@*
Main features are:
@itemize @minus
@item
multi-servers connection (with SSL, IPv6, proxy)
@item
many GUI: Curses, wxWidgets, Gtk and Qt
@item
small, fast and light
@item
customizable and extensible with scripts
@item
compliant with RFCs 1459, 2810, 2811, 2812, and 2813
@item
multi-platform (Gnu/Linux, *BSD, MacOS X, Windows and other)
@item
100% GPL, free software
@end itemize
@*
WeeChat homepage is here:@*
@uref{http://weechat.flashtux.org}@*
@node Pre-requisites, , Description, Introduction
@section Pre-requisites
In order to install WeeChat, you @b{need}:@*
@itemize @bullet
@item
A running Gnu/Linux system (with compiler tools for source package)
@item
"root" privileges (to install WeeChat)
@item
According to GUI, one of the following libraries:
@itemize @minus
@item
Curses: ncurses library,
@item
Gtk: *** GUI not developed ***,
@item
Qt: *** GUI not developed ***,
@end itemize
@end itemize
@c ******************************* Installation *******************************
@node Installation, Usage, Introduction, Top
@chapter Installation
@menu
* Binary package::
* Source package::
* CVS sources::
@end menu
@node Binary package, Source package, Installation, Installation
@section Binary package
Binary packages are available for these distributions:
@itemize @bullet
@item
Debian (or any Debian compatible distribution)@*
To install: @kbd{apt-get install weechat-curses}
@item
Mandriva/Redhat (or any RPM compatible distribution)@*
To install: @kbd{rpm -i /path/weechat-x.y.z-1.i386.rpm}
@item
Gentoo@*
To install: @kbd{emerge weechat}
@item
*BSD (not available!)
@item
Slackware (not available!)
@item
Windows (not available!)
@end itemize
where x.y.z is the version (for example 0.0.1)
@*
@node Source package, CVS sources, Binary package, Installation
@section Source package
All you have to do is to run in a console or a terminal:@*
@kbd{./configure}@*
@kbd{make}@*
Nota: to build only some interfaces, you can give parameters
to ./configure, type @kbd{./configure --help} for help about options.@*
Then get root privileges and install WeeChat:@*
@kbd{su}@*
(enter root password)@*
@kbd{make install}@*
@node CVS sources, , Source package, Installation
@section CVS sources
Warning: CVS sources are for advanced users: it may not compile or not be stable.
You're warned!@*
To get CVS sources, issue these commands:@*
@kbd{cvs -d:pserver:anoncvs@@subversions.gnu.org:/cvsroot/weechat login}@*
@kbd{cvs -z3 -d:pserver:anoncvs@@subversions.gnu.org:/cvsroot/weechat co weechat}@*
(when prompted for a password, just press Enter key)@*
Execute this script:@*
@kbd{./autogen.sh}@*
Then follow instructions for source package - @xref{Source package}.
@c ********************************** Usage ***********************************
@node Usage, Extensions, Installation, Top
@chapter Usage
@menu
* Run WeeChat::
* Config file::
* Key bindings::
* WeeChat commands::
* FIFO pipe::
@end menu
@node Run WeeChat, Config file, Usage, Usage
@section Run WeeChat
@subsection Command line parameters
@table @code
@item -c, --config
Display config file help (list of options)@*
@item -f, --key-functions
Display WeeChat internal functions for keys@*
@item -h, --help
Display help screen@*
@item -i, --irc-commands
Display IRC commands list@*
@item -l, --license
Display WeeChat license@*
@item -v, --version
Display WeeChat version@*
@item -w, --weechat-commands
Display WeeChat commands list@*
@end table
@subsection Run WeeChat
Just issue this command to run WeeChat:@*
@kbd{weechat-curses} (for Curses front-end)@*
or @kbd{weechat-wxwidgets} (for wxWidgets front-end)@*
or @kbd{weechat-gtk} (for Gtk front-end)@*
or @kbd{weechat-qt} (for Qt front-end)@*
When you run WeeChat for the first time, a default configuration file is
created, with default options.@*
The default configuration file is: ~/.weechat/weechat.rc@*
You can edit this file at your convenience to configure WeeChat, or you can
set parameters with @kbd{/set} command in WeeChat - @xref{WeeChat commands}.
@node Config file, Key bindings, Run WeeChat, Usage
@section Config file
List of options for config file:@*
@table @kbd
@item look_set_title
Set title for window (terminal for Curses GUI) with name & version@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_startup_logo
Display WeeChat logo at startup@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_startup_version
Display WeeChat version at startup@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_weechat_slogan
WeeChat slogan (if empty, slogan is not used)@*
Type: string (any string), default value: 'the geekest IRC client!'@*
@item look_charset_decode
Charset for decoding messages from server, examples: UTF-8, ISO-8859-1 (if empty, messages are not converted)@*
Type: string (any string), default value: 'UTF-8'@*
@item look_charset_encode
Charset for encoding messages sent to server, examples: UFT-8, ISO-8859-1 (if empty, local charset is used)@*
Type: string (any string), default value: ''@*
@item look_charset_internal
Internal WeeChat charset, should be ISO-xxxx even if locale is UTF-8 (if empty, local charset is used)@*
Type: string (any string), default value: 'ISO-8859-1'@*
@item look_buffer_timestamp
Timestamp for buffers@*
Type: string (any string), default value: '[%H:%M:%S]'@*
@item look_color_nicks
Display nick names with different colors@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_color_nicks_number
Number of colors to use for nicks colors@*
Type: integer (values: between 1 and 10), default value: 10@*
@item look_color_actions
Display actions with different colors@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_remove_colors_from_msgs
Remove colors from incoming messages@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_nicklist
Display nicklist window (for channel windows)@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_nicklist_position
Nicklist position (top, left, right (default), bottom)@*
Type: string (values: 'left', 'right', 'top', 'bottom'), default value: 'right'@*
@item look_nicklist_min_size
Min size for nicklist (width or height, depending on look_nicklist_position (0 = no min size))@*
Type: integer (values: between 0 and 100), default value: 0@*
@item look_nicklist_max_size
Max size for nicklist (width or height, depending on look_nicklist_position (0 = no max size; if min == max and > 0, then size is fixed))@*
Type: integer (values: between 0 and 100), default value: 0@*
@item look_no_nickname
Text to display instead of nick when not connected@*
Type: string (any string), default value: '-cmd-'@*
@item look_nickmode
Display nick mode ((half)op/voice) before each nick@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_nickmode_empty
Display space if nick mode is not (half)op/voice@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item look_nick_completor
The string inserted after nick completion@*
Type: string (any string), default value: ':'@*
@item look_infobar
Enable info bar@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_infobar_timestamp
Timestamp for time in infobar@*
Type: string (any string), default value: '%B, %A %d %Y'@*
@item look_infobar_seconds
Display seconds in infobar time@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_infobar_delay_highlight
Delay (in seconds) for highlight messages in infobar (0 = disable highlight notifications in infobar)@*
Type: integer (values: between 0 and 2147483647), default value: 7@*
@item col_title
Color for title bar@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_title_bg
Background for title bar@*
Type: color (Curses or Gtk color), default value: 'blue'@*
@item col_chat
Color for chat text@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_chat_time
Color for time in chat window@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_chat_time_sep
Color for time separator (chat window)@*
Type: color (Curses or Gtk color), default value: 'brown'@*
@item col_chat_prefix1
Color for 1st and 3rd char of prefix@*
Type: color (Curses or Gtk color), default value: 'lightcyan'@*
@item col_chat_prefix2
Color for middle char of prefix@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_chat_join
Color for join arrow (prefix)@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_chat_part
Color for part/quit arrow (prefix)@*
Type: color (Curses or Gtk color), default value: 'lightred'@*
@item col_chat_nick
Color for nicks in actions (chat window)@*
Type: color (Curses or Gtk color), default value: 'lightcyan'@*
@item col_chat_host
Color for hostnames (chat window)@*
Type: color (Curses or Gtk color), default value: 'cyan'@*
@item col_chat_channel
Color for channel names in actions (chat window)@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_chat_dark
Color for dark separators (chat window)@*
Type: color (Curses or Gtk color), default value: 'green'@*
@item col_chat_highlight
Color for highlighted nick (chat window)@*
Type: color (Curses or Gtk color), default value: 'yellow'@*
@item col_chat_bg
Background for chat window@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_status
Color for status bar@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_status_delimiters
Color for status bar delimiters@*
Type: color (Curses or Gtk color), default value: 'cyan'@*
@item col_status_data_msg
Color for window with new messages (status bar)@*
Type: color (Curses or Gtk color), default value: 'yellow'@*
@item col_status_private
Color for window with private message (status bar)@*
Type: color (Curses or Gtk color), default value: 'lightmagenta'@*
@item col_status_highlight
Color for window with highlight (status bar)@*
Type: color (Curses or Gtk color), default value: 'lightred'@*
@item col_status_data_other
Color for window with new data (not messages) (status bar)@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_status_more
Color for window with new data (status bar)@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_status_bg
Background for status window@*
Type: color (Curses or Gtk color), default value: 'blue'@*
@item col_infobar
Color for info bar text@*
Type: color (Curses or Gtk color), default value: 'black'@*
@item col_infobar_delimiters
Color for infobar delimiters@*
Type: color (Curses or Gtk color), default value: 'blue'@*
@item col_infobar_highlight
Color for info bar highlight notification@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_infobar_bg
Background for info bar window@*
Type: color (Curses or Gtk color), default value: 'cyan'@*
@item col_input
Color for input text@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_input_channel
Color for input text (channel name)@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_input_nick
Color for input text (nick name)@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_input_bg
Background for input window@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_nick
Color for nicknames@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_nick_away
Color for away nicknames@*
Type: color (Curses or Gtk color), default value: 'cyan'@*
@item col_nick_chanowner
Color for chan owner symbol (specific to unrealircd)@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_nick_chanadmin
Color for chan admin symbol (specific to unrealircd)@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_nick_op
Color for operator symbol@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_nick_halfop
Color for half-operator symbol@*
Type: color (Curses or Gtk color), default value: 'lightmagenta'@*
@item col_nick_voice
Color for voice symbol@*
Type: color (Curses or Gtk color), default value: 'yellow'@*
@item col_nick_more
Color for '+' when scrolling nicks@*
Type: color (Curses or Gtk color), default value: 'lightmagenta'@*
@item col_nick_sep
Color for nick separator@*
Type: color (Curses or Gtk color), default value: 'blue'@*
@item col_nick_self
Color for local nick@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_nick_color1
Color for nick@*
Type: color (Curses or Gtk color), default value: 'cyan'@*
@item col_nick_color2
Color for nick@*
Type: color (Curses or Gtk color), default value: 'magenta'@*
@item col_nick_color3
Color for nick@*
Type: color (Curses or Gtk color), default value: 'green'@*
@item col_nick_color4
Color for nick@*
Type: color (Curses or Gtk color), default value: 'brown'@*
@item col_nick_color5
Color for nick@*
Type: color (Curses or Gtk color), default value: 'lightblue'@*
@item col_nick_color6
Color for nick@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_nick_color7
Color for nick@*
Type: color (Curses or Gtk color), default value: 'lightcyan'@*
@item col_nick_color8
Color for nick@*
Type: color (Curses or Gtk color), default value: 'lightmagenta'@*
@item col_nick_color9
Color for nick@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_nick_color10
Color for nick@*
Type: color (Curses or Gtk color), default value: 'blue'@*
@item col_nick_private
Color for other nick in private window@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_nick_bg
Background for nicknames@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_chat_dcc_selected
Color for selected DCC (chat window)@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_dcc_waiting
Color for "waiting" dcc status@*
Type: color (Curses or Gtk color), default value: 'lightcyan'@*
@item col_dcc_connecting
Color for "connecting" dcc status@*
Type: color (Curses or Gtk color), default value: 'yellow'@*
@item col_dcc_active
Color for "active" dcc status@*
Type: color (Curses or Gtk color), default value: 'lightblue'@*
@item col_dcc_done
Color for "done" dcc status@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_dcc_failed
Color for "failed" dcc status@*
Type: color (Curses or Gtk color), default value: 'lightred'@*
@item col_dcc_aborted
Color for "aborted" dcc status@*
Type: color (Curses or Gtk color), default value: 'lightred'@*
@item history_max_lines
Maximum number of lines in history for one server/channel/private window (0 = unlimited)@*
Type: integer (values: between 0 and 2147483647), default value: 4096@*
@item history_max_commands
Maximum number of user commands in history (0 = unlimited)@*
Type: integer (values: between 0 and 2147483647), default value: 100@*
@item log_auto_server
Automatically log server messages@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item log_auto_channel
Automatically log channel chats@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item log_auto_private
Automatically log private chats@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item log_plugin_msg
Log messages from plugins (scripts)@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item log_path
Path for WeeChat log files@*
Type: string (any string), default value: '~/.weechat/logs/'@*
@item log_timestamp
Timestamp for log (see man strftime for date/time specifiers)@*
Type: string (any string), default value: '%Y %b %d %H:%M:%S'@*
@item log_hide_nickserv_pwd
Hide password displayed by nickserv@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item irc_display_away
Display message to all channels when (un)marking as away@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item irc_default_msg_away
Default message when away@*
Type: string (any string), default value: 'away'@*
@item irc_default_msg_part
Default part message (leaving channel)@*
Type: string (any string), default value: 'WeeChat %v'@*
@item irc_default_msg_quit
Default quit message ('%v' will be replaced by WeeChat version in string)@*
Type: string (any string), default value: 'WeeChat %v'@*
@item irc_notice_as_pv
Display notices as private messages@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item irc_away_check
Interval between two checks for away (in minutes, 0 = never check)@*
Type: integer (values: between 0 and 2147483647), default value: 0@*
@item irc_lag_check
Interval between two checks for lag (in seconds)@*
Type: integer (values: between 30 and 2147483647), default value: 60@*
@item irc_lag_min_show
Minimum lag to show (in seconds)@*
Type: integer (values: between 0 and 2147483647), default value: 1@*
@item irc_lag_disconnect
Disconnect after important lag (in minutes, 0 = never disconnect)@*
Type: integer (values: between 0 and 2147483647), default value: 5@*
@item irc_fifo_pipe
Create a FIFO pipe for remote control@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item irc_highlight
Comma separated list of words to highlight (case insensitive comparison)@*
Type: string (any string), default value: ''@*
@item dcc_auto_accept_files
Automatically accept incoming dcc files@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item dcc_auto_accept_chats
Automatically accept dcc chats (use carefully!)@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item dcc_timeout
Timeout for dcc request (in seconds)@*
Type: integer (values: between 1 and 2147483647), default value: 300@*
@item dcc_blocksize
Block size for dcc packets in bytes (default: 65536)@*
Type: integer (values: between 1024 and 102400), default value: 65536@*
@item dcc_download_path
Path for writing incoming files with dcc (default: user home)@*
Type: string (any string), default value: '~'@*
@item dcc_upload_path
Path for reading files when sending thru dcc (when no path is specified)@*
Type: string (any string), default value: '~'@*
@item dcc_convert_spaces
Convert spaces to underscores when sending files@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item dcc_auto_rename
Rename incoming files if already exists (add '.1', '.2', ...)@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item dcc_auto_resume
Automatically resume dcc transfer if connection with remote host is loosed@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item proxy_use
Use a proxy server to connect to irc server@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item proxy_type
Proxy type (http (default), socks4, socks5)@*
Type: string (values: 'http', 'socks4', 'socks5'), default value: 'http'@*
@item proxy_ipv6
Connect to proxy in ipv6@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item proxy_address
Proxy server address (IP or hostname)@*
Type: string (any string), default value: ''@*
@item proxy_port
Port for connecting to proxy server@*
Type: integer (values: between 0 and 65535), default value: 3128@*
@item proxy_username
Username for proxy server@*
Type: string (any string), default value: ''@*
@item proxy_password
Password for proxy server@*
Type: string (any string), default value: ''@*
@item server_name
Name associated to IRC server (for display only)@*
Type: string (any string), default value: ''@*
@item server_autoconnect
Automatically connect to server when WeeChat is starting@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item server_autoreconnect
Automatically reconnect to server when disconnected@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item server_autoreconnect_delay
Delay (in seconds) before trying again to reconnect to server@*
Type: integer (values: between 0 and 65535), default value: 30@*
@item server_address
IP address or hostname of IRC server@*
Type: string (any string), default value: ''@*
@item server_port
Port for connecting to server@*
Type: integer (values: between 0 and 65535), default value: 6667@*
@item server_ipv6
Use IPv6 protocol for server communication@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item server_ssl
Use SSL for server communication@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item server_password
Password for IRC server@*
Type: string (any string), default value: ''@*
@item server_nick1
Nickname to use on IRC server@*
Type: string (any string), default value: ''@*
@item server_nick2
Alternate nickname to use on IRC server (if nickname is already used)@*
Type: string (any string), default value: ''@*
@item server_nick3
2nd alternate nickname to use on IRC server (if alternate nickname is already used)@*
Type: string (any string), default value: ''@*
@item server_username
User name to use on IRC server@*
Type: string (any string), default value: ''@*
@item server_realname
Real name to use on IRC server@*
Type: string (any string), default value: ''@*
@item server_command
First command to run when connected to server@*
Type: string (any string), default value: ''@*
@item server_command_delay
Delay (in seconds) after command was executed (example: give some time for authentication)@*
Type: integer (values: between 0 and 5), default value: 0@*
@item server_autojoin
Comma separated list of channels to join when connected to server (example: "#chan1,#chan2,#chan3 key1,key2")@*
Type: string (any string), default value: ''@*
@item server_autorejoin
Automatically rejoin channels when kicked@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item server_notify_levels
Comma separated list of notify levels for channels of this server (format: #channel:1,..)@*
Type: string (any string), default value: ''@*
@end table
Colors for Curses GUI are:@*
@itemize @minus
@item
@kbd{default}: default color (transparent for background)
@item
@kbd{black}: black
@item
@kbd{red}: dark red
@item
@kbd{lightred}: light red
@item
@kbd{green}: dark green
@item
@kbd{lightgreen}: light green
@item
@kbd{brown}: brown
@item
@kbd{yellow}: yellow
@item
@kbd{blue}: dark blue
@item
@kbd{lightblue}: light blue
@item
@kbd{magenta}: dark magenta
@item
@kbd{lightmagenta}: light magenta
@item
@kbd{cyan}: dark cyan
@item
@kbd{lightcyan}: light cyan
@item
@kbd{white}: white
@end itemize
@node Key bindings, WeeChat commands, Config file, Usage
@section Key bindings
@table @kbd
@item Left arrow / Right arrow
Go to previous / next char in command line@*
@*
@item Ctrl + left arrow / Ctrl + right arrow
Go to previous / next word in command line@*
@*
@item Home / Ctrl + A
Go to the beginning of command line@*
@*
@item End / Ctrl + E
Go to the end of command line@*
@*
@item Ctrl + K
Delete until end of line@*
@*
@item Ctrl + L
Redraw whole window@*
@*
@item Ctrl + U
Delete until beginning of line@*
@*
@item Ctrl + W
Erase previous word of command line@*
@*
@item Backspace / Delete
Erase previous / next char of command line@*
@*
@item Tab
Complete command or nick (@kbd{Tab} again: find next completion)@*
@*
@item Any char
Insert char to cursor position in the command line@*
@*
@item Enter
Execute command or send message@*
@*
@item Up arrow / Down arrow
Call again last commands/messages@*
@*
@item Ctrl + up arrow / Ctrl + down arrow
Call again last commands/messages in global history@*
@*
@item PageUp / PageDown
Show buffer history@*
@*
@item F5 / F6
Switch to previous / next buffer@*
@*
@item F7 / F8
Switch to previous / next window@*
@*
@item F10
Remove last infobar message@*
@*
@item F11 / F12
Scroll nicklist@*
@*
@item Alt + left arrow / Alt + right arrow
Same as F5 / F6@*
@*
@item Alt + A
Switch to next buffer with activity (with priority: highlight, message, other)@*
@*
@item Alt + B
Go to previous word@*
@*
@item Alt + D
Delete next word@*
@*
@item Alt + F
Go to next word@*
@*
@item Alt + H
Clear hotlist (activity notification on other buffers)@*
@*
@item Alt + J then Alt + D
Display current DCC@*
@*
@item Alt + J then Alt + L
Switch to last buffer@*
@*
@item Alt + J then Alt + S
Switch to server buffer@*
@*
@item Alt + J then Alt + X
Switch to first channel of next server (or server buffer if no channel is opened)@*
@*
@item Alt + digit (1-9)
Switch to buffer by number@*
@*
@item Alt + J then number (01-99)
Switch to buffer by number@*
@*
@item Alt + K
Grab a key
@*
@item Alt + R
Delete entire line@*
@*
@item Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End
Scroll nicklist@*
@*
@end table
@node WeeChat commands, FIFO pipe, Key bindings, Usage
@section WeeChat commands
WeeChat internal commands:@*
@table @kbd
@item alias [alias_name [command [arguments]]
@*
create an alias for a command@*
@*
alias_name: name of alias@*
command: command name (WeeChat or IRC command, without first '/')@*
arguments: arguments for command@*
@*
@item buffer [action | number]
@*
manage buffers@*
@*
action: action to do:@*
move: move buffer in the list (may be relative, for example -1)@*
close: close buffer (for channel: same as /part without part message)@*
list: list opened buffers (no parameter implies this list)@*
notify: set notify level for buffer (0=never, 1=highlight, 2=1+msg, 3=2+join/part)@*
number: jump to buffer by number@*
@*
@item clear [-all]
@*
clear window(s)@*
@*
-all: clear all windows@*
@*
@item connect [servername]
@*
connect to a server@*
@*
servername: server name to connect@*
@*
@item disconnect [servername]
@*
disconnect from a server@*
@*
servername: server name to disconnect@*
@*
@item debug dump
@*
print debug messages@*
@*
dump: save memory dump in WeeChat log file (same dump is written when WeeChat crashes)@*
@*
@item help [command]
@*
display help about commands@*
@*
command: name of a WeeChat or IRC command@*
@*
@item ignore [mask [[type | command] [channel [server]]]]
@*
ignore IRC messages and/or hosts@*
@*
mask: nick or host mask to ignore@*
type: type of message to ignore (action, ctcp, dcc, pv)@*
command: IRC command@*
channel: name of channel for ignore@*
server: name of server for ignore@*
@*
For each argument, '*' means all.@*
Without argument, /ignore command lists all defined ignore.@*
@*
@item key [key function/command] [unbind key] [functions] [reset -yes]
@*
bind/unbind keys@*
@*
key: bind this key to an internal function or a command (beginning by "/")@*
unbind: unbind a key (if "all", default bindings are restored)@*
functions: list internal functions for key bindings@*
reset: restore bindings to the default values and delete ALL personal binding (use carefully!)@*
@*
@item perl [load filename] | [autoload] | [reload] | [unload]
@*
list/load/unload Perl scripts@*
@*
filename: Perl script (file) to load@*
@*
Without argument, /perl command lists all loaded Perl scripts.@*
@*
@item python [load filename] | [autoload] | [reload] | [unload]
@*
list/load/unload Python scripts@*
@*
filename: Python script (file) to load@*
@*
Without argument, /python command lists all loaded Python scripts.@*
@*
@item ruby [load filename] | [autoload] | [reload] | [unload]
@*
list/load/unload Ruby scripts@*
@*
filename: Ruby script (file) to load@*
@*
Without argument, /ruby command lists all loaded Ruby scripts.@*
@*
@item server [servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 [nick2 [nick3]]] [-username username] [-realname realname] [-command command] [-autojoin channel[,channel]] ] | [del servername]
@*
list, add or remove servers@*
@*
servername: server name, for internal & display use@*
hostname: name or IP address of server@*
port: port for server (integer)@*
ipv6: use IPv6 protocol@*
ssl: use SSL protocol@*
password: password for server@*
nick1: first nick for server@*
nick2: alternate nick for server@*
nick3: second alternate nick for server@*
username: user name@*
realname: real name of user@*
@*
@item save [file]
@*
save config to disk@*
@*
file: filename for writing config@*
@*
@item set [option[=value]]
@*
set config parameters@*
@*
option: name of an option@*
value: value for option@*
@*
@item unalias alias_name
@*
remove an alias@*
@*
alias_name: name of alias to remove@*
@*
@item unignore [number | [mask [[type | command] [channel [server]]]]]
@*
unignore IRC messages and/or hosts@*
@*
number: # of ignore to unignore (number is displayed by list of ignore)@*
mask: nick or host mask to unignore@*
type: type of message to unignore (action, ctcp, dcc, pv)@*
command: IRC command@*
channel: name of channel for unignore@*
server: name of server for unignore@*
@*
For each argument, '*' means all.@*
Without argument, /unignore command lists all defined ignore.@*
@*
@item window [list | splith | splitv | [merge [down | up | left | right | all]]]
@*
manage windows@*
@*
list: list opened windows (no parameter implies this list)@*
splith: split current window horizontally@*
splitv: split current window vertically@*
merge: merge window with another@*
@*
@end table
IRC commands:@*
@table @kbd
@item admin [target]
@*
find information about the administrator of the server@*
@*
target: server@*
@*
@item ame message
@*
send a CTCP action to all channels of all connected servers@*
@*
message: message to send@*
@*
@item amsg text
@*
send message to all channels of all connected servers@*
@*
text: text to send@*
@*
@item away [-all] [message]
@*
toggle away status@*
@*
-all: toggle away status on all connected servers@*
message: message for away (if no message is given, away status is removed)@*
@*
@item ban [channel] [nickname [nickname ...]]
@*
bans nicks or hosts@*
@*
channel: channel for ban@*
nickname: user or host to ban@*
@*
@item ctcp nickname type [arguments]
@*
send a CTCP message (Client-To-Client Protocol)@*
@*
nickname: user to send CTCP to@*
type: CTCP type (examples: "version", "ping", ..)@*
arguments: arguments for CTCP@*
@*
@item dcc action [nickname [file]]
@*
starts DCC (file or chat) or close chat@*
@*
action: 'send' (file) or 'chat' or 'close' (chat)@*
nickname: nickname to send file or chat@*
file: filename (on local host)@*
@*
@item dehalfop [nickname [nickname]]
@*
removes half channel operator status from nickname(s)@*
@*
@item deop [nickname [nickname]]
@*
removes channel operator status from nickname(s)@*
@*
@item devoice [nickname [nickname]]
@*
removes voice from nickname(s)@*
@*
@item die
@*
shutdown the server@*
@*
@item halfop [nickname [nickname]]
@*
gives half channel operator status to nickname(s)@*
@*
@item info [target]
@*
get information describing the server@*
@*
target: server name@*
@*
@item invite nickname channel
@*
invite a nick on a channel@*
@*
nickname: nick to invite@*
channel: channel to invite@*
@*
@item ison nickname [nickname ...]
@*
check if a nickname is currently on IRC@*
@*
nickname: nickname@*
@*
@item join channel[,channel] [key[,key]]
@*
join a channel@*
@*
channel: channel name to join@*
key: key to join the channel@*
@*
@item kick [channel] nickname [comment]
@*
forcibly remove a user from a channel@*
@*
channel: channel where user is@*
nickname: nickname to kick@*
comment: comment for kick@*
@*
@item kickban [channel] nickname [comment]
@*
kicks and bans a nick from a channel@*
@*
channel: channel where user is@*
nickname: nickname to kick and ban@*
comment: comment for kick@*
@*
@item kill nickname comment
@*
close client-server connection@*
@*
nickname: nickname@*
comment: comment for kill@*
@*
@item links [[server] server_mask]
@*
list all servernames which are known by the server answering the query@*
@*
server: this server should answer the query@*
server_mask: list of servers must match this mask@*
@*
@item list [channel[,channel] [server]]
@*
list channels and their topic@*
@*
channel: channel to list@*
server: server name@*
@*
@item lusers [mask [target]]
@*
get statistics about the size of the IRC network@*
@*
mask: servers matching the mask only@*
target: server for forwarding request@*
@*
@item me message
@*
send a CTCP action to the current channel@*
@*
message: message to send@*
@*
@item mode @{ channel @{[+|-]|o|p|s|i|t|n|b|v@} [limit] [user] [ban mask] @} | @{ nickname @{[+|-]|i|w|s|o@} @}
@*
change channel or user mode@*
@*
channel modes:@*
channel: channel name to modify@*
o: give/take channel operator privileges@*
p: private channel flag@*
s: secret channel flag@*
i: invite-only channel flag@*
t: topic settable by channel operator only flag@*
n: no messages to channel from clients on the outside@*
m: moderated channel@*
l: set the user limit to channel@*
b: set a ban mask to keep users out@*
v: give/take the ability to speak on a moderated channel@*
k: set a channel key (password)@*
user modes:@*
nickname: nickname to modify@*
i: mark a user as invisible@*
s: mark a user for receive server notices@*
w: user receives wallops@*
o: operator flag@*
@*
@item motd [target]
@*
get the "Message Of The Day"@*
@*
target: server name@*
@*
@item msg receiver[,receiver] text
@*
send message to a nick or channel@*
@*
receiver: nick or channel (may be mask, '*' = current channel)@*
text: text to send@*
@*
@item names [channel[,channel]]
@*
list nicknames on channels@*
@*
channel: channel name@*
@*
@item nick [-all] nickname
@*
change current nickname@*
@*
-all: set new nickname for all connected servers@*
nickname: new nickname@*
@*
@item notice nickname text
@*
send notice message to user@*
@*
nickname: user to send notice to@*
text: text to send@*
@*
@item op nickname [nickname]
@*
gives channel operator status to nickname(s)@*
@*
@item oper user password
@*
get operator privileges@*
@*
user/password: used to get privileges on current IRC server@*
@*
@item part [channel[,channel]] [part_message]
@*
leave a channel@*
@*
channel: channel name to leave@*
part_message: part message (displayed to other users)@*
@*
@item ping server1 [server2]
@*
ping server@*
@*
server1: server to ping@*
server2: forward ping to this server@*
@*
@item pong daemon [daemon2]
@*
answer to a ping message@*
@*
daemon: daemon who has responded to Ping message@*
daemon2: forward message to this daemon@*
@*
@item query nickname [text]
@*
send a private message to a nick@*
@*
nickname: nickname for private conversation@*
text: text to send@*
@*
@item quit [quit_message]
@*
close all connections & quit@*
@*
quit_message: quit message (displayed to other users)@*
@*
@item quote data
@*
send raw data to server without parsing@*
@*
data: raw data to send@*
@*
@item rehash
@*
tell the server to reload its config file@*
@*
@item restart
@*
tell the server to restart itself@*
@*
@item service nickname reserved distribution type reserved info
@*
register a new service@*
@*
distribution: visibility of service@*
type: reserved for future usage@*
@*
@item servlist [mask [type]]
@*
list services currently connected to the network@*
@*
mask: list only services matching this mask@*
type: list only services of this type@*
@*
@item squery service text
@*
deliver a message to a service@*
@*
service: name of service@*
text: text to send@*
@*
@item squit server comment
@*
disconnect server links@*
@*
server: server name@*
comment: comment for quit@*
@*
@item stats [query [server]]
@*
query statistics about server@*
@*
query: c/h/i/k/l/m/o/y/u (see RFC1459)@*
server: server name@*
@*
@item summon user [target [channel]]
@*
give users who are on a host running an IRC server a message asking them to please join IRC@*
@*
user: username@*
target: server name@*
channel: channel name@*
@*
@item time [target]
@*
query local time from server@*
@*
target: query time from specified server@*
@*
@item topic [channel] [topic]
@*
get/set channel topic@*
@*
channel: channel name@*
topic: new topic for channel (if topic is "-delete" then topic is deleted)@*
@*
@item trace [target]
@*
find the route to specific server@*
@*
target: server@*
@*
@item unban [channel] nickname [nickname ...]
@*
unbans nicks or hosts@*
@*
channel: channel for unban@*
nickname: user or host to unban@*
@*
@item userhost nickname [nickname ...]
@*
return a list of information about nicknames@*
@*
nickname: nickname@*
@*
@item users [target]
@*
list of users logged into the server@*
@*
target: server@*
@*
@item version [server | nickname]
@*
gives the version info of nick or server (current or specified)@*
@*
server: server name@*
nickname: nickname@*
@*
@item voice [nickname [nickname]]
@*
gives voice to nickname(s)@*
@*
@item wallops text
@*
send a message to all currently connected users who have set the 'w' user mode for themselves@*
@*
text to send@*
@*
@item who [mask ["o"]]
@*
generate a query which returns a list of information@*
@*
mask: only information which match this mask@*
o: only operators are returned according to the mask supplied@*
@*
@item whois [server] nickname[,nickname]
@*
query information about user(s)@*
@*
server: server name@*
nickname: nickname (may be a mask)@*
@*
@item whowas nickname [,nickname [,nickname ...]] [count [target]]
@*
ask for information about a nickname which no longer exists@*
@*
nickname: nickname to search@*
count: number of replies to return (full search if negative number)@*
target: reply should match this mask@*
@*
@end table
Internal functions for keys:@*
@table @kbd
@item return
terminate line@*
@item tab
complete word@*
@item backspace
delete previous char@*
@item delete
delete next char@*
@item delete_end_line
delete until end of line@*
@item delete_beginning_line
delete until beginning of line@*
@item delete_line
delete entire line@*
@item delete_previous_word
delete previous word@*
@item delete_next_word
delete next word@*
@item clipboard_paste
paste current clipboard content@*
@item transpose_chars
transpose chars@*
@item home
go to beginning of line@*
@item end
go to end of line@*
@item left
move one char left@*
@item previous_word
move to previous word@*
@item right
move one char right@*
@item next_word
move to next word@*
@item up
call previous command in history@*
@item up_global
call previous command in global history@*
@item down
call next command in history@*
@item down_global
call next command in global history@*
@item page_up
scroll one page up@*
@item page_down
scroll one page down@*
@item infobar_clear
clear infobar@*
@item nick_page_up
scroll nicklist one page up@*
@item nick_page_down
scroll nicklist one page down@*
@item nick_beginning
display beginning of nicklist@*
@item nick_end
display end of nicklist@*
@item refresh
refresh screen@*
@item jump_smart
jump to buffer with activity@*
@item jump_dcc
jump to DCC buffer@*
@item jump_last_buffer
jump to last buffer@*
@item jump_server
jump to server buffer@*
@item jump_next_server
jump to next server@*
@item hotlist_clear
clear hotlist@*
@item grab_key
grab a key@*
@end table
@node FIFO pipe, , WeeChat commands, Usage
@section FIFO pipe
You can remote control WeeChat, by sending commands or text to a FIFO pipe
(you have to enable option "irc_fifo_pipe", it is disabled by default).@*
The FIFO pipe is located in ~/.weechat/ and is called "weechat_fifo_xxxxx"
(where xxxxx is the process ID (PID) of running WeeChat).@*
So if many WeeChat are running, you have many FIFO pipe, one for each session.@*
@*
The syntax for the FIFO pipe commands/text is:@*
@command{server,channel *text or command here}@*
where server and channel are optional, but if channel is here, server should be too.@*
@*
Some examples:
@table @asis
@item @bullet{} change your nick on freenode to "mynick|out":
@*
@command{echo "freenode */nick mynick|out" >~/.weechat/weechat_fifo_12345}
@*
@item @bullet{} display text on #weechat channel:
@*
@command{echo "freenode,#weechat *hello everybody!" >~/.weechat/weechat_fifo_12345}
@*
@item @bullet{} display text on current channel (buffer displayed by WeeChat):
@*
@command{echo "*hello!" >~/.weechat/weechat_fifo_12345}
@*
@b{Warning:} this is dangerous and you should not do that except if you know what you do!
@*
@item @bullet{} send 2 commands to unload/reload Perl scripts (you have to separate them with \n):
@*
@command{echo -e "freenode */perl unload\nfreenode */perl autoload" >~/.weechat/weechat_fifo_12345}
@end table
@*
You can write a script to send command to all running WeeChat at same time, for example:@*
@verbatim
#!/bin/sh
if [ $# -eq 1 ]; then
for fifo in $(/bin/ls ~/.weechat/weechat_fifo_* 2>/dev/null); do
echo -e "$1" >$fifo
done
fi
@end verbatim
@*
If the script is called "auto_weechat_command", you can run it with:@*
@command{./auto_weechat_command "freenode,#weechat *hello"}
@c ******************************* Extensions *********************************
@node Extensions, Authors / Support, Usage, Top
@chapter Extensions
@menu
* Perl scripts::
* Python scripts::
* Ruby scripts::
@end menu
@node Perl scripts, Python scripts, Extensions, Extensions
@section Perl scripts
@subsection Load/unload Perl scripts
Perl scripts are loaded and unloaded with @command{/perl} command.
(type @kbd{/help perl} within WeeChat to get help about command).@*
@emph{Examples:}@*
@itemize @bullet
@item
Load a Perl script: @kbd{/perl load /tmp/sample.pl}@*
@item
Unload all Perl scripts: @kbd{/perl unload}@*
@item
List all Perl scripts: @kbd{/perl}@*
@end itemize
@subsection WeeChat / Perl API
@itemize @bullet
@item
@command{weechat::register ( name, version, shutdown_function, description );}@*
@*
This is first function to call in Perl script.@*
All Perl scripts for WeeChat should call this function.@*
@emph{Arguments:}
@itemize @minus
@item @option{name}: unique name to identify script (each script must have
unique name)
@item @option{version}: script's version
@item @option{shutdown_function}: Perl function called when script is
unloaded (optional parameter, empty string means nothing is called at the end)
@item @option{description}: short description of script.
@end itemize
@*
@emph{Example:}@*
@code{weechat::register ("sample", "1.0", "sample_end", "Sample script!");}@*
@*
@item
@command{weechat::print ( message, [channel, [server]] );}@*
@*
Print message in a channel.@*
@emph{Arguments:}
@itemize @minus
@item @option{message}: message to display
@item @option{channel}: name of channel
@item @option{server}: internal name of server
@end itemize
@*
@emph{Examples:}@*
@code{weechat::print ("message");}@*
@code{weechat::print ("message", "#weechat");}@*
@code{weechat::print ("message", "#weechat", "freenode");}@*
@*
@item
@command{weechat::print_infobar ( delay, message );}@*
@*
Print message in infobar.@*
@emph{Arguments:}
@itemize @minus
@item @option{delay}: after this delay (in seconds), message will be erased
(if 0, message will not be erased).
@item @option{message}: message to display
@end itemize
@*
@emph{Example:}@*
@code{weechat::print_infobar (5, "message");}@*
@*
@item
@command{weechat::add_message_handler ( name, function );}@*
@*
Attach a Perl function to an IRC message.@*
Function will be called each time IRC message will be received.@*
@emph{Arguments:}
@itemize @minus
@item @option{name}: name of IRC message@*
To know list of IRC messages, please refer to RFC 1459 and/or 2812:@*
RFC 1459: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc1459.txt}@*
RFC 2812: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc2812.txt}
@item @option{function}: Perl function called when message is received
@end itemize
@*
@emph{Example:}@*
@code{weechat::add_message_handler ("privmsg", my_function);}@*
@code{sub my_function}@*
@code{@{ }@*
@code{@ @ @ @ weechat::print ("server=$_[0]\n");}@*
@code{@ @ @ @ ($null, $channel, $message) = split ":",$_[1],3;}@*
@code{@ @ @ @ ($hostmask, $null, $channel) = split " ", $channel;}@*
@code{@ @ @ @ weechat::print ("host=$hostmask, chan=$channel, msg=$message\n");}@*
@code{@} }@*
@*
@item
@command{weechat::add_command_handler ( name, function );}@*
@*
Create new WeeChat command, linked with Perl function.@*
Function will be called when user will launch command with @kbd{/name}.@*
@emph{Arguments:}
@itemize @minus
@item @option{name}: name of new command@*
This name may be existing command, so that the command is overrided by
Perl function. Be careful when overriding WeeChat commands, they'll not be
available until your Perl script will be unloaded.
@item @option{function}: Perl function linked with command
@end itemize
@*
@emph{Example:}@*
@code{weechat::add_command_handler ("command", my_command);}@*
@code{sub my_command}@*
@code{@{ }@*
@code{@ @ @ @ weechat::print("Server: $_[0], arguments: $_[1]\n");}@*
@code{@ @ @ @ return 0;}@*
@code{@} }@*
@*
@item
@command{weechat::command ( command, [channel, [server]] );}@*
@*
Execute a command or send a message to a channel.@*
@emph{Arguments:}
@itemize @minus
@item @option{command}: command to execute (or message to send in a channel)
@item @option{channel}: name of channel
@item @option{server}: internal name of server
@end itemize
@*
@emph{Examples:}@*
@code{weechat::command ("hello world!");}@*
@code{weechat::command ("/kick toto please leave this chan", "#weechat");}@*
@code{weechat::command ("/nick newnick", "", "freenode");}@*
@*
@item
@command{weechat::get_info ( name, [server] );}@*
@*
Get various info about WeeChat, server or user.@*
@emph{Arguments:}
@itemize @minus
@item @option{name}: name of info to retrieve:
@item @option{server}: internal name of server
@itemize @minus
@item @option{0 or version}: get WeeChat version
@item @option{1 or nick}: get nickname
@item @option{2 or channel}: get channel name
@item @option{3 or server}: get server name
@item @option{4 or weechatdir}: get WeeChat home directory
@item @option{5 or away}: get away flag for server
@end itemize
@end itemize
@*
@emph{Examples:}@*
@code{$version = get_info("version");}@*
@code{$nick = get_info("nick", "freenode");}@*
@*
@end itemize
@node Python scripts, Ruby scripts, Perl scripts, Extensions
@section Python scripts
@subsection Load/unload Python scripts
Python scripts are loaded and unloaded with @command{/python} command.
(type @kbd{/help python} within WeeChat to get help about command).@*
@emph{Examples:}@*
@itemize @bullet
@item
Load a Python script: @kbd{/python load /tmp/sample.py}@*
@item
Unload all Python scripts: @kbd{/python unload}@*
@item
List all Python scripts: @kbd{/python}@*
@end itemize
@subsection WeeChat / Python API
@itemize @bullet
@item
@command{weechat.register ( name, version, shutdown_function, description )}@*
@*
This is first function to call in Python script.@*
All Python scripts for WeeChat should call this function.@*
@emph{Arguments:}
@itemize @minus
@item @option{name}: unique name to identify script (each script must have
unique name)
@item @option{version}: script's version
@item @option{shutdown_function}: Python function called when script is
unloaded (optional parameter, empty string means nothing is called at the end)
@item @option{description}: short description of script.
@end itemize
@*
@emph{Example:}@*
@code{weechat.register ("sample", "1.0", "sample_end", "Sample script!")}@*
@*
@item
@command{weechat.prnt ( message, [channel, [server]] )}@*
@*
Print message in a channel.@*
@emph{Arguments:}
@itemize @minus
@item @option{message}: message to display
@item @option{channel}: name of channel
@item @option{server}: internal name of server
@end itemize
@*
@emph{Examples:}@*
@code{weechat.prnt ("message")}@*
@code{weechat.prnt ("message", "#weechat")}@*
@code{weechat.prnt ("message", "#weechat", "freenode")}@*
@*
@item
@command{weechat.print_infobar ( delay, message )}@*
@*
Print message in infobar.@*
@emph{Arguments:}
@itemize @minus
@item @option{delay}: after this delay (in seconds), message will be erased
(if 0, message will not be erased).
@item @option{message}: message to display
@end itemize
@*
@emph{Example:}@*
@code{weechat.print_infobar (5, "message")}@*
@*
@item
@command{weechat.add_message_handler ( name, function )}@*
@*
Attach a Python function to an IRC message.@*
Function will be called each time IRC message will be received.@*
@emph{Arguments:}
@itemize @minus
@item @option{name}: name of IRC message@*
To know list of IRC messages, please refer to RFC 1459 and/or 2812:@*
RFC 1459: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc1459.txt}@*
RFC 2812: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc2812.txt}
@item @option{function}: Python function called when message is received
@end itemize
@*
@emph{Example:}@*
@code{weechat.add_message_handler ("privmsg", my_function)}@*
@code{def my_function(server, args):}@*
@code{@ @ @ @ weechat.prnt("server="+server)}@*
@code{@ @ @ @ null, channel, message = string.split(args, ":", 2)}@*
@code{@ @ @ @ hostmask, null, channel = string.split(string.strip(channel), " ", 2)}@*
@code{@ @ @ @ weechat.prnt("host="+hostmask+", channel="+channel+", message="+message)}@*
@*
@item
@command{weechat.add_command_handler ( name, function )}@*
@*
Create new WeeChat command, linked with Python function.@*
Function will be called when user will launch command with @kbd{/name}.@*
@emph{Arguments:}
@itemize @minus
@item @option{name}: name of new command@*
This name may be existing command, so that the command is overrided by
Python function. Be careful when overriding WeeChat commands, they'll not be
available until your Python script will be unloaded.
@item @option{function}: Python function linked with command
@end itemize
@*
@emph{Example:}@*
@code{weechat.add_command_handler ("command", my_command)}@*
@code{def my_command(server, args):}@*
@code{@ @ @ @ weechat.prnt("server:"+server+" arguments:"+args)}@*
@*
@item
@command{weechat.command ( command, [channel, [server]] )}@*
@*
Execute a command or send a message to a channel.@*
@emph{Arguments:}
@itemize @minus
@item @option{command}: command to execute (or message to send in a channel)
@item @option{channel}: name of channel
@item @option{server}: internal name of server
@end itemize
@*
@emph{Examples:}@*
@code{weechat.command ("hello world!")}@*
@code{weechat.command ("/kick toto please leave this chan", "#weechat")}@*
@code{weechat.command ("/nick newnick", "", "freenode")}@*
@*
@item
@command{weechat.get_info ( name, [server] )}@*
@*
Get various info about WeeChat, server or user.@*
@emph{Arguments:}
@itemize @minus
@item @option{name}: name of info to retrieve:
@item @option{server}: internal name of server
@itemize @minus
@item @option{0 or version}: get WeeChat version
@item @option{1 or nick}: get nickname
@item @option{2 or channel}: get channel name
@item @option{3 or server}: get server name
@item @option{4 or weechatdir}: get WeeChat home directory
@item @option{5 or away}: get away flag for server
@end itemize
@end itemize
@*
@emph{Examples:}@*
@code{$version = weechat.get_info("version")}@*
@code{$nick = weechat.get_info("nick", "freenode")}@*
@*
@end itemize
@node Ruby scripts, , Python scripts, Extensions
@section Ruby scripts
Not developed!
@c **************************** Authors / Support *****************************
@node Authors / Support, , Extensions, Top
@chapter Authors / Support
@ifhtml
@menu
* Authors::
* Get support::
* Copyright::
@end menu
@end ifhtml
@ifnothtml
@menu
* Authors::
* Get support::
@end menu
@end ifnothtml
@node Authors, Get support, Authors / Support, Authors / Support
@section Authors
WeeChat is developed by:@*
@itemize @bullet
@item
FlashCode
<@email{flashcode@@flashtux.org, flashcode AT flashtux.org}>
@end itemize
@ifhtml
@node Get support, Copyright, Authors, Authors / Support
@end ifhtml
@ifnothtml
@node Get support, , Authors, Authors / Support
@end ifnothtml
@section Get support
Before asking for support, be sure you've read documentation and FAQ provided
with WeeChat.@*
(documentation is this document, if you don't read all lines until this sentence,
you can start again!)@*
@itemize @bullet
@item
Support with IRC:@*
- server: @b{irc.freenode.net}@*
- channel: @b{#weechat}@*@*
@item
WeeChat forum: @uref{http://forums.flashtux.org}@*@*
@item
Support with mailing list:@*
- to subscribe/unsubscribe:@*@uref{http://mail.nongnu.org/mailman/listinfo/weechat-support}.@*
- to send mail to all mailing list subscribers, send your mail to@*@email{weechat-support@@nongnu.org}.@*
Mailing archives are available here:@*
@uref{http://mail.nongnu.org/archive/html/weechat-support}@*@*
@item
Look for WeeChat support page for detail:@*
@uref{http://weechat.flashtux.org/support.php?lang=en}
@end itemize
@ifhtml
@node Copyright, , Get support, Authors / Support
@section Copyright
This manual documents WeeChat IRC client, it is part of WeeChat.@*
Copyright @copyright{} 2005 FlashCode
<@email{flashcode@@flashtux.org, flashcode AT flashtux.org}>@*
@*
This document may be used under the terms the GNU General Public License
version 2 or higher.
@end ifhtml
@bye