1166 lines
29 KiB
Plaintext
1166 lines
29 KiB
Plaintext
|
WeeChat User's Guide
|
||
|
====================
|
||
|
FlashCode <flashcode@flashtux.org>
|
||
|
|
||
|
|
||
|
This manual documents WeeChat chat client, it is part of WeeChat.
|
||
|
|
||
|
Latest version of this document can be found on this page:
|
||
|
http://weechat.flashtux.org/doc.php
|
||
|
|
||
|
|
||
|
[[introduction]]
|
||
|
Introduction
|
||
|
------------
|
||
|
|
||
|
WeeChat (Wee Enhanced Environment for Chat) is a free chat client, fast and
|
||
|
light, designed for many operating systems.
|
||
|
|
||
|
[[features]]
|
||
|
Features
|
||
|
~~~~~~~~
|
||
|
|
||
|
Main features are:
|
||
|
|
||
|
* multi-protocols (IRC and other soon)
|
||
|
* multi-servers connection (with SSL, IPv6, proxy)
|
||
|
* many GUI: Curses (wxWidgets, Gtk and Qt under development)
|
||
|
* small, fast and light
|
||
|
* customizable and extensible with plugins and scripts
|
||
|
* compliant with IRC RFCs http://www.ietf.org/rfc/rfc1459.txt[1459],
|
||
|
http://www.ietf.org/rfc/rfc2810.txt[2810],
|
||
|
http://www.ietf.org/rfc/rfc2811.txt[2811],
|
||
|
http://www.ietf.org/rfc/rfc2812.txt[2812] and
|
||
|
http://www.ietf.org/rfc/rfc2813.txt[2813]
|
||
|
* multi-platform (GNU/Linux, *BSD, MacOS X, Windows and other)
|
||
|
* 100% GPL, free software
|
||
|
|
||
|
WeeChat homepage is here: http://weechat.flashtux.org/
|
||
|
|
||
|
[[pre-requisites]]
|
||
|
Pre-requisites
|
||
|
~~~~~~~~~~~~~~
|
||
|
|
||
|
In order to install WeeChat, you need:
|
||
|
|
||
|
* a running GNU/Linux system (with compiler tools for source
|
||
|
package), or compatible OS (see above)
|
||
|
* 'root' privileges (to install WeeChat in a system directory)
|
||
|
* ncurses library
|
||
|
|
||
|
|
||
|
[[install]]
|
||
|
Installation
|
||
|
------------
|
||
|
|
||
|
[[binary_packages]]
|
||
|
Binary packages
|
||
|
~~~~~~~~~~~~~~~
|
||
|
|
||
|
Binary packages are available for many distributions, including:
|
||
|
|
||
|
* Debian (or any Debian compatible distribution): `apt-get install weechat`
|
||
|
* Mandriva/RedHat (or any RPM compatible distribution):
|
||
|
`rpm -i /path/to/weechat-x.y.z-1.i386.rpm`
|
||
|
* Gentoo: `emerge weechat`
|
||
|
|
||
|
Some additional packages may be useful, like weechat-plugins.
|
||
|
|
||
|
For other distributions, please look at your manual for installation
|
||
|
instructions.
|
||
|
|
||
|
[[source_package]]
|
||
|
Source package
|
||
|
~~~~~~~~~~~~~~
|
||
|
|
||
|
WeeChat can be compiled with cmake or autotools (cmake is recommended way).
|
||
|
|
||
|
With cmake
|
||
|
^^^^^^^^^^
|
||
|
|
||
|
* Installation in system directories (requires 'root' privileges):
|
||
|
|
||
|
----------------------------------------
|
||
|
$ mkdir build
|
||
|
$ cd build
|
||
|
$ cmake ..
|
||
|
$ make
|
||
|
% make install (as root)
|
||
|
----------------------------------------
|
||
|
|
||
|
* Installation in custom directory:
|
||
|
|
||
|
----------------------------------------
|
||
|
$ mkdir build
|
||
|
$ cd build
|
||
|
$ cmake .. -DPREFIX=/path/to/directory
|
||
|
$ make
|
||
|
$ make install
|
||
|
----------------------------------------
|
||
|
|
||
|
With autotools
|
||
|
^^^^^^^^^^^^^^
|
||
|
|
||
|
* Installation in system directories (requires 'root' privileges):
|
||
|
|
||
|
----------------------------------------
|
||
|
$ ./configure
|
||
|
$ make
|
||
|
% make install (as root)
|
||
|
----------------------------------------
|
||
|
|
||
|
* Installation in custom directory:
|
||
|
|
||
|
----------------------------------------
|
||
|
$ ./configure --prefix=/path/to/directory
|
||
|
$ make
|
||
|
$ make install
|
||
|
----------------------------------------
|
||
|
|
||
|
[[git_sources]]
|
||
|
Git sources
|
||
|
~~~~~~~~~~~
|
||
|
|
||
|
Warning: GIT sources are for advanced users: it may not compile or not be
|
||
|
stable. You're warned!
|
||
|
|
||
|
To get GIT sources, issue this command:
|
||
|
|
||
|
----------------------------------------
|
||
|
$ git clone git://git.sv.gnu.org/weechat.git
|
||
|
----------------------------------------
|
||
|
|
||
|
If you're using autotools (and not cmake), execute this script:
|
||
|
|
||
|
----------------------------------------
|
||
|
$ ./autogen.sh
|
||
|
----------------------------------------
|
||
|
|
||
|
Then follow instructions for source package (see <<source_package>>).
|
||
|
|
||
|
|
||
|
[[usage]]
|
||
|
Usage
|
||
|
-----
|
||
|
|
||
|
[[running_weechat]]
|
||
|
Running WeeChat
|
||
|
~~~~~~~~~~~~~~~
|
||
|
|
||
|
Command line arguments:
|
||
|
|
||
|
-a, --no-connect::
|
||
|
Disable auto-connect to servers at startup
|
||
|
|
||
|
-d, --dir 'path'::
|
||
|
Set path as home for WeeChat (used for configuration files, logs, user
|
||
|
plugins and scripts), default value is '~/.weechat' (note: directory is
|
||
|
created if not found by WeeChat)
|
||
|
|
||
|
-h, --help::
|
||
|
Display help
|
||
|
|
||
|
-k, --keys::
|
||
|
Display WeeChat default keys
|
||
|
|
||
|
-l, --license::
|
||
|
Display WeeChat license
|
||
|
|
||
|
-p, --no-plugin::
|
||
|
Disable plugins auto-load
|
||
|
|
||
|
-v, --version::
|
||
|
Display WeeChat version
|
||
|
|
||
|
plugin:option::
|
||
|
Option for plugin (see doc for each plugin)
|
||
|
|
||
|
To start WeeChat, issue this command:
|
||
|
|
||
|
----------------------------------------
|
||
|
$ weechat-curses
|
||
|
----------------------------------------
|
||
|
|
||
|
When you run WeeChat for the first time, a default configuration file is
|
||
|
created, with default options. The default configuration file is:
|
||
|
'~/.weechat/weechat.conf'.
|
||
|
|
||
|
You can edit this file at your convenience to configure WeeChat or you can set
|
||
|
parameters with `/set` command in WeeChat (see <<weechat_commands>>).
|
||
|
|
||
|
[[screen_layout]]
|
||
|
Screen layout
|
||
|
~~~~~~~~~~~~~
|
||
|
|
||
|
Example of terminal with WeeChat:
|
||
|
|
||
|
........................................
|
||
|
┌─────────────────────────────────────────────────────────────────────────────────────────┐
|
||
|
│Welcome to #test, this is a test channel │
|
||
|
│12:52:27 --> | flashy (n=flashcod@hellix.flashtux.org) has joined #test │@ChanServ │
|
||
|
│12:52:27 -- | Nicks #test: [@ChanServ @flashy +_FlashB0t joe mike] │@flashy │
|
||
|
│12:52:27 -- | Channel #test: 5 nicks (2 ops, 0 halfop, 1 voice, 2 normal) │+_FlashB0t│
|
||
|
│12:52:27 -- | Channel created on Tue Jan 27 06:30:17 2009 │joe │
|
||
|
│12:54:15 flashy | hey! │mike │
|
||
|
│12:55:01 joe | hi flashy! │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│ │ │
|
||
|
│[12:55] [4] [irc] 3:freenode/#test(+n){5}* [Act: 4,2] │
|
||
|
│[flashy] hi joe!█ │
|
||
|
└─────────────────────────────────────────────────────────────────────────────────────────┘
|
||
|
........................................
|
||
|
|
||
|
Screen is composed by following areas:
|
||
|
|
||
|
* chat area (middle of screen) with chat lines, and for each line:
|
||
|
** time
|
||
|
** prefix (before "|")
|
||
|
** message (after "|")
|
||
|
* bars around chat area, default bars are:
|
||
|
** 'title' bar, above chat area
|
||
|
** 'status' bar, below chat area
|
||
|
** 'input' bar, below status bar
|
||
|
** 'nicklist' bar, on the right
|
||
|
|
||
|
Bar 'status' has following default items:
|
||
|
|
||
|
[width="100%",cols="^3,^3,10",options="header"]
|
||
|
|========================================
|
||
|
| Item | Example | Description
|
||
|
|
||
|
| time | `[12:55]` |
|
||
|
time
|
||
|
|
||
|
| buffer_count | `[4]` |
|
||
|
number of opened buffers
|
||
|
|
||
|
| buffer_plugin | `[irc]` |
|
||
|
plugin of current buffer
|
||
|
|
||
|
| buffer_number | `3` |
|
||
|
current buffer number
|
||
|
|
||
|
| buffer_name | `freenode/#test(+n)` |
|
||
|
current buffer name
|
||
|
|
||
|
| buffer_nicklist_count | `{5}` |
|
||
|
number of nicks in nicklist
|
||
|
|
||
|
| buffer_filter | `*` |
|
||
|
filtering indicator: `*` means some lines are filtered (hidden), empty value
|
||
|
means all lines are displayed
|
||
|
|
||
|
| lag | `[Lag: 2.5]` |
|
||
|
lag indicator, in seconds (hidden if lag is low)
|
||
|
|
||
|
| hotlist | `[Act: 4,2]` |
|
||
|
list of buffers with activity (unread messages)
|
||
|
|
||
|
| completion | `abc(2) def(5)` |
|
||
|
list of words for completion, with number of possible completions for each
|
||
|
word
|
||
|
|
||
|
| scroll | `-MORE(50)-` |
|
||
|
scroll indicator, with number of lines below last line displayed
|
||
|
|========================================
|
||
|
|
||
|
Bar 'input' has following default items:
|
||
|
|
||
|
[width="100%",cols="^3,^6,8",options="header"]
|
||
|
|========================================
|
||
|
| Item | Example | Description
|
||
|
|
||
|
| input_paste | `[Paste 7 lines ? [ctrl-Y] Yes [ctrl-N] No]` |
|
||
|
question to user for pasting lines
|
||
|
|
||
|
| input_prompt | `[nick]` |
|
||
|
input prompt (nick for irc plugin)
|
||
|
|
||
|
| away | `(away)` |
|
||
|
away indicator
|
||
|
|
||
|
| input_search | `[Text search]` |
|
||
|
text search indicator
|
||
|
|
||
|
| input_text | `bla bla...` |
|
||
|
input text
|
||
|
|========================================
|
||
|
|
||
|
[[key_bindings]]
|
||
|
Default key bindings
|
||
|
~~~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
Keys for command line
|
||
|
^^^^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
[width="100%",cols="^.^4,.^15",options="header"]
|
||
|
|========================================
|
||
|
| Keys | Description
|
||
|
|
||
|
| Left arrow +
|
||
|
Ctrl + B |
|
||
|
Go to previous char in command line
|
||
|
|
||
|
| Right arrow +
|
||
|
Ctrl + F |
|
||
|
Go to next char in command line
|
||
|
|
||
|
| Ctrl + left arrow +
|
||
|
Alt + B |
|
||
|
Go to previous word in command line
|
||
|
|
||
|
| Ctrl + right arrow +
|
||
|
Alt + F |
|
||
|
Go to next word in command line
|
||
|
|
||
|
| Home +
|
||
|
Ctrl + A |
|
||
|
Go to the beginning of command line
|
||
|
|
||
|
| End +
|
||
|
Ctrl + E |
|
||
|
Go to the end of command line
|
||
|
|
||
|
| Ctrl + C then B |
|
||
|
Insert code for bold text
|
||
|
|
||
|
| Ctrl + C then C |
|
||
|
Insert code for colored text
|
||
|
|
||
|
| Ctrl + C then I |
|
||
|
Insert code for italic text
|
||
|
|
||
|
| Ctrl + C then O |
|
||
|
Insert code for color reset
|
||
|
|
||
|
| Ctrl + C then R |
|
||
|
Insert code for reverse color
|
||
|
|
||
|
| Ctrl + C then U |
|
||
|
Insert code for underlined text
|
||
|
|
||
|
| Delete +
|
||
|
Ctrl + D |
|
||
|
Delete next char in command line
|
||
|
|
||
|
| Backspace +
|
||
|
Ctrl + H |
|
||
|
Delete previous char in command line
|
||
|
|
||
|
| Ctrl + K |
|
||
|
Delete from cursor until end of command line (deleted string is copied to
|
||
|
clipboard)
|
||
|
|
||
|
| Ctrl + R |
|
||
|
Search for text in buffer history (two times: search exact text)
|
||
|
|
||
|
| Ctrl + T |
|
||
|
Transpose chars
|
||
|
|
||
|
| Ctrl + U |
|
||
|
Delete from cursor until beginning of command line (deleted string is copied
|
||
|
to clipboard)
|
||
|
|
||
|
| Ctrl + W |
|
||
|
Delete previous word of command line (deleted string is copied to clipboard)
|
||
|
|
||
|
| Ctrl + Y |
|
||
|
Paste clipboard content
|
||
|
|
||
|
| Tab |
|
||
|
Complete command or nick (Tab again: find next completion)
|
||
|
|
||
|
| Shift + Tab |
|
||
|
Without completion: do a partial completion, with pending completion:
|
||
|
complete with previous completion
|
||
|
|
||
|
| Any char |
|
||
|
Insert char at cursor position in command line
|
||
|
|
||
|
| Enter +
|
||
|
Ctrl + J +
|
||
|
Ctrl + M |
|
||
|
Execute command or send message (in search mode: stop search)
|
||
|
|
||
|
| Up arrow |
|
||
|
Call previous command/message (in search mode: search up)
|
||
|
|
||
|
| Down arrow |
|
||
|
Call next command/message (in search mode: search down)
|
||
|
|
||
|
| Ctrl + up arrow |
|
||
|
Call previous command/message in global history (common for all buffers)
|
||
|
|
||
|
| Ctrl + down arrow |
|
||
|
Call next command/message in global history (common for all buffers)
|
||
|
|
||
|
| Alt + D |
|
||
|
Delete next word in command line (deleted string is copied to clipboard)
|
||
|
|
||
|
| Alt + K |
|
||
|
Grab a key and insert its code in command line
|
||
|
|
||
|
| Alt + R |
|
||
|
Delete entire command line
|
||
|
|========================================
|
||
|
|
||
|
Keys for buffers / windows
|
||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
[width="100%",cols="^.^4,.^15",options="header"]
|
||
|
|========================================
|
||
|
| Keys | Description
|
||
|
|
||
|
| Ctrl + L |
|
||
|
Redraw whole window
|
||
|
|
||
|
| Ctrl + S then Ctrl + U |
|
||
|
Set unread marker on all buffers
|
||
|
|
||
|
| Page up |
|
||
|
Scroll up one page in buffer history
|
||
|
|
||
|
| Page down |
|
||
|
Scroll down one page in buffer history
|
||
|
|
||
|
| Alt + Page up |
|
||
|
Scroll up a few lines in buffer history
|
||
|
|
||
|
| Alt + Page down |
|
||
|
Scroll down a few lines in buffer history
|
||
|
|
||
|
| Alt + Home |
|
||
|
Scroll to top of buffer
|
||
|
|
||
|
| Alt + End |
|
||
|
Scroll to bottom of buffer
|
||
|
|
||
|
| Alt + left arrow +
|
||
|
Alt + up arrow +
|
||
|
Ctrl + P +
|
||
|
F5 |
|
||
|
Switch to previous buffer
|
||
|
|
||
|
| Alt + right arrow +
|
||
|
Alt + down arrow +
|
||
|
Ctrl + N +
|
||
|
F6 |
|
||
|
Switch to next buffer
|
||
|
|
||
|
| F7 |
|
||
|
Switch to previous window
|
||
|
|
||
|
| F8 |
|
||
|
Switch to next window
|
||
|
|
||
|
| F9 |
|
||
|
Scroll buffer's title on the left
|
||
|
|
||
|
| F10 |
|
||
|
Scroll buffer's title on the right
|
||
|
|
||
|
| F11 |
|
||
|
Scroll up one page in nicklist
|
||
|
|
||
|
| F12 |
|
||
|
Scroll down one page in nicklist
|
||
|
|
||
|
| Alt + F11 |
|
||
|
Go to the beginning of nicklist
|
||
|
|
||
|
| Alt + F12 |
|
||
|
Go to the end of nicklist
|
||
|
|
||
|
| Alt + A |
|
||
|
Switch to next buffer with activity (with priority: highlight, message,
|
||
|
other)
|
||
|
|
||
|
| Alt + J then Alt + L |
|
||
|
Switch to last buffer
|
||
|
|
||
|
| Alt + J then Alt + R |
|
||
|
Switch to IRC raw buffer
|
||
|
|
||
|
| Alt + digit (0-9) |
|
||
|
Switch to buffer by number (0 = 10)
|
||
|
|
||
|
| Alt + J then number (01-99) |
|
||
|
Switch to buffer by number
|
||
|
|
||
|
| Alt + N |
|
||
|
Scroll to next highlight
|
||
|
|
||
|
| Alt + P |
|
||
|
Scroll to previous highlight
|
||
|
|
||
|
| Alt + U |
|
||
|
Scroll to first unread line in buffer
|
||
|
|
||
|
| Alt + W then Alt + arrow |
|
||
|
Switch to window with direction
|
||
|
|
||
|
| Alt + Z |
|
||
|
Zoom on current window (Alt + Z again: restore initial windows state, before
|
||
|
zoom)
|
||
|
|
||
|
| Alt + < |
|
||
|
Switch to previous buffer in list of visited buffers
|
||
|
|
||
|
| Alt + > |
|
||
|
Switch to next buffer in list of visited buffers
|
||
|
|========================================
|
||
|
|
||
|
Other keys
|
||
|
^^^^^^^^^^
|
||
|
|
||
|
[width="100%",cols="^.^4,.^15",options="header"]
|
||
|
|========================================
|
||
|
| Keys | Description
|
||
|
|
||
|
| Alt + H |
|
||
|
Clear hotlist (activity notification on other buffers)
|
||
|
|
||
|
| Alt + S |
|
||
|
Switch current IRC server on servers buffer (if option
|
||
|
"irc.look.one_server_buffer" is enabled)
|
||
|
|
||
|
| Alt + = |
|
||
|
Toggle filters on/off
|
||
|
|========================================
|
||
|
|
||
|
[[command_line]]
|
||
|
Command line
|
||
|
~~~~~~~~~~~~
|
||
|
|
||
|
WeeChat command line (at the bottom of window) lets you execute commands or
|
||
|
send text to buffer.
|
||
|
|
||
|
Syntax
|
||
|
^^^^^^
|
||
|
|
||
|
Commands begin with "/" char, followed by name of command. For example, to see
|
||
|
list of all options:
|
||
|
|
||
|
----------------------------------------
|
||
|
/set
|
||
|
----------------------------------------
|
||
|
|
||
|
Text sent to a buffer is any text that does not begin with "/" char.
|
||
|
For example, to send text 'hello' on current buffer:
|
||
|
|
||
|
----------------------------------------
|
||
|
hello
|
||
|
----------------------------------------
|
||
|
|
||
|
However, it is possible to start with "/" char, by adding another.
|
||
|
For example, to send text '/set' on current buffer:
|
||
|
|
||
|
----------------------------------------
|
||
|
//set
|
||
|
----------------------------------------
|
||
|
|
||
|
Colors
|
||
|
^^^^^^
|
||
|
|
||
|
For some plugins like IRC, you can use color codes and attributes, as
|
||
|
follow (press Ctrl-C then following letter, with optional value):
|
||
|
|
||
|
^Cb::
|
||
|
bold text
|
||
|
|
||
|
^Ccxx::
|
||
|
text color `xx` (see list of colors below)
|
||
|
|
||
|
^Ccxx,yy::
|
||
|
text color `xx` and background `yy` (see list of colors below)
|
||
|
|
||
|
^Co::
|
||
|
disable color and attributes
|
||
|
|
||
|
^Cr::
|
||
|
reverse video (revert text color with background)
|
||
|
|
||
|
^Cu::
|
||
|
underlined text
|
||
|
|
||
|
[NOTE]
|
||
|
The same code (without number for ^Cc) may be used to stop the
|
||
|
attribute.
|
||
|
|
||
|
Color codes for ^Cc are:
|
||
|
|
||
|
[width="20%",cols="^1m,2"]
|
||
|
|========================================
|
||
|
| 00 | white
|
||
|
| 01 | black
|
||
|
| 02 | dark blue
|
||
|
| 03 | dark green
|
||
|
| 04 | light red
|
||
|
| 05 | dark red
|
||
|
| 06 | magenta
|
||
|
| 07 | orange
|
||
|
| 08 | yellow
|
||
|
| 09 | light green
|
||
|
| 10 | cyan
|
||
|
| 11 | light cyan
|
||
|
| 12 | light blue
|
||
|
| 13 | light magenta
|
||
|
| 14 | gray
|
||
|
| 15 | light gray (white)
|
||
|
|========================================
|
||
|
|
||
|
Example: display of "hello everybody!" with "hello" in light blue bold and
|
||
|
"everybody" in light red underlined:
|
||
|
|
||
|
----------------------------------------
|
||
|
^Cc12^Cbhello^Cb^Cc04^Cu everybody^Cu^Cc!
|
||
|
----------------------------------------
|
||
|
|
||
|
[[weechat_options]]
|
||
|
WeeChat options (weechat.conf)
|
||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
include::autogen/user/weechat_options.txt[]
|
||
|
|
||
|
Colors for Curses GUI are:
|
||
|
|
||
|
[width="50%",cols="^3m,8"]
|
||
|
|========================================
|
||
|
| default | default terminal color (transparent for background)
|
||
|
| black | black
|
||
|
| red | dark red
|
||
|
| lightred | light red
|
||
|
| green | dark green
|
||
|
| lightgreen | light green
|
||
|
| brown | brown
|
||
|
| yellow | yellow
|
||
|
| blue | dark blue
|
||
|
| lightblue | light blue
|
||
|
| magenta | dark magenta
|
||
|
| lightmagenta | light magenta
|
||
|
| cyan | dark cyan
|
||
|
| lightcyan | light cyan
|
||
|
| white | white
|
||
|
|========================================
|
||
|
|
||
|
[[weechat_commands]]
|
||
|
WeeChat commands
|
||
|
~~~~~~~~~~~~~~~~
|
||
|
|
||
|
include::autogen/user/weechat_commands.txt[]
|
||
|
|
||
|
|
||
|
[[plugins]]
|
||
|
Plugins
|
||
|
-------
|
||
|
|
||
|
To learn more about plugin or script development (thru API), please read
|
||
|
'WeeChat Plugin API Reference' or 'WeeChat Scripting Guide'.
|
||
|
|
||
|
[[plugins_in_weechat]]
|
||
|
Plugins in WeeChat
|
||
|
~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
A plugin is dynamic library, written in C and compiled, which is loaded by
|
||
|
WeeChat.
|
||
|
Under GNU/Linux, the file has ".so" extension, ".dll" under Windows.
|
||
|
|
||
|
Plugins found are automatically loaded when WeeChat is starting, and it is
|
||
|
possible to load or unload plugins while WeeChat is running.
|
||
|
|
||
|
It's important to make difference between a 'plugin' and a 'script': a
|
||
|
'plugin' is a binary file compiled and loaded with command `/plugin`, whereas
|
||
|
a 'script' is a text file loaded with a plugin like 'perl' with command
|
||
|
`/perl`.
|
||
|
|
||
|
You can use command `/plugin` to load/unload a plugin, or list all loaded
|
||
|
plugins.
|
||
|
When a plugin is unloaded, all buffers created by this plugin are
|
||
|
automatically closed.
|
||
|
|
||
|
Examples to load, unload or list plugins:
|
||
|
|
||
|
----------------------------------------
|
||
|
/plugin load irc
|
||
|
/plugin unload irc
|
||
|
/plugin list
|
||
|
----------------------------------------
|
||
|
|
||
|
Default plugins are:
|
||
|
|
||
|
[width="50%",cols=">1s,5",options="header"]
|
||
|
|========================================
|
||
|
| Plugin | Description
|
||
|
| alias | Define alias for commands
|
||
|
| aspell | Spell checking for command line
|
||
|
| charset | Charset decoding/encoding for buffers
|
||
|
| demo | Demo plugin (not compiled by default)
|
||
|
| fifo | FIFO pipe used to remotely send commands to WeeChat
|
||
|
| irc | IRC chat protocol
|
||
|
| logger | Log buffers to files
|
||
|
| perl | Perl scripting API
|
||
|
| python | Python scripting API
|
||
|
| ruby | Ruby scripting API
|
||
|
| lua | Lua scripting API
|
||
|
| tcl | Tcl scripting API
|
||
|
| xfer | File transfer and direct chat
|
||
|
|========================================
|
||
|
|
||
|
[[alias_plugin]]
|
||
|
Alias plugin
|
||
|
~~~~~~~~~~~~
|
||
|
|
||
|
Alias plugin lets you create alias for commands (from WeeChat or other
|
||
|
plugins).
|
||
|
|
||
|
Commands
|
||
|
^^^^^^^^
|
||
|
|
||
|
include::autogen/user/alias_commands.txt[]
|
||
|
|
||
|
[[aspell_plugin]]
|
||
|
Aspell plugin
|
||
|
~~~~~~~~~~~~
|
||
|
|
||
|
Aspell plugin lets you check spelling in command line. It is possible to use
|
||
|
many languages by buffer.
|
||
|
|
||
|
Options (aspell.conf)
|
||
|
^^^^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
include::autogen/user/aspell_options.txt[]
|
||
|
|
||
|
Commands
|
||
|
^^^^^^^^
|
||
|
|
||
|
include::autogen/user/aspell_commands.txt[]
|
||
|
|
||
|
[[charset_plugin]]
|
||
|
Charset plugin
|
||
|
~~~~~~~~~~~~~~
|
||
|
|
||
|
Charset plugin lets you decode or encode data using charsets.
|
||
|
|
||
|
There is default charset for decode/encode, and specific charsets for buffers
|
||
|
(or group of buffers).
|
||
|
|
||
|
This plugin is optional, but recommended: if it's not loaded, WeeChat
|
||
|
can only read/write UTF-8 data.
|
||
|
|
||
|
Charset plugin should be autoloaded by WeeChat at startup. To be sure plugin
|
||
|
is loaded, try:
|
||
|
|
||
|
----------------------------------------
|
||
|
/charset
|
||
|
----------------------------------------
|
||
|
|
||
|
If command is not found, then load plugin with command:
|
||
|
|
||
|
----------------------------------------
|
||
|
/plugin load charset
|
||
|
----------------------------------------
|
||
|
|
||
|
If plugin is not found, then you should compile again WeeChat with
|
||
|
plugins and Charset support.
|
||
|
|
||
|
When Charset plugin starts, it displays terminal and internal charsets.
|
||
|
Terminal charset depends on your locale, and internal is UTF-8.
|
||
|
|
||
|
For example:
|
||
|
|
||
|
........................................
|
||
|
charset: terminal: ISO-8859-15, internal: UTF-8
|
||
|
........................................
|
||
|
|
||
|
Options (charset.conf)
|
||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
include::autogen/user/charset_options.txt[]
|
||
|
|
||
|
Commands
|
||
|
^^^^^^^^
|
||
|
|
||
|
include::autogen/user/charset_commands.txt[]
|
||
|
|
||
|
Set charset
|
||
|
^^^^^^^^^^^
|
||
|
|
||
|
To set global decode and encode charsets, use command `/set`.
|
||
|
|
||
|
For example:
|
||
|
|
||
|
----------------------------------------
|
||
|
/set charset.default.decode ISO-8859-15
|
||
|
/set charset.default.encode ISO-8859-15
|
||
|
----------------------------------------
|
||
|
|
||
|
If global decode charset is not set (for example during first
|
||
|
load of Charset plugin), it will be automatically set to terminal
|
||
|
charset (if it's different from UTF-8), or by default to 'ISO-8859-1'.
|
||
|
|
||
|
Default encode value is empty, so it sends by default with
|
||
|
internal charset (UTF-8).
|
||
|
|
||
|
To set IRC server charset, use command `/charset` on server buffer.
|
||
|
If you give only charset, then it will set decoding and encoding values.
|
||
|
|
||
|
For example:
|
||
|
|
||
|
----------------------------------------
|
||
|
/charset ISO-8859-15
|
||
|
----------------------------------------
|
||
|
|
||
|
It's equivalent to:
|
||
|
|
||
|
----------------------------------------
|
||
|
/charset decode ISO-8859-15
|
||
|
/charset encode ISO-8859-15
|
||
|
----------------------------------------
|
||
|
|
||
|
To set IRC channel (or private) charset, use same commands as server,
|
||
|
but on channel (or private) buffer.
|
||
|
|
||
|
To see all charsets used, use following command:
|
||
|
|
||
|
----------------------------------------
|
||
|
/set charset.*
|
||
|
----------------------------------------
|
||
|
|
||
|
Troubleshooting
|
||
|
^^^^^^^^^^^^^^^
|
||
|
|
||
|
For any problem with charsets, please look at 'WeeChat FAQ'.
|
||
|
|
||
|
[[fifo_plugin]]
|
||
|
Fifo plugin
|
||
|
~~~~~~~~~~~
|
||
|
|
||
|
You can remote control WeeChat, by sending commands or text to a FIFO pipe (if
|
||
|
option "plugins.var.fifo.fifo" is enabled, it is 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).
|
||
|
|
||
|
Syntax for the FIFO pipe commands/text is one of following:
|
||
|
|
||
|
........................................
|
||
|
plugin.buffer *text or command here
|
||
|
*text or command here
|
||
|
........................................
|
||
|
|
||
|
Some examples:
|
||
|
|
||
|
* nick change on IRC server freenode to "newnick":
|
||
|
|
||
|
----------------------------------------
|
||
|
$ echo 'irc.server.freenode */nick newnick' >~/.weechat/weechat_fifo_12345
|
||
|
----------------------------------------
|
||
|
|
||
|
* display text on IRC #weechat channel:
|
||
|
|
||
|
----------------------------------------
|
||
|
$ echo 'irc.freenode.#weechat *hello!' >~/.weechat/weechat_fifo_12345
|
||
|
----------------------------------------
|
||
|
|
||
|
* display text on current buffer:
|
||
|
|
||
|
----------------------------------------
|
||
|
$ echo '*hello!' >~/.weechat/weechat_fifo_12345
|
||
|
----------------------------------------
|
||
|
|
||
|
* send two commands to unload/reload Perl scripts (you have to separate them
|
||
|
with "\n"):
|
||
|
|
||
|
----------------------------------------
|
||
|
$ echo -e '*/perl unload\n*/perl autoload' >~/.weechat/weechat_fifo_12345
|
||
|
----------------------------------------
|
||
|
|
||
|
You can write a script to send command to all running WeeChat at same time,
|
||
|
for example:
|
||
|
|
||
|
[source,shell]
|
||
|
----------------------------------------
|
||
|
#!/bin/sh
|
||
|
if [ $# -eq 1 ]; then
|
||
|
for fifo in ~/.weechat/weechat_fifo_*
|
||
|
do
|
||
|
echo -e "$1" >$fifo
|
||
|
done
|
||
|
fi
|
||
|
----------------------------------------
|
||
|
|
||
|
If the script is called "auto_weechat_command", you can run it with:
|
||
|
|
||
|
----------------------------------------
|
||
|
$ ./auto_weechat_command 'irc.freenode.#weechat *hello'
|
||
|
----------------------------------------
|
||
|
|
||
|
[[irc_plugin]]
|
||
|
IRC plugin
|
||
|
~~~~~~~~~~
|
||
|
|
||
|
The IRC plugin is designed to chat through IRC protocol with other people.
|
||
|
|
||
|
It is multi-servers, and offers all supported IRC commands including DCC chat
|
||
|
and file transfer (via xfer plugin, see <<xfer_plugin>>).
|
||
|
|
||
|
Command line options
|
||
|
^^^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
It is possible to give URL for one or many IRC servers, as follow:
|
||
|
|
||
|
----------------------------------------
|
||
|
irc[6][s]://[pseudo[:mot_passe]@]irc.example.org[:port][/channel][,channel[...]
|
||
|
----------------------------------------
|
||
|
|
||
|
Example to join '#weechat' and '#toto' on server 'irc.freenode.net' server,
|
||
|
default port (6667), with nick 'nono':
|
||
|
|
||
|
----------------------------------------
|
||
|
$ weechat-curses irc://nono@irc.freenode.net/#weechat,#toto
|
||
|
----------------------------------------
|
||
|
|
||
|
Options (irc.conf)
|
||
|
^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
include::autogen/user/irc_options.txt[]
|
||
|
|
||
|
Commands
|
||
|
^^^^^^^^
|
||
|
|
||
|
include::autogen/user/irc_commands.txt[]
|
||
|
|
||
|
[[logger_plugin]]
|
||
|
Logger plugin
|
||
|
~~~~~~~~~~~~~
|
||
|
|
||
|
The Logger plugin lets you save content of buffers to files, with options
|
||
|
about what and how it is saved.
|
||
|
|
||
|
Options (logger.conf)
|
||
|
^^^^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
include::autogen/user/logger_options.txt[]
|
||
|
|
||
|
Commands
|
||
|
^^^^^^^^
|
||
|
|
||
|
include::autogen/user/logger_commands.txt[]
|
||
|
|
||
|
Log levels
|
||
|
^^^^^^^^^^
|
||
|
|
||
|
Logging is made with a level for each buffer. Default level is 9 (log
|
||
|
all messages displayed on buffer).
|
||
|
You can change level for one buffer, or a group of buffers.
|
||
|
|
||
|
Possible levels are 0 to 9. Zero means "do not log anything" and 9 means
|
||
|
"log all messages".
|
||
|
|
||
|
Plugins are using different levels for messages displayed.
|
||
|
IRC plugin uses following levels:
|
||
|
|
||
|
* level 1: message from user (on channel or private)
|
||
|
* level 2: nick change (you or someone else)
|
||
|
* level 3: any server message (except join/part/quit)
|
||
|
* level 4: server message join/part/quit
|
||
|
|
||
|
So if you set level 3 for an IRC channel, WeeChat will log all messages,
|
||
|
but not join/part/quit.
|
||
|
|
||
|
Some examples:
|
||
|
|
||
|
* set level 3 for IRC channel #weechat:
|
||
|
|
||
|
----------------------------------------
|
||
|
/set logger.level.irc.freenode.#weechat 3
|
||
|
----------------------------------------
|
||
|
|
||
|
* set level 3 for freenode server buffer:
|
||
|
|
||
|
----------------------------------------
|
||
|
/set logger.level.irc.server.freenode 3
|
||
|
----------------------------------------
|
||
|
|
||
|
* set level 3 for all channels on server freenode:
|
||
|
|
||
|
----------------------------------------
|
||
|
/set logger.level.irc.freenode 3
|
||
|
----------------------------------------
|
||
|
|
||
|
* set level 2 for all IRC buffers:
|
||
|
|
||
|
----------------------------------------
|
||
|
/set logger.level.irc 2
|
||
|
----------------------------------------
|
||
|
|
||
|
Filenames masks
|
||
|
^^^^^^^^^^^^^^^
|
||
|
|
||
|
It is possible to define a filename mask for each buffer, and use local buffer
|
||
|
variables to build filename. To see local variables for current buffer:
|
||
|
|
||
|
----------------------------------------
|
||
|
/buffer localvar
|
||
|
----------------------------------------
|
||
|
|
||
|
For example if you want one directory by IRC server and one file by channel
|
||
|
inside:
|
||
|
|
||
|
----------------------------------------
|
||
|
/set logger.mask.irc "irc/$server/$channel.weechatlog"
|
||
|
----------------------------------------
|
||
|
|
||
|
You'll have following files:
|
||
|
|
||
|
........................................
|
||
|
~/.weechat/
|
||
|
|--- logs/
|
||
|
|--- irc/
|
||
|
|--- freenode/
|
||
|
| freenode.weechatlog
|
||
|
| #weechat.weechatlog
|
||
|
| #mychan.weechatlog
|
||
|
|--- oftc/
|
||
|
| oftc.weechatlog
|
||
|
| #chan1.weechatlog
|
||
|
| #chan2.weechatlog
|
||
|
........................................
|
||
|
|
||
|
[[scripts_plugins]]
|
||
|
Scripts plugins
|
||
|
~~~~~~~~~~~~~~~
|
||
|
|
||
|
WeeChat provides 5 scripting plugins: Perl, Python, Ruby, Lua and Tcl.
|
||
|
These plugins can load, execute and unload scripts for these languages.
|
||
|
|
||
|
For more information about how to write scripts, or WeeChat API for
|
||
|
scripts, please read 'WeeChat Scripting Guide'.
|
||
|
|
||
|
You can find some scripts for WeeChat here:
|
||
|
http://weechat.flashtux.org/plugins.php
|
||
|
|
||
|
Perl commands
|
||
|
^^^^^^^^^^^^^
|
||
|
|
||
|
include::autogen/user/perl_commands.txt[]
|
||
|
|
||
|
Python commands
|
||
|
^^^^^^^^^^^^^^^
|
||
|
|
||
|
include::autogen/user/python_commands.txt[]
|
||
|
|
||
|
Ruby commands
|
||
|
^^^^^^^^^^^^^
|
||
|
|
||
|
include::autogen/user/ruby_commands.txt[]
|
||
|
|
||
|
Lua commands
|
||
|
^^^^^^^^^^^^
|
||
|
|
||
|
include::autogen/user/lua_commands.txt[]
|
||
|
|
||
|
Tcl commands
|
||
|
^^^^^^^^^^^^
|
||
|
|
||
|
include::autogen/user/tcl_commands.txt[]
|
||
|
|
||
|
[[xfer_plugin]]
|
||
|
Xfer plugin
|
||
|
~~~~~~~~~~~
|
||
|
|
||
|
Xfer plugin brings:
|
||
|
|
||
|
* direct chat (between two hosts, without server): for example "DCC Chat" via
|
||
|
IRC plugin
|
||
|
* file transfer, for example "DCC" via IRC plugin
|
||
|
|
||
|
Options (xfer.conf)
|
||
|
^^^^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
include::autogen/user/xfer_options.txt[]
|
||
|
|
||
|
Commands
|
||
|
^^^^^^^^
|
||
|
|
||
|
include::autogen/user/xfer_commands.txt[]
|
||
|
|
||
|
|
||
|
[[authors]]
|
||
|
Authors
|
||
|
-------
|
||
|
|
||
|
[[developers]]
|
||
|
Developers
|
||
|
~~~~~~~~~~
|
||
|
|
||
|
FlashCode (Sébastien Helleu)::
|
||
|
main developer
|
||
|
|
||
|
Kolter (Emmanuel Bouthenot)::
|
||
|
developer, debian packager
|
||
|
|
||
|
[[contributors]]
|
||
|
Contributors
|
||
|
~~~~~~~~~~~~
|
||
|
|
||
|
Ptitlouis::
|
||
|
first debian packager
|
||
|
|
||
|
Jiri Golembiovsky::
|
||
|
czech translation, patches
|
||
|
|
||
|
Pavel Shevchuk::
|
||
|
russian translation
|
||
|
|
||
|
Frank Zacharias::
|
||
|
german translation
|
||
|
|
||
|
Voroskoi::
|
||
|
hungarian translation
|
||
|
|
||
|
Rudolf Polzer::
|
||
|
patches
|
||
|
|
||
|
Jim Ramsay::
|
||
|
patches
|
||
|
|
||
|
Odin::
|
||
|
SuSE RPM
|
||
|
|
||
|
Pistos::
|
||
|
patches
|
||
|
|
||
|
Gwenn::
|
||
|
patches
|
||
|
|
||
|
|
||
|
[[support]]
|
||
|
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!).
|
||
|
|
||
|
Ways to get support:
|
||
|
|
||
|
* IRC: server 'irc.freenode.net', channels '#weechat' (english) and
|
||
|
'#weechat-fr' (french)
|
||
|
* WeeChat forum: http://forums.flashtux.org/
|
||
|
* Mailing list:
|
||
|
** subscribe: http://mail.nongnu.org/mailman/listinfo/weechat-support
|
||
|
** send mail to weechat-support@nongnu.org
|
||
|
** archives: http://mail.nongnu.org/archive/html/weechat-support
|