\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) 2004 by FlashCode @c @c Permission is granted to copy, distribute and/or modify this document @c under the terms of the GNU Free Documentation License, Version 1.2 @c or any later version published by the Free Software Foundation; @c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. @c A copy of the license is included in the section entitled "GNU @c Free Documentation License". @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.0.5-pre3 - January, 24 2004 @image{weechat_image} @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?lang=en}@* @* Copyright @copyright{} 2004 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 @item many GUI (Graphical User Interface): Curses, 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, 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{dpkg -i /path/weechat_x.y.z-1_i386.deb} @item Mandrake/Redhat (or any RPM compatible distribution)@* To install: @kbd{rpm -i /path/weechat-x.y.z-1.i386.rpm} @item Gentoo@* To install: see Gentoo documentation @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:: @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 -h, --help Display help screen@* @item -l, --license Display WeeChat license@* @item -v, --version Display WeeChat version@* @end table @subsection Run WeeChat Just issue this command to run WeeChat:@* @kbd{weechat-curses} (for Curses 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 Here is a list of all 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_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 %G - %H:%M'@* @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: 'gray'@* @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: 'gray'@* @item col_chat_time Color for time in chat window@* Type: color (Curses or Gtk color), default value: 'gray'@* @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: 'gray'@* @item col_status_active Color for active window (status bar)@* Type: color (Curses or Gtk color), default value: 'yellow'@* @item col_status_data_msg Color for window with new messages (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: 'lightmagenta'@* @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_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: 'gray'@* @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: 'gray'@* @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_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: 'gray'@* @item col_nick_bg Background for nicknames@* Type: color (Curses or Gtk color), default value: 'default'@* @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_channels Automatically log channel chats@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item log_auto_private Automatically log private chats@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item log_path Path for WeeChat log files@* Type: string (any string), default value: '~/.weechat/logs/'@* @item log_name Name for log files (%S == irc server name, %N == channel name (or nickname if private chat)@* Type: string (any string), default value: '%S,%N.weechatlog'@* @item log_timestamp Timestamp for log (see man strftime for date/time specifiers)@* Type: string (any string), default value: '~'@* @item log_start_string Text written when starting new log file (see man strftime for date/time specifiers)@* Type: string (any string), default value: '--- Log started %a %b %d %Y %H:%M:%s'@* @item log_end_string Text written when ending log file (see man strftime for date/time specifiers)@* Type: string (any string), default value: '--- Log ended %a %b %d %Y %H:%M:%s'@* @item dcc_auto_accept_files Automatically accept incoming dcc files@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item dcc_auto_accept_max_size Maximum size for incoming file when automatically accepted@* Type: integer (values: between 0 and 2147483647), default value: 0@* @item dcc_auto_accept_chats Automatically accept dcc chats (use carefully!)@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item dcc_timeout Timeout for dcc request (in seconds)@* Type: integer (values: between 1 and 2147483647), default value: 300@* @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_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_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: 1080@* @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_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_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_autojoin Comma separated list of channels to join when connected to server@* 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{gray}: gray @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 / End Go to the beginning / end of command line@* @* @item Backspace / Delete Erase previous / next char of command line@* @* @item Ctrl + Backspace Erase previous word 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 window history@* @* @item F6 / F7 Switch to previous / next window@* @* @item Alt + left arrow / Alt + right arrow Same as F6 / F7@* @* @item F10 Remove last infobar message@* @* @end table @node WeeChat commands, , Key bindings, Usage @section WeeChat commands NOT WRITTEN! @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{IRC::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{IRC::register ("sample", "1.0", "sample_end", "Sample script!");}@* @* @item @command{IRC::print ( message );}@* @* Print message in current window (channel or server).@* @emph{Arguments:} @itemize @minus @item @option{message}: message to display @end itemize @* @emph{Example:}@* @code{IRC::print ("message");}@* @* @item @command{IRC::print_with_channel ( channel, [server,] message );}@* @* Print message in a channel.@* @emph{Arguments:} @itemize @minus @item @option{channel}: name of channel @item @option{server}: internal name of server @item @option{message}: message to display @end itemize @* @emph{Examples:}@* @code{IRC::print_with_channel ("#weechat", "freenode", "message");}@* @code{IRC::print_with_channel ("#weechat", "message");}@* @* @item @command{IRC::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{IRC::print_infobar (5, "message");}@* @* @item @command{IRC::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{IRC::add_message_handler ("privmsg", my_function);}@* @code{sub my_function}@* @code{@{ }@* @code{@ @ @ @ ($null, $channel, $message) = split ":",@@_[0],3;}@* @code{@ @ @ @ ($hostmask, $null, $channel) = split " ", $channel;}@* @code{@ @ @ @ IRC::print ("host=$hostmask, chan=$channel, msg=$message\n");}@* @code{@} }@* @* @item @command{IRC::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{IRC::add_command_handler ("command", my_command);}@* @code{sub my_command}@* @code{@{ }@* @code{@ @ @ @ IRC::print("Arguments: ".@@_[0]);}@* @code{@ @ @ @ return 0;}@* @code{@} }@* @* @end itemize @node Python scripts, Ruby scripts, Perl scripts, Extensions @section Python scripts Not developed! @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}> @item Bounga <@email{bounga@@altern.org, bounga AT altern.org}> @item Xahlexx <@email{xahlexx@@tuxfamily.org, xahlexx AT tuxfamily.org}> @item Crevetor <@email{crevetor@@caramail.com, crevetor AT caramail.com}> @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: soon!@*@* @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{} 2004 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