Version 3.2.1 is available, it fixes a security vulnerability: a malformed websocket frame received in relay plugin can cause a crash (CVE-2021-40516).
Upgrade is recommended for all users.
Saturday, September 4 2021
By Sébastien Helleu on Saturday, September 4 2021, 15:42 - core
Version 3.2.1 is available, it fixes a security vulnerability: a malformed websocket frame received in relay plugin can cause a crash (CVE-2021-40516).
Upgrade is recommended for all users.
Sunday, June 13 2021
By Sébastien Helleu on Sunday, June 13 2021, 10:02 - core
Version 3.2 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
New options:
Options removed:
Saturday, June 12 2021
By Sébastien Helleu on Saturday, June 12 2021, 20:57 - irc
IRC SASL SCRAM authentication has been added in WeeChat 3.2, with 3 new mechanisms:
scram-sha-1
: SASL SCRAM with SHA-1 digest algorithm,scram-sha-256
: SASL SCRAM with SHA-256 digest algorithm,scram-sha-512
: SASL SCRAM with SHA-512 digest algorithm.References:
By Sébastien Helleu on Saturday, June 12 2021, 20:24 - core
Support of XDG directories has been added in WeeChat 3.2 and these directories are now used by default.
Note: for compatibility reasons, if a legacy directory ~/.weechat
exists, it is used instead of XDG directories.
The files are stored in four different directories:
/home/user/.config/weechat
)/home/user/.local/share/weechat
)/home/user/.cache/weechat
)/run/user/1000/weechat
).As this led to a lot of changes in WeeChat code but also in the scripts, a new specification repository has been setup on GitHub: https://github.com/weechat/specs.we...
Please read the XDG directories specification for the complete list of changes: https://specs.weechat.org/specs/001....
Saturday, May 29 2021
By Sébastien Helleu on Saturday, May 29 2021, 11:26 - support
Due to the recent events affecting freenode (see references below), the WeeChat official and unofficial channels have moved from freenode to libera.chat:
To add a new libera server and connect to it, joining only the English support channel:
/server add libera irc.libera.chat/6697 -ssl -autojoin=#weechat /connect libera
To join the French channel as well:
/server add libera irc.libera.chat/6697 -ssl -autojoin=#weechat,#weechat-fr /connect libera
If all your freenode channels have moved to libera, you can also rename the server and change the address:
/disconnect freenode /server rename freenode libera /set irc.server.libera.addresses "irc.libera.chat/6697" /set irc.server.libera.ssl on /connect libera
See you soon on libera!
References:
Sunday, March 7 2021
By Sébastien Helleu on Sunday, March 7 2021, 12:21 - core
Version 3.1 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
${tg_trigger_name}
in command trigger evaluated stringsNew options:
Options removed:
Friday, February 26 2021
By Sébastien Helleu on Friday, February 26 2021, 18:39 - scripts
You've sent your password to the wrong window (ie: WeeChat), and it is now public, viewed by 1,500 people?
For now, you have to change your password.
For the future, a new script is now available: anti_password.py.
How does it work?
When you press Enter to send text to a buffer, the script detects if the input is a password, in two ways:
If a password is detected, the text is not sent to the buffer (3 times with the default config).
Note: the WeeChat commands (ie /xxx
) are ignored and are always sent.
Options
There are 4 options to configure the script (see /fset anti_password
for a list of options with help):
allowed_regex
: allowed regular expression (checked first)password_condition
: the condition used to detect a passwordcheck_secured_data
: whether the script checks for secured data (disabled, input equals secured data or secured data included in input)max_rejects
: the number of times the same input is rejected; after this number, the input is finally sent to the buffer.Keep your passwords safe!
Updated on 2021-03-13: added option allowed_regex
.
Sunday, January 31 2021
By Sébastien Helleu on Sunday, January 31 2021, 09:53 - core
Version 3.0.1 is available, it fixes a crash in spell plugin with IRC color codes and two other minor bugs.
Upgrade is recommended if you enable the spell checking (not enabled by default).
Wednesday, November 11 2020
By Sébastien Helleu on Wednesday, November 11 2020, 09:57 - core
Version 3.0 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
New options:
Saturday, July 18 2020
By Sébastien Helleu on Saturday, July 18 2020, 14:42 - core
Version 2.9 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
New options:
New keys:
Sunday, March 29 2020
By Sébastien Helleu on Sunday, March 29 2020, 10:09 - core
Version 2.8 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
Thursday, February 20 2020
By Sébastien Helleu on Thursday, February 20 2020, 21:23 - core
Version 2.7.1 is available, it fixes three security vulnerabilities:
Upgrade is recommended for all users.
Sunday, December 8 2019
By Sébastien Helleu on Sunday, December 8 2019, 11:18 - core
Version 2.7 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
New options:
Options removed:
Sunday, September 8 2019
By Sébastien Helleu on Sunday, September 8 2019, 13:30 - core
Version 2.6 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
Tuesday, July 2 2019
By Sébastien Helleu on Tuesday, July 2 2019, 07:48 - plugins
As scheduled in the Python 3 transition page, since July 1st 2019, the "python" plugin is now compiled with Python 3 by default.
The changes:
The CMake option "ENABLE_PYTHON3" has been renamed to "ENABLE_PYTHON2" (configure option "--enable-python2"). If this option is enabled, the "python" plugin is built with Python 2 (if found), with a fallback on Python 3.
The development packages for Debian and Ubuntu are now compiled with Python 3 (it should be available soon for Raspbian). The future stable versions (≥ 2.6) will be compiled with Python 3 as well.
Thursday, June 6 2019
By Sébastien Helleu on Thursday, June 6 2019, 21:30 - core
Version 2.5 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
New options:
Sunday, February 17 2019
By Sébastien Helleu on Sunday, February 17 2019, 09:11 - core
Version 2.4 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
New options:
New keys:
Monday, January 14 2019
By Sébastien Helleu on Monday, January 14 2019, 21:47 - core
TOTP (Time-based One-Time Password) support has been added in WeeChat, which can now generate and check TOTP validity.
A TOTP is generated with:
Relay plugin
The TOTP can be used as second authentication factor in the relay plugin, with two new options:
For example to set the secret using secured data (just replace "xxxxx" by your secret in base 32):
/secure set relay_totp_secret xxxxx /set relay.network.totp_secret "${sec.data.relay_totp_secret}"
Then your relay client must support and send the TOTP value, in addition to the password, in the "init" command:
init password=secretpassword,totp=123456
If the password is valid and that TOTP is valid for the current time, the authentication is successful.
Infos / eval
You can also generate or validate TOTP with two new infos in WeeChat:
For example to show the value of TOTP for the secret "secretbase32", current time, with 6 digits:
/eval -n ${info:totp_generate,secretbase32,0,6}
Documentation
You can read more about TOTP in the docs:
Sunday, October 21 2018
By Sébastien Helleu on Sunday, October 21 2018, 13:35 - core
Version 2.3 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
Saturday, July 14 2018
By Sébastien Helleu on Saturday, July 14 2018, 14:07 - core
Version 2.2 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
New options:
Sunday, May 6 2018
By Sébastien Helleu on Sunday, May 6 2018, 15:42 - site
The WeeChat site weechat.org has been improved with many changes. It is now fully responsive, using Bootstrap toolkit.
Hope you enjoy the new site!
The history of weechat.org in images: click on each screenshot for full-size.
Sunday, March 18 2018
By Sébastien Helleu on Sunday, March 18 2018, 08:39 - core
Version 2.1 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
New options:
Wednesday, December 20 2017
By Sébastien Helleu on Wednesday, December 20 2017, 22:51 - core
Version 2.0.1 is available, it fixes a Python API bug in functions hook_fd
and hook_connect
.
Sunday, December 3 2017
By Sébastien Helleu on Sunday, December 3 2017, 13:11 - core
Version 2.0 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
New configuration files:
New options:
New keys:
Saturday, November 4 2017
By Sébastien Helleu on Saturday, November 4 2017, 12:49 - core
Starting on Sunday, Nov 3rd 2017 at 02:00 (CET), the Debian packaging will change in weechat.org Debian/Ubuntu/Raspbian repositories: the scripting plugins are split into multiple packages, so that Perl, Python, Ruby, ... can be installed separately.
Only development packages will be updated, the released versions (1.9.1 and earlier) will not be updated.
Important: if you are using the WeeChat development packages from weechat.org, you will have to install manually the scripting packages (according to the languages you'll use in WeeChat).
Old packaging (until 2017-11-04):
New packaging, with 8 new packages:
GitHub issue: https://github.com/weechat/weechat/issues/1085
Tuesday, October 17 2017
By Sébastien Helleu on Tuesday, October 17 2017, 07:43 - core
Automatic tests of the scripting API have been added a few days ago. For now only a small part of API functions are checked.
This is done with 3 new Python scripts in directory tests/scripts/python:
The script unparse.py can convert Python code to other languages: Python, Perl, Ruby, Lua, TCL, Guile, JavaScript and PHP (new plugin in version 2.0). The Python code is first parsed using AST (ast.parse), and then this tree is recursively scanned to produce code in Python or another language (note: only part of AST is supported, the minimum for WeeChat tests).
Example of code conversion in other languages:
$ ./unparse.py --language all Enter the code to convert (Enter + ctrl+D to end) def test_list_new(): ptr_list = weechat.list_new() check(ptr_list != '') check(weechat.list_size(ptr_list) == 0) python: def test_list_new(): ptr_list = weechat.list_new() check(ptr_list != '') check(weechat.list_size(ptr_list) == 0) perl: sub test_list_new { $ptr_list = weechat::list_new(); check($ptr_list ne ""); check(weechat::list_size($ptr_list) == 0); } ruby: def test_list_new ptr_list = weechat.list_new() check(ptr_list != '') check(weechat.list_size(ptr_list) == 0) end lua: function test_list_new() ptr_list = weechat.list_new() check(ptr_list ~= '') check(weechat.list_size(ptr_list) == 0) end tcl: proc test_list_new {} { set ptr_list [weechat::list_new] check [expr {$ptr_list ne ""}] check [expr {[weechat::list_size $ptr_list] == 0}] } guile: (define (test_list_new) (let ((ptr_list (weechat:list_new))) (begin (check (string<> ptr_list "")) (check (= (weechat:list_size ptr_list) 0)) ) ) ) javascript: function test_list_new() { ptr_list = weechat.list_new() check(ptr_list != '') check(weechat.list_size(ptr_list) == 0) } php: function test_list_new() { $ptr_list = weechat_list_new(); check($ptr_list != ""); check(weechat_list_size($ptr_list) == 0); }
The script testapigen.py generates scripts in all supported languages. These scripts are loaded in WeeChat during tests, and print the results of tests, for example in Python:
>>> Running command: /script load -q ./tmp_weechat_test/testapi/testapi.py >>> Running command: /testapi.py >>> >>> ------------------------------ >>> Testing python API > TESTS: 57 > test_plugins TEST OK: weechat.plugin_get_name('') == 'core' TEST OK: weechat.plugin_get_name(weechat.buffer_get_pointer(weechat.buffer_search_main(), 'plugin')) == 'core' > test_strings TEST OK: weechat.charset_set('iso-8859-15') == 1 TEST OK: weechat.charset_set('') == 1 TEST OK: weechat.iconv_to_internal('iso-8859-15', 'abc') == 'abc' TEST OK: weechat.iconv_from_internal('iso-8859-15', 'abcd') == 'abcd' TEST OK: weechat.gettext('abcdef') == 'abcdef' TEST OK: weechat.ngettext('file', 'files', 1) == 'file' TEST OK: weechat.ngettext('file', 'files', 2) == 'files' TEST OK: weechat.strlen_screen('abcd') == 4 TEST OK: weechat.string_match('abcdef', 'abc*', 0) == 1 TEST OK: weechat.string_eval_path_home('test ${abc}', {}, {'abc': '123'}, {}) == 'test 123' TEST OK: weechat.string_mask_to_regex('test*mask') == 'test.*mask' TEST OK: weechat.string_has_highlight('my test string', 'test,word2') == 1 TEST OK: weechat.string_has_highlight_regex('my test string', 'test|word2') == 1 TEST OK: weechat.string_remove_color('test', '?') == 'test' TEST OK: weechat.string_is_command_char('/test') == 1 TEST OK: weechat.string_is_command_char('test') == 0 TEST OK: weechat.string_input_for_buffer('test') == 'test' TEST OK: weechat.string_input_for_buffer('/test') == '' TEST OK: weechat.string_input_for_buffer('//test') == '/test' TEST OK: weechat.string_eval_expression('100 > 50', {}, {}, {'type': 'condition'}) == '1' TEST OK: weechat.string_eval_expression('${buffer.full_name}', {}, {}, {}) == 'core.weechat' > test_lists TEST OK: ptr_list != '' TEST OK: weechat.list_size(ptr_list) == 0 TEST OK: weechat.list_size(ptr_list) == 1 TEST OK: weechat.list_size(ptr_list) == 2 TEST OK: weechat.list_search(ptr_list, 'abc') == item_abc TEST OK: weechat.list_search(ptr_list, 'def') == item_def TEST OK: weechat.list_search(ptr_list, 'ghi') == '' TEST OK: weechat.list_search_pos(ptr_list, 'abc') == 0 TEST OK: weechat.list_search_pos(ptr_list, 'def') == 1 TEST OK: weechat.list_search_pos(ptr_list, 'ghi') == -1 TEST OK: weechat.list_casesearch(ptr_list, 'abc') == item_abc TEST OK: weechat.list_casesearch(ptr_list, 'def') == item_def TEST OK: weechat.list_casesearch(ptr_list, 'ghi') == '' TEST OK: weechat.list_casesearch(ptr_list, 'ABC') == item_abc TEST OK: weechat.list_casesearch(ptr_list, 'DEF') == item_def TEST OK: weechat.list_casesearch(ptr_list, 'GHI') == '' TEST OK: weechat.list_casesearch_pos(ptr_list, 'abc') == 0 TEST OK: weechat.list_casesearch_pos(ptr_list, 'def') == 1 TEST OK: weechat.list_casesearch_pos(ptr_list, 'ghi') == -1 TEST OK: weechat.list_casesearch_pos(ptr_list, 'ABC') == 0 TEST OK: weechat.list_casesearch_pos(ptr_list, 'DEF') == 1 TEST OK: weechat.list_casesearch_pos(ptr_list, 'GHI') == -1 TEST OK: weechat.list_get(ptr_list, 0) == item_abc TEST OK: weechat.list_get(ptr_list, 1) == item_def TEST OK: weechat.list_get(ptr_list, 2) == '' TEST OK: weechat.list_string(item_def) == 'def2' TEST OK: weechat.list_next(item_abc) == item_def TEST OK: weechat.list_next(item_def) == '' TEST OK: weechat.list_prev(item_abc) == '' TEST OK: weechat.list_prev(item_def) == item_abc TEST OK: weechat.list_size(ptr_list) == 1 TEST OK: weechat.list_get(ptr_list, 0) == item_def TEST OK: weechat.list_get(ptr_list, 1) == '' TEST OK: weechat.list_size(ptr_list) == 0 > TESTS END >>> Tests python: 57 tests, 57 OK, 0 errors, 0 unexpected messages, 9 ms
Saturday, September 23 2017
By Sébastien Helleu on Saturday, September 23 2017, 15:48 - core
Version 1.9.1 is available, it fixes a security vulnerability: a crash can happen in logger plugin when converting date/time specifiers in file mask. Two other bugs are fixed as well in buflist and relay plugins.
Upgrade is recommended for all users.
Monday, June 26 2017
By Sébastien Helleu on Monday, June 26 2017, 08:15 - plugins
A new plugin called "fset" (Fast Set) has been added: a built-in and highly customizable replacement for the script iset.pl, with tons of new features!
It has the same features as iset.pl:
And it comes with many new features:
Screenshot (click for full size):
Sunday, June 25 2017
By Sébastien Helleu on Sunday, June 25 2017, 12:15 - core
Version 1.9 is available!
As usual, many new features and bug fixes, see ChangeLog for detail.
New major features in this release:
${format_name}
, ${current_buffer}
and ${merged}
in buflistNew options:
New keys:
Saturday, May 13 2017
By Sébastien Helleu on Saturday, May 13 2017, 07:32 - core
Version 1.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:
New options:
Options changed:
Options removed:
New keys:
Saturday, April 22 2017
By Sébastien Helleu on Saturday, April 22 2017, 17:18 - core
Version 1.7.1 is available, it fixes a security problem: a crash can happen in IRC plugin when parsing the filename received via DCC.
Upgrade is recommended for all users.
Sunday, January 15 2017
By Sébastien Helleu on Sunday, January 15 2017, 08:16 - core
Version 1.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:
New options:
Options changed:
Sunday, October 2 2016
By Sébastien Helleu on Sunday, October 2 2016, 10:49 - core
Version 1.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:
New options:
Options changed:
Sunday, May 1 2016
By Sébastien Helleu on Sunday, May 1 2016, 13:26 - core
Version 1.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:
New options:
Options changed:
Sunday, January 10 2016
By Sébastien Helleu on Sunday, January 10 2016, 10:10 - core
Version 1.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:
/set
output/fifo
commandNew options:
Options changed:
Friday, December 25 2015
By Sébastien Helleu on Friday, December 25 2015, 10:00 - core
Options can now have a parent option, and the value of option inherits from parent when it is null (if null is allowed).
For now, only IRC server options (irc.server.<name>.xxx
) are inheriting from parent options (irc.server_default.<name>.xxx
).
The command /set shows the inherited value (and the default inherited if the value is set to null). Script iset.pl has been updated as well (version 4.0 supports this feature, and is compatible with old WeeChat).
Enjoy and Merry Christmas!
Screenshot of this new feature (click for full size):
Monday, August 24 2015
By Sébastien Helleu on Monday, August 24 2015, 16:53 - irc
Sunday, August 16 2015
By Sébastien Helleu on Sunday, August 16 2015, 09:07 - core
Version 1.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:
New options:
Options changed:
Keys changed:
Sunday, May 10 2015
By Sébastien Helleu on Sunday, May 10 2015, 10:19 - core
Version 1.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).
New major features in this release:
New options:
Sunday, May 3 2015
By Sébastien Helleu on Sunday, May 3 2015, 17:12 - site
Starting from today, 8 new chroots have been added for automatic builds of weechat-devel on Ubuntu (and some manual builds of stable version).
Here's the full list of repositories (amd64/i386 for Debian/Ubuntu, armhf for Raspbian):
Repositories are visible on: https://weechat.org/download/debian/
Saturday, March 14 2015
By Sébastien Helleu on Saturday, March 14 2015, 10:40 - plugins
A new plugin called "javascript" has been added to WeeChat. You can now load and execute Javascript scripts in WeeChat!
This plugin uses Google's v8 engine.
WeeChat now supports Python, Perl, Ruby, Lua, Tcl, Guile and Javascript!
To load/unload JS scripts, you can use the /script
or /javascript
command.
An example of script is available here: https://weechat.org/files/temp/scripts/example.js.
Sunday, February 8 2015
By Sébastien Helleu on Sunday, February 8 2015, 20:19 - irc
The support of a new SASL mechanism called "ecdsa-nist256p-challenge" has been added three weeks ago.
This new mechanism uses a challenge with public/private key, so no password is required to connect.
Instructions to configure and use this mechanism are in user's guide: https://weechat.org/doc/devel/user/en/#irc_sasl_authentication.
Important notes:
Sunday, January 25 2015
By Sébastien Helleu on Sunday, January 25 2015, 09:11 - core
Version 1.1.1 is available!
This is a bug fix and maintenance release, see ChangeLog for detail.
Sunday, January 11 2015
By Sébastien Helleu on Sunday, January 11 2015, 11:16 - core
Version 1.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).
New major features in this release:
New options:
Sunday, September 28 2014
By Sébastien Helleu on Sunday, September 28 2014, 09:41 - core
Version 1.0.1 is available!
This is a bug fix and maintenance release, see ChangeLog for detail.
Friday, August 15 2014
By Sébastien Helleu on Friday, August 15 2014, 12:41 - core
Yay, version 1.0 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:
New options:
Options changed:
New keys:
Friday, March 28 2014
By Sébastien Helleu on Friday, March 28 2014, 10:42 - site
The source code of weechat.org is now available on GitHub: https://github.com/weechat/weechat.org.
It is written in Python and uses Django, and gettext for translations.
Designers, Python/Django developers and especially translators are welcome!
Saturday, March 15 2014
By Sébastien Helleu on Saturday, March 15 2014, 19:55 - plugins
A new plugin called "exec" has been added, with command /exec
.
The command /exec
can execute external commands and display output in WeeChat.
It is similar to /shell
(script shell.py), with major improvements:
Other features coming soon: pipe output to WeeChat command or hsignal (to use in a trigger).
Monday, March 3 2014
By Sébastien Helleu on Monday, March 3 2014, 23:14 - core
WeeChat git repositories (weechat, scripts, qweechat) have been moved to GitHub, in WeeChat organization: http://github.com/weechat.
The git repositories on savannah are not updated any more (and will be removed in near future).
The GitHub issue tracker can now be used to report bugs and ask for feature requests.
If the bug/task already exists in Savannah, you can complete/discuss it on Savannah, no need to open a new one on GitHub.
Pull requests are welcome in all repositories, including scripts (except for adding a script, the form on weechat.org must be used).
A page with examples of triggers has been added in weechat wiki.
Sunday, February 16 2014
By Sébastien Helleu on Sunday, February 16 2014, 16:30 - core
A "bare" display mode has been added. This special mode displays only the current buffer, and no bars around (no title, nicklist, status, input, ...).
It is designed for easy selection of text and click on long URLs (which are not broken at the end of lines, because ncurses is disabled in this mode).
A new key has been added: Alt+l (use /key missing
to add the key), or this command: /key bind meta-l /window bare
.
You can also use a delay in seconds with command /window bare
, for example 5 seconds: /window bare 5
.
Two options have been added:
Bare display looks like this (click for full size):
« previous entries - page 2 of 5 - next entries »