1 = WeeChat Release Notes
2 :author: Sébastien Helleu
3 :email: flashcode@flashtux.org
9 This document lists important changes for each version, that require manual
10 actions (the latest formatted version of this document can be found
11 https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[here]). +
12 It is recommended to read it when upgrading to a new stable
15 For a complete list of changes, please look at
16 https://weechat.org/files/changelog/ChangeLog-devel.html[ChangeLog]
17 (file _ChangeLog.adoc_ in sources).
21 == Version 3.0.1 (2021-01-31)
23 Bug fix and maintenance release.
26 == Version 3.0 (2020-11-11)
28 [[v3.0_script_option_download_enabled]]
29 === New option to enable download of scripts
31 A new option has been added to allow the script plugin to download the list of
32 scripts and the scripts themselves (on weechat.org by default).
34 This option is `off` by default, so you must opt in if you want to use the
35 `/script` command, even if you upgraded from an old WeeChat version:
38 /set script.scripts.download_enabled on
42 When this option is enabled, WeeChat can sometimes download again the list of
43 scripts when you use the `/script` command, even if you don't install a script.
45 [[v3.0_irc_commands_allchan_allpv_allserv]]
46 === IRC commands /allchan, /allpv and /allserv
48 The command and arguments given to commands `/allchan`, `/allpv` and `/allserv`
49 are now evaluated (see /help on the commands for more information).
51 Additionally, a breaking change has been introduced: the leading `/` is now
52 required in these commands, so this allows to send text to buffers without
53 using the command `/msg * xxx`.
55 So with previous releases, to say "hello" on all channels:
61 Now it can be done like this:
67 If you want to use a command, you must add explicitly the leading `/`:
74 === Default "beep" trigger
76 The command of "beep" trigger is now executed only if the message does NOT
77 contain the tag "notify_none" (in addition to existing conditions).
79 You can restore the default "beep" trigger with the following command:
86 == Version 2.9 (2020-07-18)
88 [[v2.9_bar_color_bg_inactive]]
89 === New background color for inactive bars
91 A new option has been added in bar: _color_bg_inactive_. It is used for window
92 bars, when the window is not the active window.
94 By default this color is set to "default" for default bars, except for status
95 and title: the color is set to "darkgray".
97 If you upgrade from a previous release, the color will be "default" for all
98 bars, so if you want to use the new default settings, you can do:
101 /set weechat.bar.title.color_bg_inactive darkgray
102 /set weechat.bar.status.color_bg_inactive darkgray
105 If you changed the option _color_bg_ in some bars, you should also adjust
106 the new option _color_bg_inactive_, depending on your needs.
108 The function "bar_new" in API is updated, so this is an incompatible change:
109 all plugins and scripts calling this function must be updated.
111 The following scripts are updated consequently to be compatible with all
114 * https://weechat.org/scripts/source/buddylist.pl/[buddylist.pl] 2.0
115 * https://weechat.org/scripts/source/buffers.pl/[buffers.pl] 5.7
116 * https://weechat.org/scripts/source/chanmon.pl/[chanmon.pl] 2.6
117 * https://weechat.org/scripts/source/chanop.py/[chanop.py] 0.3.2
118 * https://weechat.org/scripts/source/highmon.pl/[highmon.pl] 2.7
119 * https://weechat.org/scripts/source/iset.pl/[iset.pl] 4.4
120 * https://weechat.org/scripts/source/menu.pl/[menu.pl] 1.0
121 * https://weechat.org/scripts/source/moc_control.py/[moc_control.py] 1.9
122 * https://weechat.org/scripts/source/newsbar.pl/[newsbar.pl] 0.19
123 * https://weechat.org/scripts/source/pv_info.pl/[pv_info.pl] 0.0.6
124 * https://weechat.org/scripts/source/rssagg.pl/[rssagg.pl] 1.2
125 * https://weechat.org/scripts/source/urlbar.py/[urlbar.py] 14
126 * https://weechat.org/scripts/source/urlselect.lua/[urlselect.lua] 0.5
127 * https://weechat.org/scripts/source/vimode.py/[vimode.py] 0.8
129 [[v2.9_modifier_weechat_print]]
130 === New modifier_data for modifier "weechat_print"
132 The modifier "weechat_print" has been fixed and the content of "modifier_data"
133 sent to the callback has changed (see issue #42).
135 This is an incompatible change, therefore all plugins, scripts and triggers
136 using this modifier and the "modifier_data" argument must be updated.
138 The old format contained plugin name + ";" + buffer name + ";" + tags:
141 irc;freenode.#weechat;tag1,tag2,tag3
144 The new format contains buffer pointer + ";" + tags:
147 0x123abc;tag1,tag2,tag3
150 The following scripts are updated consequently to be compatible with all
153 * https://weechat.org/scripts/source/colorize_lines.pl.html/[colorize_lines.pl] 3.9
154 * https://weechat.org/scripts/source/colorize_nicks.py/[colorize_nicks.py] 27
155 * https://weechat.org/scripts/source/colorizer.rb/[colorizer.rb] 0.2
156 * https://weechat.org/scripts/source/curiousignore.pl/[curiousignore.pl] 0.4
157 * https://weechat.org/scripts/source/format_lines.pl/[format_lines.pl] 1.6
158 * https://weechat.org/scripts/source/identica.py/[identica.py] 0.4.3
159 * https://weechat.org/scripts/source/mass_hl_blocker.pl/[mass_hl_blocker.pl] 0.2
160 * https://weechat.org/scripts/source/noirccolors.py/[noirccolors.py] 0.4
161 * https://weechat.org/scripts/source/parse_relayed_msg.pl/[parse_relayed_msg.pl] 1.9.3
162 * https://weechat.org/scripts/source/unhighlight.py/[unhighlight.py] 0.1.3
163 * https://weechat.org/scripts/source/weemoticons.py/[weemoticons.py] 0.3
165 [[v2.9_api_completion_functions]]
166 === Move of API completion functions
168 Completion functions have been added in WeeChat 2.9, to allow relay clients or
169 plugins/scripts to complete a string, without using the buffer input.
171 Therefore two functions have been renamed in API and moved to the new
172 "completion" category:
174 * function _hook_completion_get_string_ renamed to _completion_get_string_
175 * function _hook_completion_list_add_ renamed to _completion_list_add_
178 The old names are still valid for compatibility reasons, but it is recommended
179 to use only the new names as the old ones may be removed in an upcoming release.
181 [[v2.9_gnutls_required_dependency]]
182 === GnuTLS is now a required dependency
184 The build options `ENABLE_GNUTLS` (in CMake) and `--disable-gnutls` (in autotools)
185 have been removed. That means now GnuTLS is always compiled and used in WeeChat.
189 * communications encryption should be built-in, not optional
190 * GnuTLS library should be available everywhere
191 * reduce complexity of code and tests of builds.
193 [[v2.9_trigger_cmd_pass_remove_set_command]]
194 === The trigger "cmd_pass" does not hide any more values of /set command
196 The default trigger "cmd_pass" does not hide any more values of options in `/set`
197 command which contain "password" in the name.
199 The reason is that it was masking values of options that contains the word
200 "password" but the value is not a password and does not contain sensitive data,
201 for example these options were affected:
203 * irc.look.nicks_hide_password
204 * relay.network.allow_empty_password
205 * relay.network.password_hash_algo
206 * relay.network.password_hash_iterations
208 Since all real password options are now evaluated, it is recommended to use
209 secure data to store the passwords ciphered in config file. +
210 By using secure data, the passwords are never displayed on screen (even with
211 `/set` command) nor written in log files.
213 For example you can do that:
216 /secure passphrase my_secret_passphrase
217 /secure set freenode my_password
218 /set irc.server.freenode.sasl_password "${sec.data.freenode}"
221 This will be displayed like that in WeeChat, using the new regex value of
225 /secure passphrase ********************
226 /secure set freenode ***********
227 /set irc.server.freenode.sasl_password "${sec.data.freenode}"
230 If you want to use the new trigger regex after upgrade, you can do:
233 /trigger restore cmd_pass
236 If ever you prefer the old trigger regex, you can change it like that:
239 /set trigger.trigger.cmd_pass.regex "==^((/(msg|m|quote) +(-server +[^ ]+ +)?nickserv +(id|identify|set +password|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+|recover +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}"
242 [[v2.9_trigger_command_eval]]
243 === Evaluation of trigger command arguments
245 The arguments for a trigger command (except the command itself) are now evaluated.
247 That means you can use for example new lines in the command description, like that:
250 /trigger add test command "test;test command;arg1 arg2;arg1: description 1${\n}arg2: description 2"
253 The command `/help test` will display this help in WeeChat:
256 [trigger] /test arg1 arg2
264 [[v2.9_relay_weechat_protocol_handshake_nonce]]
265 === Add of handshake and nonce in weechat relay protocol
269 A _handshake_ command has been added in weechat relay protocol. +
270 The client should send this command before the _init_ to negotiate the way to
271 authenticate with the relay server.
273 See the link:weechat_relay_protocol.en.html#command_handshake[handshake command]
274 in Relay protocol doc for more information.
278 Furthermore, a "nonce" is now generated for each client connecting and must be
279 used by the client in case of hashed password in the _init_ command. +
280 The goal is to prevent replay attacks in case someone manages to read exchanges
281 between the client and relay.
283 When hashing the password, the client must use salt composed by this nonce
284 as binary (it is hexadecimal and must be base16-decoded), concatenated with
285 a client nonce after this one. +
286 So the hash is computed on: (`server nonce` + `client nonce` + `password`).
288 This salt is now mandatory even for algorithms `SHA256` and `SHA512`; this is
289 a breaking change in protocol, needed for security reasons.
291 See the link:weechat_relay_protocol.en.html#command_init[init command]
292 in Relay protocol doc for more information.
295 == Version 2.8 (2020-03-29)
297 [[v2.8_auto_connection_to_servers]]
298 === Auto connection to servers
300 The command line option `-a` (or `--no-connect`), which can also be used in the
301 `/plugin` command, is now used to set a new info called `auto_connect`
302 (see the function "info_get" in the Plugin API reference).
304 Therefore, the option is not sent any more to the function `weechat_plugin_init`
306 The plugins using this option must now get the info `auto_connect` and check
307 if the value is "1" (a string with just `1`).
309 The purpose of this change is to allow scripts as well to check this info on
310 startup, and connect or not, depending on the value (see issue #1453).
312 To be compatible with WeeChat ≤ 2.7, the script can do this, for example
317 auto_connect = weechat.info_get("auto_connect", "") != "0"
320 The variable `auto_connect` will be set like that, depending on the WeeChat
323 * WeeChat ≤ 2.7: always `True` because the info is an empty string (it does not
324 exist), which is different from "0",
325 * WeeChat ≥ 2.8: `True` by default, and `False` if `-a` or `--no-connect` is
326 given by the user (either on command line or when loading the plugin).
329 == Version 2.7.1 (2020-02-20)
331 Bug fix and maintenance release.
334 == Version 2.7 (2019-12-08)
336 [[v2.7_cmake_errors]]
337 === CMake errors on missing dependencies
339 When compiling WeeChat with CMake (which is the recommended way), errors are
340 now displayed on any missing dependency, if the optional feature was enabled
341 (most features are automatically enabled, except documentation, man page and
344 Any error on a missing dependency is fatal, so WeeChat can not be compiled.
345 This is a new behavior compared to old versions, where any missing dependency
346 was silently ignored and the compilation was possible anyway.
348 For example if PHP is not installed on your system, CMake will display an error
349 on missing PHP library:
352 -- checking for one of the modules 'php7'
353 CMake Warning at cmake/FindPHP.cmake:57 (message):
354 Could not find libphp7. Ensure PHP >=7.0.0 development libraries are
355 installed and compiled with `--enable-embed`. Ensure `php-config` is in
356 `PATH`. You may set `-DCMAKE_LIBRARY_PATH=...` to the directory containing
358 Call Stack (most recent call first):
359 src/plugins/CMakeLists.txt:157 (find_package)
362 CMake Error at src/plugins/CMakeLists.txt:161 (message):
366 Then you can either install PHP or explicitly disable PHP if you don't need this
367 plugin, using this cmake option:
370 cmake .. -DENABLE_PHP=OFF
373 [[v2.7_python3_callbacks_strings]]
374 === Strings received in Python 3 callbacks
376 The strings sent to script callbacks in Python 3 are now automatically converted
377 according to the content:
379 * if the string is valid UTF-8, it is sent as `str` (legacy behavior)
380 * if the string is not valid UTF-8, it is sent as `bytes` (new).
382 In some cases only, the string may not be valid UTF-8, so it is received as
383 `bytes` in the callback, which must take care of that.
385 For more information, see the WeeChat scripting guide: chapter about strings
386 received in callbacks (see also issue #1389).
388 Note: there are no changes for Python 2 (which is now deprecated and should not
389 be used any more), the strings sent to callbacks are always of type `str`, and
390 may contain invalid UTF-8 data, in the cases mentioned in the WeeChat scripting
393 [[v2.7_irc_message_decoding]]
394 === IRC message decoding/encoding
396 A new server option called "charset_message" has been added, replacing the
397 option _irc.network.channel_encode_.
399 This new server option has three possible values:
401 * _message_ (default): the whole IRC message is decoded/encoded, this is the
402 new default behavior; in case of problem with channel names, try to use
404 * _channel_: the message is decoded/encoded starting at the channel name (or
405 the text if no channel is present); this is like setting the old option
406 _irc.network.channel_encode_ to _on_
407 * _text_: the message is decoded/encoded starting from the text (for example
408 the user message); this is like setting the old option
409 _irc.network.channel_encode_ to _off_ (so this was the default behavior
410 in previous versions)
412 [[v2.7_xfer_file_receive_suffix]]
413 === Suffix for files received via DCC
415 Files received via DCC (xfer plugin) now have a suffix ".part" during the
416 transfer. When the transfer is successful, the suffix is removed.
418 This suffix can be customized with the new option
419 _xfer.file.download_temporary_suffix_.
421 If you prefer the legacy behavior (no suffix added), you can set an empty value
425 /set xfer.file.download_temporary_suffix ""
429 == Version 2.6 (2019-09-08)
431 [[v2.6_python3_default]]
432 === Python 3 by default
434 Python 3 is now used by default to compile the "python" plugin (no fallback
437 The CMake option `ENABLE_PYTHON3` has been renamed to `ENABLE_PYTHON2`
438 (configure option `--enable-python2`). If this option is enabled, the "python"
439 plugin is built with Python 2 (no fallback on Python 3).
444 The function to compute the colors based on the nick letters has been fixed
445 (now the function uses only a 64-bit integer even if the underlying architecture
448 If you're running WeeChat on a 32-bit architecture and want to keep same colors
449 as the previous releases, you can use one of the two new hash values.
451 If you were using "djb2", you can switch to "djb2_32":
454 /set weechat.look.nick_color_hash djb2_32
457 If you were using "sum", you can switch to "sum_32":
460 /set weechat.look.nick_color_hash sum_32
464 == Version 2.5 (2019-06-06)
466 [[v2.5_aspell_plugin_renamed]]
467 === Aspell plugin renamed to Spell
469 The "aspell" plugin has been renamed to "spell", a more generic term, because
470 it supports aspell and also enchant.
472 Consequently, the following things have been renamed as well:
474 * file _aspell.conf_ renamed to _spell.conf_; the content of the
475 file has not changed, so you can just rename the file to keep your changes
476 * options _aspell.*_ renamed to _spell.*_
477 * command `/aspell` renamed to `/spell`
478 * default key kbd:[Alt+s] changed to `/mute spell toggle`
479 * bar item _aspell_dict_ renamed to _spell_dict_
480 * bar item _aspell_suggest_ renamed to _spell_suggest_
481 * info _aspell_dict_ renamed to _spell_dict_
483 If you are upgrading from a previous release, you can copy the config file
484 before doing `/upgrade`, in WeeChat:
488 /exec -sh cp ~/.weechat/aspell.conf ~/.weechat/spell.conf
492 If you already upgraded WeeChat:
495 /exec -sh cp ~/.weechat/aspell.conf ~/.weechat/spell.conf
499 Once configuration is OK, you can delete the file _~/.weechat/aspell.conf_.
501 Then you can search if you are using "aspell" in values of options:
507 If there are options displayed, replace "aspell" by "spell" in values.
509 The default key kbd:[Alt+s] can be changed to the new `/spell` command:
512 /key bind meta-s /mute spell toggle
515 [[v2.5_xfer_option_speed_limit]]
516 === Speed limit option for DCC files
518 The option _xfer.network.speed_limit_ has been renamed to
519 _xfer.network.speed_limit_send_.
521 If you changed the value of this option, you must set it again after upgrade.
523 A new option _xfer.network.speed_limit_recv_ has been added to limit the
524 speed of received files.
526 [[v2.5_hook_info_allocated_string]]
527 === Allocated string in hook info and function info_get
529 The hook info callback now returns an allocated string, which must be freed
530 after use (in previous versions, a pointer to a static string was returned).
532 Consequently, the function info_get returns an allocated string, which must
535 This affects only C code, no changes are required in scripts.
538 == Version 2.4 (2019-02-17)
540 [[v2.4_nick_completer]]
543 A space is not added automatically any more when you complete a nick at the
544 beginning of command line. +
545 Purpose of this change is to be more flexible: you can choose whether the space
546 is added or not (it was always added in previous releases).
548 The default value of option `weechat.completion.nick_completer` has been changed
549 to add the space by default, but the value of option is not changed automatically
552 So you can run this command if you upgraded from an old version
553 and want the space still added automatically:
556 /set weechat.completion.nick_completer ": "
559 [[v2.4_api_base64_functions]]
560 === Base64 API functions
562 The functions to encode/decode base64 strings have been renamed and now support
565 New functions in C API, supporting base 16, 32, and 64:
570 Functions removed from C API:
572 * string_encode_base64
573 * string_decode_base64
576 == Version 2.3 (2018-10-21)
581 == Version 2.2 (2018-07-14)
583 [[v2.2_default_hotlist_conditions]]
584 === Default conditions for hotlist
586 The default value for option `weechat.look.hotlist_add_conditions` has been
587 changed to take care about the number of connected clients on the relay
588 with weechat protocol: if at least one client is connected, the buffer is
589 always added to the hotlist.
591 The new value contains three conditions, if one of them is true, the buffer
592 is added to the hotlist:
594 * `${away}`: true if you are away on the server matching the buffer,
595 * `${buffer.num_displayed} == 0`: true if the buffer is not displayed in any
597 * `${info:relay_client_count,weechat,connected} > 0`: true if at least
598 one client is connected on a weechat relay (new condition).
600 To use the new default value, you can reset the option with this command:
603 /unset weechat.look.hotlist_add_conditions
606 Or set explicitly the value:
609 /set weechat.look.hotlist_add_conditions "${away} || ${buffer.num_displayed} == 0 || ${info:relay_client_count,weechat,connected} > 0"
612 [[v2.2_default_triggers]]
615 The existing triggers "cmd_pass" and "msg_auth" have been updated to hide
616 password in command `/msg nickserv set password` and support the option
619 You can restore the default triggers with the following command:
622 /trigger restore cmd_pass msg_auth
625 [[v2.2_irc_signals_tags]]
626 === Tags in IRC "in" signals
628 The IRCv3 tags are now sent in these IRC signals for received messages
629 (_xxx_ is IRC server name, _yyy_ is IRC command name):
633 * _xxx,irc_raw_in_yyy_
634 * _xxx,irc_raw_in2_yyy_
636 This could break plugins or scripts that parse IRC messages and don't expect
637 to receive tags (even if tags *are* part of the IRC message, so this was a bug
640 See issue #787 for more information.
643 It is recommended for plugins and scripts to use the WeeChat IRC parser:
644 see the function "info_get_hashtable" in the Plugin API reference.
646 Now the whole IRC message is received by the signal callback, for example:
649 @tag1=abc;tag2=def :nick!user@host PRIVMSG #test :this is a test
652 In older releases, this message was received:
655 :nick!user@host PRIVMSG #test :this is a test
658 [[v2.2_debian_headless_package]]
659 === New Debian package for headless version
661 A new Debian package has been added: _weechat-headless_ which contains the
662 binary _weechat-headless_ and its man page.
664 In version 2.1, this binary was in the package _weechat-curses_.
667 == Version 2.1 (2018-03-18)
669 [[v2.1_option_name_completion]]
670 === Completion for /set and /help commands
672 A new option weechat.completion.partial_completion_templates has been added to
673 force partial completion on some templates. By default, the option name
674 completed in `/set` and `/help` commands are now using partial completion.
676 If you prefer old behavior, you can remove the templates from the new option
680 /set weechat.completion.partial_completion_templates ""
683 For more information about this feature, you can read help with:
686 /help weechat.completion.partial_completion_templates
689 [[v2.1_script_plugin_check_license]]
690 === Option to check license of scripts loaded
692 A configuration file has been added for each script plugin: _python.conf_,
693 _perl.conf_, _ruby.conf_, ...
695 Therefore the option to check license of loaded scripts has been moved from
696 _plugins.var.<language>.check_license_ (type: string) to the plugin
697 configuration file (type: boolean, default is _off_).
699 List of options moved:
701 * _plugins.var.python.check_license_ (string) moved to _python.look.check_license_ (boolean)
702 * _plugins.var.perl.check_license_ (string) moved to _perl.look.check_license_ (boolean)
703 * _plugins.var.ruby.check_license_ (string) moved to _ruby.look.check_license_ (boolean)
704 * _plugins.var.lua.check_license_ (string) moved to _lua.look.check_license_ (boolean)
705 * _plugins.var.tcl.check_license_ (string) moved to _tcl.look.check_license_ (boolean)
706 * _plugins.var.guile.check_license_ (string) moved to _guile.look.check_license_ (boolean)
707 * _plugins.var.javascript.check_license_ (string) moved to _javascript.look.check_license_ (boolean)
708 * _plugins.var.php.check_license_ (string) moved to _php.look.check_license_ (boolean)
711 == Version 2.0.1 (2017-12-20)
713 Bug fix and maintenance release.
716 == Version 2.0 (2017-12-03)
721 A new plugin "fset" has been added, it replaces the script iset.pl and has many
724 By default the fset plugin changes the behavior of `/set` command when it is
725 used with only an option name: it opens the fset buffer if at least one option
728 The old behavior was to display the list of options in the core buffer.
730 If you prefer the old behavior, you can restore it with this command:
733 /set fset.look.condition_catch_set ""
736 For more information about this feature, you can read help with:
739 /help fset.look.condition_catch_set
742 [[v2.0_debian_packaging]]
743 === Split of scripting Debian packages
745 The Debian packaging has changed (for now only on weechat.org repositories,
746 not in Debian official repositories). +
747 The package _weechat-plugins_ has been split into 9 packages:
749 - weechat-plugins (with only the following plugins: aspell, exec, fifo, relay,
760 If you are using the packages from weechat.org, you will have to install
761 manually the scripting packages (according to the languages you'll use
762 in WeeChat), for example Python/Perl only:
765 sudo apt-get install weechat-python weechat-perl
768 For development packages:
771 sudo apt-get install weechat-devel-python weechat-devel-perl
774 [[v2.0_buflist_eval]]
775 === Evaluation in buflist
777 The evaluation of expressions in buflist options is not recursive any more,
778 to prevent too many evaluations, for example in buffer variables
779 (see issue #1060 for more information). +
780 If you are using custom variables/options containing evaluated expressions,
781 like `${some.config.option}`, and if this option contains evaluated strings (`${...}`),
782 you must evaluate them with: `${eval:${some.config.option}}`.
785 The default buflist formats (`${format_buffer}`, `${format_name}`,
786 `${format_hotlist}`, ...) are automatically evaluated in options _buflist.format.buffer_,
787 _buflist.format.buffer_current_ and _buflist.format.hotlist_.
789 [[v2.0_hook_connect]]
790 === Function hook_connect
792 In scripts, the arguments _status_, _gnutls_rc_ and _sock_ sent to the callback
793 of _hook_connect_ are now integers (they were strings in older releases). +
794 To be compatible with all versions, it is recommended to convert the argument
795 to integer before using it, for example in Python: `int(sock)`.
800 In scripts, the argument _fd_ sent to the callback of _hook_fd_ is now
801 an integer (it was a string in older releases). +
802 To be compatible with all versions, it is recommended to convert the argument
803 to integer before using it, for example in Python: `int(fd)`.
806 == Version 1.9.1 (2017-09-23)
808 Bug fix and maintenance release.
811 == Version 1.9 (2017-06-25)
816 == Version 1.8 (2017-05-13)
818 [[v1.8_buflist_plugin]]
821 A new plugin called "buflist" has been added, it replaces the script "buffers.pl".
823 If the script is installed, you will see two sidebars with list of buffers.
825 If you fell in love with buflist and that the script buffers.pl is installed,
826 you can uninstall the script and remove its bar with these commands:
829 /script remove buffers.pl
833 If you don't want the list of buffers, you can disable buflist:
836 /set buflist.look.enabled off
839 To save extra memory, you can even unload the buflist plugin, remove the bar and
840 prevent the plugin from loading on next startup:
843 /plugin unload buflist
845 /set weechat.plugin.autoload "*,!buflist"
851 The option _script.scripts.url_force_https_ has been removed because now the
852 site weechat.org can only be used with HTTPS. +
853 Both HTTP and HTTPS protocols are allowed in the option _script.scripts.url_.
854 For http://weechat.org/ an automatic redirection to https://weechat.org/ will
855 occur, so you should check that the CA certificates are properly installed
858 Aspell option with color for suggestion on a misspelled word has been renamed:
860 * _aspell.color.suggestions_ has been renamed to _aspell.color.suggestion_
863 == Version 1.7.1 (2017-04-22)
865 Bug fix and maintenance release.
868 == Version 1.7 (2017-01-15)
870 [[v1.7_fifo_options]]
873 A new configuration file "fifo.conf" has been added and the old option
874 _plugins.var.fifo.fifo_ has been moved to _fifo.file.enabled_.
876 A new option _fifo.file.path_ can be used to customize the FIFO pipe
879 [[v1.7_default_triggers]]
882 A new trigger "cmd_pass_register" has been added to hide only password and not
883 email in command `/msg nickserv register password email`. +
884 The existing trigger "cmd_pass" has been updated to hide password in all
885 commands except `/msg nickserv register`.
887 You can add the new trigger and restore the other one with the following
891 /trigger restore cmd_pass_register cmd_pass
895 == Version 1.6 (2016-10-02)
897 [[v1.6_irc_server_default_msg]]
898 === IRC kick/part/quit default messages
900 Server options with default messages for kick/part/quit have been renamed:
902 * options by default for all servers:
903 ** _irc.server_default.default_msg_kick_ has been renamed to _irc.server_default.msg_kick_
904 ** _irc.server_default.default_msg_part_ has been renamed to _irc.server_default.msg_part_
905 ** _irc.server_default.default_msg_quit_ has been renamed to _irc.server_default.msg_quit_
906 * options in each server:
907 ** _irc.server.xxx.default_msg_kick_ has been renamed to _irc.server.xxx.msg_kick_
908 ** _irc.server.xxx.default_msg_part_ has been renamed to _irc.server.xxx.msg_part_
909 ** _irc.server.xxx.default_msg_quit_ has been renamed to _irc.server.xxx.msg_quit_
911 If you changed the value of these options, you must set them again after upgrade.
914 === Printf API functions
916 Some "printf" functions have been removed from C API (there were not in scripting API):
921 The function "printf_date_tags" must now be used instead of these functions
922 (the two functions removed were just C macros on function "printf_date_tags"
923 with tags set to NULL for "printf_date" and date set to 0 for "printf_tags").
926 == Version 1.5 (2016-05-01)
928 [[v1.5_nick_coloring]]
929 === Nick coloring moved to core
931 The nick coloring feature has been moved from irc plugin to core.
933 Two options have been moved from irc plugin (irc.conf) to core (weechat.conf),
934 and you must set new value if you customized them:
936 * _irc.look.nick_color_force_ moved to _weechat.look.nick_color_force_
937 * _irc.look.nick_color_hash_ moved to _weechat.look.nick_color_hash_
938 * _irc.look.nick_color_stop_chars_ moved to _weechat.look.nick_color_stop_chars_
940 The default value for option _weechat.look.nick_color_hash_ is now `djb2`
943 The following info names (used by API function "info_get") are renamed as well:
945 * _irc_nick_color_ renamed to _nick_color_
946 * _irc_nick_color_name_ renamed to _nick_color_name_
949 The old info _irc_nick_color_ and _irc_nick_color_name_ are kept for
950 compatibility (especially scripts) and will be removed in an upcoming release.
952 [[v1.5_callbacks_pointer]]
953 === Pointer in callbacks
955 A pointer has been added in all callbacks used by scripts, so the callbacks
956 will receive an extra _const void *pointer_ before the _void *data_
957 (in the C API only, not scripting API).
959 This is used to remove linked list of callbacks in scrips (improve speed,
960 reduce memory usage).
962 Following functions are changed in the C API:
973 * hook_process_hashtable
982 * hook_info_hashtable
992 The function `unhook_all` has a new argument `const char *subplugin` to remove
993 only hooks created by this "subplugin" (script).
995 [[v1.5_bar_item_away]]
998 The bar item "away" has been moved from irc plugin to core (so that away status
999 can be displayed for any plugin, using the buffer local variable "away").
1001 Two options have been moved from irc plugin (irc.conf) to core (weechat.conf):
1003 * _irc.look.item_away_message_ moved to _weechat.look.item_away_message_
1004 * _irc.color.item_away_ moved to _weechat.color.item_away_
1006 [[v1.5_default_triggers]]
1007 === Default triggers
1009 The default triggers "cmd_pass" and "msg_auth" have been updated to include
1010 nickserv commands "recover" and "regain".
1012 You can restore them with the following command:
1015 /trigger restore cmd_pass msg_auth
1019 == Version 1.4 (2016-01-10)
1021 [[v1.4_irc_alternate_nicks]]
1022 === IRC alternate nicks
1024 The option _irc.network.alternate_nick_ has been moved into servers
1025 (_irc.server_default.nicks_alternate_ and _irc.server.xxx.nicks_alternate_).
1027 If you disabled this option, you must switch it off again, globally or by
1030 Globally (default value for all servers):
1033 /set irc.server_default.nicks_alternate off
1036 For a specific server:
1039 /set irc.server.freenode.nicks_alternate off
1043 == Version 1.3 (2015-08-16)
1045 [[v1.3_irc_channels_encoding]]
1046 === IRC channels encoding
1048 If you are using exotic charsets in your channel names (anything different from
1049 UTF-8, like ISO charset), you should turn on a new option:
1052 /set irc.network.channel_encode on
1055 This will force WeeChat to decode/encode the channel name
1056 (like WeeChat 1.2 or older did).
1058 See these issues for more information: issue #482, issue #218.
1061 It is *highly recommended* to use only UTF-8 in WeeChat (wherever you can),
1062 because everything is stored as UTF-8 internally.
1064 [[v1.3_alias_command]]
1067 The command `/alias` has been updated to list, add and remove aliases.
1068 Therefore the command `/unalias` has been removed.
1070 To add an alias, the argument `add` must be used in command `/alias` before the
1074 /alias add split /window splith
1077 And the alias is removed with this command:
1083 [[v1.3_script_path]]
1086 The option _script.scripts.dir_ has been renamed to _script.scripts.path_
1087 (and the content is now evaluated, see `/help eval`).
1089 If you changed the value of this option, you must set it again after upgrade.
1092 == Version 1.2 (2015-05-10)
1094 The word chars are now customizable with two options:
1096 * weechat.look.word_chars_highlight
1097 * weechat.look.word_chars_input
1099 The behavior has changed for command line: now any non-word char is used as
1100 delimiter for keys to move to previous/next word or delete previous/next word.
1102 You can restore the old behavior (only use spaces as delimiters) with this
1106 /set weechat.look.word_chars_input "!\u00A0,!\x20,*"
1110 == Version 1.1.1 (2015-01-25)
1112 Bug fix and maintenance release.
1115 == Version 1.1 (2015-01-11)
1117 [[v1.1_triggers_regex_format]]
1118 === New format for regex replacement in triggers
1120 A new format is used in regex replacement to use regex groups, this format
1121 is incompatible with version 1.0.
1123 The existing triggers are *NOT automatically updated*.
1125 [width="60%",cols="2,2,3",options="header"]
1127 | Old format | New format | Examples (new format)
1128 | `$0` ... `$99` | `${re:0}` ... `${re:99}` | `${re:1}`
1129 | `$+` | `${re:+}` | `${re:+}`
1130 | `$.*N` | `${hide:*,${re:N}}` | `${hide:*,${re:2}}` +
1134 Moreover, default triggers used to hide passwords have been fixed for *BSD
1137 You can restore them with the following command:
1140 /trigger restore cmd_pass msg_auth server_pass
1143 If you added triggers with the old regex replacement format, you must update
1146 [[v1.1_trigger_beep]]
1147 === Default "beep" trigger
1149 The command of "beep" trigger is now executed only if the message is displayed
1150 (not filtered with /filter).
1152 You can restore the default "beep" trigger with the following command:
1155 /trigger restore beep
1158 [[v1.1_commands_return_code]]
1159 === Return code of commands
1161 The API function _weechat_command_ now sends the value returned return by
1164 WeeChat does not display any more an error when a command returns
1165 _WEECHAT_RC_ERROR_. Consequently, all plugins/scripts should display an
1166 explicit error message before returning _WEECHAT_RC_ERROR_.
1168 For C plugins, two macros have been added in weechat-plugin.h:
1169 _WEECHAT_COMMAND_MIN_ARGS_ and _WEECHAT_COMMAND_ERROR_.
1171 [[v1.1_inline_commands_completion]]
1172 === Completion of inline commands
1174 WeeChat now completes by default inline commands (not only at beginning of
1177 When this feature is enabled, there is no more automatic completion of
1178 absolute paths (except if you are completing a path inside a command argument,
1179 like `/dcc send <nick> <path>`).
1181 To restore the old behavior (no completion of inline commands):
1184 /set weechat.completion.command_inline off
1187 [[v1.1_relay_irc_backlog_tags]]
1188 === Relay option relay.irc.backlog_tags
1190 The option _relay.irc.backlog_tags_ is now a list separated by commas
1191 (it was separated by semicolons in older versions).
1193 If you are using a list of tags in this option, you must adjust the value
1196 [[v1.1_relay_ipv6_ipv4]]
1197 === IPv4-mapped IPv6 client address in relay
1199 The string "::ffff:" has been removed from IPv4-mapped IPv6 client address
1202 If you are using "::ffff:" in option _relay.network.allowed_ips_, you can
1205 [[v1.1_irc_temporary_servers]]
1206 === Temporary servers disabled by default with /connect
1208 Creating a temporary server with command `+/connect <address>+` or
1209 `+/connect irc://...+` is now forbidden by default.
1211 A new option has been added to unlock the feature, you can do that for
1212 the old behavior in command `/connect`:
1215 /set irc.look.temporary_servers on
1218 [[v1.1_timeval_microseconds]]
1219 === Microseconds in API timeval functions
1221 The API functions using timeval are now using or returning microseconds,
1222 instead of milliseconds:
1224 * function _util_timeval_diff_: returns microseconds
1225 * function _util_timeval_add_: the argument _interval_ is now expressed in
1229 == Version 1.0.1 (2014-09-28)
1231 Bug fix and maintenance release.
1234 == Version 1.0 (2014-08-15)
1236 [[v1.0_irc_channel_type]]
1237 === Channel type not added by default on /join
1239 The channel type is not any more automatically added to a channel name on join
1240 (for example `/join weechat` will not send `/join #weechat`).
1242 If you are lazy and want to automatically add the channel type, you can turn on
1246 /set irc.look.join_auto_add_chantype on
1249 [[v1.0_irc_channel_modes_arguments]]
1250 === Hide IRC channel modes arguments
1252 The option _irc.look.item_channel_modes_hide_key_ has been renamed to
1253 _irc.look.item_channel_modes_hide_args_ and is now a string. +
1254 It can now hide arguments for multiple channel modes.
1256 By default, a channel key (mode "k") will hide channel arguments. For old
1257 behavior (never hide arguments, even with a channel key), you can do:
1260 /set irc.look.item_channel_modes_hide_args ""
1263 [[v1.0_jump_first_last_buffer]]
1264 === Jump to first/last buffer
1266 The command `/input jump_last_buffer` has been replaced by `/buffer +`.
1267 You can rebind the key kbd:[Alt+j], kbd:[Alt+l] (`L`):
1270 /key bind meta-jmeta-l /buffer +
1274 The command `/input jump_last_buffer` still works for compatibility reasons,
1275 but it should not be used any more.
1277 Similarly, a new key has been added to jump to first buffer: kbd:[Alt+j], kbd:[Alt+f].
1278 You can add it with following command:
1284 [[v1.0_hotlist_conditions]]
1285 === Hotlist conditions
1287 A new option _weechat.look.hotlist_add_conditions_ has been added. This option
1288 replaces the option _weechat.look.hotlist_add_buffer_if_away_, which has been
1291 Default conditions are `${away} || ${buffer.num_displayed} == 0`, which means
1292 that a buffer is added in hotlist if you are away ("away" local variable is
1293 set), or if the buffer is not visible on screen (not displayed in any window).
1295 If you have set _weechat.look.hotlist_add_buffer_if_away_ to `off` (to not add
1296 current buffer in hotlist when you are away), then you must manually change the
1297 default conditions with the following command:
1300 /set weechat.look.hotlist_add_conditions "${buffer.num_displayed} == 0"
1303 [[v1.0_trigger_plugin]]
1304 === Rmodifier replaced by Trigger plugin
1306 The trigger plugin replaces the rmodifier plugin, which has been removed
1307 (and trigger has much more features than rmodifier).
1309 Default triggers have same features as default rmodifiers (to hide passwords
1310 in commands and output).
1312 If you added some custom rmodifiers, you must create similar triggers, see
1313 `/help trigger` and the complete trigger doc in the _WeeChat User's guide_.
1316 If on startup you have an error about API mismatch in plugin _rmodifier.so_,
1317 you can manually remove the file (the command `make install` does not remove
1320 [[v1.0_bare_display]]
1323 A bare display mode has been added (for easy text selection and click on URLs),
1324 the new default key is kbd:[Alt+l] (`L`).
1326 Use command `/key missing` to add the key or `/key listdiff` to see differences
1327 between your current keys and WeeChat default keys.
1330 === Function hook_print
1332 In scripts, the arguments _displayed_ and _highlight_ sent to the callback of
1333 _hook_print_ are now integers (they were strings in older releases). +
1334 To be compatible with all versions, it is recommended to convert the argument
1335 to integer before testing it, for example in Python: `if int(highlight):`.
1338 == Version 0.4.3 (2014-02-09)
1340 [[v0.4.3_colors_messages]]
1341 === Colors in messages
1343 The color code for "reverse video" in IRC message has been fixed: now WeeChat
1344 uses 0x16 like other clients (and not 0x12 any more). +
1345 The code 0x12 is not decoded any more, so if it is received (for example from
1346 an old WeeChat version), it is not displayed as reverse video.
1348 The color code for "underlined text" in input line has been fixed: now WeeChat
1349 uses 0x1F, the same code sent to IRC server.
1351 The default keys for "reverse video" and "underlined text" have changed:
1353 * reverse video: key kbd:[Ctrl+c], kbd:[r] is replaced by kbd:[Ctrl+c], kbd:[v]
1354 * underlined text: key kbd:[Ctrl+c], kbd:[u] is replaced by kbd:[Ctrl+c], kbd:[_]
1356 You can remove the old keys and add the new ones with these commands:
1364 [[v0.4.3_terminal_title]]
1367 The boolean option _weechat.look.set_title_ has been renamed to
1368 _weechat.look.window_title_ and is now a string.
1370 The content is evaluated and the default value is `WeeChat ${info:version}`.
1373 Only static content should be used in this option, because the title is
1374 refreshed only when the option is changed.
1376 [[v0.4.3_bar_item_buffer_last_number]]
1377 === New bar item buffer_last_number
1379 The bar item _buffer_count_ now displays the number of opened buffers (each
1380 merged buffer counts 1).
1382 The new bar item _buffer_last_number_ displays the highest buffer number
1385 If you want to display last number in the status bar, replace _buffer_count_
1386 by _buffer_last_number_ in your option _weechat.bar.status.items_.
1388 [[v0.4.3_bar_item_buffer_zoom]]
1389 === New bar item buffer_zoom
1391 A new bar item has been added: _buffer_zoom_.
1392 The default value for status bar items becomes:
1395 /set weechat.bar.status.items "[time],[buffer_count],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_zoom+buffer_filter,[lag],[hotlist],completion,scroll"
1398 [[v0.4.3_irc_messages_channel_join]]
1399 === IRC messages on channel join
1401 The names are not displayed any more by default on channel join (they are in
1404 Names can be displayed with the value "353" in option
1405 _irc.look.display_join_message_ (which is not in default value). +
1406 The value "366" shows only names count on channel.
1408 If you want to display all messages on join (including names), you can do:
1411 /set irc.look.display_join_message "329,332,333,353,366"
1414 [[v0.4.3_irc_maximum_lag]]
1415 === Maximum lag in IRC
1417 Option _irc.network.lag_max_ has been added.
1419 The value of option _irc.network.lag_reconnect_ (if set to non-zero value) must
1420 be less than or equal to _irc.network.lag_max_, otherwise the reconnection will
1423 You should check the value of both options and fix them if needed.
1426 == Version 0.4.2 (2013-10-06)
1428 [[v0.4.2_day_change_message]]
1429 === Day change message
1431 The day change message is now dynamically displayed, and therefore is not stored
1432 as a line in buffer any more.
1434 Option _weechat.look.day_change_time_format_ has been split into two options
1435 _weechat.look.day_change_message_{1date|2dates}_ (color codes are allowed in
1436 these options, see `/help eval`).
1438 New color option _weechat.color.chat_day_change_ has been added.
1440 After `/upgrade` from an old version, you will see two messages for each day
1441 change. This is a normal behavior and will not happen again with the next day
1444 [[v0.4.2_buffer_regex_search]]
1445 === Regex search in buffer
1447 Search with regular expression has been added, and therefore some keys in search
1448 context have been changed.
1450 The key kbd:[Ctrl+r] in search context is now used to switch string/regex search
1451 (instead of searching exact text).
1453 If you never changed keys in search context, you can reset them all with one
1457 /key resetall -yes search
1460 Or the manual method:
1464 /key bindctxt search ctrl-R /input search_switch_regex
1467 To view keys in search context:
1473 For more information, see the chapter about keys in the _WeeChat User's guide_.
1475 [[v0.4.2_rmodifier]]
1478 A new rmodifier "secure" has been added to hide passphrase and passwords
1479 displayed by command `/secure`. Use command `/rmodifier missing` to add it.
1481 [[v0.4.2_color_codes_options]]
1482 === Color codes in options
1484 The format for color codes in some options has changed. The options are
1485 evaluated with the function "string_eval_expression", which uses the format
1488 Following options are affected:
1490 * _weechat.look.buffer_time_format_
1491 * _weechat.look.prefix_action_
1492 * _weechat.look.prefix_error_
1493 * _weechat.look.prefix_join_
1494 * _weechat.look.prefix_network_
1495 * _weechat.look.prefix_quit_
1497 The options using old format `${xxx}` must be changed with new format
1498 `${color:xxx}` (where xxx is a color name or number, with optional color
1504 /set weechat.look.buffer_time_format "${color:251}%H${color:243}%M${color:238}%S"
1507 [[v0.4.2_binary_man_page]]
1508 === Binary and man page
1510 WeeChat binary and man page have been renamed from `weechat-curses` to
1513 A symbolic link has been added for binary: `weechat-curses` -> `weechat`
1514 (so that the /upgrade from a old version will still work).
1516 If you upgrade from an old version, it is recommended to force the use of the
1517 new binary name with the command: `/upgrade /path/to/weechat` (replace the path
1521 For packagers: you should create the link `weechat-curses` -> `weechat` if it's
1522 not automatically created in the package (both CMake and configure are creating
1523 this link on make install).
1525 [[v0.4.2_man_page_documentation]]
1526 === Man page / documentation
1528 Documentation is not built by default any more, you have to use option
1529 `-DENABLE_DOC=ON` in cmake command to enable it.
1531 The man page is now built with asciidoc and translated in several
1532 languages. A new CMake option `ENABLE_MAN` has been added to compile man page
1535 [[v0.4.2_aspell_colors]]
1538 Option _aspell.look.color_ has been renamed to _aspell.color.misspelled_.
1540 If you changed the value of this option, you must set it again after upgrade.
1543 == Version 0.4.1 (2013-05-20)
1545 [[v0.4.1_relay_nicklist_diff]]
1546 === Nicklist diff in relay
1548 A new message with identifier "_nicklist_diff" has been added in relay (WeeChat
1549 protocol). WeeChat may decide to send full nicklist or this nicklist diff at
1550 any time (depending on size of message, the smaller is sent).
1552 Clients using nicklist must implement it.
1554 For more info about content of message, see document _WeeChat Relay Protocol_.
1556 [[v0.4.1_dynamic_nick_prefix_suffix]]
1557 === Dynamic nick prefix/suffix
1559 The nick prefix/suffix (for example: "<" and ">") are now dynamic and used on
1560 display (not stored any more in the line).
1562 Options moved from irc plugin (irc.conf) to core (weechat.conf):
1564 * _irc.look.nick_prefix_ moved to _weechat.look.nick_prefix_
1565 * _irc.look.nick_suffix_ moved to _weechat.look.nick_suffix_
1566 * _irc.color.nick_prefix_ moved to _weechat.color.chat_nick_prefix_
1567 * _irc.color.nick_suffix_ moved to _weechat.color.chat_nick_suffix_
1569 Types and default values for these four options remain unchanged.
1571 Two new options to customize the truncature char (by default "`+`"):
1573 * _weechat.look.prefix_align_more_after_ (boolean, _on_ by default)
1574 * _weechat.look.prefix_buffer_align_more_after_ (boolean, _on_ by default)
1576 When these options are enabled (default), the "`+`" is displayed after the
1577 text, replacing the space that should be displayed there. +
1578 When turned off, the "`+`" will replace last char of text.
1580 Example for a nicks "FlashCode" and "fc" with different values for options
1581 _weechat.look.prefix_align_max_, _weechat.look.prefix_align_more_after_,
1582 _weechat.look.nick_prefix_ and _weechat.look.nick_suffix_:
1585 # align_max, more_after, prefix/suffix
1587 FlashCode │ test # 0, on
1590 FlashCod+│ test # 8, on
1593 FlashCo+ │ test # 8, off
1596 <FlashCode> │ test # 0, on, < >
1599 <FlashC>+│ test # 8, on, < >
1602 <Flash+> │ test # 8, off, < >
1606 After `/upgrade`, if you set new options to non-empty strings, and if old
1607 options were set to non-empty strings too, you will see double prefix/suffix
1608 on old messages, this is normal behavior (lines displayed before `/upgrade`
1609 have prefix/suffix saved in prefix, but new lines don't have them any more).
1611 New options in logger plugin (logger.conf):
1613 * _logger.file.nick_prefix_: prefix for nicks in log files (default: empty
1615 * _logger.file.nick_suffix_: suffix for nicks in log files (default: empty
1618 [[v0.4.1_irc_reconnection_lag]]
1619 === IRC reconnection on important lag
1621 Option _irc.network.lag_disconnect_ has been renamed to
1622 _irc.network.lag_reconnect_ and value is now a number of seconds (instead of
1625 If you changed the value of this option, you must set it again after upgrade.
1627 [[v0.4.1_irc_passwords_hidden]]
1628 === IRC passwords hidden
1630 IRC plugin is now using modifiers "irc_command_auth" and "irc_message_auth" to
1633 The option _irc.look.hide_nickserv_pwd_ has been removed, and a new option
1634 _irc.look.nicks_hide_password_ has been added (by default passwords are hidden
1635 only for "nickserv").
1637 A new rmodifier "message_auth" has been added to hide passwords displayed by
1638 command `/msg nickserv identify|register|ghost|release` and the rmodifier
1639 "nickserv" has been renamed to "command_auth".
1641 If you never added/changed rmodifiers, you can just reset all rmodifiers:
1644 /rmodifier default -yes
1647 If you added/changed some rmodifiers, do it manually with these commands:
1650 /rmodifier del nickserv
1651 /rmodifier add command_auth history_add,input_text_display,irc_command_auth 1,4* ^(/(msg|quote) +nickserv +(id|identify|register|ghost \S+|release \S+) +)(.*)
1652 /rmodifier add message_auth irc_message_auth 1,3* ^(.*(id|identify|register|ghost \S+|release \S+) +)(.*)
1655 [[v0.4.1_lua_constants]]
1658 For consistency with other supported languages, the API constants in Lua have
1659 been redefined as constants instead of functions.
1661 Therefore, the use of a constant must be changed: the parentheses must be
1668 return weechat.WEECHAT_RC_OK()
1675 return weechat.WEECHAT_RC_OK
1678 [[v0.4.1_guile_callbacks]]
1681 The way to give arguments for guile callbacks has been fixed: now arguments are
1682 sent individually (instead of a list with all arguments inside).
1684 Therefore, existing guile scripts must be modified accordingly. Moreover,
1685 WeeChat now requires Guile ≥ 2.0 to compile.
1688 == Version 0.4.0 (2013-01-20)
1690 [[v0.4.0_bars_conditions]]
1691 === Conditions in bars
1693 Conditions in bars have changed, and now an expression is evaluated.
1695 If you have a value with many conditions in a bar, like: `nicklist,active`, you
1696 must now use an expression like: `${nicklist} && ${active}` (see the chapter
1697 about bars in the _WeeChat User's guide_).
1699 [[v0.4.0_ipv6_default]]
1704 IPv6 is now used by default to connect to IRC servers, with fallback to
1705 IPv4. The option _irc.server_default.ipv6_ is now "on" by default. If IPv6 is
1706 not enabled or fails, IPv4 will be used. The "ipv6" option in server is now
1707 used to disable IPv6 and force IPv4 (if option is turned "off").
1711 Relay plugin is now listening by default on an IPv6 socket (new option
1712 _relay.network.ipv6_, on by default), so connections with IPv4 will have
1713 IPv4-mapped IPv6 addresses, like: "::ffff:127.0.0.1" (for "127.0.0.1"); check
1714 that value of option _relay.network.allowed_ips_ supports this mapping, or
1715 disable IPv6 in relay if you don't plan to use it at all:
1718 /set relay.network.ipv6 off
1722 == Version 0.3.9.2 (2012-11-18)
1724 This version fixes a security vulnerability when a plugin/script gives
1725 untrusted command to API function "hook_process".
1728 == Version 0.3.9.1 (2012-11-09)
1730 This version fixes crash when decoding IRC colors in strings.
1733 == Version 0.3.9 (2012-09-29)
1735 [[v0.3.9_options_moved]]
1738 Options moved from core (weechat.conf) to irc plugin (irc.conf):
1740 * _weechat.look.nickmode_ moved to _irc.look.nick_mode_ (new type: integer
1741 with values: none/prefix/action/both)
1742 * _weechat.look.nickmode_empty_ moved to _irc.look.nick_mode_empty_
1744 [[v0.3.9_bar_item_buffer_modes]]
1745 === New bar item buffer_modes
1747 A new bar item has been added: _buffer_modes_ and irc option
1748 _irc.look.item_channel_modes_ has been removed; to display irc channel modes in
1749 status bar (after channel name), you have to manually add the new item
1750 _buffer_modes_ (this is now used by default in status bar items), default value
1751 for status bar items becomes:
1754 /set weechat.bar.status.items "[time],[buffer_count],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_filter,[lag],[hotlist],completion,scroll"
1757 [[v0.3.9_command_aspell]]
1760 New options in command `/aspell`:
1762 * `enable`: enable aspell
1763 * `disable`: disable aspell
1764 * `toggle`: toggle aspell (new default key: kbd:[Alt+s])
1766 Options renamed in command `/aspell`:
1768 * `enable` renamed to `setdict` (set dictionary for current buffer)
1769 * `disable` renamed to `deldict` (delete dictionary used on current buffer)
1770 * `dictlist` renamed to `listdict` (show installed dictionaries)
1772 [[v0.3.9_horizontal_separator]]
1773 === Horizontal separator
1775 An horizontal separator has been added between split windows, and two options
1776 have been added to toggle separators (both are enabled by default):
1778 * _weechat.look.window_separator_horizontal_
1779 * _weechat.look.window_separator_vertical_
1784 New keys were added, use command `/key missing` to add them or `/key listdiff`
1785 to see differences between your current keys and WeeChat default keys.
1788 == Version 0.3.8 (2012-06-03)
1793 Options _weechat.look.prefix_align_more_ and
1794 _weechat.look.prefix_buffer_align_more_ have been converted from type boolean
1797 * If the value was on (default), new value is "+" and you can now customize
1799 * If the value was off, you have to set " " (string with one space).
1801 [[v0.3.8_paste_detection]]
1804 Option _weechat.look.paste_max_lines_ can now be used with value 0 to detect
1805 paste with one line (only if terminal "bracketed paste mode" is enabled when
1806 option _weechat.look.paste_bracketed_ is on); so now the value -1 is used to
1807 disable paste detection: if your value was 0, you should set it to -1:
1810 /set weechat.look.paste_max_lines -1
1813 [[v0.3.8_rmodifier]]
1816 Rmodifier "nickserv" has a new default regex which includes option "release"
1817 for command `/msg nickserv`.
1819 If you never added/changed rmodifiers, you can just reset all rmodifiers:
1822 /rmodifier default -yes
1825 If you added/changed some rmodifiers, do it manually with these commands:
1828 /rmodifier del nickserv
1829 /rmodifier add nickserv history_add,input_text_display 1,4* ^(/(msg|quote) +nickserv +(id|identify|ghost \S+|release \S+) +)(.*)
1833 == Version 0.3.7 (2012-02-26)
1838 Option `scroll_unread` has been moved from command `/input` to `/window`,
1839 therefore default command of key kbd:[Alt+u] has been updated. To bind key with
1843 /key bind meta-u /window scroll_unread
1846 Option _weechat.history.max_lines_ has been renamed to
1847 _weechat.history.max_buffer_lines_number_.
1849 If you changed the value of this option, you must set it again after upgrade.
1851 Option _weechat.plugin.extension_ now supports list of extensions, and new
1852 default value is ".so,.dll" (with this value, weechat.conf is compatible with
1855 [[v0.3.7_extended_regex]]
1858 Extended regex is used in filters and irc ignore, so some chars that needed
1859 escape in past do not need any more (for example `[0-9]\+` becomes `[0-9]+`),
1860 filters and ignore have to be manually fixed.
1862 Option _weechat.look.highlight_regex_ becomes case insensitive by default, to
1863 make it case sensitive, use "(?-i)" at beginning of string, for example:
1864 "(?-i)FlashCode|flashy".
1867 == Version 0.3.6 (2011-10-22)
1872 Option _weechat.look.hline_char_ has been renamed to
1873 _weechat.look.separator_horizontal_.
1875 If you changed the value of this option, you must set it again after upgrade.
1877 [[v0.3.6_colors_bold]]
1880 Bold is not used any more for basic colors (used only if terminal has less than
1881 16 colors), a new option has been added to force bold if needed:
1882 _weechat.look.color_basic_force_bold_.
1885 == Version 0.3.5 (2011-05-15)
1890 If you have some colors defined in section "palette" with version 0.3.4, you
1891 should remove all colors defined, and add new aliases (it's not needed any more
1892 to add colors before using them).
1894 Colors for nick prefixes (char for op, voice, ..) are defined in a single
1895 option _irc.color.nick_prefixes_, therefore following options will be lost:
1896 _irc.color.nick_prefix_op_, _irc.color.nick_prefix_halfop_,
1897 _irc.color.nick_prefix_voice_, _irc.color.nick_prefix_user_.
1902 [[v0.3.5_hotlist_counters]]
1905 Count of messages have been added to hotlist by default, if you want to come
1906 back to old behavior, do that:
1909 /set weechat.look.hotlist_count_max 0
1910 /set weechat.look.hotlist_buffer_separator ","
1913 [[v0.3.5_hotlist_away_current_buffer]]
1914 ==== Away and current buffer
1916 When you are away, all buffers are now added to hotlist by default (even if
1917 they are displayed in a window), if you want to come back to old behavior, do
1921 /set weechat.look.hotlist_add_buffer_if_away off
1927 New keys were added, use command `/key missing` to add them or `/key listdiff`
1928 to see differences between your current keys and WeeChat default keys.
1931 == Version 0.3.4 (2011-01-16)
1933 [[v0.3.4_after_upgrade]]
1936 If you are using `/upgrade` from a previous release:
1938 * Some nick prefixes can be wrong, so it is recommended to do `/allchan names`.
1939 * Nick colors are defined with a new option _weechat.color.chat_nick_colors_,
1940 therefore old options _weechat.color.chat_nick_color1..10_ will be lost when
1942 * Nick colors in messages displayed will be wrong if you changed some nick
1943 colors (old default colors will be used).
1948 Some IRC options have been renamed, before upgrading to this version, note
1949 value for old options, and set them again with new name:
1951 * options moved from _network_ section to servers (with global value, and
1952 server value, like other server options):
1953 ** _irc.network.connection_timeout_ moved to
1954 _irc.server_default.connection_timeout_
1955 ** _irc.network.anti_flood_prio_high_ moved to
1956 _irc.server_default.anti_flood_prio_high_
1957 ** _irc.network.anti_flood_prio_low_ moved to
1958 _irc.server_default.anti_flood_prio_low_
1959 ** _irc.network.away_check_ moved to _irc.server_default.away_check_
1960 ** _irc.network.away_check_max_nicks_ moved to
1961 _irc.server_default.away_check_max_nicks_
1962 ** _irc.network.default_msg_part_ moved to
1963 _irc.server_default.default_msg_part_
1964 ** _irc.network.default_msg_quit_ moved to
1965 _irc.server_default.default_msg_quit_
1966 * other IRC options renamed:
1967 ** _irc.look.open_channel_near_server_ moved to _irc.look.new_channel_position_
1968 (old option was boolean, new is integer with value as string)
1969 ** _irc.look.open_pv_near_server_ moved to _irc.look.new_pv_position_
1970 (old option was boolean, new is integer with value as string)
1973 == Version 0.3.3 (2010-08-07)
1975 [[v0.3.3_after_upgrade]]
1978 If you are using `/upgrade` from a previous release, then you must reconnect to
1979 IRC servers in order to use new command /wallchops.
1984 Option _irc.look.show_away_once_ has been renamed to
1985 _irc.look.display_pv_away_once_.
1987 Option _irc.network.lag_min_show_ is now in milliseconds, you should set new
1988 value: your current value multiplied by 1000 (new default value is 500).
1991 == Version 0.3.2 (2010-04-18)
1993 [[v0.3.2_after_upgrade]]
1996 If you are using `/upgrade` from a previous release, then you must execute this
1997 command on all IRC servers/channels/private buffers and xfer DCC chats (not
1998 needed on WeeChat core buffer or buffers from other plugins/scripts):
2001 /buffer set highlight_words $nick
2005 == Version 0.3.1.1 (2010-01-31)
2007 This version fixes crashes with SSL connection and purge of old DCC chats.
2009 All users of version 0.3.1 should upgrade to this version.
2012 == Version 0.3.1 (2010-01-23)
2017 IRC commands /ame and /amsg are now aliases, if you are upgrading from version
2018 0.3.0, you must create aliases with following commands:
2021 /alias aaway allserv /away
2022 /alias ame allchan /me
2023 /alias amsg allchan /amsg *
2024 /alias anick allserv /nick
2028 == Version 0.3.0 (2009-09-06)
2030 This version brings *MAJOR* changes, especially for configuration files and
2031 plugin API and is not compatible with previous versions.
2035 * It is *NOT POSSIBLE* to use command `/upgrade` from a version 0.2.x to 0.3.x;
2036 you have to quit your old WeeChat, then run new version.
2037 * New configuration files (`*.conf`) are not compatible with old files
2039 * Name of options is similar to old versions, but there is now one
2040 configuration file by plugin, and one file for WeeChat core; there is
2041 *no automatic conversion* for your old options to new configuration files,
2042 so you'll have to setup again your IRC servers and all other options.
2043 * Plugin API has been rewritten and is not compatible with previous versions;
2044 accordingly, scripts and plugins must have been designed for version 0.3.x to
2045 be loaded into WeeChat.
2048 == Version 0.2.6.3 (2009-06-13)
2050 This version fixes gnutls detection.
2053 == Version 0.2.6.2 (2009-04-18)
2055 This version fixes a bug with charset decoding (like _iso2022jp_).
2058 == Version 0.2.6.1 (2009-03-14)
2060 This version fixes a major bug: crash with some special chars in IRC messages.
2063 == Version 0.2.6 (2007-09-06)
2068 == Version 0.2.5 (2007-06-07)
2073 == Version 0.2.4 (2007-03-29)
2078 == Version 0.2.3 (2007-01-10)
2080 This version fixes several major bugs of version 0.2.2.
2082 All users of version 0.2.2 should upgrade to this version.
2085 == Version 0.2.2 (2007-01-06)
2087 [[v0.2.2_charset_plugin]]
2090 For users of any previous version, all your charset settings in weechat.rc will
2091 be LOST! You should save your weechat.rc to keep your values and set them again
2092 with new _charset_ plugin.
2094 For ISO users: history of channels may be without accents (after `/upgrade`),
2095 this is not recoverable, but this is not a bug. All new messages should be OK.
2097 Be careful, now default encode is UTF-8 for all channels (before it was
2098 terminal charset). If you still want to send messages as _ISO-8859-1_, you
2099 should set either global encode or server specific encode to _ISO-8859-1_.
2104 /setp charset.global.encode = "ISO-8859-1"
2107 For server encode (on server buffer):
2110 /charset encode ISO-8859-1
2116 New keys for topic scroll: kbd:[F9]/kbd:[F10].
2118 Key kbd:[F10] was used for `infobar_clear` in previous WeeChat versions, you
2119 have to manually rebind this key (except for new WeeChat users):
2122 /key <press alt+"k" then F10> scroll_topic_right
2125 Which gives something like:
2128 /key meta2-21~ scroll_topic_right
2132 == Version 0.2.1 (2006-10-01)
2137 == Version 0.2.0 (2006-08-19)
2139 [[v0.2.0_after_upgrade]]
2142 If you upgraded with `/upgrade` in WeeChat, you should `/disconnect` and then
2143 `/reconnect` on each server, to display properly channel/user modes.
2148 If you're using plugins, you should remove some old plugins libraries in
2149 WeeChat system library directory (commonly _/usr/local/lib/weechat/plugins_):
2150 remove `lib*` files (like `libperl.*`, `libpython.*`, ..) and keep only new
2151 libraries (`perl.*`, `python.*`, ..).
2154 == Version 0.1.9 (2006-05-25)
2159 Please close all DCC chat buffers before using /upgrade command, otherwise you
2160 may experience problems with DCC chats.
2162 [[v0.1.9_script_api]]
2165 Some changes in script API: now timer handlers functions takes exactly 0 (zero)
2166 argument (in version 0.1.8, two arguments were mandatory but not used: server
2170 == Version 0.1.8 (2006-03-18)
2172 [[v0.1.8_after_upgrade]]
2175 After installing 0.1.8 (or with `/upgrade`), issue both commands (if you didn't
2176 redefine these keys (kbd:[Alt+Home] / kbd:[Alt+End]):
2179 /key unbind meta-meta2-1~
2180 /key unbind meta-meta2-4~
2183 Then launch again WeeChat (or issue `/upgrade`).
2185 [[v0.1.8_configuration_files]]
2186 === Configuration files
2188 It is recommended for users of version 0.1.7 (or any older), to replace values
2189 in setup file (_~/.weechat/weechat.rc_):
2191 * option: log_path: replace _~/.weechat/logs_ by _%h/logs_
2192 * option: plugins_path: replace _~/.weechat/plugins_ by _%h/plugins_
2194 The string _%h_ is replaced by WeeChat home (default: _~/.weechat_, may be
2195 overridden by new command line argument `--dir`).
2200 Keys kbd:[Alt+Home] / kbd:[Alt+End] were used for nicklist scroll, they're now
2201 replaced by kbd:[Alt+F11] / kbd:[Alt+F12].
2204 == Version 0.1.7 (2006-01-14)
2209 Ruby script plugin has been added but is experimental in this release. You're
2212 [[v0.1.7_command_away]]
2215 Command `/away` was changed to be RFC 2812 compliant. Now argument is required
2216 to set away, and no argument means remove away ("back").
2218 Option _irc_default_msg_away_ has been removed.
2221 == Version 0.1.6 (2005-11-11)
2223 [[v0.1.6_script_api]]
2226 Incompatibility with some old scripts: now all handlers have to return a code
2227 for completion, and to do some actions about message to ignore (please look at
2228 documentation for detail).
2233 On OpenBSD, the new option _plugins_extension_ should be set to _.so.0.0_ since
2234 the plugins names are ending by _.so.0.0_ and not _.so_.
2239 With new and full UTF-8 support, the option _look_charset_internal_ should be
2240 set to blank for most cases. Forces it only if your locale is not properly
2241 detected by WeeChat (you can set _UTF-8_ or _ISO-8859-15_ for example,
2242 depending on your locale). WeeChat is looking for _UTF-8_ in your locale name
2246 == Version 0.1.5 (2005-09-24)
2251 == Version 0.1.4 (2005-07-30)
2256 == Version 0.1.3 (2005-07-02)
2261 == Version 0.1.2 (2005-05-21)
2266 == Version 0.1.1 (2005-03-20)
2271 == Version 0.1.0 (2005-02-12)
2276 == Version 0.0.9 (2005-01-01)
2281 == Version 0.0.8 (2004-10-30)
2286 == Version 0.0.7 (2004-08-08)
2291 == Version 0.0.6 (2004-06-05)
2296 == Version 0.0.5 (2004-02-07)
2301 == Version 0.0.4 (2004-01-01)
2306 == Version 0.0.3 (2003-11-03)
2311 == Version 0.0.2 (2003-10-05)
2316 == Version 0.0.1 (2003-09-27)