WeeChat DevCenter

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

Sunday, February 17 2013

The IRC smart filter... even smarter!

A new option has been added for the IRC smart filter: irc.look.smart_filter_join_unmask, with default value 30 (in minutes).

IRC plugin will automatically unmask a filtered join of a nick, if he spoke within N minutes after the join (N being the value of new option irc.look.smart_filter_join_unmask). Moreover, nick changes are tracked, and will be unmasked with the join.

Events triggering the unmask of join are: a message (can be CTCP), a notice or an update of topic.

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, February 10 2013

WebSocket in relay plugin

Websocket has been added in relay plugin, for IRC and WeeChat protocols.

It is an experimental and partial implementation of RFC 6455: fragmentation and control frames are not yet supported.

The relay plugin automatically detects WebSocket handshake and if everything is OK (origin allowed and required headers received), an answer to handshake is sent and then socket is ready to send/receive WebSocket frames.

Text and binary data are supported, so IRC (text/text) and WeeChat (text/binary) protocols are supported.

Screenshot (click for full size):

relay_websocket.png

Tuesday, February 5 2013

Test script for relay protocol

A test script called testproto.py has been added in QWeeChat to test the relay protocol with WeeChat. This script runs in terminal and does not require Qt.

Script is located in path src/qweechat/weechat/testproto.py of QWeeChat repository.

Screenshot (click for full size):

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

Monday, December 24 2012

Backlog for irc protocol in relay

Backlog has been added for irc protocol in relay plugin.

The relay plugin now supports server capability "server-time", to include the messages time as tag (not in the message itself).

5 new options have been added:

  • relay.irc.backlog_max_minutes
  • relay.irc.backlog_max_number
  • relay.irc.backlog_since_last_disconnect
  • relay.irc.backlog_tags
  • relay.irc.backlog_time_format

Enjoy, and merry Christmas!

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

Tuesday, November 27 2012

Tags in IRC messages

Tags in IRC messages are now supported (in development version, planned for version 0.4.0), following this specification: http://ircv3.atheme.org/specification/message-tags-3.2.

The tag "time" is now read and is used to set the time for the message displayed.

The "znc" IRC bouncer is using this tag with the capability "znc.in/server-time-iso" (name should change in the next release). For example if you are using a server called "znc" in WeeChat, you can do:

/set irc.server.znc.capabilities "znc.in/server-time-iso"

Note: with znc 1.0, the server capability was "znc.in/server-time". With znc git > 1.0, the capability is "znc.in/server-time-iso".

Some info about capability "server-time": https://github.com/atheme/ircv3-specifications/blob/master/extensions/server-time-3.2.

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

Tuesday, August 14 2012

Scripts manager

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

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

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

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

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

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

List of scripts (click for full size):

Script plugin: list of scripts

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

Enjoy!

Friday, July 27 2012

SSL in Relay plugin

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

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

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

The file can be created with following commands:

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

In WeeChat :

/relay sslcertkey

And add relays with SSL, for example:

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

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

Sunday, June 3 2012

Version 0.3.8

Version 0.3.8 is available!

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

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

New major features in this release:

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

New options:

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

Options changed:

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

New keys:

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

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

Sunday, March 25 2012

4000 commits

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

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

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

Friday, March 16 2012

SameGame

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

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

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

For help: /help samegame.

Screenshot (click for full size):

SameGame

Enjoy!

Saturday, March 10 2012

Bracketed paste mode

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

New options:

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

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

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

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

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

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

According to my tests it currently does not work with:

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

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

Sunday, February 26 2012

Version 0.3.7

Version 0.3.7 is available!

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

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

New major features in this release:

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

New options:

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

New default alias:

  • /umode --> /mode $nick

New keys:

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

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

Wednesday, January 18 2012

URL transfer in API

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

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

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

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

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

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

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

Tuesday, January 3 2012

Support of Python 3

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

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

Python versions supported by WeeChat:

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

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

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

Sunday, December 25 2011

QWeeChat - Python/Qt GUI

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

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

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

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

Urlserver

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

Tuesday, November 1 2011

So many ways to go to first buffer...

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

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

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

Monday, October 31 2011

Shorten URLs with own HTTP server

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

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

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

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

Urlserver

Friday, October 28 2011

Change short name of buffers

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

For example on channel #weechat:

/buffer set short_name #wee

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

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

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

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

Thursday, October 27 2011

New plugin Guile

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

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

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

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

An example of script:

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

Saturday, October 22 2011

Version 0.3.6

Version 0.3.6 is available!

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

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

New major features in this release:

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

New options:

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

New keys:

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

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

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

Sunday, October 2 2011

Game Minesweeper

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

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

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

For help: /help minesweeper.

Screenshot (click for full size):

Minesweeper

Enjoy!

Friday, September 23 2011

Inactive colors

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

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

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

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

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

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

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

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

Sunday, August 28 2011

Beautify your WeeChat

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

Unicode chars (your locale must be UTF-8)

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

/set weechat.look.prefix_suffix "│"

Full line for read marker:

/set weechat.look.read_marker_string "─"

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

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

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

/set weechat.look.item_buffer_filter "•"

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

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

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

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

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

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

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

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

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

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

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

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

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

Saturday, August 20 2011

Game Flood'it

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

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

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

For help: /help floodit.

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

Screenshot (click for full size):

Flood'it

Enjoy!

Saturday, August 6 2011

New features for layout

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

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

Enjoy!

Tuesday, July 26 2011

Mouse support and free movement of cursor

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

New commands added:

/mouse
/cursor

Before using mouse, add missing keys:

/key missing

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

/key list mouse

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

/set weechat.look.mouse on
/mouse enable

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

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

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

Wednesday, June 15 2011

Highlight with regex in specific buffers

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

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

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

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

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

Monday, May 16 2011

Script cmd_help.py

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

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

Note: this script requires version 0.3.5 of WeeChat.

Screenshot (click for full size):

cmd_help.py

Sunday, May 15 2011

Version 0.3.5

Version 0.3.5 is available!

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

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

New major features in this release:

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

New options:

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

New keys:

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

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

Friday, April 15 2011

Options for aspell spellers

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

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

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

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

aspell config

Monday, April 11 2011

Count of messages in hotlist

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

New options:

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

Example with default config:

Count of messages in hotlist

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

Wednesday, March 9 2011

List of buffers in filters

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

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

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

Thursday, February 17 2011

Attributes for colors

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

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

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

For self nick as white underlined:

/set weechat.color.chat_nick_self _white

For time in status bar as orange underlined with bold:

/set weechat.color.status_time *_214

Wednesday, February 9 2011

Help of commands improved

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

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

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

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

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

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

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

Old version: /help server

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

New version: /help server

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

Thursday, February 3 2011

Dynamic color pairs

WeeChat now creates color pairs dynamically: when a color (foreground + background) is used on screen, a pair is created if it does not yet exist in pairs table.

Therefore, it's not needed any more to use /color add to add colors to use them in options. It is possible to use any terminal color by number in options. However, you can still create an alias on number with command /color alias.

Sunday, January 16 2011

Version 0.3.4

Version 0.3.4 is available!

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

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

New major features in this release:

  • 256 colors support, with unlimited number of nick colors (see this post)
  • irc proxy (relay plugin)
  • redirection of IRC commands (see this post)
  • new irc command /notify
  • rmodifier plugin (see this post)
  • regular expressions for highlights
  • color support for timestamp in chat buffer (see this post)
  • irc option to force color for some nicks
  • share input line between buffers

New options:

  • weechat.color.chat_nick_colors
  • weechat.look.highlight_regex
  • weechat.look.hotlist_unique_numbers
  • weechat.look.input_share
  • weechat.look.input_share_overwrite
  • weechat.look.prefix_align_min
  • irc.look.notify_tags_ison
  • irc.look.notify_tags_whois
  • irc.network.notify_check_ison
  • irc.network.notify_check_whois
  • option "notify" in irc servers
  • irc.look.nick_color_force
  • irc.look.item_away_message
  • irc.color.nick_prefix
  • irc.color.nick_suffix

Sunday, January 9 2011

256 colors

WeeChat now supports 256 colors!

Using new command /color you can browse WeeChat and terminal colors, and define custom pairs. See documentation for more information.

Screenshot (click for full size):

256 colors

- page 3 of 4 -