这篇文章是 Lindsay 的 weechat 配置记录,日常使用方式为:
- PC 端 ssh 到 VPS 使用 ( tmux 保存会话 )
- 移动端使用 android-weechat 连接 weechat relay websocket
供参考。
配置 irc 服务器连接
参考 Libera.Chat 的 weechat 教程 , 简要说明如下
-
连接 libera ,使用东亚域名
/server add libera irc.ea.libera.chat/6697 -ssl /connect libera
-
注册 libera 帐号
/nick <nickname> /msg NickServ REGISTER <libera_passphrase> <youremail@example.com>
-
设置登陆密码
/secure passphrase <passphrase> /set irc.server.libera.sasl_mechanism PLAIN /set irc.server.libera.sasl_username <nickname> /set irc.server.libera.sasl_password <libera_passphrase> /save
-
设置 User Cloak 隐藏登陆 ip
/join #libera-cloak !cloakme /reconnect libera /whois
-
连接服务器自动加入频道
/set irc.server.libera.autojoin "#archlinux-cn,#go-nuts,#python,#archlinux,#archlinux-offtopic"
国内比较活跃的 irc 频道大概只有 #archlinux-cn 了,还是 matrix 桥接过来的。
其他的几个是国外的开源社区 irc 频道
修改常用配置
-
离开频道自动关闭 buffer :
/set irc.look.part_closes_buffer on
-
设置用户栏最大宽度:
/set weechat.bar.nicklist.size_max 30
-
设置 buffer 栏最大宽度:
/set weechat.bar.buflist.size_max 30
-
合并 buffer 栏中的服务器:
/set irc.look.server_buffer merge_with_core
-
限制聊天栏中用户名宽度
/set weechat.look.prefix_align_max 15
-
设置 buffer 展示样式:
/set buflist.format.buffer " "${format_number}${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
安装功能和外观脚本
允许从 weechat 服务器下载脚本(下载结束后可以考虑关闭)
/set script.scripts.download_enabled on
go.py
/script install go.py
/key bind meta-g /go
go.py 作用是快速跳转 buffer ,通过 alt + g 快捷键使用
colorize_lines.pl
/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,125,128,130,132,124,123,126,139,141,143,147,149,152,159,162,164,170,174,176,180,182,200,204,207,209,213,217,219
/set irc.look.color_nicks_in_nicklist on
colorize_lines.pl 作用是调整消息颜色,使其与用户 nickname 的颜色一致,在聊天时,更容易区分不同用户的发言。
weechat.color.chat_nick_colors
变量为使用的 color256 颜色码,可以使用下面的命令在终端中显示出所有颜色样式,需要配合终端背景色选择
for COLOR in {1..255}; do echo -en "\e[38;5;${COLOR}m${COLOR} "; done; echo;
因为 irc 支持输入发送 ANSI 字符,包括输入字符和背景颜色,使用该脚本可能导致发生混乱。鉴于大部分用户并不怎么使用颜色字符,一般不需要考虑。
设置 weechat relay
/secure set relay <relay_passphare>
/set relay.network.password "${sec.data.relay}"
/relay add weechat 9000
weechat relay 同时接受 raw tcp 和 websocket 连接,我的配置为使用 nginx 配置 https 转发到该端口
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 提供的用户指导