WeeChat DevCenter

Sunday, June 25 2017

Version 1.9

Version 1.9 is available!

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

New major features in this release:

  • improve speed of nicklist bar item callback
  • add auto scroll of buflist bar with new option buflist.look.auto_scroll
  • add option buflist.format.name
  • add variables ${format_name}, ${current_buffer} and ${merged} in buflist
  • display a warning in buflist when the script buffers.pl is loaded
  • add server/channel pointers in trigger IRC callbacks
  • add API functions config_option_get_string and hdata_compare
  • fix bind of Space key
  • many bugs fixed.

New options:

  • buflist.format.name
  • buflist.look.auto_scroll

New keys:

  • F1/F2: scroll buflist bar

Saturday, May 13 2017

Version 1.8

Version 1.8 is available!

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

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

New major features in this release:

  • add option weechat.completion.nick_case_sensitive
  • add wilcard matching operator, cut of string and ternary operator in evaluation of expressions
  • add resize of window parents with /window resize (h/v)size
  • add plugin "buflist" (bar with list of buffers)
  • add arraylist and dynamic string functions in API
  • add option "open" in command /server
  • add signal "irc_server_lag_changed" and store the lag in the server buffer (local variable)
  • add aspell options to control delimiters in suggestions
  • add option "-include" in commands /allchan, /allpv and /allserv
  • many bugs fixed.

New options:

  • aspell.color.suggestion_delimiter_dict
  • aspell.color.suggestion_delimiter_word
  • aspell.look.suggestion_delimiter_dict
  • aspell.look.suggestion_delimiter_word
  • weechat.completion.nick_case_sensitive

Options changed:

  • option aspell.color.suggestions renamed to aspell.color.suggestion

Options removed:

  • script.scripts.url_force_https (now the option script.scripts.url uses HTTPS by default)

New keys:

  • in mouse context:
    • control key + wheel on buflist bar: change current buffer
    • mouse buttons on buflist bar: change current buffer or move buffers in list

Saturday, April 22 2017

Version 1.7.1

Version 1.7.1 is available, it fixes a security problem: a crash can happen in IRC plugin when parsing the filename received via DCC.

Upgrade is recommended for all users.

Sunday, January 15 2017

Version 1.7

Version 1.7 is available!

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

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

New major features in this release:

  • add option weechat.look.align_multiline_words
  • add option "time" in command /debug
  • add infos "uptime" and "pid"
  • add optional arguments in completion template
  • add irc server option "usermode"
  • add tag "self_msg" on self messages
  • add configuration file fifo.conf for fifo plugin
  • add option "-oc" in command /exec
  • many bugs fixed.

New options:

  • fifo.file.enabled
  • fifo.file.path
  • irc.server_default.usermode (and same option in servers)
  • weechat.look.align_multiline_words

Options changed:

  • option plugins.var.fifo.fifo renamed to fifo.file.enabled (type changed from string to boolean)

Sunday, October 2 2016

Version 1.6

Version 1.6 is available!

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

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

New major features in this release:

  • add optional argument "lowest", "highest" or level mask in command /input hotlist_clear
  • add option "cycle" in command /buffer
  • add "extra" argument to evaluate extra variables in function string_eval_expression()
  • add option relay.network.allow_empty_password
  • add support for one-time triggers
  • rename server options "default_msg_{kick|part|quit}" to "msg_{kick|part|quit}", evaluate them
  • allow escape of comma in command "init" (weechat relay protocol)
  • many bugs fixed.

New options:

  • relay.network.allow_empty_password
  • option "post_action" in each trigger

Options changed:

  • server options "default_msg_{kick|part|quit}" renamed to "msg_{kick|part|quit}"

Sunday, May 1 2016

Version 1.5

Version 1.5 is available!

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

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

New major features in this release:

  • add support of functions in API function "hook_process"
  • move of nick coloring options from irc plugin to core
  • move irc bar item "away" to core
  • add pointer in callbacks used in scripting API
  • add option irc.network.sasl_fail_unavailable
  • add Portuguese translations
  • many bugs fixed.

New options:

  • irc.network.sasl_fail_unavailable

Options changed:

  • irc.look.nick_color_force moved to weechat.look.nick_color_force
  • irc.look.nick_color_hash moved to weechat.look.nick_color_hash
  • irc.look.nick_color_stop_chars moved to weechat.look.nick_color_stop_chars
  • irc.look.item_away_message moved to weechat.look.item_away_message
  • irc.color.item_away moved to weechat.color.item_away

Sunday, January 10 2016

Version 1.4

Version 1.4 is available!

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

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

New major features in this release:

  • add a parent name in options, display inherited values if null in /set output
  • add option weechat.look.paste_auto_add_newline
  • add /fifo command
  • track real names using extended-join and WHO (IRC)
  • add support of SNI (Server Name Indication) in SSL connection to IRC server
  • add support of IRC "cap-notify" capability
  • add IRC command /cap
  • add hex dump of messages in raw buffer when debug is enabled for irc plugin
  • add option relay.irc.backlog_since_last_message
  • add option script.scripts.download_timeout
  • add scripts to build Debian packages
  • many bugs fixed.

New options:

  • relay.irc.backlog_since_last_message
  • script.scripts.download_timeout
  • weechat.color.chat_value_null
  • weechat.look.paste_auto_add_newline

Options changed:

  • irc.network.alternate_nick moved into IRC servers (irc.server.xxx.nicks_alternate)

Friday, December 25 2015

Inherited option values

Options can now have a parent option, and the value of option inherits from parent when it is null (if null is allowed).

For now, only IRC server options (irc.server.<name>.xxx) are inheriting from parent options (irc.server_default.<name>.xxx).

The command /set shows the inherited value (and the default inherited if the value is set to null). Script iset.pl has been updated as well (version 4.0 supports this feature, and is compatible with old WeeChat).

Enjoy and Merry Christmas!

Screenshot of this new feature (click for full size):

weechat_set_inherited_values.png

Sunday, August 16 2015

Version 1.3

Version 1.3 is available!

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

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

New major features in this release:

  • keep scroll after interactive search in buffer
  • add optional confirmation on /upgrade
  • add signal "signal_sighup"
  • add IRC options irc.color.topic_current, irc.network.channel_encode
  • many bugs fixed.

New options:

  • irc.color.topic_current
  • irc.network.channel_encode
  • weechat.look.confirm_upgrade
  • weechat.look.key_grab_delay

Options changed:

  • script.scripts.dir renamed to script.scripts.path

Keys changed:

  • in search context (ctrl-R):
    • ctrl-R: search text/regex here (at scroll position)
    • ctrl-J / ctrl-M / Enter: stop search here (at scroll position)
    • ctrl-Q: stop search and scroll to bottom of buffer

Sunday, May 10 2015

Version 1.2

Version 1.2 is available!

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

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

New major features in this release:

  • add options to customize word chars (for detecting word boundaries)
  • add a welcome message on first WeeChat run
  • add options to customize quoted messages (in cursor mode)
  • add support of environment variables in evaluated expressions
  • add support of IRC SASL mechanism "ecdsa-nist256p-challenge"
  • add support of SHA-256 and SHA-512 algorithms in IRC server option "ssl_fingerprint"
  • add support of IRC capability "account-notify"
  • remove "freenode" server from default config
  • new script plugin for javascript
  • many bugs fixed.

New options:

  • irc.server_default.sasl_key (and same option in servers)
  • plugins.var.javascript.check_license
  • weechat.look.quote_nick_prefix
  • weechat.look.quote_nick_suffix
  • weechat.look.quote_time_format
  • weechat.look.word_chars_highlight
  • weechat.look.word_chars_input

Sunday, January 25 2015

Version 1.1.1

Version 1.1.1 is available!

This is a bug fix and maintenance release, see ChangeLog for detail.

Sunday, January 11 2015

Version 1.1

Version 1.1 is available!

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

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

New major features in this release:

  • complete inline commands in input
  • allow incomplete commands if unambiguous
  • improve speed of completions
  • add bar item and signals for mouse status
  • use bar conditions on root bars
  • add option "reorder" in command /server
  • open irc channel buffers before the join is received from server
  • add server option "sasl_fail"
  • add support for color codes 16-99 in IRC messages
  • disable SSLv3 by default
  • add support of IRC capability "extended-join"
  • add options "stop" and "start" in command /relay
  • use HTTPS by default in script plugin for downloads
  • add option "restore" in command /trigger
  • evaluate and replace regex groups at same time in trigger (new and incompatible format)
  • many bugs fixed.

New options:

  • irc.look.buffer_open_before_autojoin
  • irc.look.buffer_open_before_join
  • irc.look.temporary_servers
  • irc.server_default.sasl_fail
  • relay.network.ssl_priorities
  • script.scripts.url_force_https
  • weechat.look.command_incomplete
  • weechat.look.item_mouse_status
  • weechat.color.status_mouse
  • weechat.completion.command_inline

Sunday, September 28 2014

Version 1.0.1

Version 1.0.1 is available!

This is a bug fix and maintenance release, see ChangeLog for detail.

Friday, August 15 2014

Version 1.0

Yay, version 1.0 is available!

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

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

New major features in this release:

  • plugin "trigger": Swiss Army knife for WeeChat (replaces "rmodifier" plugin) (see this post)
  • plugin "exec": execute external commands (replaces script "shell.py") (see this post)
  • bare display: easy click on long URLs and text selection with mouse (see this post)
  • support of environment variables in /set command
  • hidden buffers
  • negated tags in filters
  • toggle of filters in specific buffers
  • flexible conditions for adding/removing buffers in hotlist
  • text search in buffers with free content
  • support of wildcard "*" inside masks
  • support of nested variables in evaluated expressions
  • tag with host in IRC messages displayed
  • support of "away-notify" IRC capability
  • IRC commands: /allpv, /remove, /unquiet
  • bar items: buffer_short_name, irc_nick_modes
  • unit tests

New options:

  • irc.color.item_nick_modes
  • irc.look.join_auto_add_chantype
  • relay.network.clients_purge_delay
  • weechat.color.status_nicklist_count
  • weechat.look.bare_display_exit_on_input
  • weechat.look.bare_display_time_format
  • weechat.look.hotlist_add_conditions (replaces weechat.look.hotlist_add_buffer_if_away)
  • weechat.look.hotlist_remove

Options changed:

  • irc.look.item_channel_modes_hide_key renamed to irc.look.item_channel_modes_hide_args

New keys:

  • alt-"-": toggle filters in current buffer
  • alt-"l" (L): bare display
  • alt-"j", alt-"f": jump to first buffer

Monday, March 3 2014

Git repositories moved to GitHub

WeeChat git repositories (weechat, scripts, qweechat) have been moved to GitHub, in WeeChat organization: http://github.com/weechat.
The git repositories on savannah are not updated any more (and will be removed in near future).

The GitHub issue tracker can now be used to report bugs and ask for feature requests.
If the bug/task already exists in Savannah, you can complete/discuss it on Savannah, no need to open a new one on GitHub.

Pull requests are welcome in all repositories, including scripts (except for adding a script, the form on weechat.org must be used).

A page with examples of triggers has been added in weechat wiki.

Sunday, February 16 2014

Bare display

A "bare" display mode has been added. This special mode displays only the current buffer, and no bars around (no title, nicklist, status, input, ...).
It is designed for easy selection of text and click on long URLs (which are not broken at the end of lines, because ncurses is disabled in this mode).

A new key has been added: alt-"l" (use /key missing to add the key), or this command: /key bind meta-l /window bare.
You can also use a delay in seconds with command /window bare, for example 5 seconds: /window bare 5.

Two options have been added:

  • weechat.look.bare_display_exit_on_input (default: on): by default any changes in input will return to standard display
  • weechat.look.bare_display_time_format (default: "%H:%M"): the format of time used in bare display.

Bare display looks like this (click for full size):

weechat_bare_display.png

Sunday, February 9 2014

Version 0.4.3

Version 0.4.3 is available!

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

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

New major features in this release:

  • new command /print
  • logical and/or for tags in /filter and hook_print
  • gaps in buffer numbers (see this post)
  • support of italic text
  • new options to customize default text search in buffers
  • use of IRC monitor command for /notify (if available on server)
  • new IRC server option "ssl_fingerprint"
  • new option to smart-filter IRC mode messages
  • new option for default IRC ban mask
  • support of IPv6 for DCC chat/file (see this post)
  • auto check CRC32 of files received with DCC (see this post)

New options:

  • irc.look.notice_welcome_tags
  • irc.look.smart_filter_mode
  • irc.network.ban_mask_default
  • irc.network.lag_max
  • irc.server.xxx.default_msg_kick
  • irc.server.xxx.ssl_fingerprint
  • weechat.look.buffer_auto_renumber
  • weechat.look.buffer_position
  • weechat.look.buffer_search_case_sensitive
  • weechat.look.buffer_search_force_default
  • weechat.look.buffer_search_regex
  • weechat.look.buffer_search_where
  • weechat.look.item_buffer_zoom
  • weechat.look.tab_width
  • weechat.look.window_auto_zoom
  • xfer.file.auto_check_crc32

Options changed:

  • irc.look.highlight_tags renamed to irc.look.highlight_tags_restrict
  • weechat.look.set_title renamed to weechat.look.window_title

New keys:

  • ctrl-C, "v": reverse video (replaces ctrl-C, "r")
  • ctrl-C, "_": underlined text (replaces ctrl-C, "u")

Wednesday, December 11 2013

Auto renumber of buffers

Auto renumber of buffers can now be disabled.

Two options have been added:

  • weechat.look.buffer_auto_renumber
  • weechat.look.buffer_position

A bar item has beed added as well:

  • buffer_last_number

When auto renumber is disabled, gaps between buffer numbers are allowed and the first buffer can have a number greater than 1.

Following options for command /buffer are affected when auto renumber is off:

  • move:
    • the current number will be left free for use, and the target number can be any number >= 1 (possibly higher than the current last buffer number)
    • the value can be "-" (which moves the buffer to number 1) or "+" (which moves the buffer to the end, ie last number + 1)
  • swap:
    • now the buffers are swapped in the list without being "moved"
  • (+/-)N:
    • it is now working with gaps in buffer numbers
  • merge:
    • it can now merge a group of merged buffers into another buffer (or buffers merged themselves)

Sunday, October 6 2013

Version 0.4.2

Version 0.4.2 is available!

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

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

New major features in this release:

  • rename binary from "weechat-curses" to "weechat" (with symbolic link "weechat-curses" for compatibility) (see this post)
  • add secured data (encryption of passwords or private data), new command /secure, new file sec.conf (see this post)
  • search of regular expression in buffer with text emphasis, in prefixes, messages or both (see this post)
  • add option "scroll_beyond_end" for command /window
  • add optional buffer context in bar items (for example to display bitlbee nicklist in a root bar)
  • new options weechat.look.hotlist_{prefix|suffix}
  • new option weechat.look.key_bind_safe to prevent any key binding error from user
  • new option weechat.network.proxy_curl to use a proxy when downloading URLs with curl
  • display day change message dynamically
  • support of wildcards in IRC commands (de)op/halfop/voice
  • new option irc.look.notice_welcome_redirect to redirect channel welcome notices to the channel buffer
  • new option irc.look.nick_color_hash: new hash algorithm to find nick colors (variant of djb2)
  • add info about things defined by a script in the detailed view of script (/script show)
  • support of enchant library in aspell plugin

New options:

  • aspell.color.suggestions
  • irc.look.nick_color_hash
  • irc.look.notice_welcome_redirect
  • irc.look.pv_tags
  • sec.crypt.cipher
  • sec.crypt.hash_algo
  • sec.crypt.passphrase_file
  • sec.crypt.salt
  • weechat.color.chat_day_change
  • weechat.color.emphasized
  • weechat.color.emphasized_bg
  • weechat.look.emphasized_attributes
  • weechat.look.hotlist_prefix
  • weechat.look.hotlist_suffix
  • weechat.look.key_bind_safe
  • weechat.network.proxy_curl
  • xfer.look.pv_tags

Options changed:

  • aspell.look.color renamed to aspell.color.misspelled
  • weechat.look.day_change_time_format split into two options: weechat.look.day_change_message_1date and weechat.look.day_change_message_2dates

New keys:

  • in search context (ctrl-R):
    • ctrl-I (tab): search in prefixes, messages or both
    • ctrl-R: search text/regex
    • alt-c: case (in)sensitive search

Saturday, August 17 2013

Search with regex and text emphasis

When searching text in buffer (with ctrl-R), the matching text in lines is now emphasized, even if there are color codes in the line.

The search has been improved: it is now possible to search with a regular expression, and select where to search: in messages (default), prefixes or prefixes+messages.

The default key for search is still ctrl+R and keys have been added/changed in the search context:

  • ctrl-R: switch search type: string/regex
  • alt-c: switch exact case for search
  • tab: switch search in messages/prefixes

The new search prompt in input bar looks like this: [Search (~ str,msg)]

Short description of content:

  • ~: case insensitive search (default)
  • ==: case sensitive search
  • str: search string (default)
  • regex: search regular expression
  • msg: search in messages (default)
  • pre: search in prefixes
  • pre|msg: search in prefixes and messages

Happy search!

weechat_search_emphasis_regex.png

Sunday, August 4 2013

Secured data

Secured data has been added to WeeChat: you can now encrypt your passwords or private data in a new configuration file called "sec.conf".

This configuration file is read before any other file, and the values stored inside can be used in various WeeChat or plugins/scripts options.

To add secured data, you just have to set a passphrase (not mandatory, but recommended: this will encrypt data in sec.conf instead of plain text), and then add data, for example :

/secure passphrase this is my passphrase
/secure set freenode mypassword

And then you can use that in a server password, for example :

/set irc.server.freenode.sasl_password "${sec.data.freenode}"

For more info, see /help secure.

Options for encryption

You can use different cipher/hash algorithms, by setting following options:

  • sec.crypt.hash_algo: algorithm for hash: sha224, sha256 (default), sha384, sha512
  • sec.crypt.cipher: cipher: aes128, aes192, aes256 (default)
  • sec.crypt.salt: use salt (recommended for maximum security)
  • sec.crypt.passphrase_file: file with the passphrase (optional)

Note: the cipher block mode is CFB.

The encryption

It is done in 3 steps:

  1. derive a key from the passphrase (with optional salt)
  2. compute hash of data to encrypt
  3. encrypt the hash + data (output is: salt + encrypted hash/data)

The result is put as hexadecimal string in file sec.conf.

The decryption

It is done in 3 steps:

  1. derive a key using salt and passphrase
  2. decrypt hash + data
  3. check that decrypted hash == hash of data

Friday, August 2 2013

Binary and man page renamed

WeeChat binary and man page have been renamed from "weechat-curses" to "weechat".

You can read important info about that in release notes.

Wednesday, June 26 2013

Happy birthday WeeChat!

Happy birthday WeeChat, 10 years old!

I would like to thank all contributors for the help with translations, patches and ideas of features.
All contributions and donations are much appreciated!

Monday, May 20 2013

Version 0.4.1

Version 0.4.1 is available!

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

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

New major features in this release:

  • multiple layouts support (see this post)
  • nick prefix/suffix are now dynamic (and managed by core instead of irc plugin) (see this post)
  • unmask irc join if nick speaks some minutes after the join (see this post)
  • new option irc.look.display_join_message to disable some messages after joining a channel
  • new option irc.look.pv_buffer to automatically merge private buffers
  • add support of UHNAMES
  • add DH-AES encryption method for SASL
  • multiple irc servers allowed on same port for irc protocol in relay plugin
  • add WebSocket server support (RFC 6455) in relay plugin (for irc and weechat protocols) (see this post)
  • send nicklist diff in relay plugin (weechat protocol)
  • add control of autoload for scripts
  • optimizations in aspell plugin

New options:

  • irc.look.display_join_message
  • irc.look.nicks_hide_password (old option: irc.look.hide_nickserv_pwd)
  • irc.look.pv_buffer
  • irc.look.smart_filter_join_unmask
  • irc.network.lag_reconnect (old option: irc.network.lag_disconnect)
  • logger.file.nick_prefix
  • logger.file.nick_suffix
  • relay.network.websocket_allowed_origins
  • script.scripts.autoload
  • weechat.color.chat_nick_prefix
  • weechat.color.chat_nick_suffix
  • weechat.look.nick_prefix
  • weechat.look.nick_suffix
  • weechat.look.prefix_align_more_after
  • weechat.look.prefix_buffer_align_more_after
  • xfer.file.auto_accept_nicks

Wednesday, May 1 2013

Dynamic nick prefix/suffix

The prefix and suffix for nicks are now dynamic and not specific to irc plugin.

IRC options have been moved to core:

  • irc.look.nick_prefix moved to weechat.look.nick_prefix
  • irc.look.nick_suffix moved to weechat.look.nick_suffix
  • irc.color.nick_prefix moved to weechat.color.chat_nick_prefix
  • irc.color.nick_suffix moved to weechat.color.chat_nick_suffix

The prefix/suffix and colors are now applied on messages already displayed (because they are not stored any more in prefix of lines).

Two options have been added in logger plugin, to use a prefix/suffix for nicks (optional, empty by default):

  • logger.file.nick_prefix
  • logger.file.nick_suffix

You can find more information in release notes.

Sunday, March 17 2013

Multiple layouts

Support of multiple layouts has been added.

The command /layout now supports a name for actions save/apply/reset.

New options have been added:

  • leave: leave current layout (it will not update any layout)
  • rename: rename a layout

The output of /layout has been improved, especially the tree of windows:

Saved layouts:
  mobile:
    1. core.weechat
    1. irc.server.local
    2. irc.local.#test
    3. irc.local.#test2
  desktop (current layout):
    1. core.weechat
    1. irc.server.local
    2. irc.local.#test
    3. irc.local.#test2
    \== 40% (splith)
      |-- irc.local.#test
      |== 50% (splitv)
        |-- irc.server.local
        |-- irc.local.#test2

Wednesday, February 13 2013

Debian/Raspbian repositories

A Raspbian repository has been added for Raspberry Pi (thanks to Nils G. for building the packages every night).

The existing Debian repositories are being moved from flashtux.org to weechat.org, like the new Raspbian one. Repositories on weechat.org are already available, therefore it is recommended to use them now.

IMPORTANT: the WeeChat packages on debian.flashtux.org are still built every night, but they will be definitely removed on 2013-03-01.

A new section has been added on download page with a summary of all repositories: https://weechat.org/download/debian/.

weechat_debian_repositories.png

Sunday, January 20 2013

Version 0.4.0

Version 0.4.0 is available!

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

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

New major features in this release:

  • add option "diff" for command /set, display default values in output of /set
  • add color support in prefix options
  • add command /eval, use expression in conditions for bars
  • connect by default with IPv6 to servers with fallback to IPv4
  • add aspell suggestions
  • add support of tags in irc messages and "server-time" capability (see this post)
  • add irc command /quiet
  • add support of IPv6 in relay plugin
  • add backlog for irc protocol in relay plugin (see this post)
  • display remote IP address for DCC chat/file in xfer plugin
  • add git version in build (see this post)

New options:

  • aspell.check.suggestions
  • irc.network.alternate_nick
  • irc.network.whois_double_nick
  • relay.network.ipv6
  • relay.irc.backlog_minutes
  • relay.irc.backlog_max_number
  • relay.irc.backlog_since_last_disconnect
  • relay.irc.backlog_tags
  • relay.irc.backlog_time_format

Wednesday, December 19 2012

Git version in build

The git version (output of "git describe") has been added to WeeChat build. This version is displayed in /version (or /v), and is returned in IRC CTCP ("version" and "finger").

Note: the git version is set only when building a development version (not a stable release).

This is useful if you help people and want to know the exact version.

Screenshot:

weechat_version_git.png

Sunday, November 18 2012

Version 0.3.9.2

Version 0.3.9.2 is available, it fixes a security problem: untrusted command for function hook_process could lead to execution of commands, because of shell expansions.

Upgrade is highly recommended for all users.

Friday, November 9 2012

Version 0.3.9.1

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

Upgrade is recommended for all users.

Saturday, September 29 2012

Version 0.3.9

Version 0.3.9 is available!

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

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

New major features in this release:

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

New options:

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

Options changed:

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

Options removed:

  • irc.look.item_channel_modes

New keys:

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

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

Sunday, June 3 2012

Version 0.3.8

Version 0.3.8 is available!

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

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

New major features in this release:

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

New options:

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

Options changed:

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

New keys:

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

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

Sunday, March 25 2012

4000 commits

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

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

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

Saturday, March 10 2012

Bracketed paste mode

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

New options:

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

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

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

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

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

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

According to my tests it currently does not work with:

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

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

Sunday, February 26 2012

Version 0.3.7

Version 0.3.7 is available!

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

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

New major features in this release:

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

New options:

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

New default alias:

  • /umode --> /mode $nick

New keys:

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

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

Wednesday, January 18 2012

URL transfer in API

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

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

weechat.hook_process_hashtable('url:http://weechat.org/download/',
                               { 'file_out': '/tmp/url.txt' },
                               10000, 'my_process_cb', '')

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

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

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

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

Sunday, December 25 2011

QWeeChat - Python/Qt GUI

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

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

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

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

Urlserver

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

Tuesday, November 1 2011

So many ways to go to first buffer...

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

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

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

Saturday, October 22 2011

Version 0.3.6

Version 0.3.6 is available!

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

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

New major features in this release:

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

New options:

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

New keys:

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

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

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

Friday, September 23 2011

Inactive colors

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

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

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

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

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

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

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

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

Sunday, August 28 2011

Beautify your WeeChat

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

Unicode chars (your locale must be UTF-8)

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

/set weechat.look.prefix_suffix "│"

Full line for read marker:

/set weechat.look.read_marker_string "─"

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

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

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

/set weechat.look.item_buffer_filter "•"

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

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

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

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

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

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

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

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

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

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

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

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

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

Saturday, August 6 2011

New features for layout

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

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

Enjoy!

Tuesday, July 26 2011

Mouse support and free movement of cursor

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

New commands added:

/mouse
/cursor

Before using mouse, add missing keys:

/key missing

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

/key list mouse

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

/set weechat.look.mouse on
/mouse enable

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

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

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

Wednesday, June 15 2011

Highlight with regex in specific buffers

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

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

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

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

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

Sunday, May 15 2011

Version 0.3.5

Version 0.3.5 is available!

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

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

New major features in this release:

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

New options:

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

New keys:

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

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

Monday, April 11 2011

Count of messages in hotlist

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

New options:

  • /set weechat.look.hotlist_buffer_separator (default: ", ")
  • /set weechat.look.hotlist_count_max (default: 2)
  • /set weechat.look.hotlist_count_min_msg (default: 2)
  • /set weechat.color.status_count_msg (default: "brown")
  • /set weechat.color.status_count_private (default: "green")
  • /set weechat.color.status_count_highlight (default: "magenta")
  • /set weechat.color.status_count_other (default: "default")

Example with default config:

Count of messages in hotlist

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

Wednesday, March 9 2011

List of buffers in filters

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

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

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

Thursday, February 17 2011

Attributes for colors

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

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

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

For self nick as white underlined:

/set weechat.color.chat_nick_self _white

For time in status bar as orange underlined with bold:

/set weechat.color.status_time *_214

Wednesday, February 9 2011

Help of commands improved

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

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

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

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

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

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

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

Old version: /help server

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

New version: /help server

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

- page 1 of 2