Skip to content

WeeChat

Discover how to configure WeeChat to enhance your daily chat experience and maximize comfort. Learn essential settings, logging configurations, aliases, colors, and more for efficient communication.


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

Set 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

When a nick spoke on channel during past X minutes (where X is delay irc.look.smart_filter_delay), its join/part/quit will be displayed by default. Otherwise, if nick did not speak for a long time, all join/part/quit messages will be tagged with "irc_smart_filter". So you have to define a filter on this tag to hide join/part/quit from users that are not speaking on channel (see command above).

/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

Glowing Bear

mkdir ~/.config/weechat/ssl; 
cat /etc/letsencrypt/live/linux-shell.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

Servers

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 irc.p2p-network.net/6667 -tls_verify=off -username=megaman/TranceTraffic -password=password -autoconnect -command_delay=10 -nicks=megaman -part="" -quit="" -kick="bye" -realname=megaman
/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

Keys

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