1---2title: "WeeChat 配置"3date: 2022-03-27T08:00:43+08:004---56这篇文章是 Lindsay 的 weechat 配置记录,包含以下内容71. 注册登陆 LiberaChat82. 修改外观93. 启用 Weechat Relay104. 安装使用扩展脚本1112## 使用 LiberaChat1314参考 Libera.Chat 的 [weechat 教程](https://libera.chat/guides/weechat)15161. 添加 libera 服务器并连接,使用东亚域名17 ```18 /server add libera irc.ea.libera.chat/6697 -ssl19 /connect libera20 ```21222. 注册 Libera.Chat 帐号23 需要选用一个没有被占用的 nickname,设置密码和邮箱后,根据验证邮件内容操作注册。24 ```25 /nick <nickname>26 /msg NickServ REGISTER <libera_passphrase> <youremail@example.com>27 ```28293. 设置 libera登陆密码 (SASL 模式)30 ```31 /set irc.server.libera.sasl_mechanism PLAIN32 /set irc.server.libera.sasl_username <nickname>33 /set irc.server.libera.sasl_password <libera_passphrase>34 /save35 ```363738 更安全的替代方式是设置 weechat 启动密码,并将 IRC 服务器密码加密存储:39 ```40 /secure passphrase <passphrase>41 /secure set libera_password <password>42 /set irc.server.libera.sasl_mechanism PLAIN43 /set irc.server.libera.sasl_username <nickname>44 /set irc.server.libera.sasl_password "${sec.data.libera_password}"45 /save46 ```47 这样每次启动 weechat,都会要求输入密码。可以通过设置 `passphrase_command` 来从 shell 命令读入密码来间接跳过。48 下面以 `pass` 命令为例49 ```50 /set sec.crypt.passphrase_command "/usr/bin/pass tools/weechat"51 ```52534. 使用 User Cloak 隐藏登陆 ip54 ```55 /join #libera-cloak56 !cloakme57 /reconnect libera58 /whois59 ```60615. 连接服务器自动加入频道62 以 `#archlinux-cn` 和 `#libera` 频道为例63 ```64 /set irc.server.libera.autojoin "#archlinux-cn,#libera"65 ```666768## 修改外观配置69* 离开频道自动关闭 buffer : `/set irc.look.part_closes_buffer on`70* 设置用户栏最大宽度: `/set weechat.bar.nicklist.size_max 30 `71* 设置 buffer 栏最大宽度: `/set weechat.bar.buflist.size_max 30 `72* 限制聊天栏中用户名宽度 `/set weechat.look.prefix_align_max 15`73* 设置 buffer 展示样式:74 ```75 /set buflist.format.buffer "${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}"76 ```7778* 设置状态栏样式:79 ```80 /set weechat.bar.status.items "buffer_name:+buffer_number+ |,hotlist |,completion,[spell_suggest]"81 ```8283* 使用 smart_fileter 过滤消息(主要过滤用户进入/离开频道的消息)84 ```85 /set irc.look.smart_filter on86 /filter add irc_smart * irc_smart_filter *87 /set irc.look.smart_filter_delay 588 ```8990* 设置常用快捷键91 ```92 /key bind meta-! /buffer close93 /key bind meta-c /window merge94 /key bind meta-h /window splith95 /key bind meta-v /window splitv96 ```97## 启用 Relay98以 websocket over nginx tls 为例。99100在 9000 端口上开启 Relay 监听101```102/set relay.network.password <relay_passphare>103/relay add weechat 9000104```105106如果启用的 weechat 密码,加密存储 relay 密码,可以改为下面的命令107```108/secure set relay <relay_passphare>109/set relay.network.password "${sec.data.relay}"110/relay add weechat 9000111```112113weechat relay 端口可以同时接收 raw tcp 和 websocket 连接,只要在 nginx 中反代到 relay 端口即可。114115个人认为使用 nginx 管理 tls 更加方便,如需要用 weechat 自身管理 tls ,请查阅官方的[用户指导](https://weechat.org/files/doc/stable/weechat_user.en.html#relay)116117nginx 配置文件如下118```119server {120 listen 443 http2 ssl ;121 listen [::]:443 http2 ssl;122 server_name example.com;123124 ssl_certificate <cert_location>;125 ssl_certificate_key <key_location>;126 location /weechat {127 proxy_http_version 1.1;128 proxy_set_header Upgrade $http_upgrade;129 proxy_set_header Connection "upgrade";130 proxy_set_header X-Forwarded-For $remote_addr;131 proxy_pass http://localhost:9000/weechat;132 }133}134```135136137138## 安装功能和外观脚本139允许从 weechat 服务器下载脚本140```141/set script.scripts.download_enabled on142```143144### go.py145作用为快速跳转 buffer,当加入过多的频道,`Alt + <Num>` 快捷键不够用时,这个脚本就能发挥作用。146```147/script install go.py148/key bind meta-g /go149```150151### colorize_lines.pl152作用是调整消息颜色,使其与用户 nickname 的颜色一致,在聊天时,更容易区分不同用户的发言。153```154/script install colorize_lines.pl155156/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,226157/set irc.look.color_nicks_in_nicklist on158```159160使用的颜色代码需要根据终端背景色决定,通过下面的命令,可以打印出所有的 256 colors 然后从中选择161```162for COLOR in {1..255}; do echo -en "\e[38;5;${COLOR}m${COLOR} "; done; echo;163```164165### autosort.py166buffer 自动归类排序167```168# 需要关闭服务器合并169irc.look.server_buffer independent170171/script install autosort.py172```173174关闭脚本下载175```176/set script.scripts.download_enabled off177```178179完