WeeChat DevCenter

Saturday, March 10 2012

Bracketed paste mode

The support for terminal bracketed paste mode has been added. In this mode, pasted text is bracketed with control sequences so that WeeChat can differentiate pasted text from typed-in text (ESC[200~, followed by the pasted text, followed by ESC[201~).

New options:

  • weechat.look.paste_bracketed: enable terminal "bracketed paste mode" (off by default)
  • weechat.look.paste_bracketed_timer_delay: force end of bracketed paste after this delay (in seconds) if control sequence for end of bracketed paste was not received in time (10 seconds by default)

Changes on option weechat.look.paste_max_lines: now -1 is used to disable option (and new default value is 1 instead of 3). According to value, you have following behaviour:

  • value -1: paste detection disabled (any paste is immediately inserted in input, without confirmation)
  • value 0: WeeChat will ask confirmation for any paste (even one char)
  • value N (>= 1): WeeChat will ask for at least N+1 lines

When pasting one line with newline in bracketed paste mode, the newline at the end of paste is automatically removed (regardless the value of option weechat.look.paste_max_lines).

According to my tests the "bracketed paste mode" works fine with:

  • terminals: rxvt-unicode (9.15), xterm (276), mintty (1.0.3)
  • multiplexer: screen (4.00.03)

According to my tests it currently does not work with:

  • terminals: putty like (planned, committed recently)
  • multiplexer: tmux (1.6) (planned, committed recently)

Please comment this post if you have info about other terminals (supported or not).

Sunday, February 26 2012

Version 0.3.7

Version 0.3.7 is available!

As usual, many new features and bug fixes, see ChangeLog for detail.

Important: please read the release notes if you are upgrading to this version (from any other version).

New major features in this release:

  • support of Scheme scripts (new plugin "guile") (see this post)
  • support of Python 3.x (but version 2.x still recommended) (see this post)
  • add "weechat" protocol in relay plugin for remote interfaces, like QWeeChat (see this post)
  • new option irc.color.mirc_remap to remap mirc colors in irc messages
  • new options irc.look.highlight_{server|channel|pv} to customize or disable default nick highlight
  • new option "capabilities" in irc servers (to enable some client capabilities on connection)
  • new option weechat.history.max_buffer_lines_minutes to limit buffer history by time
  • use extended regex in /filter, /ignore and /list
  • add support of flags in regular expressions and highlight options
  • add URL transfer in plugin API (with hook_process) (see this post)
  • add translations in japanese
  • add doc for relay protocol
  • add developer's guide

New options:

  • irc.look.highlight_server
  • irc.look.highlight_channel
  • irc.look.highlight_pv
  • irc.look.mirc_remap
  • irc.server.xxx.capabilities
  • relay.network.allowed_ips
  • relay.network.compression_level
  • weechat.look.scroll_bottom_after_switch
  • weechat.completion.base_word_until_cursor
  • weechat.history.max_buffer_lines_minutes
  • weechat.history.max_buffer_lines_number (old name was weechat.history.max_lines)

New default alias:

  • /umode --> /mode $nick

New keys:

  • alt + "/": jump to last buffer displayed (/input jump_last_buffer_displayed)

Note: to add missing keys, you can use command /key missing

Wednesday, January 18 2012

URL transfer in API

URL transfer has been added in API for plugins and scripts (using libcurl).

A new function has been added: "hook_process_hashtable". Behaviour is the same as "hook_process", but with an extra "options" (a hashtable). To download URL content (html page or file), the syntax is (example is python):

                               { 'file_out': '/tmp/url.txt' },
                               10000, 'my_process_cb', '')

This code will download URL in file "/tmp/url.txt" and call function "my_process_cb" when done, with return code:

  • 0: transfer ok
  • 1: invalid URL
  • 2: transfer error
  • 3: not enough memory
  • 4: error with a file

It is possible to download URL without any option, then the output is on standard output of process (received as "out" in callback, possibly in many chunks, depending on page size):

weechat.hook_process('url:http://weechat.org/download/', 10000, 'my_process_cb', '')

Sunday, December 25 2011

QWeeChat - Python/Qt GUI

Christmas gift: "QWeeChat", the first remote interface for WeeChat. It is written in Python, using Qt toolkit.

This is an alpha version of this interface, only some features are implemented, but it's usable as-is.

The source code is available on download page, and requires latest development version of WeeChat.
New versions will follow, as well as interfaces for other systems like mobile devices (first should be Android).

A screenshot of QWeeChat in action (click for full size):


Merry Christmas and happy new year 2012 with WeeChat and QWeeChat!

Tuesday, November 1 2011

So many ways to go to first buffer...

  1. key alt+1
  2. key alt+j, then 0, then 1
  3. key F5 *
  4. key F6 *
  5. key ctrl-p *
  6. key ctrl-n *
  7. key alt+left *
  8. key alt+right *
  9. key alt+up *
  10. key alt+down *
  11. key alt+a (if buffer #1 is first in hotlist)
  12. left mouse button with long gesture to the left (with mouse enabled)
  13. command /buffer 1
  14. command /buffer core.weechat (if core buffer is #1)
  15. command /buffer close 2-99999 (joke! - this will destroy all buffers and keep only buffer(s) with number 1)
  16. command /buffer move 1 (joke! - current buffer will become #1)

There are other ways with scripts, but it's cheating!

* : press key many times until you reach buffer #1.

Saturday, October 22 2011

Version 0.3.6

Version 0.3.6 is available!

As usual, many new features and bug fixes, see ChangeLog for detail.

Important: please read the release notes if you are upgrading to this version (from any other version).

New major features in this release:

  • mouse support (see this post)
  • cursor mode (free movement of cursor on screen)
  • contexts for keys (default, search, cursor, mouse)
  • hdata in API (direct access to WeeChat data)
  • "inactive" colors for inactive windows and lines in merged buffers (see this post)
  • support of merged buffers in /layout, save layout of buffers/windows on /upgrade (see this post)
  • horizontal scrolling in buffers with free content
  • split of outgoing IRC messages
  • options for "more" chars in bars
  • bold not used any more for basic colors (if terminal has more than 16 colors)
  • automatic zoom on current window when terminal becomes too small for windows
  • new command /repeat
  • local variable "highlight_regex" in buffers

New options:

  • weechat.look.bar_more_down
  • weechat.look.bar_more_left
  • weechat.look.bar_more_right
  • weechat.look.bar_more_up
  • weechat.look.color_basic_force_bold
  • weechat.look.color_inactive_buffer
  • weechat.look.color_inactive_message
  • weechat.look.color_inactive_prefix
  • weechat.look.color_inactive_prefix_buffer
  • weechat.look.color_inactive_time
  • weechat.look.color_inactive_window
  • weechat.look.eat_newline_glitch
  • weechat.look.item_buffer_filter
  • weechat.look.mouse
  • weechat.look.mouse_timer_delay
  • weechat.look.separator_horizontal
  • weechat.look.separator_vertical
  • weechat.color.chat_inactive_buffer
  • weechat.color.chat_inactive_window
  • weechat.color.chat_prefix_buffer_inactive_buffer
  • weechat.color.chat_tags
  • logger.file.flush_delay

New keys:

  • alt + "m": toggle mouse (/mouse toggle)

New keys have been added for context "cursor" and "mouse", please see documentation.

Note: to add missing keys, you can use command /key missing

Friday, September 23 2011

Inactive colors

New "inactive" colors have been added, to use a different text color for inactive windows or inactive lines (lines from merged buffer which is not selected).

Some options have been added to control display of inactive color, and of course inactive color themselves.

The first two options control wheter inactive colors are used for inactive windows or inactive lines in merged buffers:

  • /set weechat.look.color_inactive_window (default: off)
  • /set weechat.look.color_inactive_buffer (default: off)

Some options are used to specify if time/prefix_buffer/prefix/message will use inactive colors or not:

  • /set weechat.look.color_inactive_time (default: off)
  • /set weechat.look.color_inactive_prefix_buffer (default: on)
  • /set weechat.look.color_inactive_prefix (default: on)
  • /set weechat.look.color_inactive_message (default: on)

And finally, the three new colors used for inactive windows and inactive lines in merged buffers:

  • /set weechat.color.chat_inactive_window (default: darkgray, suggested: 245)
  • /set weechat.color.chat_inactive_buffer (default: darkgray, suggested: 245)
  • /set weechat.color.chat_prefix_buffer_inactive_buffer (default: darkgray, suggested: 58)

Sunday, August 28 2011

Beautify your WeeChat

Some tips to beautify your WeeChat, using unicode chars and some colors.

Unicode chars (your locale must be UTF-8)

A full line for separator between prefix (usually nick) and messages:

/set weechat.look.prefix_suffix "│"

Full line for read marker:

/set weechat.look.read_marker_string "─"

Arrows for join/quit (be careful, impact on log files):

/set weechat.look.prefix_join "▬▬▶"
/set weechat.look.prefix_quit "◀▬▬"

String for bar item "buffer_filter" (WeeChat >= 0.3.6):

/set weechat.look.item_buffer_filter "•"

"More" indicators in bars (WeeChat >= 0.3.6):

/set weechat.look.bar_more_down "▼"
/set weechat.look.bar_more_left "◀"
/set weechat.look.bar_more_right "▶"
/set weechat.look.bar_more_up "▲"

Colors (for WeeChat >= 0.3.5 with a terminal supporting 256 colors)

Time with gray shading, and no colon separator (WeeChat >= 0.3.5):

/set weechat.look.buffer_time_format "${252}%H${245}%M${240}%S"

Note: updated in WeeChat 0.4.2, the syntax is now:

/set weechat.look.buffer_time_format "${color:252}%H${color:245}%M${color:240}%S"

Another "blue" for background of title and status bars:

/set weechat.bar.title.color_bg 60
/set weechat.bar.status.color_bg 60

Some dark colors for delimiters, host,...:

/set weechat.color.chat_delimiters 29
/set weechat.color.chat_host 24
/set weechat.color.chat_prefix_suffix 24
/set weechat.color.nicklist_away 244
/set weechat.color.separator 60
/set irc.color.reason_quit  244
/set irc.color.topic_new  36
/set irc.color.topic_old 244

More nick colors: add for example "31,35,38,40,49,63,70,80,92,99,112,126,130,138,142,148,160,162,167,169,174,176,178,184,186,210,212,215,247" to nick colors:

/set weechat.color.chat_nick_colors "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue,31,35,38,40,49,63,70,80,92,99,112,126,130,138,142,148,160,162,167,169,174,176,178,184,186,210,212,215,247"

Saturday, August 6 2011

New features for layout

The layout has improved, here is the list of new features and a bug fixed:

  • merged buffers are now supported in layout: WeeChat will auto merge buffers when they are opened and on /layout apply
  • the layout for windows and buffers is automatically restored after /upgrade (not the layout saved, but the layout you had immediately before doing /upgrade)
  • an old bug was causing bad order of buffers when connecting to many servers at same time, and then /layout apply was required after starting WeeChat


Tuesday, July 26 2011

Mouse support and free movement of cursor

Mouse support has been added to WeeChat, and a "cursor" mode: a mode when you can move cursor everywhere and do actions with keys on focused area.

New commands added:


Before using mouse, add missing keys:

/key missing

Mouse events (clicks on buttons, gestures) are caught as special "keys", in context "mouse". For a list of default events, you can look at documentation (default keys) or output of this command in WeeChat:

/key list mouse

Mouse is not enabled by default. To enable it (at startup and now), do:

/set weechat.look.mouse on
/mouse enable

When mouse is enabled, you can use shift+selection or shift+buttons to select/paste text (like when mouse is disabled). Note that on some terminals like iTerm, you may have to use alt instead of shift.
New key alt+m will toggle mouse on/off.

Finally, thanks to Nei for his scripts, the mouse support in WeeChat is partially based on them.

Mouse support will be improved in near future, for example interactions with words/messages in chat area (select text, click on URLs, ..).
Stay tuned!

Wednesday, June 15 2011

Highlight with regex in specific buffers

A local variable "highlight_regex" has been added in buffers.

It is recommended to use script buffer_autoset.py to set it, so that it's saved and set at any time when buffer is created.

However, it's still possible to set it manually (for testing) with command: /buffer set highlight_regex XXX.

For example, to highlight all messages on server freenode, channel #test:

/autosetbuffer add irc.freenode.#test highlight_regex .*

Sunday, May 15 2011

Version 0.3.5

Version 0.3.5 is available!

As usual, many new features and bug fixes, see ChangeLog for detail.

Important: please read the release notes if you are upgrading to this version (from any other version).

New major features in this release:

  • 256 colors support improved (dynamic allocation of colors) (see this post)
  • attributes for colors (bold/reverse/underline) (see this post)
  • better scroll of input (with long text)
  • output of /help improved for list of commands and their arguments (see this post)
  • remember scroll position of buffers in windows
  • list of buffers in filters (see this post)
  • count of messages in hotlist buffers (see this post)
  • swap buffers of windows
  • balance of windows
  • new API function to set help on plugin/script options
  • speller options in aspell plugin (see this post)
  • option for SSL priorities in IRC servers
  • color nicks in nicklist and output of /names

New options:

  • weechat.look.hotlist_add_buffer_if_away
  • weechat.look.hotlist_buffer_separator
  • weechat.look.hotlist_count_max
  • weechat.look.hotlist_count_min_msg
  • weechat.color.status_count_msg
  • weechat.color.status_count_private
  • weechat.color.status_count_highlight
  • weechat.color.status_count_other
  • weechat.look.highlight_tags
  • weechat.look.read_marker_string
  • weechat.look.input_cursor_scroll
  • weechat.look.color_pairs_auto_reset
  • irc.color.topic_old
  • irc.color.topic_new
  • irc.color.nick_prefixes
  • irc.look.buffer_switch_autojoin
  • irc.look.buffer_switch_join
  • irc.look.smart_filter_nick
  • irc.look.color_nicks_in_nicklist
  • irc.look.color_nicks_in_names

New keys:

  • alt + "w", alt + "b": balance the sizes of all windows (/window balance)
  • alt + "w", alt + "s": swap buffers of two windows (/window swap)

Note: to add missing keys, you can use command /key missing

Monday, April 11 2011

Count of messages in hotlist

Count of messages (by priority) has been added to hotlist.

New options:

  • /set weechat.look.hotlistbufferseparator (default: ", ")
  • /set weechat.look.hotlistcountmax (default: 2)
  • /set weechat.look.hotlistcountmin_msg (default: 2)
  • /set weechat.color.statuscountmsg (default: "brown")
  • /set weechat.color.statuscountprivate (default: "green")
  • /set weechat.color.statuscounthighlight (default: "magenta")
  • /set weechat.color.statuscountother (default: "default")

Example with default config:

Count of messages in hotlist

(2 highlights and 5 messages on #test, 1 highlight and 1 private message from FlashCode)

Wednesday, March 9 2011

List of buffers in filters

It is now possible to use a list of buffers in filters. Exclusion of buffers is allowed using prefix "!".

Example: add IRC smart filter on all freenode channels, but not channels beginning with "#private":

/filter add irc_smart irc.freenode.*,!*#private* irc_smart_filter *

Thursday, February 17 2011

Attributes for colors

Attributes have been added for color options. List of supported attributes:

  • "*": bold
  • "!": reverse
  • "_": underline

Attributes are optional and can be added before color name/number/alias.

For self nick as white underlined:

/set weechat.color.chat_nick_self _white

For time in status bar as orange underlined with bold:

/set weechat.color.status_time *_214

Wednesday, February 9 2011

Help of commands improved

The list of commands in /help commands has been improved.

By default it's now a short list (only names of commands), and long list is possible with option -listfull. Moreover, it is possible to list commands for one plugin (or core) only.

Example of short list for irc plugin: /help -list irc

  admin      deop       join       mode       part       samode     stats      voice
  allchan    devoice    kick       motd       ping       sanick     summon     wallchops
  allserv    die        kickban    msg        pong       sapart     time       wallops
  ban        disconnect kill       names      query      saquit     topic      who
  connect    halfop     links      nick       quote      server     trace      whois
  ctcp       ignore     list       notice     reconnect  service    unban      whowas
  cycle      info       lusers     notify     rehash     servlist   userhost
  dcc        invite     map        op         restart    squery     users
  dehalfop   ison       me         oper       sajoin     squit      version

Example of long list for core commands: /help -listfull irc

  admin - find information about the administrator of the server
  allchan - execute a command on all channels of all connected servers
  allserv - execute a command on all connected servers
  ban - ban nicks or hosts
  connect - connect to IRC server(s)
  ctcp - send a CTCP message (Client-To-Client Protocol)
  cycle - leave and rejoin a channel
  dcc - start a DCC (file transfer or direct chat)
  dehalfop - remove channel half-operator status from nick(s)
  deop - remove channel operator status from nick(s)
  devoice - remove voice from nick(s)

Moreover, display of command arguments in /help <command> has been improved.

Old version: /help server

[irc]  /server  [list [servername]] | [listfull [servername]] | [add servername hostname[/port] [-temp] ...

New version: /help server

[irc]  /server  list|listfull [<server>]
                add <server> <hostname>[/<port>] [-temp] [-<option>[=<value>]] [-no<option>]
                copy|rename <server> <new_name>
                del|keep <server>

Thursday, February 3 2011

Dynamic color pairs

WeeChat now creates color pairs dynamically: when a color (foreground + background) is used on screen, a pair is created if it does not yet exist in pairs table.

Therefore, it's not needed any more to use /color add to add colors to use them in options. It is possible to use any terminal color by number in options. However, you can still create an alias on number with command /color alias.

Sunday, January 16 2011

Version 0.3.4

Version 0.3.4 is available!

As usual, many new features and bug fixes, see ChangeLog for detail.

Important: please read the release notes if you are upgrading to this version (from any other version).

New major features in this release:

  • 256 colors support, with unlimited number of nick colors (see this post)
  • irc proxy (relay plugin)
  • redirection of IRC commands (see this post)
  • new irc command /notify
  • rmodifier plugin (see this post)
  • regular expressions for highlights
  • color support for timestamp in chat buffer (see this post)
  • irc option to force color for some nicks
  • share input line between buffers

New options:

  • weechat.color.chat_nick_colors
  • weechat.look.highlight_regex
  • weechat.look.hotlist_unique_numbers
  • weechat.look.input_share
  • weechat.look.input_share_overwrite
  • weechat.look.prefix_align_min
  • irc.look.notify_tags_ison
  • irc.look.notify_tags_whois
  • irc.network.notify_check_ison
  • irc.network.notify_check_whois
  • option "notify" in irc servers
  • irc.look.nick_color_force
  • irc.look.item_away_message
  • irc.color.nick_prefix
  • irc.color.nick_suffix

Sunday, January 9 2011

256 colors

WeeChat now supports 256 colors!

Using new command /color you can browse WeeChat and terminal colors, and define custom pairs. See documentation for more information.

Screenshot (click for full size):

256 colors

Tuesday, December 7 2010

Colored time for messages

It is now possible to add color in time displayed for each line in formated buffers.

Option weechat.look.buffertimeformat now supports colors with format: "${xxx}" where "xxx" is a color name (lightblue, red, ...) or a number (for example: "214" for orange).

Note: updated in 0.4.2, the syntax is now: "${color:xxx}".

Screenshot of colored time, with french flag colors:

French time

Thursday, December 2 2010

Max hotlist level for some nicks

It is now possible to set max hotlist level for some nicks, per buffer, or per group of buffers (like IRC servers).

A new buffer property "hotlist_max_level_nicks" has been added. It can be set easily with script buffer_autoset.py, see /help autosetbuffer for example.

Possible levels are (default is -1):

  • -1: no hotlist changes for nick
  • 0: low priority (like join/part messages)
  • 1: message
  • 2: private
  • 3: highlight (in fact useless, since it's default max for all messages)

If you have already opened buffer, then script option will not apply immediately to buffers. Then you can use /buffer command to manually set this property on a buffer, for example, to disable highlights from "joe" and "mike" on current buffer:

/buffer set hotlist_max_level_nicks_add joe:2,mike:2

Monday, October 11 2010

Disable highlights from some nicks

It is now possible to disable highlights from some nicks, per buffer, or per group of buffers (like IRC servers).

A new buffer property "no_highlight_nicks" has been added. It can be set easily with script buffer_autoset.py, see /help autosetbuffer for example.

If you have already opened buffer, then script option will not apply immediately to buffers. Then you can use /buffer command to manually set this property on a buffer, for example, to disable highlights from "joe" and "mike" on current buffer:

/buffer set no_highlight_nicks_add joe,mike

Update on 2010-12-02: this option has been replaced by "hotlist_max_level_nicks", see Max hotlist level for some nicks.

Saturday, August 7 2010

Version 0.3.3

Version 0.3.3 is available!

As usual, many new features and bug fixes, see ChangeLog for detail.

Important: please read the release notes if you are upgrading to this version (from any other version).

New major features in this release:

  • keys to undo/redo changes on command line
  • better lag indicator
  • new irc command /wallchops
  • display message in irc private buffer when nick is back on server after a /quit
  • reverse regex in a filter (with leading "!")
  • new option to confirm /quit
  • new option to align end of lines
  • hashtables in plugin API

New options:

  • weechat.look.align_end_of_lines
  • weechat.look.confirm_quit
  • weechat.look.input_undo_max
  • weechat.color.status_name_ssl
  • irc.look.display_host_join
  • irc.look.display_host_join_local
  • irc.look.display_host_quit
  • irc.look.display_pv_back
  • irc.look.nick_color_stop_chars
  • irc.network.autoreconnect_delay_growing
  • irc.network.autoreconnect_delay_max
  • irc.color.item_lag_counting
  • irc.color.item_lag_finished
  • irc.color.reason_quit

New keys:

  • ctrl + "_": undo (command line)
  • alt + "_" (or ctrl + ":" under putty): redo (command line)

Note: to add missing keys, you can use command /key missing

Sunday, April 18 2010

Version 0.3.2

Version 0.3.2 is available!

As usual, many new features and bug fixes, see ChangeLog for detail.

Important: please read the release notes if you are upgrading to this version (from any other version).

Sunday, January 31 2010


Version is available!

This version fixes crashes with SSL connection and purge of old DCC chats. It is recommended to upgrade from 0.3.1 to for all users.

Saturday, January 23 2010

Version 0.3.1

Version 0.3.1 is available!

As usual, many new features and bug fixes, see ChangeLog for detail.

Important: please read the release notes if you are upgrading to this version (from any other version).

Sunday, September 6 2009

Version 0.3.0

Version 0.3.0 is released, after 2 years of work and more than 1000 commits!

This is a major upgrade since last stable, please read files UPGRADE_0.3 and ChangeLog for list of changes: configuration files and plugin API are not compatible with previous versions.

For this important release, site has moved to weechat.org, with a new look!

Enjoy WeeChat!

Wednesday, June 10 2009

Merge of buffers

It is now possible to merge buffers with command /buffer merge (or unmerge). IRC plugin uses that feature to merge server buffers, with the new option irc.look.server_buffer (merge_with_core, merge_without_core, independent).

When a buffer is merged to one or more other buffers, they will have same number, and chat area will display mixed lines (short name of buffer is displayed on each line, to know to which buffer line belongs). Bars still display content for current selected buffer.

New key ctrl-x has been added to swtich current active buffer when many buffers are merged (old key alt-s has been removed).

For devel users: it's not possible to upgrade from previous versions to this one, and you should do /key missing to add missing key.

Friday, April 24 2009

Easy switch between two buffers

A new feature has been added recently to easily switch to another buffer, then come back to current one.
For example if you are on buffer #2, you press alt-1 twice: you'll come back to buffer #2.

This new feature can be disabled, if you think old behaviour was better (really?):

/set weechat.look.jump_current_to_previous_buffer off

Saturday, April 11 2009

Completion improved for command arguments

Completion has been improved for command arguments. Now many templates are allowed for one command, and WeeChat will automatically choose and use the better template according to arguments you give on command line.

Let's take an example: the /proxy command. Completion template is this string:

add %(proxies_names) http|socks4|socks5 || del %(proxies_names) || set %(proxies_names) %(proxies_options) || list

The single pipe is still used to add many possible items for one argument. Now a double pipe has been added to separate many templates. WeeChat will choose template according to arguments you give before completion location in command line.
Example 1: if you enter: "/proxy add [+tab]", then WeeChat will use first template ("add %(proxies_names) http|socks4|socks5").
Example 2: if you enter: "/proxy set [+tab]", WeeChat will used third template ("set %(proxies_names) %(proxies_options)").

Now, you'll ask: but how to complete first argument of command? WeeChat can't know which template to use!
Hey, good question! I was sure you would ask that ;)
The answer is very simple: for first argument, WeeChat will make a "or" between first argument of each template (so it will use a fictive template which is: "add|del|set").

It's recommended to use plain words for first argument of each template (when using many templates). If you use many words (separated by single pipe), or items (%(xxx)), then WeeChat will not know which template to use, and may not complete at all.

Another thing you should know, default completion items (defined by WeeChat core) have been renamed. Old name was something like "%x", new name is"%(xxx)". For example %n has been renamed to %(nicks). Some new completions have been added too. Please read doc for new names (and now that includes names of completion items defined by plugins).

If you are using old development version, nick completion will be broken, so you'll have to issue following command: /unset weechat.completion.default_template

Happy completion party!

Wednesday, December 17 2008

New bar filling options

Two new bar filling options have been added: columnshorizontal and columnsvertical. It is used to display bar items in columns, with vertical or horizontal sort.

Screenshot, with 2 nicklists, one on top, one on the right, with columns_vertical filling:


Sunday, November 23 2008

Support for many proxies

Support for many proxies has been added. It's now possible to create many proxies, and assign different proxy (or no proxy) for each IRC server.

To create, delete, list proxies, use new /proxy command. New IRC option for each server is irc.server.xxx.proxy = name, where name is the name of proxy to use for connection.

For example, to define a http proxy and use it only on freenode server:

/proxy add myproxy http sample.host.org 8888
/set irc.server.freenode.proxy "myproxy"

Sunday, October 26 2008

Git branch protocols merged to master

Git branch "protocols" has been merged to "master".

If you're using protocols branch, you should switch back to master branch now, using following commands:

git checkout master
git pull
git remote prune origin

Thursday, October 2 2008

Save and restore layout

New command /layout has been added and a new option weechat.look.save_layout_on_exit. WeeChat now saves layout (windows layout and order of buffers). With /layout command, you can show saved layout, apply layout, and save layout for windows and/or buffers.

Windows layout is position of windows (including size), and buffer displayed in windows (plugin and buffer name).
Buffers layout is order of buffers, ie numbers assigned to buffers.

Wednesday, August 20 2008

Upgrade command is back!

New version of /upgrade command is now available. Today it's working for core and IRC plugin. Almost all code has been rewritten, so maybe there are new bugs ;)

Known bugs/limits today:

  • IRC plugin: not working if WeeChat is currently reconnecting to server
  • IRC plugin: all messages queued (anti-fllood when sending to server) are lost during upgrade
  • upgrade does not work for xfer plugin

Saturday, March 22 2008

Filters and tags

Filters have been added. This feature replaces old /ignore command for IRC, but is more powerful and is not specific to IRC, it applies on buffer content. With new /filter command, you can ask WeeChat to filter lines displayed, by tags and/or regular expression on content of line. Unlike old /ignore command, the /filter command only hides lines, they are not removed, and you can see them when you want.

To understand filters, you should know what are tags. Each line displayed in a (formated) buffer may have optional tags, which are one or more words for this line. Number of tags is not limited, but should be reasonable (4 or 5 max). Tags are not visible (not displayed in buffer), they are used to filter content of buffers.

IRC plugin uses tags for all messages displayed if they're issued from an IRC server. Tags are: "irc_xxx" where "xxx" is the command received. For example if someone joins IRC channel, line with "--> nick has joined #channel" will have tag "irc_join". For IRC numeric command, tag is "irc_cmd_xxx" where "xxx" is number (3 digits), and second tag is "irc_numeric".

Some examples of filters:

  • filter IRC join/part/quit messages (if you find them boring!): /filter add joinquit * irc_join,irc_part,irc_quit *
  • filter lines containing word "spam": /filter add spamfilter * * spam
  • filter lines containing "weechat sucks" on channel #weechat: /filter add sucks irc.freenode.#weechat * weechat sucks

You can enable/disable filters by /filter command (look at /help filter) or with shortcut key meta + "=".

In a later version, you'll be able to see indicator in status bar, to know if filters are enabled or not, and if something is filtered on current buffer (lines hidden). This will be possible with new bars.

Saturday, March 15 2008


Bars have been added to WeeChat. They are used to display informations around chat area. In near future, some existing items will become real bars (like title, nicklist, status, input).
Plugin and script API is now ready for using these bars. Following screenshot is a demo of scripts buffers.pl and uptime.pl:

Update on 2008-10-12: new bars are now used: title, nicklist, status, input.


page 2 of 2 -