weechat-front Weechat (We Enhanced Environment for Chat) is a lightweight, extensible, console based irc client. It is written in C and licensed under GNU GPL3.

Launch weechat from console with the weechat-curses command.

One of the most important commands is the /help command. So, when in doubt use /help. Also using the command /set config.section.option will print the value of config.section.option and if you want to set a value to an option you type /set config.section.option value Anyway, lets start by building our configuration to connect to freenode.

Start by printing all irc.server values.

/set irc.server.

you will get the response:

[server]
irc.server.freenode.addresses  = "chat.freenode.net/6667"
irc.server.freenode.autoconnect
irc.server.freenode.autojoin
irc.server.freenode.autoreconnect
irc.server.freenode.autoreconnect_delay
irc.server.freenode.autorejoin
irc.server.freenode.autorejoin_delay
irc.server.freenode.command
irc.server.freenode.command_delay
irc.server.freenode.ipv6
irc.server.freenode.local_hostname
irc.server.freenode.nicks
irc.server.freenode.password
irc.server.freenode.proxy
irc.server.freenode.realname
irc.server.freenode.sasl_mechanism
irc.server.freenode.sasl_password
irc.server.freenode.sasl_timeout
irc.server.freenode.sasl_username
irc.server.freenode.ssl
irc.server.freenode.ssl_cert
irc.server.freenode.ssl_dhkey_size
irc.server.freenode.ssl_verify
irc.server.freenode.username

As you can see freenode is already in the configuration by default (irc.server.freenode.addresses = “chat.freenode.net/6667”). If you need to add another server use e.g.:

/server add oftc irc.oftc.net/6667

Now, all we need to do is set the rest of the values for the freenode server. To get help for a particular option -including the list of expected values- type e.g.:

/help irc.server.freenode.autoconnect

So, we want to connect to freenode by default and reconnect automatically in case of connection problems:

/set irc.server.freenode.autoconnect on
/set irc.server.freenode.autoreconnect on

Next we need to automatically join some channels, for multiple channels use commas as separators without spaces:

/set irc.server.freenode.autojoin = "#archlinux,#archlinux-offtopic,#archlinux-greece"

After that we need to set our nicknames (also comma separated), username and realname (these are optional):

/set irc.server.freenode.nicks = "nick1,nick2,nick3"
/set irc.server.freenode.username = "my-user-name"
/set irc.server.freenode.realname = "my-real-name"

Last but not least set the irc command to identify with the freenode server with :

/set irc.server.freenode.command = "/msg NickServ identify <your-password-goes-here>"

Save your configuration with the /save command and restart weechat, /EXIT exits weechat. Now you should be connected to freenode!

Time for some keybindings!!

  • F5 / F6 : Cycle through the buffers
  • PageUp / PageDown : scroll up/down main chat area
  • F11 / F12 : scroll nickname list up/down

If you are running terminator and have problems with F11 interpreted as “go to full screen” add this to your ~/.config/terminator/config :

[keybindings]
  full_screen = Disabled

If you have the same problem with xfce Terminal go to Edit -> Preferences -> Shortcuts and kill the nasty fullscreen shortcut!

weechat-rooms Lastly the cool stuff! Weechat allows you to split the screen and have multiple channels open at the same time. Use the /window splitv to vertically split the screen and /window splith to horizontally split the screen. You can also provide a percentage to unevenly split the screen and use /window merge all to unify all buffers to default. When you are happy with your window layout save it:

/layout save

To automatically save window layout on exit use :

/set weechat.look.save_layout_on_exit all

When in split mode use F7 / F8 to cycle through the active windows-buffers.

More resources: