WeeChat FAQ (Frequently Asked Questions)
========================================
FlashCode <flashcode@flashtux.org>


[[general]]
General
-------


[[why_choose_weechat]]
Why choose WeeChat? X-Chat and Irssi are so good...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Because WeeChat is very light and has new features.
Some features (version > = 0.3.x):

* multi-protocol support via plugins (IRC, Jabber)
* many remote GUI's in addition to Curses (coming soon)
* available in many languages
* extensible with plugins (C, Perl, Python, Ruby, Lua, Tcl)
* buffers with free content
* display filtering by tags and regular expressions
* horizontal and vertical window split
* customizable and extensible bars
* nicklist available in all GUI's
* incremental text search in buffers, jump to highlights
* FIFO pipe for remote control
* aspell support
* double charset (encoding/decoding)
* developed from scratch (not based on any other client)
* multi-platform
* 100% GPL and free

More info on this page: http://www.weechat.org/features


[[compilation_install]]
Compilation / install
---------------------


[[gui]]
I heard about many GUI's for WeeChat. How can I compile/use them?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Today only a Curses GUI is available.

Other GUI's will be available as remote clients (currently under development).


[[compile_git]]
I can't compile WeeChat after cloning git repository, why?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The recommended way to compile WeeChat is with cmake.

If you're compiling with autotools (and not cmake), check that you have latest
version of autoconf and automake (WeeChat is developed with autoconf 2.61 and
automake 1.10.1).

The other way is to install the "devel package", which needs less dependencies.
This package is built almost every day using git repository. Note that this
package may not correspond exactly to git base and that it's less convenient
than git cloning for installing updates.


[[lost]]
I've launched WeeChat, but I'm lost, what can I do?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For help you can type `/help`. For help about a command, type `/help command`.
Keys and commands are listed in documentation.

It's recommended for new users to read the quickstart guide (see the doc page
on the website).


[[display]]
Display
-------


[[charset]]
I don't see some chars with accents, what can I do?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

It's common issue, please read carefully and check *ALL* solutions below.

For versions < 0.2.3, please upgrade to the latest stable version.

For versions > = 0.2.3:

* check that weechat-curses is linked to libncursesw (warning: needed on most
  distributions but not all): `ldd /path/to/weechat-curses`
* check that the "Charset" plugin is loaded with `/plugin` command (if it is
  not, then you probably need the "weechat-plugins" package)
* check the charset line (on server buffer). You should see 'ISO-XXXXXX' or
  'UTF-8' for terminal charset. If you see 'ANSI_X3.4-1968' or other values,
  your locale is probably wrong.
* setup global decode value, for example:
** with WeeChat < = 0.2.6: `/setp charset.global.decode = ISO-8859-15`
** with WeeChat > = 0.3.x: `/set charset.default.decode "ISO-8859-15"`
* if you are using UTF-8 locale:
** check that your terminal is UTF-8 ready (terminal recommended for UTF-8 is
   rxvt-unicode)
** if you are using screen, check that it is run with UTF-8 mode
   ("`defutf8 on`" in ~/.screenrc or `screen -U` to run screen)

[NOTE]
UTF-8 locale is recommended for WeeChat. If you're using ISO or other
locale, please check that *all* your settings (terminal, screen, ..) are ISO
and *not* UTF-8.


[[bars_background]]
Bars like title and status are not filled, background color stops after text, why?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This may be caused by a bad value of the TERM variable in your shell (look at
output of `echo $TERM` in your terminal).

Depending on where you launch WeeChat, you should have:

* if WeeChat runs locally or on a remote machine without screen, it depends on
  the terminal used: 'xterm', 'rxvt', ..
* if WeeChat runs under screen, you should have 'screen'.

If needed, fix your TERM variable: `export TERM="xxx"`.


[[screen_weird_chars]]
When I'm using weechat under screen, I have weird random chars, how do I fix that?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This may be caused by bad value of the TERM variable in your shell (look at
output of `echo $TERM` in your terminal).

For example, 'xterm-color' may display such weird chars, you can use 'xterm'
which is ok (like many other values).

If needed, fix your TERM variable: `export TERM="xxx"`.


[[buffer_vs_window]]
I heard about "buffers" and "windows", what's the difference?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A 'buffer' is composed by a number, a name, lines displayed (and some other
data).

A 'window' is a screen area which displays a buffer. It is possible to split
your screen into many windows.

Each window displays one buffer. A buffer can be hidden (not displayed by a
window) or displayed by one or more windows.


[[terminal_copy_paste]]
How can I copy/paste text without pasting nicklist?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

You can use a terminal with rectangular selection (like rxvt-unicode,
konsole, gnome-terminal, ...). Key is usually ctrl + alt + mouse selection.

Another solution is to move nicklist to top or bottom, for example:

* with WeeChat < = 0.2.6: +
  `set look_nicklist_position = top`
* with WeeChat > = 0.3.x: +
  `/bar set nicklist position top`


[[urls]]
How can I click on long URLs (more than one line)?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

WeeChat displays time and prefix for each line and optional bars around chat
area, so it is not possible to display long URLs without truncating them.

You can use one of following scripts:

urlbar.py::
    display URLs in a bar

urlgrab.py::
    logs URLs and open them in browser

url_shorten.rb::
tinyurl.py::
shortenurl.py::
    shorten long URLs

List of scripts about URLs: http://www.weechat.org/scripts/stable/tag/url


[[change_locale_without_quit]]
I want to change the language used by WeeChat for messages, but without exiting WeeChat, is it possible?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Yes, you have to use a python script, shell.py (available on WeeChat website)
and issue these commands when script is loaded:

  /shell setenv LANG=en_US.UTF-8
  /upgrade

To have english messages with UTF-8 encoding for terminal, for ISO users, you
can issue: `/shell setenv LANG=en_US`.


[[key_bindings]]
Key bindings
------------


[[meta_keys]]
Some meta keys (alt + key) are not working, why?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If you're using some terminals like xterm or uxterm, some meta keys does not
work by default. You can add a line in file '~/.Xresources':

* for xterm:
----------------------------------------
XTerm*metaSendsEscape: true
----------------------------------------
* for uxterm:
----------------------------------------
UXTerm*metaSendsEscape: true
----------------------------------------

And then reload resources (`xrdb -override ~/.Xresources`) or restart X.


[[customize_key_bindings]]
How can I customize key bindings?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Key bindings are customizable with `/key` command.

Default key Meta-k (usually Alt-k) lets you grab key code and insert it in
command line.


[[irc]]
IRC
---


[[ignore_vs_filter]]
What is the difference between the /ignore and /filter commands?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `/ignore` command is an IRC command, so it applies only for IRC buffers
(servers and channels).
It lets you ignore some nicks or hostnames of users for a server or channel
(command will not apply on content of messages).
Matching messages are deleted by IRC plugin before display (so you'll
never see them).

The `/filter` command is a core command, so it applies to any buffer.
It lets you filter some lines in buffers with tags or regular expression for
prefix and content of line.
Filtered lines are only hidden, not deleted, and you can see them if you
disable filters (by default, the key alt + "=" toggles filters).


[[filter_irc_join_part_quit]]
How can I filter join/part/quit messages on IRC channels?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

According to WeeChat version:

* with WeeChat < = 0.2.6: +
  `/ignore * join #weechat freenode` +
  `/ignore * part #weechat freenode` +
  `/ignore * quit #weechat freenode` +
  (channel and/or server may be "*", `/help ignore` for help)

* with WeeChat > = 0.3.x:

** smart filter (keep join/part/quit from users who spoke recently): +
   `/set irc.look.smart_filter on` +
   `/filter add irc_smart * irc_smart_filter *` +
   (`/help irc.look.smart_filter` and `/help filter` for help)

** global filter (hide *all* join/part/quit): +
   `/filter add jpk * irc_join,irc_part,irc_quit *` +
   (`/help filter` for help)


[[filter_voice_messages]]
How can I filter voice messages (eg on Bitlbee server)?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

It's not easy to filter voice messages, because voice mode can be set with other
modes in same IRC message.

If you want to do that, it's probably because Bitlbee is using voice to show
away users, and you are flooded with voice messages. Therefore, you can change
that and let WeeChat use a special color for away nicks in nicklist.

On channel '&bitlbee', do:
----------------------------------------
set away_devoice false
----------------------------------------

For checking away nicks in WeeChat, see question about
<<color_away_nicks,away nicks>>.


[[color_away_nicks]]
How can I see away nicks in nicklist?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

You have to set option 'irc.network.away_check' to a positive value (minutes
between each check of away nicks).

You can set option 'irc.network.away_check_max_nicks' to limit away check on
small channels only.

For example, check every 5 minutes for away nicks, for channels with max 25
nicks:

----------------------------------------
/set irc.network.away_check 5
/set irc.network.away_check_max_nicks 25
----------------------------------------


[[highlight_notification]]
How can I be warned when someone highlights me on a channel?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

According to WeeChat version:

* with WeeChat < = 0.2.6: use script 'sound.pl' (available on scripts page),
  and then setup a system command (to play sound, display message, ..) with
  this command: +
  `/setp perl.sound.cmd_highlight = "/path/to/command arguments"`
* with WeeChat > = 0.3.x: use script 'launcher.pl' (available on scripts page),
  and then setup a system command (to play sound, display message, ..) with
  this command: +
  `/set plugins.var.perl.launcher.signal.weechat_highlight "/path/to/command arguments"`

Many other scripts exist for notification, please look at plugins/scripts page:
http://www.weechat.org/scripts


[[plugins_scripts]]
Plugins / scripts
-----------------


[[openbsd_plugins]]
I'm using OpenBSD and WeeChat does not load any plugins, what's wrong?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Under OpenBSD, plugin filenames end with ".so.0.0" (".so" for Linux).

You must set that up:

* with WeeChat < = 0.2.6: +
  `/set plugins_extension = ".so.0.0"`
* with WeeChat > = 0.3.x: +
  `/set weechat.plugin.extension ".so.0.0"`

Then: `/plugin autoload`.


[[load_scripts]]
How can I load Perl/Python/Ruby/Lua/Tcl scripts? Are scripts compatible with other IRC clients?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

You can use the commands `/perl`, `/python`, `/ruby`, `/lua` and `/tcl` to load
scripts (default path for scripts is '~/.weechat/<language>/').

Scripts are not compatible with other IRC clients.

Notes:

* scripts in '~/.weechat/<language>/autoload/' are automatically loaded when
  WeeChat is starting up.
* a 'tcl' plugin is available with version > = 0.3.0.


[[settings]]
Settings
--------


[[memory_usage]]
How can I tweak WeeChat to consume less memory?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

You can try following tips to consume less memory:

* use the latest stable version (it is supposed to have less memory leaks than
  older versions)
* do not load some plugins if you don't use them, for example: aspell, fifo,
  logger, perl, python, ruby, lua, tcl, xfer (used for DCC)
* load only scripts that you really need
* reduce value of option 'weechat.history.max_lines' (number of lines saved in
  memory for each buffer)
* reduce value of option 'weechat.history.max_commands' (number of user commands
  saved in memory)


[[development]]
Development
-----------


[[bug_task_patch]]
How should I report bugs, ask for new features or send patches?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

There are 3 ways:

. you can join us on IRC: 'irc.freenode.net', channel '#weechat'
. you can use the savannah website:
  * report a bug: https://savannah.nongnu.org/bugs/?group=weechat
  * request a new feature: https://savannah.nongnu.org/task/?group=weechat
  * send a patch: https://savannah.nongnu.org/patch/?group=weechat
. you can mail developers, look at support page for developer's mails:
  http://www.weechat.org/about
  (you can subscribe and send to "support" mailing list)


[[supported_os]]
What is the list of supported platforms for WeeChat? Will it be ported to other operating systems?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The full list is on this page: http://www.weechat.org/download

We do our best to run on as many platforms as possible. Help is welcome for
some OS' we don't have, to test WeeChat.


[[help_developers]]
I want to help WeeChat developers. What can I do?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

There's many tasks to do (testing, code, documentation, ...)

Please contact us via IRC or mail, look at support page:
http://www.weechat.org/about


[[donate]]
Can I give money or other things to WeeChat developers?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

You can give us money to help development.
Details on http://www.weechat.org/donate
