WeeChat DevCenter

Friday, November 9 2012

Version 0.3.9.1

Version 0.3.9.1 is available, it fixes a security problem (buffer overflow when decoding IRC colors in strings).

Upgrade is recommended for all users.

Saturday, September 29 2012

Version 0.3.9

Version 0.3.9 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:

  • add plugin "script" (replacement of weeget.py and script.pl) (see this post)
  • add support of SSL in relay plugin (see this post)
  • add color for offline nicks
  • add system resource limits for WeeChat process
  • add zoom on merged buffer (default key: alt+"x")
  • add "Day changed to" in logger backlog
  • add command line option "-r" (or "--run-command") to run command(s) after startup of WeeChat
  • add option "swap" for command /buffer
  • generate alternate IRC nicks dynamically (when all nicks are already in use)
  • fix rejoin of password protected IRC channels
  • fix freeze in irc and relay plugins with sockets
  • fix color of long lines (displayed on more than one line on screen) under FreeBSD
  • allow update for some variables of hdata
  • add japanese user's guide, scripting guide and tester's guide

New options:

  • weechat.startup.sys_rlimit
  • weechat.look.jump_smart_back_to_buffer
  • weechat.look.window_separator_horizontal
  • weechat.look.window_separator_vertical
  • weechat.look.color_nick_offline
  • weechat.color.chat_nick_offline_highlight
  • weechat.color.chat_nick_offline_highlight_bg
  • aspell.check.enabled
  • irc.look.ctcp_time_format
  • relay.network.ssl_cert_key
  • relay.color.client

Options changed:

  • weechat.look.nickmode renamed as irc.look.nick_mode (new type: integer with values: none/prefix/action/both)
  • weechat.look.nickmode_empty renamed as irc.look.nick_mode_empty

Options removed:

  • irc.look.item_channel_modes

New keys:

  • meta-x = "/input zoom_merged_buffer" (zoom on merged buffer)
  • meta-s = "/mute aspell toggle" (toggle aspell)

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

Tuesday, August 14 2012

Scripts manager

A new scripts manager has been added, the plugin is called "script" and provides the /script command.

This plugin will replace two scripts: weeget.py (the current scripts manager) and script.pl (providing a /script command to load/unload/reload scripts for any language).

The new /script command is similar to command /weeget with some minor differences (see /help script for more info).

The plugin provides a buffer with list of scripts in repository, which makes installation or removal of scripts very fast: just press alt+i on this buffer, and the script is installed! Not satisfied with the script? Key alt+r and the script is gone!

The buffer allows you to search string in scripts (description, tags, ...) and to sort scripts with many keys. Columns displayed can be fully customized (order, columns displayed), as well as colors.

For list of options, just do: /set script.*

List of scripts (click for full size):

Script plugin: list of scripts

Detail of a script (click for full size): Script plugin: detail of a script

Enjoy!

Friday, July 27 2012

SSL in Relay plugin

SSL support has been added in Relay plugin, for irc and weechat protocols.

A new option has been added to set the certificate and private key to use:

  • relay.network.ssl_cert_key: path to file with certificate and private key (default: ~/.weechat/ssl/relay.pem)

The file can be created with following commands:

$ mkdir -p ~/.weechat/ssl
$ cd ~/.weechat/ssl
$ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem

In WeeChat :

/relay sslcertkey

And add relays with SSL, for example:

/relay add ssl.irc.freenode 8001
/relay add ssl.weechat 9001

And now WeeChat will serve clients on these ports using SSL, enjoy!

Sunday, June 3 2012

Version 0.3.8

Version 0.3.8 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:

  • add terminal "bracketed paste mode" (see this post)
  • add IRC "external" SASL mechanism
  • improve parsing of IRC channel modes (do not send extra command "MODE" to server)
  • follow symbolic links for configuration files (*.conf)
  • new option weechat.look.prefix_same_nick (hide same prefix for multiple consecutive messages from same nick)
  • add colors for backlog lines
  • redirect IRC messages from clients to hide output (relay plugin, IRC protocol)
  • add a connection timeout for child process in hook_connect
  • fix display bugs and crashs with small windows
  • fix truncated configuration files (zero-length) after system crash

New options:

  • logger.color.backlog_line
  • logger.color.backlog_end
  • weechat.look.paste_bracketed
  • weechat.look.paste_bracketed_timer_delay
  • weechat.look.prefix_same_nick
  • weechat.network.connection_timeout

Options changed:

  • weechat.look.prefix_align_more (from boolean to string)
  • weechat.look.prefix_buffer_align_more (from boolean to string)

New keys:

  • meta2-200~ = "/input paste_start" (start of bracketed paste)
  • meta2-201~ = "/input paste_stop" (end of bracketed paste)

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

Sunday, March 25 2012

4000 commits

I just made the 4000th commit for WeeChat, which is also the 600th commit for the past 12 months!

Commits by range: month: 56 year: 600 total: 4000

New page with statistics about Git repositories (core and scripts): https://weechat.org/dev/stats/

Friday, March 16 2012

SameGame

A new script samegame.py is now available! More info about this game is available at http://en.wikipedia.org/wiki/SameGame.

If you are using weeget, just do: /weeget install samegame.py

Mouse is required, so you must have WeeChat >= 0.3.6.

For help: /help samegame.

Screenshot (click for full size):

SameGame

Enjoy!

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):

weechat.hook_process_hashtable('url:http://weechat.org/download/',
                               { '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', '')

Tuesday, January 3 2012

Support of Python 3

WeeChat can now compile with Python 3.x (successfully tested with Python 3.1 and 3.2).
This is still experimental and recommended Python for WeeChat remains version 2.7.

Some scripts (including weeget.py) have been updated for Python 3.x, they have tag "py3k-ok" on the scripts page: https://weechat.org/scripts/stable/tag/py3k-ok/

Python versions supported by WeeChat:

  • 2.5: many scripts require at least 2.6 - NOT recommended
  • 2.6: all scripts should work fine
  • 2.7: recommended version (all scripts are guaranteed to work with this version)
  • 3.x: experimental, should be used only for tests

Note that "python" plugin in WeeChat can support only one version, so it can be a 2.x or 3.x, not both at same time.

Updated on 2019-07-01: Python 3 is now compiled by default and therefore the recommended version, see the post: Python 3 by default.

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):

Urlserver

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.

Monday, October 31 2011

Shorten URLs with own HTTP server

Don't panic with long URLs and don't give your private URLs any more to shortening services!
A new script urlserver.py has been added. This script shortens URLs displayed and serve them using own HTTP server, which can be used to display a list of all URLs as well.

Many options are available to customize shortening of URLs, display in WeeChat and HTML page (see /help urlserver and /set plugins.var.python.urlserver.*).

The URLs are saved into ~/.weechat/urlserver_list.txt when script is unloaded, so that URLs are persistent when you restart WeeChat.

A screenshot of HTML page with list of URLs (click for full size):

Urlserver

Friday, October 28 2011

Change short name of buffers

The short name of buffers can be changed with /buffer set short_name <new_name> command. This might be useful for long channel names displayed in the buffers bar (buflist plugin with WeeChat ≥ 1.8 or script buffers.pl with an older version).

For example on channel #weechat:

/buffer set short_name #wee

New value is used immediately, but is not saved in config file. To make it persistent, you have to use script buffer_autoset.py:

/autosetbuffer add irc.freenode.#weechat short_name #wee

Note1: it's not recommended to set short name of query buffers, because WeeChat will change name of buffer when nick changes.

Note2: you should use command /buffer set with precautions, it is not recommended to change other buffer properties if you're not sure about what you do. This could lead to weird behaviour or a crash.

Thursday, October 27 2011

New plugin Guile

A new plugin called "guile" has been added to WeeChat. You can now load and execute Scheme scripts in WeeChat!

WeeChat now supports Python, Perl, Ruby, Lua, Tcl and Guile!

To load/unload scheme scripts, command is /guile with same syntax as other script languages:

/guile load /path/to/example.scm
/guile reload example
/guile unload example

An example of script:

;; example.scm
(weechat:register "example" "FlashCode" "0.1" "GPL3" "Scheme script" "" "")
(weechat:print "" "Hey, I'm a scheme script for WeeChat!")

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

Sunday, October 2 2011

Game Minesweeper

A new script minesweeper.py is now available, the famous Minesweeper game!

If you are using weeget, just do: /weeget install minesweeper.py

256 colors mode is highly recommended, and mouse support (with WeeChat >= 0.3.6). If you have 16 colors or less, you can do: /minesweeper 16col

For help: /help minesweeper.

Screenshot (click for full size):

Minesweeper

Enjoy!

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 20 2011

Game Flood'it

A new script floodit.py is now available! You can now play to Flood'it inside WeeChat, with following features:

  • single mode
  • versus mode (play vs computer)
  • demo mode
  • 3 different board sizes.

If you are using weeget, just do: /weeget install floodit.py

For help: /help floodit.

Note: mouse is supported with latest devel version of WeeChat (0.3.6-dev).

Screenshot (click for full size):

Flood'it

Enjoy!

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

Enjoy!

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:

/mouse
/cursor

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 .*

Monday, May 16 2011

Script cmd_help.py

A new script cmd_help.py is now available. It displays contextual help on command line like:

  • commands:
    • list of commands if you type a non-complete command name, for example: /serv
    • help about command arguments if you type command (and optionally arguments), for example with /server add you'll see arguments for adding an IRC server
  • options:
    • list of options if you type a non-complete option name with command /set, for example: /set weechat
    • help about option if you type a complete or unique option name with command /set, for example: /set weechat.look.command_chars

Note: this script requires version 0.3.5 of WeeChat.

Screenshot (click for full size):

cmd_help.py

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

Friday, April 15 2011

Options for aspell spellers

An "option" section has been added to aspell.conf file, to set options for aspell speller.

A commonly used option is "ignore-case" to ignore case in speller. To enable it, just do:

/set aspell.option.ignore-case "true"

For a list of aspell options, do in your shell:

aspell config

Monday, April 11 2011

Count of messages in hotlist

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

New options:

  • /set weechat.look.hotlist_buffer_separator (default: ", ")
  • /set weechat.look.hotlist_count_max (default: 2)
  • /set weechat.look.hotlist_count_min_msg (default: 2)
  • /set weechat.color.status_count_msg (default: "brown")
  • /set weechat.color.status_count_private (default: "green")
  • /set weechat.color.status_count_highlight (default: "magenta")
  • /set weechat.color.status_count_other (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

[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

[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>
                deloutq|jump|raw

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, November 8 2010

Redirection of IRC commands

It is now possible to redirect IRC commands to a callback, in plugins/scripts.

First you have to add a hsignal with callback, to receive command output. Then, add redirection by sending a hsignal, and send your command to IRC server. It will automatically use your redirection.

Each redirection uses a pattern, which defines start/stop/extra commands. Default patterns are: ison, list, mode_channel, mode_channel_ban, mode_channel_ban_exception, mode_channel_invite, mode_user, names, ping, time, topic, userhost, who, whois, whowas.

You can create your own pattern with signal "irc_redirect_pattern".

Examples of redirection and pattern creation are available in WeeChat devel doc.

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 "nohighlightnicks" 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 nohighlightnicks_add joe,mike

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

Wednesday, October 6 2010

New plugin rmodifier

A new plugin called "rmodifier" (for "Regex modifier") has been added.

It's designed to change some strings using regex, for example to hide passwords in commands (input displayed on screen) or in history. By default, password in following commands are hidden by this plugin:

  • /msg nickserv identify ****** (input and history)
  • /msg nickserv ghost ****** (input and history)
  • /oper nick ****** (input and history)
  • /set file.section.password ****** (history only)

Of course you can add your own regex, just look at /help rmodifier.

Updated on 2014-08-15: the plugin rmodifier has been replaced by trigger, introduced in version 1.0.

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

Wednesday, August 4 2010

Script jabber.py

A new script jabber.py is now available. You can connect to jabber servers and chat with buddies.

Quick start:

  • add server: /jabber add jabberfr myname@jabber.fr mypassword
  • connect: /jabber connect jabberfr
  • chat: /jchat nick

Commands provided by script:

  • /jabber
  • /jchat
  • /jmsg

Configuration file is jabber.conf.

Currently, MUCs are not supported, and you can't manage your account, like create/update account, add/remove buddies in roster (nicklist).

Enjoy Jabber!

Monday, July 26 2010

Script cron.py

A new script cron.py is now available. It can schedule jobs or message like system commands cron and at.

Two commands are provided by this script:

  • /cron: schedule job like system command 'cron'
  • /at: schedule job for only one execution, in near future, like system command 'at'.

You can get more help with /help cron and /help at.

You can setup some options with /set:

  • /set plugins.var.python.cron.auto_reload on/off (default: on)
  • /set plugins.var.python.cron.auto_save on/off (default: on)
  • /set plugins.var.python.cron.filename "path" (default: "%h/cron.txt")
  • /set plugins.var.python.cron.quiet_exec on/off (default: off)
  • /set plugins.var.python.cron.quiet_load on/off (default: off)
  • /set plugins.var.python.cron.quiet_save on/off (default: on)

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).

Monday, March 22 2010

Custom completion for aliases

It is now possible to have custom completion for aliases, for example to complete with another command completion, or with your own completion.

Examples:

  • create alias /forcejoin with completion of /sajoin: /alias -completion %%sajoin forcejoin /quote forcejoin
  • create alias /mybuf with custom completion: /alias -completion #weechat|#weechat-fr mybuf /buffer

You can change completion if alias is already created:

/set alias.completion.forcejoin "%%sajoin"

You can use empty string to prevent any completion for command (default is to complete using target command):

/set alias.completion.forcejoin ""

And you can remove a completion:

/unset alias.completion.forcejoin

Completion is automatically removed when you remove an alias with /unalias.

Friday, February 19 2010

SASL authentication with IRC server

It is now possible to use SASL authentication with IRC server, using two mechanisms: "plain" (default) or "dh-blowfish" (crypted password).

New options have been added to servers:

  • sasl_mechanism: mechanism to use ("plain" or "dh-blowfish")
  • sasl_timeout: timeout (in seconds) for authentication
  • sasl_username: username
  • sasl_password: password

You just have to setup username (your nick) and password (password of nick) and then connect to server, you'll be identified with SASL if all is ok.

If you want to set "dh-blowfish" by default for all servers:

/set irc.server_default.sasl_mechanism dh-blowfish

Monday, February 1 2010

Date in log filenames

It is now possible to use date formaters in log filenames (in mask options).

For example to have log by year and month in separate directories, you can do :

/set logger.file.mask "%Y/%m/$plugin.$name.weechatlog"

You'll have a tree like that:

~/.weechat/
    |- logs/
        |- 2009/
            |- 12/
                |  irc.server.freenode.weechatlog
                |  irc.freenode.#weechat.weechatlog
        |- 2010/
            |- 01/
                |  irc.server.freenode.weechatlog
                |  irc.freenode.#weechat.weechatlog

Sunday, January 31 2010

Version 0.3.1.1

Version 0.3.1.1 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 0.3.1.1 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, January 17 2010

New IRC output queue with high priority

A new IRC output queue has been added in irc plugin, with high priority. There are now two queues for messages sent to IRC server:

  • queue for user messages or commands, with high priority
  • queue for other messages, with low priority.

Low priority queue is used to send automatic messages, like replies to CTCP messages. So if you are spamed with CTCP messages, WeeChat will first send your messages (queue with high priority), and then CTCP replies (queue with low priority).

Accordingly, anti-flood option has been split into two options:

  • irc.network.anti_flood_prio_high: delay between two user messages/commands
  • irc.network.anti_flood_prio_low: delay between two other messages

Friday, January 8 2010

New IRC commands allchan and allserv

New commands have been added to IRC plugin: /allchan and /allserv.
These commands can execute a command on all buffer of all channels or all servers, with optional exclusion of some channels/servers.

Old commands /amsg and /ame are now replaced by aliases. If you're upgrading from recent version (>= 0.3.0), you have to manually create alias, see page with release notes.

- page 3 of 4 -