Weechat configuration

From wikinotes

Locations

~/.weechat/irc.conf server configuration

Environment

$WEECHAT_HOME specify alt weechat config

Cli

There are a couple of options to specify alt configurations for weechat on the cli

WEECHAT_HOME=/some/path weechat  # use '/some/path' as config dir
weechat --dir /some/path         # use '/some/path' as config dir
weechat --temp-dir               # create/delete a tempdir for weechat on exit

Dynamic Configuration

weechat can be configured dynamically (from the IRC prompt), or within configuration files.

/script install iset.pl            # install interactive-set
/iset                              # enable interactive-set

/set filename.section.directive    # interactively set configuration option
/save                              # save all changes to configuration

SSL setup

# configure SSL
/set weechat.network.gnutls_ca_file "/etc/ssl/certs/ca-certificates.crt"      # archlinux
/set weechat.network.gnutls_ca_file "/usr/local/share/certs/ca-root-nss.crt"  # freebsd

temporary connections

/set irc.look.temporary_servers on    # enable temporary servers
/connect chat.freenode.net/6697 -ssl  # test ssl (without remembering connection)

persistent connections

/server add libera irc.libera.chat/6697 -ssl -autoconnect  # add/save server

Aliases

/alias add i /msg nickserv identify
/alias add j /join
/alias add b /buffer

Filters

Filters can be used to hide information from buffers. Alt + = toggles filters on/off.

/filter add joinquit * irc_join,irc_part,irc_quit *

Keybindings

Try a keybinding (unbound on exit)

/key bind ctrl-T /fzf  # bind '/fzf' to 'ctrl-t'

Configure a keybinding

# ~/.weechat/weechat.conf

[key]
ctrl-T = "/fzf"

Secure Passphrases

Load weechat's passwords on startup (loading login pass from pass)

/set sec.crypt.passphrase_command "/usr/bin/pass show foo/passwd"
/save

Manage with weechat

/help secure                               # help
/secure                                    # list managed data
/secure passphrase your-unlock-passprhase  # set password
/secure passphrase -delete                 # unsets password (existing data becomes plaintext)

/secure set yourvariable value
/msg NickServ identify "${sec.data.yourvariable}"

You can see all values recorded to variables in irc.conf.
Actual values are encrypted within sec.conf.

Nick configuration

/nick {yournick}
/msg identify nickserv {password}
# these will be displayed in join logs, default to your system login
{server}.username = '{desired_name}'   # appears in user@host
{server}.realaname = '{desired_name}'  # appears in /whois requests

Proxy IRC through TOR

See https://weechat.org/files/doc/devel/weechat_user.en.html#irc_tor_freenode