Skip to content

WeeChat

This is how I use weechat to be comfortable on a daily basis in my main chat client

Installation - Weechat 4.3.5

apt update
apt install cmake autoconf automake gcc g++ libgcrypt20-dev gnutls-dev \
libzstd-dev pkg-config libncurses-dev libcurl4-gnutls-dev libgnutls28-dev \
zlib1g-dev libcjson-dev gettext tcl-dev guile-3.0-dev tk-dev php-dev \
libphp-embed php-dev liblz4-dev libaspell-dev libxml2-dev asciidoctor \
ruby-pygments.rb libcpputest-dev  libv8-dev guile-3.0-dev \
liblua5.4-dev libsodium-dev libargon2-dev
wget https://weechat.org/files/src/weechat-4.3.5.tar.xz
xz -d weechat-4.3.5.tar.xz
tar -xvf weechat-4.3.5.tar
cd weechat-4.3.5
mkdir build
cmake ..

Weechat 4.3.5

/script enable
/script install fish.py
/script install autosort.py
/script install 
/script install autojoin_on_invite.py
/script install colorize_nicks.py
/script install grep.py

Getting started

rm -rf ~/backup/weechat/
mkdir -p ~/backup/weechat
ln -s ~/backup/weechat/ ~/.config/weechat

First time weechat is started

mkdir -p ~/.config/weechat/python/autoload/
mkdir -p ~/.config/weechat/ssl
wget -q https://weechat.org/files/temp/theme/theme.py -P ~/.config/weechat/python/
ln -s  ~/.config/weechat/python/theme.py ~/.config/weechat/python/autoload 
chmod +x ~/.config/weechat/python/theme.py
chown -R username:username ~/.config/weechat/
weechat

Logging

/set logger.file.color_lines on
/set logger.file.flush_delay 0
/set logger.file.info_lines on
/set xfer.file.download_path "~/downloads"
/set logger.file.path "~/logs/weechat"
/set logger.mask.irc %Y/$server/$channel.%m-%d.log
/set logger.file.time_format "[%Y-%m-%d %H:%M:%S]"
/set logger.file.nick_prefix "<"
/set logger.file.nick_suffix ">"
/set plugins.var.perl.highmon.logging "on"
/save

Default Server Settings

/set irc.server_default.nicks username,_username,^username,|username
/set irc.server_default.realname username
/set irc.server_default.password password
/set irc.server_default.ssl on
/set irc.server_default.ssl_verify on
/set irc.server_default.autoreconnect_delay 30
/set irc.server_default.autoconnect on
/set irc.server_default.ipv6 off
/set irc.look.server_buffer independent
/set irc.look.nicks_hide_password ""
/set irc.look.item_channel_modes_hide_args ""
/save

Configure aliases

/alias del AAWAY
/alias del ANICK
/alias del BEEP
/alias del BYE
/alias del C
/alias del CHAT
/alias del CL
/alias del CLOSE
/alias del EXIT
/alias del IG
/alias del J
/alias del K
/alias del KB
/alias del LEAVE
/alias del M
/alias del MSGBUF
/alias del MUB
/alias del N
/alias del Q
/alias del REDRAW
/alias del SAY
/alias del SIGNOFF
/alias del T
/alias del UB
/alias del UMODE
/alias del V
/alias del W
/alias add wc buffer close
/alias add call buffer clear -all
/alias add w buffer
/save

Colors

/set fset.color.name_changed_selected 13
/set weechat.bar.status.color_bg 235
/set fset.color.line_selected_bg1 235
/set weechat.bar.title.color_bg 235
/set weechat.color.separator 235
/set weechat.color.chat_delimiters 235
/set buflist.format.hotlist_message "${color:brown}"
/set weechat.color.nicklist_away lightred
/set weechat.color.item_away lightred
/set buflist.format.hotlist_message "${color:brown}"
/set weechat.color.chat_day_change white
/set weechat.color.chat_prefix_join 121                                                                                                              
/set weechat.color.chat_host 240 
/set weechat.bar.title.color_bg 238
/set weechat.bar.status.color_bg 238 
/set weechat.bar.status.size_max 2
/set buflist.format.buffer_current "${color:,237}${format_buffer}"                                                      
/set script.color.text_name 245  
/set buflist.format.lag " ${color:lightred}[${color:brown}${lag}${color:green}]"
/set weechat.color.chat_host 245
/set weechat.color.chat_time 245
/set weechat.color.chat_time_delimiters 7

Smart Filter

/set irc.look.smart_filter on
/filter add irc_smart * irc_smart_filter *
/set irc.look.smart_filter_delay 5

Misc

/save
/set irc.look.color_nicks_in_nicklist on
/set weechat.color.chat_nick_colors "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,2,11,13,15,35,111,11,32,33,34,35,88,91,128,120,200,201,210,220,230,240"
/set buflist.look.nick_prefix on
/set colorize_nicks.look.blacklist_nicks ""
/set colorize_nicks.look.colorize_input on
/set weechat.look.item_time_format "[%H:%M:%S]"
/set weechat.look.quote_time_format "[%H:%M:%S]"
/set irc.msgbuffer.libera.invite private
/set irc.look.msgbuffer_fallback private
/set irc.msgbuffer.whois private
/set irc.server_default.anti_flood_prio_high 10
/set irc.server_default.anti_flood_prio_low 3
/set irc.server_default.autoreconnect_delay 10
/set plugins.var.python.whois_on_query.command "/whois $nick $nick"
/save

Glowing Bear

mkdir ~/.config/weechat/ssl; 
cat /etc/letsencrypt/live/gissleholm.se/{privkey,fullchain}.pem  > ~/.config/weechat/ssl/relay.pem
chown -R username:username ~/.config/weechat/ssl/
  • WeeChat Client
/set relay.network.password password
/relay tlscertkey
/relay sslcertkey
/relay add ssl.weechat 9002
/relay add tls.weechat 9001
/relay add ssl.weechat 9000

LiberaChat

/server add LiberaChat irc.ea.libera.chat/6697 -tls -tls_verify=off -username=username -command_delay=10 -nicks=username -realname=username
/set irc.server.LiberaChat.autoconnect off
/save
/quit
weechat

Nickserv for LiberaChat

/set irc.server.LiberaChat.command "/msg nickserv identify password"
/set irc.server.LiberaChat.autojoin_delay 10
/set irc.server.LiberaChat.autojoin "#gentoo-wiki,#gentoo-se,#gentoo-arm,#gentoo-prefix,#weechat,#flashrom,#screen,#ubuntu,#ubuntu-server,#awk,#sed,#android-root"
/set irc.server_default.autojoin_delay 10

TranceTraffic

/server add TranceTraffic adb-shell.com/65001 -tls -tls_verify=off -username=musicloover/TranceTraffic -password=password -autoconnect -command_delay=10 -nicks=musicloover -part="" -quit="" -kick="bye" -realname=musicloover
/save

Torrentbytes

/server add Torrentbytes adb-shell.com/65001 -tls -tls_verify=off -username=-password=password -autoconnect -command_delay=10 -nicks="${username},^${username},_${username},${username}_" -part="" -quit="" -kick="bye" -realname=username
/save
# /msg nickserv identify password
# /msg erica letmeinpre username <irc_key>

Alpharatio

/server add Alpharatio adb-shell.com/65001 -tls -tls_verify=off -username=username/Alpharatio -password=password -autoconnect -command_delay=10 -nicks="${username},^${username},_${username},${username}_" -part="" -quit="" -kick="bye" -realname=username
/save
# /msg SuperInvite username <superinvitekey>

Superbits

/server add Superbits adb-shell.com/65001 -tls -tls_verify=off -username=username/Superbits -password=password -autoconnect -command_delay=10 -nicks=username  -part="" -quit="" -kick="bye" -realname=username
/save

Key bindings

/key bind meta-, /window scroll_up
/key bind meta-- /window scroll_down
/key bind meta-t /bar toggle nicklist          # Toggle nicklist bar
#/key bind meta-g /buffer #gentoo              # Jump to #gentoo IRC channel
/key reset meta-r                              # Restore default binding for key alt-r
/key bindctxt search ctrl-I /input search_stop # Key "tab" to stop search in buffer
/key bind ctrl-c /buffer close                 # Close current buffer

Undbinding

/key unbind ctrl-L

Glowing Bear

  • Shell
mkdir -p ~/.weechat/ssl
cat /etc/letsencrypt/live/chat.nr1.nu/{fullchain,privkey}.pem > ~/.weechat/ssl/relay.pem
chown -R username:username ~/.weechat/ssl/
  • Client
/relay sslcertkey
/relay add weechat 9002
/relay add ssl.weechat 9001
/set relay.network.password password
/set relay.irc.backlog_time_format "[%H:%M:%S]"
/set relay.network.ipv6 off
/set relay.network.max_clients 2
/save