WeeChat 配置

2022-03-27 08:00 +0800

这篇文章是 Lindsay 的 weechat 配置记录,包含以下内容

  1. 注册登陆 LiberaChat
  2. 修改外观
  3. 启用 Weechat Relay
  4. 安装使用扩展脚本

使用 LiberaChat

参考 Libera.Chat 的 weechat 教程

  1. 添加 libera 服务器并连接,使用东亚域名

    /server add libera irc.ea.libera.chat/6697 -ssl
    /connect libera
    
  2. 注册 Libera.Chat 帐号 需要选用一个没有被占用的 nickname,设置密码和邮箱后,根据验证邮件内容操作注册。

    /nick <nickname>
    /msg NickServ REGISTER <libera_passphrase> <youremail@example.com>
    
  3. 设置 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"
    
  4. 使用 User Cloak 隐藏登陆 ip

    /join #libera-cloak
    !cloakme
    /reconnect libera
    /whois
    
  5. 连接服务器自动加入频道 以 #archlinux-cn#libera 频道为例

    /set irc.server.libera.autojoin "#archlinux-cn,#libera"
    

修改外观配置

启用 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