ZNC multi-connect and CertFP
Connect to multiple networks by specifying network name in username in username/networkname
format.
/server add networkname IP/port -ssl -username=username/networkname -password=x -autoconnect
/set irc.server.snoonet.ssl_fingerprint xxxx
/set irc.server.libera.ssl_cert "${weechat_config_dir}/ssl/client.pem"
Set irc.server.libera.ssl_fingerprint
to verify with fingerprint only if your server has a self-signed certificate.
Encrypt config for local certificate authentication
Generate a TLS certificate with its corresponding private key attached and protected by a password, and then extract the certificate fingerprint.
openssl req -x509 -new -newkey ed25519 -sha256 -out l2dy.example.pem -keyout l2dy.example.pem
openssl x509 -in l2dy.example.pem -noout -fingerprint -sha256 | awk -F= '{gsub(":",""); print tolower ($2)}'
Then, authenticate to IRC server with your password and ask NickServ to save the SHA256 fingerprint.
Finally, configure WeeChat to use CertFP authentication and auto connect.
# Add server
/server add example irc.example.com/6697 -tls
/set irc.server.example.tls_cert %h/certs/l2dy.example.pem
/set irc.server.example.sasl_mechanism external
/set irc.server.example.autojoin "#!"
# Save encrypted password
/secure passphrase <password to type when starting WeeChat>
/secure set exampletls <password for the private key>
/set irc.server.example.tls_password "${sec.data.exampletls}"
# Test connection
/connect example
# Enable auto-connect
/set irc.server.example.autoconnect on
Look and feel
Separate server buffers
/set irc.look.server_buffer independent
IRC smart filter
/filter add irc_smart * irc_smart_filter *
XDG directories
Table of default directories and paths.
Variable | Default value | Fallback value |
---|---|---|
weechat_config_dir | $XDG_CONFIG_HOME/weechat | $HOME/.config/weechat if $XDG_CONFIG_HOME is not defined or empty |
weechat_data_dir | $XDG_DATA_HOME/weechat | $HOME/.local/share/weechat if $XDG_DATA_HOME is not defined or empty |
weechat_cache_dir | $XDG_CACHE_HOME/weechat | $HOME/.cache/weechat if $XDG_CACHE_HOME is not defined or empty |
weechat_runtime_dir | $XDG_RUNTIME_DIR/weechat | same as cache directory if $XDG_RUNTIME_DIR is not defined or empty |
Option | Default value |
---|---|
fifo.file.path | ${weechat_runtime_dir}/weechat_fifo_${info:pid} |
logger.file.path | ${weechat_data_dir}/logs |
relay.network.ssl_cert_key | ${weechat_config_dir}/ssl/relay.pem |
script.scripts.path | ${weechat_cache_dir}/script |
weechat.plugin.path | ${weechat_data_dir}/plugins |
xfer.file.download_path | ${weechat_data_dir}/xfer |