\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 @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.4-cvs - July, 16 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_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_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_highlight Color for window with highlight (status bar)@* Type: color (Curses or Gtk color), default value: 'lightmagenta'@* @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_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_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 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@* 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 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 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 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 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 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 @* send a ctcp message@* @* nickname: user to send ctcp to@* type: "action" or "version"@* @* @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 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 down call next command in 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_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