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.7.1 (2022-10-21)
23 Bug fix and maintenance release.
26 == Version 3.7 (2022-10-09)
28 [[v3.7_upgrade_new_callback_object_id]]
29 === Argument "object_id" in callback of upgrade_new
31 In all script languages (except PHP), the argument "object_id" sent to the
32 callback of "upgrade_new" is now an integer (it was a string in older releases).
34 To be compatible with all versions, it is recommended to convert the argument
35 to integer before testing it, for example in Python:
39 if int(object_id) == 1:
43 [[v3.7_hook_timer_callback_remaining_calls]]
44 === Argument "remaining_calls" in callback of hook_timer
46 In all script languages (except PHP), the argument "remaining_calls" sent to the
47 callback of "hook_timer" is now an integer (it was a string in older releases).
49 To be compatible with all versions, it is recommended to convert the argument
50 to integer before testing it, for example in Python:
54 if int(remaining_calls) > 0:
58 [[v3.7_delete_previous_word_whitespace]]
59 === Delete previous word until whitespace
61 A new parameter `delete_previous_word_whitespace` has been added in `/input`
62 command to delete previous word until backspace. +
63 This is now bound by default to the key kbd:[Ctrl+w] (see issue #559).
65 A new key kbd:[Alt+Backspace] has been added to delete word, like kbd:[Ctrl+w]
66 did in previous releases.
68 You can get the new behavior for kbd:[Ctrl+w] with this command:
71 /key bind ctrl-W /input delete_previous_word_whitespace
74 And add the new key kbd:[Alt+Backspace] with this command:
80 [[v3.7_api_string_rebuild_split_string]]
81 === Function string_rebuild_split_string
83 The API function string_build_with_split_string has been renamed to
84 link:https://weechat.org/doc/plugin/#_string_rebuild_split_string[string_rebuild_split_string]
85 and two new arguments have been added: _index_start_ and _index_end_.
87 To stay compatible, the existing calls to the function must be done with the
88 new function name and these values:
94 == Version 3.6 (2022-07-10)
96 [[v3.6_hook_print_empty_messages]]
97 === Hook print on empty messages
99 The "hook_print" callback is now called even when an empty message is displayed
100 (with or without prefix).
102 This was a bug, but is mentioned here just in case some scripts callbacks
103 would be surprised to be called with such empty messages.
105 [[v3.6_trigger_beep]]
106 === Default trigger "beep"
108 The command of "beep" trigger is now executed only if the buffer notify is NOT
109 set to `none` (in addition to existing conditions).
111 You can restore the default trigger "beep" with the following command:
114 /trigger restore beep
118 == Version 3.5 (2022-03-27)
120 [[v3.5_relay_weechat_compression_zstd]]
121 === Compression "zstandard" in relay
123 Relay of type "weechat" now offers a compression with https://facebook.github.io/zstd/[Zstandard],
124 which allows better compression and is much faster than zlib for both compression and decompression.
126 The new compression type is `zstd`, and the default compression is now `off`
127 instead of `zlib`: the compression must now be explicitly given in the
128 link:https://weechat.org/doc/relay/#command_handshake[handshake] command.
130 The option `compression` in link:https://weechat.org/doc/relay/#command_handshake[init]
131 command has been removed, it is now ignored and must be given in the
132 link:https://weechat.org/doc/relay/#command_handshake[handshake] command
133 (it was deprecated since WeeChat 2.9).
135 The option relay.network.compression_level has been renamed to relay.network.compression
136 and is now a percentage between `0` and `100`:
138 * `0`: disable compression
139 * `1`: low compression (fast)
140 * `100`: best compression (slow)
143 == Version 3.4.1 (2022-03-13)
145 Bug fix and maintenance release.
148 == Version 3.4 (2021-12-18)
150 [[v3.4_default_triggers]]
153 The existing triggers "cmd_pass" and "cmd_pass_register" have been updated to
154 hide key and password in command `/msg nickserv setpass <nick> <key> <password>`
155 and support the option `-server <name>`.
157 You can restore the default triggers with the following command:
160 /trigger restore cmd_pass cmd_pass_register
163 [[v3.4_hdata_search]]
164 === New parameters in function hdata_search
166 New parameters have been added in function
167 link:https://weechat.org/doc/plugin/#_hdata_search[hdata_search], used for the
168 evaluation of expression.
170 New parameters are the same as function
171 link:https://weechat.org/doc/plugin/#_string_eval_expression[string_eval_expression]:
173 * pointers: hashtable with pointers (pointers)
174 * extra_vars: hashtable with extra variables (strings)
175 * options: hashtable with options (strings).
177 The following scripts are updated consequently to be compatible with all
180 * https://weechat.org/scripts/source/autoauth.py/[autoauth.py] 1.3
181 * https://weechat.org/scripts/source/buffer_open.py/[buffer_open.py] 0.3
182 * https://weechat.org/scripts/source/collapse_channel.py/[collapse_channel.py] 0.9
183 * https://weechat.org/scripts/source/grep_filter.py/[grep_filter.py] 0.11
184 * https://weechat.org/scripts/source/samechannel.rb/[samechannel.rb] 0.2
185 * https://weechat.org/scripts/source/soju.py/[soju.py] 0.1.4
186 * https://weechat.org/scripts/source/stalker.pl/[stalker.pl] 1.6.3
188 [[v3.4_hdata_arrays]]
189 === Static array support in hdata
191 Support of static array in hdata has been added.
192 For pointers to arrays, a prefix `*,` must be added in parameter `array_size`
193 of API function link:https://weechat.org/doc/plugin/#_hdata_new_var[hdata_new_var].
196 == Version 3.3 (2021-09-19)
198 [[v3.3_hotlist_keys_clear_restore]]
199 === New keys for hotlist
201 New keys have been added to manipulate the hotlist:
203 * kbd:[Alt+h], kbd:[Alt+c]: clear the whole hotlist (former key: kbd:[Alt+h])
204 * kbd:[Alt+h], kbd:[Alt+m]: mark the current buffer as read by removing it from the hotlist
205 * kbd:[Alt+h], kbd:[Alt+r]: restore latest hotlist removed in the current buffer
206 * kbd:[Alt+h], kbd:[Alt+Shift+R]: restore latest hotlist removed in all buffers
208 You can add them with the following command:
214 Since the key kbd:[Alt+h] has been moved to kbd:[Alt+h], kbd:[Alt+c], you must
215 manually remove the old key:
221 [[v3.3_typing_bar_item]]
222 === Bar item "typing"
224 A bar item called "typing" has been added to status bar by default. It is used
225 to display users that are currently typing a message on the current IRC channel
228 If you want to display typing notifications in the status bar, add `,[typing]`
229 in your option weechat.bar.status.items.
231 [[v3.3_ordered_hashtables]]
232 === Ordered hashtables
234 Hashtables entries are now ordered by creation date, the following functions
235 are now returning entries sorted by insertion order:
238 * hashtable_map_string
239 * hashtable_get_string (all properties except "keys_sorted" and "keys_values_sorted")
240 * hashtable_add_to_infolist
242 [[v3.3_irc_default_capabilities]]
243 === IRC default capabilities
245 All supported capabilities are now enabled by default if the server support
260 Two new options have been added and enabled by default to customize the behavior
261 of capabilities "account-notify" and "extended-join":
263 * irc.look.display_account_message: display ACCOUNT messages received
264 * irc.look.display_extended_join: display extended join info in the JOIN
265 messages: account name and real name
267 The default value of option irc.server_default.capabilities is now `*` which
268 means that all capabilities supported by both WeeChat and the server are enabled
271 After upgrade, to enable all capabilities and remove custom capabilities you
272 have set, you can do:
275 /set irc.server_default.capabilities "*"
276 /unset irc.server.example.capabilities
279 You can also explicitly disable some capabilities with this syntax
280 (see `/help irc.server_default.capabilities`):
283 /set irc.server_default.capabilities "*,!away-notify,!extended-join"
286 [[v3.3_irc_sasl_blowfish_aes]]
287 === IRC SASL DH-BLOWFISH and DH-AES mechanisms removed
289 The SASL mechanisms DH-BLOWFISH and DH-AES have been removed, because they
290 are insecure and already removed from most IRC servers. +
291 If you were using one of these mechanisms, it is highly recommended to switch
292 to any other supported SASL mechanism.
297 /set irc.server.example.sasl_mechanism scram-sha-256
301 == Version 3.2.1 (2021-09-04)
303 Bug fix and maintenance release.
306 == Version 3.2 (2021-06-13)
308 [[v3.2_xdg_directories]]
311 Support of XDG directories has been added.
313 For compatibility, if the XDG directories are not found but `~/.weechat` exists,
314 this single directory is used for all files.
316 If you want to switch to XDG directories, you must create and move manually
317 all files in the appropriate directories. +
318 See https://specs.weechat.org/specs/001285-follow-xdg-base-dir-spec.html#weechat-home[WeeChat XDG specification]
319 for more information.
321 Some options have new default value: `%h` is replaced by `${weechat_xxx_dir}`. +
322 If you didn't change the value, it is recommended to set the new default value,
323 by doing `/unset <option>` on each option:
325 [width="100%",cols="2m,2m,5m",options="header"]
327 | Option | Old default value | New default value
328 | fifo.file.path | %h/weechat_fifo | ${weechat_runtime_dir}/weechat_fifo_${info:pid}
329 | logger.file.path | %h/logs/ | ${weechat_data_dir}/logs
330 | relay.network.ssl_cert_key | %h/ssl/relay.pem | ${weechat_config_dir}/ssl/relay.pem
331 | script.scripts.path | %h/script | ${weechat_cache_dir}/script
332 | weechat.plugin.path | %h/plugins | ${weechat_data_dir}/plugins
333 | xfer.file.download_path | %h/xfer | ${weechat_data_dir}/xfer
336 The following scripts are updated to take care of XDG directories, be sure
337 they are all up-to-date, otherwise files may be saved in wrong directories or
338 the script may not find some files:
340 * https://weechat.org/scripts/source/autoconf.py/[autoconf.py] 0.4
341 * https://weechat.org/scripts/source/axolotl.py/[axolotl.py] 0.1.1
342 * https://weechat.org/scripts/source/beinc.py/[beinc.py] 4.2
343 * https://weechat.org/scripts/source/buddylist.pl/[buddylist.pl] 2.1
344 * https://weechat.org/scripts/source/bufsave.py/[bufsave.py] 0.5
345 * https://weechat.org/scripts/source/chanop.py/[chanop.py] 0.3.4
346 * https://weechat.org/scripts/source/chanstat.py/[chanstat.py] 0.2
347 * https://weechat.org/scripts/source/colorize_lines.pl/[colorize_lines.pl] 4.0
348 * https://weechat.org/scripts/source/confversion.py/[confversion.py] 0.4
349 * https://weechat.org/scripts/source/country.py/[country.py] 0.6.2
350 * https://weechat.org/scripts/source/cron.py/[cron.py] 0.5
351 * https://weechat.org/scripts/source/crypt.py/[crypt.py] 1.4.5
352 * https://weechat.org/scripts/source/grep.py/[grep.py] 0.8.5
353 * https://weechat.org/scripts/source/growl.py/[growl.py] 1.0.7
354 * https://weechat.org/scripts/source/histman.py/[histman.py] 0.8.2
355 * https://weechat.org/scripts/source/hl2file.py/[hl2file.py] 0.3
356 * https://weechat.org/scripts/source/hotlist2extern.pl/[hotlist2extern.pl] 1.0
357 * https://weechat.org/scripts/source/jnotify.pl/[jnotify.pl] 1.2
358 * https://weechat.org/scripts/source/latex_unicode.py/[latex_unicode.py] 1.2
359 * https://weechat.org/scripts/source/luanma.pl/[luanma.pl] 0.3
360 * https://weechat.org/scripts/source/otr.py/[otr.py] 1.9.3
361 * https://weechat.org/scripts/source/pop3_mail.pl/[pop3_mail.pl] 0.4
362 * https://weechat.org/scripts/source/purgelogs.py/[purgelogs.py] 0.5
363 * https://weechat.org/scripts/source/query_blocker.pl/[query_blocker.pl] 1.3
364 * https://weechat.org/scripts/source/queryman.py/[queryman.py] 0.6
365 * https://weechat.org/scripts/source/queue.py/[queue.py] 0.4.3
366 * https://weechat.org/scripts/source/rslap.pl/[rslap.pl] 1.4
367 * https://weechat.org/scripts/source/rssagg.pl/[rssagg.pl] 1.3
368 * https://weechat.org/scripts/source/slack.py/[slack.py] 2.8.0
369 * https://weechat.org/scripts/source/stalker.pl/[stalker.pl] 1.6.2
370 * https://weechat.org/scripts/source/substitution.rb/[substitution.rb] 0.0.2
371 * https://weechat.org/scripts/source/triggerreply.py/[triggerreply.py] 0.4.3
372 * https://weechat.org/scripts/source/update_notifier.py/[update_notifier.py] 0.6
373 * https://weechat.org/scripts/source/url_olde.py/[url_olde.py] 0.8
374 * https://weechat.org/scripts/source/urlserver.py/[urlserver.py] 2.6
375 * https://weechat.org/scripts/source/weetext.py/[weetext.py] 0.1.3
376 * https://weechat.org/scripts/source/zncplayback.py/[zncplayback.py] 0.2.1
378 To check if XDG directories are used, you can run command `/debug dirs`, which
379 should show different directories for config/data/cache/runtime, like this:
384 config: /home/user/.config/weechat
385 data: /home/user/.local/share/weechat
386 cache: /home/user/.cache/weechat
387 runtime: /run/user/1000/weechat
388 lib: /usr/lib/x86_64-linux-gnu/weechat
390 share: /usr/share/weechat
391 locale: /usr/share/locale
394 With the legacy `~/.weechat` directory, the output would be:
399 config: /home/user/.weechat
400 data: /home/user/.weechat
401 cache: /home/user/.weechat
402 runtime: /home/user/.weechat
403 lib: /usr/lib/x86_64-linux-gnu/weechat
405 share: /usr/share/weechat
406 locale: /usr/share/locale
410 === GnuTLS certificate authorities
412 A new option has been added to load system's default trusted certificate
413 authorities on startup: weechat.network.gnutls_ca_system (boolean, enabled
416 The option weechat.network.gnutls_ca_file has been renamed to
417 weechat.network.gnutls_ca_user and is now used for extra certificates
418 (not the system ones). +
419 This option now supports multiple files, separated by colons.
421 If you have set a user CA file in option weechat.network.gnutls_ca_file,
422 then you must set this same value in the new option weechat.network.gnutls_ca_user.
424 When one of these options are changed, all certificates are purged and reloaded
427 [[v3.2_split_commands_before_eval]]
428 === Split of commands before evaluation
430 The split of commands is now performed before the evaluation of string, in the
433 * IRC server option irc.server_default.command or irc.server.xxx.command
434 * startup option with command line parameter `-r` / `--run-command`
435 * options weechat.startup.command_before_plugins and weechat.startup.command_after_plugins.
437 If ever you used here multiple commands that are found by evaluation, then
438 you must use multiple commands directly.
440 For example if you did this:
443 /secure set commands "/command1 secret1;/command2 secret2"
444 /set irc.server.libera.command "${sec.data.commands}"
447 This will now execute a single command: `/command1` with two parameters:
448 `secret1;/command2` and `secret2`, which is not what you expect.
450 So you must now do this instead:
453 /secure set command1 "/command1 secret1"
454 /secure set command2 "/command2 secret2"
455 /set irc.server.libera.command "${sec.data.command1};${sec.data.command2}"
458 You could also do this, but be careful, there are two evaluations of strings
459 (the secured data itself is evaluated as well):
462 /secure set commands "/command1 secret1;/command2 secret2"
463 /set irc.server.libera.command "/eval -s ${sec.data.commands}"
467 == Version 3.1 (2021-03-07)
469 [[v3.1_secure_data_passphrase_command]]
470 === External program to read secured data passphrase
472 A new option `sec.crypt.passphrase_command` has been added to read the passphrase
473 from the output of an external program (like a password manager).
475 The option `sec.crypt.passphrase_file` has been removed, because the command
476 can now read a file as well. If you used a file to read the passphrase, you
477 must now setup the command like this:
480 /set sec.crypt.passphrase_command "cat ~/.weechat-passphrase"
483 For security reasons, it is of course highly recommended to use a password manager
484 or a program to decrypt a file with your passphrase rather than using a file with
485 the clear password. +
486 For example with password-store (command `pass`):
489 /set sec.crypt.passphrase_command "/usr/bin/pass show weechat/passphrase"
492 [[v3.1_window_splitv]]
493 === Vertical split of windows
495 The vertical split of windows has been fixed (see issue #1612): now the new
496 window has the asked size, instead of the original window.
498 For example with this command the new window (on the right) has size 80% instead
499 of 20% in previous releases:
505 [[v3.1_command_buffer_listvar]]
506 === List of buffer local variables
508 The command `/buffer localvar` has been renamed to `/buffer listvar`.
510 The option `localvar` is still supported to stay compatible with scripts
511 calling it or referencing it in the documentation. +
512 It is deprecated and will be removed in a future release.
514 New options `setvar` and `delvar` were also added in command `/buffer`,
517 [[v3.1_buflist_option_use_items]]
518 === Buflist option buflist.look.use_items
520 A new buflist option `buflist.look.use_items` has been added to speed up
521 display of buflist, in case you use a single buflist item (the most common use case).
523 If ever you use more than one item (item "buflist2" or even "buflist3"), you
524 must adjust the value of the new option, which defaults to 1:
527 /set buflist.look.use_items 2
531 == Version 3.0.1 (2021-01-31)
533 Bug fix and maintenance release.
536 == Version 3.0 (2020-11-11)
538 [[v3.0_script_option_download_enabled]]
539 === New option to enable download of scripts
541 A new option has been added to allow the script plugin to download the list of
542 scripts and the scripts themselves (on weechat.org by default).
544 This option is `off` by default, so you must opt in if you want to use the
545 `/script` command, even if you upgraded from an old WeeChat version:
548 /set script.scripts.download_enabled on
552 When this option is enabled, WeeChat can sometimes download again the list of
553 scripts when you use the `/script` command, even if you don't install a script.
555 [[v3.0_irc_commands_allchan_allpv_allserv]]
556 === IRC commands /allchan, /allpv and /allserv
558 The command and arguments given to commands `/allchan`, `/allpv` and `/allserv`
559 are now evaluated (see `/help` on the commands for more information).
561 Additionally, a breaking change has been introduced: the leading `/` is now
562 required in these commands, so this allows to send text to buffers without
563 using the command `/msg * xxx`.
565 So with previous releases, to say "hello" on all channels:
571 Now it can be done like this:
577 If you want to use a command, you must add explicitly the leading `/`:
580 /allchan /msg * hello
583 [[v3.0_trigger_beep]]
584 === Default trigger "beep"
586 The command of "beep" trigger is now executed only if the message does NOT
587 contain the tag "notify_none" (in addition to existing conditions).
589 You can restore the default trigger "beep" with the following command:
592 /trigger restore beep
596 == Version 2.9 (2020-07-18)
598 [[v2.9_bar_color_bg_inactive]]
599 === New background color for inactive bars
601 A new option has been added in bar: "color_bg_inactive". It is used for window
602 bars, when the window is not the active window.
604 By default this color is set to "default" for default bars, except for status
605 and title: the color is set to "darkgray".
607 If you upgrade from a previous release, the color will be "default" for all
608 bars, so if you want to use the new default settings, you can do:
611 /set weechat.bar.title.color_bg_inactive darkgray
612 /set weechat.bar.status.color_bg_inactive darkgray
615 If you changed the option "color_bg" in some bars, you should also adjust
616 the new option "color_bg_inactive", depending on your needs.
618 The function link:https://weechat.org/doc/plugin/#_bar_new[bar_new] in API is updated,
619 so this is an incompatible change: all plugins and scripts calling this function must be updated.
621 The following scripts are updated consequently to be compatible with all
624 * https://weechat.org/scripts/source/buddylist.pl/[buddylist.pl] 2.0
625 * https://weechat.org/scripts/source/buffers.pl/[buffers.pl] 5.7
626 * https://weechat.org/scripts/source/chanmon.pl/[chanmon.pl] 2.6
627 * https://weechat.org/scripts/source/chanop.py/[chanop.py] 0.3.2
628 * https://weechat.org/scripts/source/highmon.pl/[highmon.pl] 2.7
629 * https://weechat.org/scripts/source/iset.pl/[iset.pl] 4.4
630 * https://weechat.org/scripts/source/menu.pl/[menu.pl] 1.0
631 * https://weechat.org/scripts/source/moc_control.py/[moc_control.py] 1.9
632 * https://weechat.org/scripts/source/newsbar.pl/[newsbar.pl] 0.19
633 * https://weechat.org/scripts/source/pv_info.pl/[pv_info.pl] 0.0.6
634 * https://weechat.org/scripts/source/rssagg.pl/[rssagg.pl] 1.2
635 * https://weechat.org/scripts/source/urlbar.py/[urlbar.py] 14
636 * https://weechat.org/scripts/source/urlselect.lua/[urlselect.lua] 0.5
637 * https://weechat.org/scripts/source/vimode.py/[vimode.py] 0.8
639 [[v2.9_modifier_weechat_print]]
640 === New modifier_data for modifier "weechat_print"
642 The modifier "weechat_print" has been fixed and the content of "modifier_data"
643 sent to the callback has changed (see issue #42).
645 This is an incompatible change, therefore all plugins, scripts and triggers
646 using this modifier and the "modifier_data" argument must be updated.
648 The old format contained plugin name + ";" + buffer name + ";" + tags:
651 irc;libera.#weechat;tag1,tag2,tag3
654 The new format contains buffer pointer + ";" + tags:
657 0x123abc;tag1,tag2,tag3
660 The following scripts are updated consequently to be compatible with all
663 * https://weechat.org/scripts/source/colorize_lines.pl/[colorize_lines.pl] 3.9
664 * https://weechat.org/scripts/source/colorize_nicks.py/[colorize_nicks.py] 27
665 * https://weechat.org/scripts/source/colorizer.rb/[colorizer.rb] 0.2
666 * https://weechat.org/scripts/source/curiousignore.pl/[curiousignore.pl] 0.4
667 * https://weechat.org/scripts/source/format_lines.pl/[format_lines.pl] 1.6
668 * https://weechat.org/scripts/source/identica.py/[identica.py] 0.4.3
669 * https://weechat.org/scripts/source/mass_hl_blocker.pl/[mass_hl_blocker.pl] 0.2
670 * https://weechat.org/scripts/source/noirccolors.py/[noirccolors.py] 0.4
671 * https://weechat.org/scripts/source/parse_relayed_msg.pl/[parse_relayed_msg.pl] 1.9.3
672 * https://weechat.org/scripts/source/unhighlight.py/[unhighlight.py] 0.1.3
673 * https://weechat.org/scripts/source/weemoticons.py/[weemoticons.py] 0.3
675 [[v2.9_api_completion_functions]]
676 === Move of API completion functions
678 Completion functions have been added in WeeChat 2.9, to allow relay clients or
679 plugins/scripts to complete a string, without using the buffer input.
681 Therefore two functions have been renamed in API and moved to the new
682 "completion" category:
684 * hook_completion_get_string => link:https://weechat.org/doc/plugin/#_completion_get_string[completion_get_string]
685 * hook_completion_list_add => link:https://weechat.org/doc/plugin/#_completion_list_add[completion_list_add]
688 The old names are still valid for compatibility reasons, but it is recommended
689 to use only the new names as the old ones may be removed in an upcoming release.
691 [[v2.9_gnutls_required_dependency]]
692 === GnuTLS is now a required dependency
694 The build options `ENABLE_GNUTLS` (in CMake) and `--disable-gnutls` (in autotools)
695 have been removed. That means now GnuTLS is always compiled and used in WeeChat.
699 * communications encryption should be built-in, not optional
700 * GnuTLS library should be available everywhere
701 * reduce complexity of code and tests of builds.
703 [[v2.9_trigger_cmd_pass_remove_set_command]]
704 === The trigger "cmd_pass" does not hide any more values of /set command
706 The default trigger "cmd_pass" does not hide any more values of options in `/set`
707 command which contain "password" in the name.
709 The reason is that it was masking values of options that contains the word
710 "password" but the value is not a password and does not contain sensitive data,
711 for example these options were affected:
713 * irc.look.nicks_hide_password
714 * relay.network.allow_empty_password
715 * relay.network.password_hash_algo
716 * relay.network.password_hash_iterations
718 Since all real password options are now evaluated, it is recommended to use
719 secure data to store the passwords ciphered in config file. +
720 By using secure data, the passwords are never displayed on screen (even with
721 `/set` command) nor written in log files.
723 For example you can do that:
726 /secure passphrase my_secret_passphrase
727 /secure set libera my_password
728 /set irc.server.libera.sasl_password "${sec.data.libera}"
731 This will be displayed like that in WeeChat, using the new regex value of
735 /secure passphrase ********************
736 /secure set libera ***********
737 /set irc.server.libera.sasl_password "${sec.data.libera}"
740 If you want to use the new trigger regex after upgrade, you can do:
743 /trigger restore cmd_pass
746 If ever you prefer the old trigger regex, you can change it like that:
749 /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:+}}"
752 [[v2.9_trigger_command_eval]]
753 === Evaluation of trigger command arguments
755 The arguments for a trigger command (except the command itself) are now evaluated.
757 That means you can use for example new lines in the command description, like that:
760 /trigger add test command "test;test command;arg1 arg2;arg1: description 1${\n}arg2: description 2"
763 The command `/help test` will display this help in WeeChat:
766 [trigger] /test arg1 arg2
774 [[v2.9_relay_weechat_protocol_handshake_nonce]]
775 === Add of handshake and nonce in weechat relay protocol
779 A `handshake` command has been added in weechat relay protocol. +
780 The client should send this command before the `init` to negotiate the way to
781 authenticate with the relay server.
783 See the link:https://weechat.org/doc/relay/#command_handshake[handshake command]
784 in Relay protocol doc for more information.
788 Furthermore, a "nonce" is now generated for each client connecting and must be
789 used by the client in case of hashed password in the `init` command. +
790 The goal is to prevent replay attacks in case someone manages to read exchanges
791 between the client and relay.
793 When hashing the password, the client must use salt composed by this nonce
794 as binary (it is hexadecimal and must be base16-decoded), concatenated with
795 a client nonce after this one. +
796 So the hash is computed on: (`server nonce` + `client nonce` + `password`).
798 This salt is now mandatory even for algorithms `SHA256` and `SHA512`; this is
799 a breaking change in protocol, needed for security reasons.
801 See the link:https://weechat.org/doc/relay/#command_init[init command]
802 in Relay protocol doc for more information.
805 == Version 2.8 (2020-03-29)
807 [[v2.8_auto_connection_to_servers]]
808 === Auto connection to servers
810 The command line option `-a` (or `--no-connect`), which can also be used in the
811 `/plugin` command, is now used to set a new info called `auto_connect`
812 (see the function link:https://weechat.org/doc/plugin/#_info_get[info_get] in the Plugin API reference).
814 Therefore, the option is not sent any more to the function `weechat_plugin_init`
816 The plugins using this option must now get the info `auto_connect` and check
817 if the value is "1" (a string with just `1`).
819 The purpose of this change is to allow scripts as well to check this info on
820 startup, and connect or not, depending on the value (see issue #1453).
822 To be compatible with WeeChat ≤ 2.7, the script can do this, for example
827 auto_connect = weechat.info_get("auto_connect", "") != "0"
830 The variable `auto_connect` will be set like that, depending on the WeeChat
833 * WeeChat ≤ 2.7: always `True` because the info is an empty string (it does not
834 exist), which is different from "0",
835 * WeeChat ≥ 2.8: `True` by default, and `False` if `-a` or `--no-connect` is
836 given by the user (either on command line or when loading the plugin).
839 == Version 2.7.1 (2020-02-20)
841 Bug fix and maintenance release.
844 == Version 2.7 (2019-12-08)
846 [[v2.7_cmake_errors]]
847 === CMake errors on missing dependencies
849 When compiling WeeChat with CMake (which is the recommended way), errors are
850 now displayed on any missing dependency, if the optional feature was enabled
851 (most features are automatically enabled, except documentation, man page and
854 Any error on a missing dependency is fatal, so WeeChat can not be compiled.
855 This is a new behavior compared to old versions, where any missing dependency
856 was silently ignored and the compilation was possible anyway.
858 For example if PHP is not installed on your system, CMake will display an error
859 on missing PHP library:
862 -- checking for one of the modules 'php7'
863 CMake Warning at cmake/FindPHP.cmake:57 (message):
864 Could not find libphp7. Ensure PHP >=7.0.0 development libraries are
865 installed and compiled with `--enable-embed`. Ensure `php-config` is in
866 `PATH`. You may set `-DCMAKE_LIBRARY_PATH=...` to the directory containing
868 Call Stack (most recent call first):
869 src/plugins/CMakeLists.txt:157 (find_package)
872 CMake Error at src/plugins/CMakeLists.txt:161 (message):
876 Then you can either install PHP or explicitly disable PHP if you don't need this
877 plugin, using this cmake option:
880 cmake .. -DENABLE_PHP=OFF
883 [[v2.7_python3_callbacks_strings]]
884 === Strings received in Python 3 callbacks
886 The strings sent to script callbacks in Python 3 are now automatically converted
887 according to the content:
889 * if the string is valid UTF-8, it is sent as `str` (legacy behavior)
890 * if the string is not valid UTF-8, it is sent as `bytes` (new).
892 In some cases only, the string may not be valid UTF-8, so it is received as
893 `bytes` in the callback, which must take care of that.
895 For more information, see the WeeChat scripting guide: chapter about strings
896 received in callbacks (see also issue #1389).
898 Note: there are no changes for Python 2 (which is now deprecated and should not
899 be used any more), the strings sent to callbacks are always of type `str`, and
900 may contain invalid UTF-8 data, in the cases mentioned in the WeeChat scripting
903 [[v2.7_irc_message_decoding]]
904 === IRC message decoding/encoding
906 A new server option called "charset_message" has been added, replacing the
907 option irc.network.channel_encode.
909 This new server option has three possible values:
911 * _message_ (default): the whole IRC message is decoded/encoded, this is the
912 new default behavior; in case of problem with channel names, try to use
914 * _channel_: the message is decoded/encoded starting at the channel name (or
915 the text if no channel is present); this is like setting the old option
916 irc.network.channel_encode to `on`
917 * _text_: the message is decoded/encoded starting from the text (for example
918 the user message); this is like setting the old option
919 irc.network.channel_encode to `off` (so this was the default behavior
920 in previous versions)
922 [[v2.7_xfer_file_receive_suffix]]
923 === Suffix for files received via DCC
925 Files received via DCC (xfer plugin) now have a suffix ".part" during the
926 transfer. When the transfer is successful, the suffix is removed.
928 This suffix can be customized with the new option xfer.file.download_temporary_suffix.
930 If you prefer the legacy behavior (no suffix added), you can set an empty value
934 /set xfer.file.download_temporary_suffix ""
938 == Version 2.6 (2019-09-08)
940 [[v2.6_python3_default]]
941 === Python 3 by default
943 Python 3 is now used by default to compile the "python" plugin (no fallback
946 The CMake option `ENABLE_PYTHON3` has been renamed to `ENABLE_PYTHON2`
947 (configure option `--enable-python2`). If this option is enabled, the "python"
948 plugin is built with Python 2 (no fallback on Python 3).
953 The function to compute the colors based on the nick letters has been fixed
954 (now the function uses only a 64-bit integer even if the underlying architecture
957 If you're running WeeChat on a 32-bit architecture and want to keep same colors
958 as the previous releases, you can use one of the two new hash values.
960 If you were using "djb2", you can switch to "djb2_32":
963 /set weechat.look.nick_color_hash djb2_32
966 If you were using "sum", you can switch to "sum_32":
969 /set weechat.look.nick_color_hash sum_32
973 == Version 2.5 (2019-06-06)
975 [[v2.5_aspell_plugin_renamed]]
976 === Aspell plugin renamed to Spell
978 The "aspell" plugin has been renamed to "spell", a more generic term, because
979 it supports aspell and also enchant.
981 Consequently, the following things have been renamed as well:
983 * file aspell.conf => spell.conf (the content of the file has not changed, so you can just rename the file to keep your changes)
984 * options aspell.* => spell.*
985 * command `/aspell` => `/spell`
986 * default key kbd:[Alt+s] => `/mute spell toggle`
987 * bar item aspell_dict => spell_dict
988 * bar item aspell_suggest => spell_suggest
989 * info aspell_dict => spell_dict
991 If you are upgrading from a previous release, you can copy the config file
992 before doing `/upgrade`, in WeeChat:
996 /exec -sh cp ~/.weechat/aspell.conf ~/.weechat/spell.conf
1000 If you already upgraded WeeChat:
1003 /exec -sh cp ~/.weechat/aspell.conf ~/.weechat/spell.conf
1007 Once configuration is OK, you can delete the file `~/.weechat/aspell.conf`.
1009 Then you can search if you are using "aspell" in values of options:
1015 If there are options displayed, replace "aspell" by "spell" in values.
1017 The default key kbd:[Alt+s] can be changed to the new `/spell` command:
1020 /key bind meta-s /mute spell toggle
1023 [[v2.5_xfer_option_speed_limit]]
1024 === Speed limit option for DCC files
1026 The option xfer.network.speed_limit has been renamed to xfer.network.speed_limit_send.
1028 If you changed the value of this option, you must set it again after upgrade.
1030 A new option xfer.network.speed_limit_recv has been added to limit the
1031 speed of received files.
1033 [[v2.5_hook_info_allocated_string]]
1034 === Allocated string in hook info and function info_get
1036 The hook info callback now returns an allocated string, which must be freed
1037 after use (in previous versions, a pointer to a static string was returned).
1039 Consequently, the function info_get returns an allocated string, which must
1042 This affects only C code, no changes are required in scripts.
1045 == Version 2.4 (2019-02-17)
1047 [[v2.4_nick_completer]]
1050 A space is not added automatically any more when you complete a nick at the
1051 beginning of command line. +
1052 Purpose of this change is to be more flexible: you can choose whether the space
1053 is added or not (it was always added in previous releases).
1055 The default value of option `weechat.completion.nick_completer` has been changed
1056 to add the space by default, but the value of option is not changed automatically
1059 So you can run this command if you upgraded from an old version
1060 and want the space still added automatically:
1063 /set weechat.completion.nick_completer ": "
1066 [[v2.4_api_base64_functions]]
1067 === Base64 API functions
1069 The functions to encode/decode base64 strings have been renamed and now support
1070 base 16, 32, and 64.
1072 New functions in C API, supporting base 16, 32, and 64:
1074 * link:https://weechat.org/doc/plugin/#_string_base_encode[string_base_encode]
1075 * link:https://weechat.org/doc/plugin/#_string_base_decode[string_base_decode]
1077 Functions removed from C API:
1079 * string_encode_base64
1080 * string_decode_base64
1083 == Version 2.3 (2018-10-21)
1088 == Version 2.2 (2018-07-14)
1090 [[v2.2_default_hotlist_conditions]]
1091 === Default conditions for hotlist
1093 The default value for option `weechat.look.hotlist_add_conditions` has been
1094 changed to take care about the number of connected clients on the relay
1095 with weechat protocol: if at least one client is connected, the buffer is
1096 always added to the hotlist.
1098 The new value contains three conditions, if one of them is true, the buffer
1099 is added to the hotlist:
1101 * `${away}`: true if you are away on the server matching the buffer,
1102 * `${buffer.num_displayed} == 0`: true if the buffer is not displayed in any
1104 * `${info:relay_client_count,weechat,connected} > 0`: true if at least
1105 one client is connected on a weechat relay (new condition).
1107 To use the new default value, you can reset the option with this command:
1110 /unset weechat.look.hotlist_add_conditions
1113 Or set explicitly the value:
1116 /set weechat.look.hotlist_add_conditions "${away} || ${buffer.num_displayed} == 0 || ${info:relay_client_count,weechat,connected} > 0"
1119 [[v2.2_default_triggers]]
1120 === Default triggers
1122 The existing triggers "cmd_pass" and "msg_auth" have been updated to hide
1123 password in command `/msg nickserv set password` and support the option
1126 You can restore the default triggers with the following command:
1129 /trigger restore cmd_pass msg_auth
1132 [[v2.2_irc_signals_tags]]
1133 === Tags in IRC "in" signals
1135 The IRCv3 tags are now sent in these IRC signals for received messages
1136 (`xxx` is IRC server name, `yyy` is IRC command name):
1140 * `xxx,irc_raw_in_yyy`
1141 * `xxx,irc_raw_in2_yyy`
1143 This could break plugins or scripts that parse IRC messages and don't expect
1144 to receive tags (even if tags *are* part of the IRC message, so this was a bug
1145 in the IRC signals).
1147 See issue #787 for more information.
1150 It is recommended for plugins and scripts to use the WeeChat IRC parser:
1151 see the function link:https://weechat.org/doc/plugin/#_info_get_hashtable[info_get_hashtable]
1152 in the Plugin API reference.
1154 Now the whole IRC message is received by the signal callback, for example:
1157 @tag1=abc;tag2=def :nick!user@host PRIVMSG #test :this is a test
1160 In older releases, this message was received:
1163 :nick!user@host PRIVMSG #test :this is a test
1166 [[v2.2_debian_headless_package]]
1167 === New Debian package for headless version
1169 A new Debian package has been added: "weechat-headless" which contains the
1170 binary "weechat-headless" and its man page.
1172 In version 2.1, this binary was in the package "weechat-curses".
1175 == Version 2.1 (2018-03-18)
1177 [[v2.1_option_name_completion]]
1178 === Completion for /set and /help commands
1180 A new option weechat.completion.partial_completion_templates has been added to
1181 force partial completion on some templates. By default, the option name
1182 completed in `/set` and `/help` commands are now using partial completion.
1184 If you prefer old behavior, you can remove the templates from the new option
1188 /set weechat.completion.partial_completion_templates ""
1191 For more information about this feature, you can read help with:
1194 /help weechat.completion.partial_completion_templates
1197 [[v2.1_script_plugin_check_license]]
1198 === Option to check license of scripts loaded
1200 A configuration file has been added for each script plugin: python.conf,
1201 perl.conf, ruby.conf, ...
1203 Therefore the option to check license of loaded scripts has been moved from
1204 plugins.var.<language>.check_license (type: string) to the plugin
1205 configuration file (type: boolean, default is `off`).
1207 List of options moved:
1209 * plugins.var.python.check_license (string) => python.look.check_license (boolean)
1210 * plugins.var.perl.check_license (string) => perl.look.check_license (boolean)
1211 * plugins.var.ruby.check_license (string) => ruby.look.check_license (boolean)
1212 * plugins.var.lua.check_license (string) => lua.look.check_license (boolean)
1213 * plugins.var.tcl.check_license (string) => tcl.look.check_license (boolean)
1214 * plugins.var.guile.check_license (string) => guile.look.check_license (boolean)
1215 * plugins.var.javascript.check_license (string) => javascript.look.check_license (boolean)
1216 * plugins.var.php.check_license (string) => php.look.check_license (boolean)
1219 == Version 2.0.1 (2017-12-20)
1221 Bug fix and maintenance release.
1224 == Version 2.0 (2017-12-03)
1226 [[v2.0_fset_plugin]]
1229 A new plugin "fset" has been added, it replaces the script iset.pl and has many
1232 By default the fset plugin changes the behavior of `/set` command when it is
1233 used with only an option name: it opens the fset buffer if at least one option
1236 The old behavior was to display the list of options in the core buffer.
1238 If you prefer the old behavior, you can restore it with this command:
1241 /set fset.look.condition_catch_set ""
1244 For more information about this feature, you can read help with:
1247 /help fset.look.condition_catch_set
1250 [[v2.0_debian_packaging]]
1251 === Split of scripting Debian packages
1253 The Debian packaging has changed (for now only on weechat.org repositories,
1254 not in Debian official repositories). +
1255 The package "weechat-plugins" has been split into 9 packages:
1257 - weechat-plugins (with only the following plugins: aspell, exec, fifo, relay,
1265 - weechat-javascript
1268 If you are using the packages from weechat.org, you will have to install
1269 manually the scripting packages (according to the languages you'll use
1270 in WeeChat), for example Python/Perl only:
1273 sudo apt-get install weechat-python weechat-perl
1276 For development packages:
1279 sudo apt-get install weechat-devel-python weechat-devel-perl
1282 [[v2.0_buflist_eval]]
1283 === Evaluation in buflist
1285 The evaluation of expressions in buflist options is not recursive any more,
1286 to prevent too many evaluations, for example in buffer variables
1287 (see issue #1060 for more information). +
1288 If you are using custom variables/options containing evaluated expressions,
1289 like `${some.config.option}`, and if this option contains evaluated strings (`${...}`),
1290 you must evaluate them with: `${eval:${some.config.option}}`.
1293 The default buflist formats (`${format_buffer}`, `${format_name}`,
1294 `${format_hotlist}`, ...) are automatically evaluated in options buflist.format.buffer,
1295 buflist.format.buffer_current and buflist.format.hotlist.
1297 [[v2.0_hook_connect]]
1298 === Function hook_connect
1300 In scripts, the arguments "status", "gnutls_rc" and "sock" sent to the callback
1301 of "hook_connect" are now integers (they were strings in older releases). +
1302 To be compatible with all versions, it is recommended to convert the argument
1303 to integer before using it, for example in Python: `int(sock)`.
1306 === Function hook_fd
1308 In scripts, the argument "fd" sent to the callback of "hook_fd" is now
1309 an integer (it was a string in older releases). +
1310 To be compatible with all versions, it is recommended to convert the argument
1311 to integer before using it, for example in Python: `int(fd)`.
1314 == Version 1.9.1 (2017-09-23)
1316 Bug fix and maintenance release.
1319 == Version 1.9 (2017-06-25)
1324 == Version 1.8 (2017-05-13)
1326 [[v1.8_buflist_plugin]]
1329 A new plugin called "buflist" has been added, it replaces the script "buffers.pl".
1331 If the script is installed, you will see two sidebars with list of buffers.
1333 If you fell in love with buflist and that the script buffers.pl is installed,
1334 you can uninstall the script and remove its bar with these commands:
1337 /script remove buffers.pl
1341 If you don't want the list of buffers, you can disable buflist:
1344 /set buflist.look.enabled off
1347 To save extra memory, you can even unload the buflist plugin, remove the bar and
1348 prevent the plugin from loading on next startup:
1351 /plugin unload buflist
1353 /set weechat.plugin.autoload "*,!buflist"
1359 The option script.scripts.url_force_https has been removed because now the
1360 site weechat.org can only be used with HTTPS. +
1361 Both HTTP and HTTPS protocols are allowed in the option script.scripts.url.
1362 For http://weechat.org/ an automatic redirection to https://weechat.org/ will
1363 occur, so you should check that the CA certificates are properly installed
1366 Aspell option with color for suggestion on a misspelled word has been renamed:
1368 * aspell.color.suggestions has been renamed to aspell.color.suggestion
1371 == Version 1.7.1 (2017-04-22)
1373 Bug fix and maintenance release.
1376 == Version 1.7 (2017-01-15)
1378 [[v1.7_fifo_options]]
1381 A new configuration file "fifo.conf" has been added and the old option
1382 plugins.var.fifo.fifo has been moved to fifo.file.enabled.
1384 A new option fifo.file.path can be used to customize the FIFO pipe
1387 [[v1.7_default_triggers]]
1388 === Default triggers
1390 A new trigger "cmd_pass_register" has been added to hide only password and not
1391 email in command `/msg nickserv register password email`. +
1392 The existing trigger "cmd_pass" has been updated to hide password in all
1393 commands except `/msg nickserv register`.
1395 You can add the new trigger and restore the other one with the following
1399 /trigger restore cmd_pass_register cmd_pass
1403 == Version 1.6 (2016-10-02)
1405 [[v1.6_irc_server_default_msg]]
1406 === IRC kick/part/quit default messages
1408 Server options with default messages for kick/part/quit have been renamed:
1410 * options by default for all servers:
1411 ** irc.server_default.default_msg_kick => irc.server_default.msg_kick
1412 ** irc.server_default.default_msg_part => irc.server_default.msg_part
1413 ** irc.server_default.default_msg_quit => irc.server_default.msg_quit
1414 * options in each server:
1415 ** irc.server.xxx.default_msg_kick => irc.server.xxx.msg_kick
1416 ** irc.server.xxx.default_msg_part => irc.server.xxx.msg_part
1417 ** irc.server.xxx.default_msg_quit => irc.server.xxx.msg_quit
1419 If you changed the value of these options, you must set them again after upgrade.
1422 === Printf API functions
1424 Some "printf" functions have been removed from C API (there were not in scripting API):
1429 The function "printf_date_tags" must now be used instead of these functions
1430 (the two functions removed were just C macros on function "printf_date_tags"
1431 with tags set to NULL for "printf_date" and date set to 0 for "printf_tags").
1434 == Version 1.5 (2016-05-01)
1436 [[v1.5_nick_coloring]]
1437 === Nick coloring moved to core
1439 The nick coloring feature has been moved from irc plugin to core.
1441 Two options have been moved from irc plugin (irc.conf) to core (weechat.conf),
1442 and you must set new value if you customized them:
1444 * irc.look.nick_color_force => weechat.look.nick_color_force
1445 * irc.look.nick_color_hash => weechat.look.nick_color_hash
1446 * irc.look.nick_color_stop_chars => weechat.look.nick_color_stop_chars
1448 The default value for option weechat.look.nick_color_hash is now `djb2`
1451 The following info names (used by API function "info_get") are renamed as well:
1453 * irc_nick_color => nick_color
1454 * irc_nick_color_name => nick_color_name
1457 The old info irc_nick_color and irc_nick_color_name are kept for
1458 compatibility (especially scripts) and will be removed in an upcoming release.
1460 [[v1.5_callbacks_pointer]]
1461 === Pointer in callbacks
1463 A pointer has been added in all callbacks used by scripts, so the callbacks
1464 will receive an extra `const void *pointer` before the `void *data`
1465 (in the C API only, not scripting API).
1467 This is used to remove linked list of callbacks in scrips (improve speed,
1468 reduce memory usage).
1470 Following functions are changed in the C API:
1472 * link:https://weechat.org/doc/plugin/#_exec_on_files[exec_on_files]
1473 * link:https://weechat.org/doc/plugin/#_config_new[config_new]
1474 * link:https://weechat.org/doc/plugin/#_config_new_section[config_new_section]
1475 * link:https://weechat.org/doc/plugin/#_config_new_option[config_new_option]
1476 * link:https://weechat.org/doc/plugin/#_hook_command[hook_command]
1477 * link:https://weechat.org/doc/plugin/#_hook_command_run[hook_command_run]
1478 * link:https://weechat.org/doc/plugin/#_hook_timer[hook_timer]
1479 * link:https://weechat.org/doc/plugin/#_hook_fd[hook_fd]
1480 * link:https://weechat.org/doc/plugin/#_hook_process[hook_process]
1481 * link:https://weechat.org/doc/plugin/#_hook_process_hashtable[hook_process_hashtable]
1482 * link:https://weechat.org/doc/plugin/#_hook_connect[hook_connect]
1483 * link:https://weechat.org/doc/plugin/#_hook_print[hook_print]
1484 * link:https://weechat.org/doc/plugin/#_hook_signal[hook_signal]
1485 * link:https://weechat.org/doc/plugin/#_hook_hsignal[hook_hsignal]
1486 * link:https://weechat.org/doc/plugin/#_hook_config[hook_config]
1487 * link:https://weechat.org/doc/plugin/#_hook_completion[hook_completion]
1488 * link:https://weechat.org/doc/plugin/#_hook_modifier[hook_modifier]
1489 * link:https://weechat.org/doc/plugin/#_hook_info[hook_info]
1490 * link:https://weechat.org/doc/plugin/#_hook_info_hashtable[hook_info_hashtable]
1491 * link:https://weechat.org/doc/plugin/#_hook_infolist[hook_infolist]
1492 * link:https://weechat.org/doc/plugin/#_hook_hdata[hook_hdata]
1493 * link:https://weechat.org/doc/plugin/#_hook_focus[hook_focus]
1494 * link:https://weechat.org/doc/plugin/#_unhook_all[unhook_all]
1495 * link:https://weechat.org/doc/plugin/#_buffer_new[buffer_new]
1496 * link:https://weechat.org/doc/plugin/#_bar_item_new[bar_item_new]
1497 * link:https://weechat.org/doc/plugin/#_upgrade_new[upgrade_new]
1498 * link:https://weechat.org/doc/plugin/#_upgrade_read[upgrade_read]
1500 The function `unhook_all` has a new argument `const char *subplugin` to remove
1501 only hooks created by this "subplugin" (script).
1503 [[v1.5_bar_item_away]]
1506 The bar item "away" has been moved from irc plugin to core (so that away status
1507 can be displayed for any plugin, using the buffer local variable "away").
1509 Two options have been moved from irc plugin (irc.conf) to core (weechat.conf):
1511 * irc.look.item_away_message => weechat.look.item_away_message
1512 * irc.color.item_away => weechat.color.item_away
1514 [[v1.5_default_triggers]]
1515 === Default triggers
1517 The default triggers "cmd_pass" and "msg_auth" have been updated to include
1518 nickserv commands "recover" and "regain".
1520 You can restore them with the following command:
1523 /trigger restore cmd_pass msg_auth
1527 == Version 1.4 (2016-01-10)
1529 [[v1.4_irc_alternate_nicks]]
1530 === IRC alternate nicks
1532 The option irc.network.alternate_nick has been moved into servers
1533 (irc.server_default.nicks_alternate and irc.server.xxx.nicks_alternate).
1535 If you disabled this option, you must switch it off again, globally or by
1538 Globally (default value for all servers):
1541 /set irc.server_default.nicks_alternate off
1544 For a specific server:
1547 /set irc.server.libera.nicks_alternate off
1551 == Version 1.3 (2015-08-16)
1553 [[v1.3_irc_channels_encoding]]
1554 === IRC channels encoding
1556 If you are using exotic charsets in your channel names (anything different from
1557 UTF-8, like ISO charset), you should turn on a new option:
1560 /set irc.network.channel_encode on
1563 This will force WeeChat to decode/encode the channel name
1564 (like WeeChat 1.2 or older did).
1566 See these issues for more information: issue #482, issue #218.
1569 It is *highly recommended* to use only UTF-8 in WeeChat (wherever you can),
1570 because everything is stored as UTF-8 internally.
1572 [[v1.3_alias_command]]
1575 The command `/alias` has been updated to list, add and remove aliases.
1576 Therefore the command `/unalias` has been removed.
1578 To add an alias, the argument `add` must be used in command `/alias` before the
1582 /alias add split /window splith
1585 And the alias is removed with this command:
1591 [[v1.3_script_path]]
1594 The option script.scripts.dir has been renamed to script.scripts.path
1595 (and the content is now evaluated, see `/help eval`).
1597 If you changed the value of this option, you must set it again after upgrade.
1600 == Version 1.2 (2015-05-10)
1602 The word chars are now customizable with two options:
1604 * weechat.look.word_chars_highlight
1605 * weechat.look.word_chars_input
1607 The behavior has changed for command line: now any non-word char is used as
1608 delimiter for keys to move to previous/next word or delete previous/next word.
1610 You can restore the old behavior (only use spaces as delimiters) with this
1614 /set weechat.look.word_chars_input "!\u00A0,!\x20,*"
1618 == Version 1.1.1 (2015-01-25)
1620 Bug fix and maintenance release.
1623 == Version 1.1 (2015-01-11)
1625 [[v1.1_triggers_regex_format]]
1626 === New format for regex replacement in triggers
1628 A new format is used in regex replacement to use regex groups, this format
1629 is incompatible with version 1.0.
1631 The existing triggers are *NOT automatically updated*.
1633 [width="60%",cols="2,2,3",options="header"]
1635 | Old format | New format | Examples (new format)
1636 | `$0` ... `$99` | `${re:0}` ... `${re:99}` | `${re:1}`
1637 | `$+` | `${re:+}` | `${re:+}`
1638 | `$.*N` | `${hide:*,${re:N}}` | `${hide:*,${re:2}}` +
1642 Moreover, default triggers used to hide passwords have been fixed for *BSD
1645 You can restore them with the following command:
1648 /trigger restore cmd_pass msg_auth server_pass
1651 If you added triggers with the old regex replacement format, you must update
1654 [[v1.1_trigger_beep]]
1655 === Default "beep" trigger
1657 The command of "beep" trigger is now executed only if the message is displayed
1658 (not filtered with `/filter`).
1660 You can restore the default "beep" trigger with the following command:
1663 /trigger restore beep
1666 [[v1.1_commands_return_code]]
1667 === Return code of commands
1669 The API function link:https://weechat.org/doc/plugin/#_command[command]
1670 now sends the value returned return by command callback.
1672 WeeChat does not display any more an error when a command returns
1673 `WEECHAT_RC_ERROR`. Consequently, all plugins/scripts should display an
1674 explicit error message before returning `WEECHAT_RC_ERROR`.
1676 For C plugins, two macros have been added in weechat-plugin.h:
1677 `WEECHAT_COMMAND_MIN_ARGS` and `WEECHAT_COMMAND_ERROR`.
1679 [[v1.1_inline_commands_completion]]
1680 === Completion of inline commands
1682 WeeChat now completes by default inline commands (not only at beginning of
1685 When this feature is enabled, there is no more automatic completion of
1686 absolute paths (except if you are completing a path inside a command argument,
1687 like `/dcc send <nick> <path>`).
1689 To restore the old behavior (no completion of inline commands):
1692 /set weechat.completion.command_inline off
1695 [[v1.1_relay_irc_backlog_tags]]
1696 === Relay option relay.irc.backlog_tags
1698 The option relay.irc.backlog_tags is now a list separated by commas
1699 (it was separated by semicolons in older versions).
1701 If you are using a list of tags in this option, you must adjust the value
1704 [[v1.1_relay_ipv6_ipv4]]
1705 === IPv4-mapped IPv6 client address in relay
1707 The string "::ffff:" has been removed from IPv4-mapped IPv6 client address
1710 If you are using "::ffff:" in option relay.network.allowed_ips, you can
1713 [[v1.1_irc_temporary_servers]]
1714 === Temporary servers disabled by default with /connect
1716 Creating a temporary server with command `+/connect <address>+` or
1717 `+/connect irc://...+` is now forbidden by default.
1719 A new option has been added to unlock the feature, you can do that for
1720 the old behavior in command `/connect`:
1723 /set irc.look.temporary_servers on
1726 [[v1.1_timeval_microseconds]]
1727 === Microseconds in API timeval functions
1729 The API functions using timeval are now using or returning microseconds,
1730 instead of milliseconds:
1732 * function link:https://weechat.org/doc/plugin/#_util_timeval_diff[util_timeval_diff]:
1733 returns microseconds
1734 * function link:https://weechat.org/doc/plugin/#_util_timeval_add[util_timeval_add]:
1735 the argument "interval" is now expressed in microseconds.
1738 == Version 1.0.1 (2014-09-28)
1740 Bug fix and maintenance release.
1743 == Version 1.0 (2014-08-15)
1745 [[v1.0_irc_channel_type]]
1746 === Channel type not added by default on /join
1748 The channel type is not any more automatically added to a channel name on join
1749 (for example `/join weechat` will not send `/join #weechat`).
1751 If you are lazy and want to automatically add the channel type, you can turn on
1755 /set irc.look.join_auto_add_chantype on
1758 [[v1.0_irc_channel_modes_arguments]]
1759 === Hide IRC channel modes arguments
1761 The option irc.look.item_channel_modes_hide_key has been renamed to
1762 irc.look.item_channel_modes_hide_args and is now a string. +
1763 It can now hide arguments for multiple channel modes.
1765 By default, a channel key (mode "k") will hide channel arguments. For old
1766 behavior (never hide arguments, even with a channel key), you can do:
1769 /set irc.look.item_channel_modes_hide_args ""
1772 [[v1.0_jump_first_last_buffer]]
1773 === Jump to first/last buffer
1775 The command `/input jump_last_buffer` has been replaced by `/buffer +`.
1776 You can rebind the key kbd:[Alt+j], kbd:[Alt+l] (`L`):
1779 /key bind meta-jmeta-l /buffer +
1783 The command `/input jump_last_buffer` still works for compatibility reasons,
1784 but it should not be used any more.
1786 Similarly, a new key has been added to jump to first buffer: kbd:[Alt+j], kbd:[Alt+f].
1787 You can add it with the following command:
1793 [[v1.0_hotlist_conditions]]
1794 === Hotlist conditions
1796 A new option weechat.look.hotlist_add_conditions has been added. This option
1797 replaces the option weechat.look.hotlist_add_buffer_if_away, which has been
1800 Default conditions are `${away} || ${buffer.num_displayed} == 0`, which means
1801 that a buffer is added in hotlist if you are away ("away" local variable is
1802 set), or if the buffer is not visible on screen (not displayed in any window).
1804 If you have set weechat.look.hotlist_add_buffer_if_away to `off` (to not add
1805 current buffer in hotlist when you are away), then you must manually change the
1806 default conditions with the following command:
1809 /set weechat.look.hotlist_add_conditions "${buffer.num_displayed} == 0"
1812 [[v1.0_trigger_plugin]]
1813 === Rmodifier replaced by Trigger plugin
1815 The trigger plugin replaces the rmodifier plugin, which has been removed
1816 (and trigger has much more features than rmodifier).
1818 Default triggers have same features as default rmodifiers (to hide passwords
1819 in commands and output).
1821 If you added some custom rmodifiers, you must create similar triggers, see
1822 `/help trigger` and the complete trigger doc in the _WeeChat User's guide_.
1825 If on startup you have an error about API mismatch in plugin "rmodifier.so",
1826 you can manually remove the file (the command `make install` does not remove
1829 [[v1.0_bare_display]]
1832 A bare display mode has been added (for easy text selection and click on URLs),
1833 the new default key is kbd:[Alt+l] (`L`).
1835 Use command `/key missing` to add the key or `/key listdiff` to see differences
1836 between your current keys and WeeChat default keys.
1839 === Function hook_print
1841 In scripts, the arguments "displayed" and "highlight" sent to the callback of
1842 "hook_print" are now integers (they were strings in older releases).
1844 To be compatible with all versions, it is recommended to convert the argument
1845 to integer before testing it, for example in Python:
1854 == Version 0.4.3 (2014-02-09)
1856 [[v0.4.3_colors_messages]]
1857 === Colors in messages
1859 The color code for "reverse video" in IRC message has been fixed: now WeeChat
1860 uses 0x16 like other clients (and not 0x12 any more). +
1861 The code 0x12 is not decoded any more, so if it is received (for example from
1862 an old WeeChat version), it is not displayed as reverse video.
1864 The color code for "underlined text" in input line has been fixed: now WeeChat
1865 uses 0x1F, the same code sent to IRC server.
1867 The default keys for "reverse video" and "underlined text" have changed:
1869 * reverse video: key kbd:[Ctrl+c], kbd:[r] is replaced by kbd:[Ctrl+c], kbd:[v]
1870 * underlined text: key kbd:[Ctrl+c], kbd:[u] is replaced by kbd:[Ctrl+c], kbd:[_]
1872 You can remove the old keys and add the new ones with these commands:
1880 [[v0.4.3_terminal_title]]
1883 The boolean option weechat.look.set_title has been renamed to
1884 weechat.look.window_title and is now a string.
1886 The content is evaluated and the default value is `WeeChat ${info:version}`.
1889 Only static content should be used in this option, because the title is
1890 refreshed only when the option is changed.
1892 [[v0.4.3_bar_item_buffer_last_number]]
1893 === New bar item buffer_last_number
1895 The bar item "buffer_count" now displays the number of opened buffers (each
1896 merged buffer counts 1).
1898 The new bar item "buffer_last_number" displays the highest buffer number
1901 If you want to display last number in the status bar, replace "buffer_count"
1902 by "buffer_last_number" in your option weechat.bar.status.items.
1904 [[v0.4.3_bar_item_buffer_zoom]]
1905 === New bar item buffer_zoom
1907 A new bar item has been added: "buffer_zoom".
1908 The default value for status bar items becomes:
1911 /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"
1914 [[v0.4.3_irc_messages_channel_join]]
1915 === IRC messages on channel join
1917 The names are not displayed any more by default on channel join (they are in
1920 Names can be displayed with the value "353" in option
1921 irc.look.display_join_message (which is not in default value). +
1922 The value "366" shows only names count on channel.
1924 If you want to display all messages on join (including names), you can do:
1927 /set irc.look.display_join_message "329,332,333,353,366"
1930 [[v0.4.3_irc_maximum_lag]]
1931 === Maximum lag in IRC
1933 Option irc.network.lag_max has been added.
1935 The value of option irc.network.lag_reconnect (if set to non-zero value) must
1936 be less than or equal to irc.network.lag_max, otherwise the reconnection will
1939 You should check the value of both options and fix them if needed.
1942 == Version 0.4.2 (2013-10-06)
1944 [[v0.4.2_day_change_message]]
1945 === Day change message
1947 The day change message is now dynamically displayed, and therefore is not stored
1948 as a line in buffer any more.
1950 Option weechat.look.day_change_time_format has been split into two options
1951 weechat.look.day_change_message_{1date|2dates} (color codes are allowed in
1952 these options, see `/help eval`).
1954 New color option weechat.color.chat_day_change has been added.
1956 After `/upgrade` from an old version, you will see two messages for each day
1957 change. This is a normal behavior and will not happen again with the next day
1960 [[v0.4.2_buffer_regex_search]]
1961 === Regex search in buffer
1963 Search with regular expression has been added, and therefore some keys in search
1964 context have been changed.
1966 The key kbd:[Ctrl+r] in search context is now used to switch string/regex search
1967 (instead of searching exact text).
1969 If you never changed keys in search context, you can reset them all with one
1973 /key resetall -yes search
1976 Or the manual method:
1980 /key bindctxt search ctrl-R /input search_switch_regex
1983 To view keys in search context:
1989 For more information, see the chapter about keys in the _WeeChat User's guide_.
1991 [[v0.4.2_rmodifier]]
1994 A new rmodifier "secure" has been added to hide passphrase and passwords
1995 displayed by command `/secure`. Use command `/rmodifier missing` to add it.
1997 [[v0.4.2_color_codes_options]]
1998 === Color codes in options
2000 The format for color codes in some options has changed. The options are
2001 evaluated with the function "string_eval_expression", which uses the format
2004 Following options are affected:
2006 * weechat.look.buffer_time_format
2007 * weechat.look.prefix_action
2008 * weechat.look.prefix_error
2009 * weechat.look.prefix_join
2010 * weechat.look.prefix_network
2011 * weechat.look.prefix_quit
2013 The options using old format `${xxx}` must be changed with new format
2014 `${color:xxx}` (where xxx is a color name or number, with optional color
2020 /set weechat.look.buffer_time_format "${color:251}%H${color:243}%M${color:238}%S"
2023 [[v0.4.2_binary_man_page]]
2024 === Binary and man page
2026 WeeChat binary and man page have been renamed from `weechat-curses` to
2029 A symbolic link has been added for binary: `weechat-curses` -> `weechat`
2030 (so that the `/upgrade` from a old version will still work).
2032 If you upgrade from an old version, it is recommended to force the use of the
2033 new binary name with the command: `/upgrade /path/to/weechat` (replace the path
2037 For packagers: you should create the link `weechat-curses` -> `weechat` if it's
2038 not automatically created in the package (both CMake and configure are creating
2039 this link on make install).
2041 [[v0.4.2_man_page_documentation]]
2042 === Man page / documentation
2044 Documentation is not built by default any more, you have to use option
2045 `-DENABLE_DOC=ON` in cmake command to enable it.
2047 The man page is now built with asciidoc and translated in several
2048 languages. A new CMake option `ENABLE_MAN` has been added to compile man page
2051 [[v0.4.2_aspell_colors]]
2054 Option aspell.look.color has been renamed to aspell.color.misspelled.
2056 If you changed the value of this option, you must set it again after upgrade.
2059 == Version 0.4.1 (2013-05-20)
2061 [[v0.4.1_relay_nicklist_diff]]
2062 === Nicklist diff in relay
2064 A new message with identifier "_nicklist_diff" has been added in relay (WeeChat
2065 protocol). WeeChat may decide to send full nicklist or this nicklist diff at
2066 any time (depending on size of message, the smaller is sent).
2068 Clients using nicklist must implement it.
2070 For more info about content of message, see document _WeeChat Relay Protocol_.
2072 [[v0.4.1_dynamic_nick_prefix_suffix]]
2073 === Dynamic nick prefix/suffix
2075 The nick prefix/suffix (for example: "<" and ">") are now dynamic and used on
2076 display (not stored any more in the line).
2078 Options moved from irc plugin (irc.conf) to core (weechat.conf):
2080 * irc.look.nick_prefix => weechat.look.nick_prefix
2081 * irc.look.nick_suffix => weechat.look.nick_suffix
2082 * irc.color.nick_prefix => weechat.color.chat_nick_prefix
2083 * irc.color.nick_suffix => weechat.color.chat_nick_suffix
2085 Types and default values for these four options remain unchanged.
2087 Two new options to customize the truncature char (by default "`+`"):
2089 * weechat.look.prefix_align_more_after (boolean, `on` by default)
2090 * weechat.look.prefix_buffer_align_more_after (boolean, `on` by default)
2092 When these options are enabled (default), the "`+`" is displayed after the
2093 text, replacing the space that should be displayed there. +
2094 When turned off, the "`+`" will replace last char of text.
2096 Example for a nicks "FlashCode" and "fc" with different values for options
2097 weechat.look.prefix_align_max, weechat.look.prefix_align_more_after,
2098 weechat.look.nick_prefix and weechat.look.nick_suffix:
2101 # align_max, more_after, prefix/suffix
2103 FlashCode │ test # 0, on
2106 FlashCod+│ test # 8, on
2109 FlashCo+ │ test # 8, off
2112 <FlashCode> │ test # 0, on, < >
2115 <FlashC>+│ test # 8, on, < >
2118 <Flash+> │ test # 8, off, < >
2122 After `/upgrade`, if you set new options to non-empty strings, and if old
2123 options were set to non-empty strings too, you will see double prefix/suffix
2124 on old messages, this is normal behavior (lines displayed before `/upgrade`
2125 have prefix/suffix saved in prefix, but new lines don't have them any more).
2127 New options in logger plugin (logger.conf):
2129 * logger.file.nick_prefix: prefix for nicks in log files (default: empty string)
2130 * logger.file.nick_suffix: suffix for nicks in log files (default: empty string)
2132 [[v0.4.1_irc_reconnection_lag]]
2133 === IRC reconnection on important lag
2135 Option irc.network.lag_disconnect has been renamed to irc.network.lag_reconnect
2136 and value is now a number of seconds (instead of minutes).
2138 If you changed the value of this option, you must set it again after upgrade.
2140 [[v0.4.1_irc_passwords_hidden]]
2141 === IRC passwords hidden
2143 IRC plugin is now using modifiers "irc_command_auth" and "irc_message_auth" to
2146 The option irc.look.hide_nickserv_pwd has been removed, and a new option
2147 irc.look.nicks_hide_password has been added (by default passwords are hidden
2148 only for "nickserv").
2150 A new rmodifier "message_auth" has been added to hide passwords displayed by
2151 command `/msg nickserv identify|register|ghost|release` and the rmodifier
2152 "nickserv" has been renamed to "command_auth".
2154 If you never added/changed rmodifiers, you can just reset all rmodifiers:
2157 /rmodifier default -yes
2160 If you added/changed some rmodifiers, do it manually with these commands:
2163 /rmodifier del nickserv
2164 /rmodifier add command_auth history_add,input_text_display,irc_command_auth 1,4* ^(/(msg|quote) +nickserv +(id|identify|register|ghost \S+|release \S+) +)(.*)
2165 /rmodifier add message_auth irc_message_auth 1,3* ^(.*(id|identify|register|ghost \S+|release \S+) +)(.*)
2168 [[v0.4.1_lua_constants]]
2171 For consistency with other supported languages, the API constants in Lua have
2172 been redefined as constants instead of functions.
2174 Therefore, the use of a constant must be changed: the parentheses must be
2181 return weechat.WEECHAT_RC_OK()
2188 return weechat.WEECHAT_RC_OK
2191 [[v0.4.1_guile_callbacks]]
2194 The way to give arguments for guile callbacks has been fixed: now arguments are
2195 sent individually (instead of a list with all arguments inside).
2197 Therefore, existing guile scripts must be modified accordingly. Moreover,
2198 WeeChat now requires Guile ≥ 2.0 to compile.
2201 == Version 0.4.0 (2013-01-20)
2203 [[v0.4.0_bars_conditions]]
2204 === Conditions in bars
2206 Conditions in bars have changed, and now an expression is evaluated.
2208 If you have a value with many conditions in a bar, like: `nicklist,active`, you
2209 must now use an expression like: `${nicklist} && ${active}` (see the chapter
2210 about bars in the _WeeChat User's guide_).
2212 [[v0.4.0_ipv6_default]]
2217 IPv6 is now used by default to connect to IRC servers, with fallback to
2218 IPv4. The option irc.server_default.ipv6 is now `on` by default. If IPv6 is
2219 not enabled or fails, IPv4 will be used. The "ipv6" option in server is now
2220 used to disable IPv6 and force IPv4 (if option is turned off).
2224 Relay plugin is now listening by default on an IPv6 socket (new option
2225 relay.network.ipv6, `on` by default), so connections with IPv4 will have
2226 IPv4-mapped IPv6 addresses, like: "::ffff:127.0.0.1" (for "127.0.0.1"); check
2227 that value of option relay.network.allowed_ips supports this mapping, or
2228 disable IPv6 in relay if you don't plan to use it at all:
2231 /set relay.network.ipv6 off
2235 == Version 0.3.9.2 (2012-11-18)
2237 This version fixes a security vulnerability when a plugin/script gives
2238 untrusted command to API function link:https://weechat.org/doc/plugin/#_hook_process[hook_process].
2241 == Version 0.3.9.1 (2012-11-09)
2243 This version fixes crash when decoding IRC colors in strings.
2246 == Version 0.3.9 (2012-09-29)
2248 [[v0.3.9_options_moved]]
2251 Options moved from core (weechat.conf) to irc plugin (irc.conf):
2253 * weechat.look.nickmode => irc.look.nick_mode (new type: integer with values: none/prefix/action/both)
2254 * weechat.look.nickmode_empty => irc.look.nick_mode_empty
2256 [[v0.3.9_bar_item_buffer_modes]]
2257 === New bar item buffer_modes
2259 A new bar item has been added: "buffer_modes" and irc option irc.look.item_channel_modes
2260 has been removed; to display irc channel modes in status bar (after channel name),
2261 you have to manually add the new item "buffer_modes" (this is now used by default
2262 in status bar items), default value for status bar items becomes:
2265 /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"
2268 [[v0.3.9_command_aspell]]
2271 New options in command `/aspell`:
2273 * `enable`: enable aspell
2274 * `disable`: disable aspell
2275 * `toggle`: toggle aspell (new default key: kbd:[Alt+s])
2277 Options renamed in command `/aspell`:
2279 * `enable` => `setdict` (set dictionary for current buffer)
2280 * `disable` => `deldict` (delete dictionary used on current buffer)
2281 * `dictlist` => `listdict` (show installed dictionaries)
2283 [[v0.3.9_horizontal_separator]]
2284 === Horizontal separator
2286 An horizontal separator has been added between split windows, and two options
2287 have been added to toggle separators (both are enabled by default):
2289 * weechat.look.window_separator_horizontal
2290 * weechat.look.window_separator_vertical
2295 New keys were added, use command `/key missing` to add them or `/key listdiff`
2296 to see differences between your current keys and WeeChat default keys.
2299 == Version 0.3.8 (2012-06-03)
2304 Options weechat.look.prefix_align_more and weechat.look.prefix_buffer_align_more
2305 have been converted from type boolean to string:
2307 * If the value was `on` (default), new value is "+" and you can now customize
2309 * If the value was `off`, you have to set " " (string with one space).
2311 [[v0.3.8_paste_detection]]
2314 Option weechat.look.paste_max_lines can now be used with value 0 to detect
2315 paste with one line (only if terminal "bracketed paste mode" is enabled when
2316 option weechat.look.paste_bracketed is `on`); so now the value -1 is used to
2317 disable paste detection: if your value was 0, you should set it to -1:
2320 /set weechat.look.paste_max_lines -1
2323 [[v0.3.8_rmodifier]]
2326 Rmodifier "nickserv" has a new default regex which includes option "release"
2327 for command `/msg nickserv`.
2329 If you never added/changed rmodifiers, you can just reset all rmodifiers:
2332 /rmodifier default -yes
2335 If you added/changed some rmodifiers, do it manually with these commands:
2338 /rmodifier del nickserv
2339 /rmodifier add nickserv history_add,input_text_display 1,4* ^(/(msg|quote) +nickserv +(id|identify|ghost \S+|release \S+) +)(.*)
2343 == Version 0.3.7 (2012-02-26)
2348 Option `scroll_unread` has been moved from command `/input` to `/window`,
2349 therefore default command of key kbd:[Alt+u] has been updated. To bind key with
2353 /key bind meta-u /window scroll_unread
2356 Option weechat.history.max_lines has been renamed to weechat.history.max_buffer_lines_number.
2358 If you changed the value of this option, you must set it again after upgrade.
2360 Option weechat.plugin.extension now supports list of extensions, and new
2361 default value is ".so,.dll" (with this value, weechat.conf is compatible with
2364 [[v0.3.7_extended_regex]]
2367 Extended regex is used in filters and irc ignore, so some chars that needed
2368 escape in past do not need any more (for example `[0-9]\+` becomes `[0-9]+`),
2369 filters and ignore have to be manually fixed.
2371 Option weechat.look.highlight_regex becomes case insensitive by default, to
2372 make it case sensitive, use "(?-i)" at beginning of string, for example:
2373 "(?-i)FlashCode|flashy".
2376 == Version 0.3.6 (2011-10-22)
2381 Option weechat.look.hline_char has been renamed to weechat.look.separator_horizontal.
2383 If you changed the value of this option, you must set it again after upgrade.
2385 [[v0.3.6_colors_bold]]
2388 Bold is not used any more for basic colors (used only if terminal has less than
2389 16 colors), a new option has been added to force bold if needed:
2390 weechat.look.color_basic_force_bold.
2393 == Version 0.3.5 (2011-05-15)
2398 If you have some colors defined in section "palette" with version 0.3.4, you
2399 should remove all colors defined, and add new aliases (it's not needed any more
2400 to add colors before using them).
2402 Colors for nick prefixes (char for op, voice, ..) are defined in a single
2403 option irc.color.nick_prefixes, therefore following options will be lost:
2404 irc.color.nick_prefix_op, irc.color.nick_prefix_halfop,
2405 irc.color.nick_prefix_voice, irc.color.nick_prefix_user .
2410 [[v0.3.5_hotlist_counters]]
2413 Count of messages have been added to hotlist by default, if you want to come
2414 back to old behavior, do that:
2417 /set weechat.look.hotlist_count_max 0
2418 /set weechat.look.hotlist_buffer_separator ","
2421 [[v0.3.5_hotlist_away_current_buffer]]
2422 ==== Away and current buffer
2424 When you are away, all buffers are now added to hotlist by default (even if
2425 they are displayed in a window), if you want to come back to old behavior, do
2429 /set weechat.look.hotlist_add_buffer_if_away off
2435 New keys were added, use command `/key missing` to add them or `/key listdiff`
2436 to see differences between your current keys and WeeChat default keys.
2439 == Version 0.3.4 (2011-01-16)
2441 [[v0.3.4_after_upgrade]]
2444 If you are using `/upgrade` from a previous release:
2446 * Some nick prefixes can be wrong, so it is recommended to do `/allchan names`.
2447 * Nick colors are defined with a new option weechat.color.chat_nick_colors ,
2448 therefore old options weechat.color.chat_nick_color1..10 will be lost when
2450 * Nick colors in messages displayed will be wrong if you changed some nick
2451 colors (old default colors will be used).
2456 Some IRC options have been renamed, before upgrading to this version, note
2457 value for old options, and set them again with new name:
2459 * options moved from "network" section to servers (with global value, and
2460 server value, like other server options):
2461 ** irc.network.connection_timeout => irc.server_default.connection_timeout
2462 ** irc.network.anti_flood_prio_high => irc.server_default.anti_flood_prio_high
2463 ** irc.network.anti_flood_prio_low => irc.server_default.anti_flood_prio_low
2464 ** irc.network.away_check => irc.server_default.away_check
2465 ** irc.network.away_check_max_nicks => irc.server_default.away_check_max_nicks
2466 ** irc.network.default_msg_part => irc.server_default.default_msg_part
2467 ** irc.network.default_msg_quit => irc.server_default.default_msg_quit
2468 * other IRC options renamed:
2469 ** irc.look.open_channel_near_server => irc.look.new_channel_position
2470 (old option was boolean, new is integer with value as string)
2471 ** irc.look.open_pv_near_server => irc.look.new_pv_position
2472 (old option was boolean, new is integer with value as string)
2475 == Version 0.3.3 (2010-08-07)
2477 [[v0.3.3_after_upgrade]]
2480 If you are using `/upgrade` from a previous release, then you must reconnect to
2481 IRC servers in order to use new command `/wallchops`.
2486 Option irc.look.show_away_once has been renamed to irc.look.display_pv_away_once.
2488 Option irc.network.lag_min_show is now in milliseconds, you should set new
2489 value: your current value multiplied by 1000 (new default value is `500`).
2492 == Version 0.3.2 (2010-04-18)
2494 [[v0.3.2_after_upgrade]]
2497 If you are using `/upgrade` from a previous release, then you must execute this
2498 command on all IRC servers/channels/private buffers and xfer DCC chats (not
2499 needed on WeeChat core buffer or buffers from other plugins/scripts):
2502 /buffer set highlight_words $nick
2506 == Version 0.3.1.1 (2010-01-31)
2508 This version fixes crashes with SSL connection and purge of old DCC chats.
2510 All users of version 0.3.1 should upgrade to this version.
2513 == Version 0.3.1 (2010-01-23)
2518 IRC commands `/ame` and `/amsg` are now aliases, if you are upgrading from version
2519 0.3.0, you must create aliases with the following commands:
2522 /alias aaway allserv /away
2523 /alias ame allchan /me
2524 /alias amsg allchan /amsg *
2525 /alias anick allserv /nick
2529 == Version 0.3.0 (2009-09-06)
2531 This version brings *MAJOR* changes, especially for configuration files and
2532 plugin API and is not compatible with previous versions.
2536 * It is *NOT POSSIBLE* to use command `/upgrade` from a version 0.2.x to 0.3.x;
2537 you have to quit your old WeeChat, then run new version.
2538 * New configuration files (`*.conf`) are not compatible with old files
2540 * Name of options is similar to old versions, but there is now one
2541 configuration file by plugin, and one file for WeeChat core; there is
2542 *no automatic conversion* for your old options to new configuration files,
2543 so you'll have to setup again your IRC servers and all other options.
2544 * Plugin API has been rewritten and is not compatible with previous versions;
2545 accordingly, scripts and plugins must have been designed for version 0.3.x to
2546 be loaded into WeeChat.
2549 == Version 0.2.6.3 (2009-06-13)
2551 This version fixes gnutls detection.
2554 == Version 0.2.6.2 (2009-04-18)
2556 This version fixes a bug with charset decoding (like "iso2022jp").
2559 == Version 0.2.6.1 (2009-03-14)
2561 This version fixes a major bug: crash with some special chars in IRC messages.
2564 == Version 0.2.6 (2007-09-06)
2569 == Version 0.2.5 (2007-06-07)
2574 == Version 0.2.4 (2007-03-29)
2579 == Version 0.2.3 (2007-01-10)
2581 This version fixes several major bugs of version 0.2.2.
2583 All users of version 0.2.2 should upgrade to this version.
2586 == Version 0.2.2 (2007-01-06)
2588 [[v0.2.2_charset_plugin]]
2591 For users of any previous version, all your charset settings in weechat.rc will
2592 be LOST! You should save your weechat.rc to keep your values and set them again
2593 with new _charset_ plugin.
2595 For ISO users: history of channels may be without accents (after `/upgrade`),
2596 this is not recoverable, but this is not a bug. All new messages should be OK.
2598 Be careful, now default encode is UTF-8 for all channels (before it was
2599 terminal charset). If you still want to send messages as "ISO-8859-1", you
2600 should set either global encode or server specific encode to `ISO-8859-1`.
2605 /setp charset.global.encode = "ISO-8859-1"
2608 For server encode (on server buffer):
2611 /charset encode ISO-8859-1
2617 New keys for topic scroll: kbd:[F9]/kbd:[F10].
2619 Key kbd:[F10] was used for `infobar_clear` in previous WeeChat versions, you
2620 have to manually rebind this key (except for new WeeChat users):
2623 /key <press alt+"k" then F10> scroll_topic_right
2626 Which gives something like:
2629 /key meta2-21~ scroll_topic_right
2633 == Version 0.2.1 (2006-10-01)
2638 == Version 0.2.0 (2006-08-19)
2640 [[v0.2.0_after_upgrade]]
2643 If you upgraded with `/upgrade` in WeeChat, you should `/disconnect` and then
2644 `/reconnect` on each server, to display properly channel/user modes.
2649 If you're using plugins, you should remove some old plugins libraries in
2650 WeeChat system library directory (commonly `/usr/local/lib/weechat/plugins`):
2651 remove `lib*` files (like `libperl.*`, `libpython.*`, ..) and keep only new
2652 libraries (`perl.*`, `python.*`, ..).
2655 == Version 0.1.9 (2006-05-25)
2660 Please close all DCC chat buffers before using `/upgrade` command, otherwise you
2661 may experience problems with DCC chats.
2663 [[v0.1.9_script_api]]
2666 Some changes in script API: now timer handlers functions takes exactly 0 (zero)
2667 argument (in version 0.1.8, two arguments were mandatory but not used: server
2671 == Version 0.1.8 (2006-03-18)
2673 [[v0.1.8_after_upgrade]]
2676 After installing 0.1.8 (or with `/upgrade`), issue both commands (if you didn't
2677 redefine these keys (kbd:[Alt+Home] / kbd:[Alt+End]):
2680 /key unbind meta-meta2-1~
2681 /key unbind meta-meta2-4~
2684 Then launch again WeeChat (or issue `/upgrade`).
2686 [[v0.1.8_configuration_files]]
2687 === Configuration files
2689 It is recommended for users of version 0.1.7 (or any older), to replace values
2690 in setup file (_~/.weechat/weechat.rc_):
2692 * option: log_path: replace `~/.weechat/logs` by `%h/logs`
2693 * option: plugins_path: replace `~/.weechat/plugins` by `%h/plugins`
2695 The string `%h` is replaced by WeeChat home (default: `~/.weechat`, may be
2696 overridden by new command line argument `--dir`).
2701 Keys kbd:[Alt+Home] / kbd:[Alt+End] were used for nicklist scroll, they're now
2702 replaced by kbd:[Alt+F11] / kbd:[Alt+F12].
2705 == Version 0.1.7 (2006-01-14)
2710 Ruby script plugin has been added but is experimental in this release. You're
2713 [[v0.1.7_command_away]]
2716 Command `/away` was changed to be RFC 2812 compliant. Now argument is required
2717 to set away, and no argument means remove away ("back").
2719 Option irc_default_msg_away has been removed.
2722 == Version 0.1.6 (2005-11-11)
2724 [[v0.1.6_script_api]]
2727 Incompatibility with some old scripts: now all handlers have to return a code
2728 for completion, and to do some actions about message to ignore (please look at
2729 documentation for detail).
2734 On OpenBSD, the new option plugins_extension should be set to `.so.0.0` since
2735 the plugins names are ending by `.so.0.0` and not `.so`.
2740 With new and full UTF-8 support, the option look_charset_internal should be
2741 set to blank for most cases. Forces it only if your locale is not properly
2742 detected by WeeChat (you can set `UTF-8` or `ISO-8859-15` for example,
2743 depending on your locale). WeeChat is looking for "UTF-8" in your locale name
2747 == Version 0.1.5 (2005-09-24)
2752 == Version 0.1.4 (2005-07-30)
2757 == Version 0.1.3 (2005-07-02)
2762 == Version 0.1.2 (2005-05-21)
2767 == Version 0.1.1 (2005-03-20)
2772 == Version 0.1.0 (2005-02-12)
2777 == Version 0.0.9 (2005-01-01)
2782 == Version 0.0.8 (2004-10-30)
2787 == Version 0.0.7 (2004-08-08)
2792 == Version 0.0.6 (2004-06-05)
2797 == Version 0.0.5 (2004-02-07)
2802 == Version 0.0.4 (2004-01-01)
2807 == Version 0.0.3 (2003-11-03)
2812 == Version 0.0.2 (2003-10-05)
2817 == Version 0.0.1 (2003-09-27)