这篇文章是 Lindsay 的 weechat 配置记录,包含以下内容
- 注册登陆 LiberaChat
- 修改外观
- 启用 Weechat Relay
- 安装使用扩展脚本
使用 LiberaChat
参考 Libera.Chat 的 weechat 教程
-
添加 libera 服务器并连接,使用东亚域名
/server add libera irc.ea.libera.chat/6697 -ssl /connect libera
-
注册 Libera.Chat 帐号 需要选用一个没有被占用的 nickname,设置密码和邮箱后,根据验证邮件内容操作注册。
/nick <nickname> /msg NickServ REGISTER <libera_passphrase> <youremail@example.com>
-
设置 libera登陆密码 (SASL 模式)
/set irc.server.libera.sasl_mechanism PLAIN /set irc.server.libera.sasl_username <nickname> /set irc.server.libera.sasl_password <libera_passphrase> /save
更安全的替代方式是设置 weechat 启动密码,并将 IRC 服务器密码加密存储:
/secure passphrase <passphrase> /secure set libera_password <password> /set irc.server.libera.sasl_mechanism PLAIN /set irc.server.libera.sasl_username <nickname> /set irc.server.libera.sasl_password "${sec.data.libera_password}" /save
这样每次启动 weechat,都会要求输入密码。可以通过设置
passphrase_command
来从 shell 命令读入密码来间接跳过。 下面以pass
命令为例/set sec.crypt.passphrase_command "/usr/bin/pass tools/weechat"
-
使用 User Cloak 隐藏登陆 ip
/join #libera-cloak !cloakme /reconnect libera /whois
-
连接服务器自动加入频道 以
#archlinux-cn
和#libera
频道为例/set irc.server.libera.autojoin "#archlinux-cn,#libera"
修改外观配置
-
离开频道自动关闭 buffer :
/set irc.look.part_closes_buffer on
-
设置用户栏最大宽度:
/set weechat.bar.nicklist.size_max 30
-
设置 buffer 栏最大宽度:
/set weechat.bar.buflist.size_max 30
-
限制聊天栏中用户名宽度
/set weechat.look.prefix_align_max 15
-
设置 buffer 展示样式:
/set buflist.format.buffer "${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}"
-
设置状态栏样式:
/set weechat.bar.status.items "buffer_name:+buffer_number+ |,hotlist |,completion,[spell_suggest]"
-
使用 smart_fileter 过滤消息(主要过滤用户进入/离开频道的消息)
/set irc.look.smart_filter on /filter add irc_smart * irc_smart_filter * /set irc.look.smart_filter_delay 5
-
设置常用快捷键
/key bind meta-! /buffer close /key bind meta-c /window merge /key bind meta-h /window splith /key bind meta-v /window splitv
启用 Relay
以 websocket over nginx tls 为例。
在 9000 端口上开启 Relay 监听
/set relay.network.password <relay_passphare>
/relay add weechat 9000
如果启用的 weechat 密码,加密存储 relay 密码,可以改为下面的命令
/secure set relay <relay_passphare>
/set relay.network.password "${sec.data.relay}"
/relay add weechat 9000
weechat relay 端口可以同时接收 raw tcp 和 websocket 连接,只要在 nginx 中反代到 relay 端口即可。
个人认为使用 nginx 管理 tls 更加方便,如需要用 weechat 自身管理 tls ,请查阅官方的用户指导
nginx 配置文件如下
server {
listen 443 http2 ssl ;
listen [::]:443 http2 ssl;
server_name example.com;
ssl_certificate <cert_location>;
ssl_certificate_key <key_location>;
location /weechat {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://localhost:9000/weechat;
}
}
安装功能和外观脚本
允许从 weechat 服务器下载脚本
/set script.scripts.download_enabled on
go.py
作用为快速跳转 buffer,当加入过多的频道,Alt + <Num>
快捷键不够用时,这个脚本就能发挥作用。
/script install go.py
/key bind meta-g /go
colorize_lines.pl
作用是调整消息颜色,使其与用户 nickname 的颜色一致,在聊天时,更容易区分不同用户的发言。
/script install colorize_lines.pl
/set weechat.color.chat_nick_colors 33,38,42,45,48,51,63,69,75,80,84,87,99,103,105,106,113,117,118,120,130,132,123,139,141,143,147,149,152,159,170,174,176,180,182,204,207,209,213,217,219,220,226
/set irc.look.color_nicks_in_nicklist on
使用的颜色代码需要根据终端背景色决定,通过下面的命令,可以打印出所有的 256 colors 然后从中选择
for COLOR in {1..255}; do echo -en "\e[38;5;${COLOR}m${COLOR} "; done; echo;
autosort.py
buffer 自动归类排序
# 需要关闭服务器合并
irc.look.server_buffer independent
/script install autosort.py
关闭脚本下载
/set script.scripts.download_enabled off
完