💾 Archived View for tilde.club › ~ekkie › blog › weechat-basic-config captured on 2023-04-19 at 23:08:05. Gemini links have been rewritten to link to archived content

View Raw

More Information

➡️ Next capture (2023-04-26)

-=-=-=-=-=-=-

25 march 2023

catdeer haven - Weechat, but with a sane config

I really like weechat. Out of all the common terminal IRC clients,

it's the most intuitive and easy to use if you've set it up right.

I'd argue it even holds its own against common GUI clients, like

Hexchat.

However, when only considering default configuration, weechat feels

clunky at best, especially when you join multiple servers. The

buflist turns into a disorganized mess, the, by default, server

buffers are a pain to scroll through, and even though it has such a

modern-looking UI, mouse support is disabled by default.

What's worse is that weechat's config is questionable at best. When

launching weechat, its entire default config is written to the

user's config dir. All of it, spread out over multiple files. There

are so many options that finding the right option for what you want

to do becomes so difficult, asking chatgpt and/or weechat veterans

often times the much more preferable option, over digging through

weechat's pages upon pages of documentation.

I've used weechat many times over the years, and I know how useable

it can be, but with its cryptic configs, I'm never able to remember

the most essential lines in need of change. This has lead me to

again and again use irssi over weechat, if only because I can't

remember that weechat's shortcut to enter the "bare" mode to

comfortably click/copy links or is `Alt + l` (lowercase L).

Options in need of change

=========================

To not only make it easier for myself, but for others too, to setup

weechat once again without having to lug around a tar of config

files just for your irc client, I'll summarize the options that I

find most important here.

`/set weechat.look.mouse on`

In my opinion, one of the most baffling default options. Mouse

support, even when enabled, only adds features. Being able to just

click on a channel you want to switch to, like you're used to from

discord or slack, is a feature I can't live without.

`/set irc.look.server_buffer independent`

The default of having server buffers merged looks to me like some

sort of legacy feature, since irssi has the same behaviour.

However, not only does my brain work better with having a seperate

buffer for each server, it's also very much necessary for the next

two options:

`/set irc.look.new_channel_position near_server`

`/set irc.look.new_pv_position near_server`

These two options are very important to me: If you join a new

channel, or a new PM buffer is opened, it'll be put under the

server buffer it belongs to. Suddenly, by changing only 3 options,

2 of them being basically the same, the weechat buflist mirrors the

tree-like list in, for example, hexchat, without installing any

sort of plugin. Weechat is even smart enough to keep channel

buffers above PM buffers!

Options in less of a need of change

===================================

These options are far less necessary, in part even just purely

aesthetic, but I still like them very much.

`/set buflist.format.buffer

" ${indent}${format_nick_prefix}${color_hotlist}${format_name} "`

This option determines how the entries in the buflist are formated.

I've made 2 changes from the default here:

1. Remove the buffer number. I only use `Alt + Arrows` and the

mouse to switch channels, so having the numbers displayed is

distracting for me at best.

2. Add a space at the front and back. I have big screens, so I can

use some screen real-estate to make the buflist feel a little

less cramped.

`/set buflist.format.indent " ╰"`

Oooo, fancy unicode~ This option is used to indent channels and PMs

in the buflist. It's just two spaces by default. I've decided to

add this little rounded corner from unicode's box-drawing

characters to further solidify the "tree like list" feel of my

buflist.

`/set irc.server_default.ipv6 off`

This one is a little weird. I mostly use weechat in a screen

session on tilde.club, and while doing some first testing,

connecting to libera.chat produced some... weird results with this

set to on. Ident-check wouldn't work, libera would complain about

too many connections... This one magically fixed it, but I imagine

I'll have to remove that once ipv6 entirely replaces ipv4, which is

totally going to happen.

`/set irc.server_default.ssl on`

Once again one of these questionable defaults. Nowadays, coming

across an irc server without ssl/tls is the uncommon option, so

changing this default option just makes setting up a new server a

little bit easier.

`/set irc.server_default.msg_part ""`

`/set irc.server_default.msg_quit ""`

By default, these tell everyone that you're using weechat when

leaving. I like weechat, but not enough to rub it into everyone's

face, so I like to clear those.

Listing all options that differ from default

============================================

`/fset d`

That's it. This little command was instrumental in writing this

blog post, and I have FlashCode from libera's #weechat channel to

thank for pointing it out to me.

Copy / Raw / Bare Mode

======================

I've mentioned it earlier, but I feel like writing a section just

for this. Weechat calls it bare-mode, and I keep remembering it as

raw-mode, making successful searches rather difficult. The keyboard

shortcut is `Alt + l` (lowercase L), and you use the same shortcut

to leave that mode.

Adding Servers

==============

I'm rather forgetful, and read-lazy, so instead of reading through

the help/remember a bunch of options, I add servers by first

proving as little information as possible, then open fset to scroll

through options I need to change:

`/server add libera libera.chat/6697`

`/fset server.libera`

For libera specifically, all I needed to do was slap my username

and password into the sasl config to get authenticated while

connecting, SSL was already enabled thanks to one of the options

from before.