Categories
Uncategorized

WeeChat Setup

So you decided to try WeeChat?

What options do you need to set? what plugins? what scripts?

I’ll go over some of the most essential of these, and share my full configs.

Options

  • logger.level.irc
    The default is 9, which includes joins and parts. In most cases you can set this to 3, which only includes messages.
  • weechat.look.buffer_notify_default
    The default here is all, which will add joins and parts to your hotlist. set it to message.
  • weechat.look.confirm_quit
    Set this to on. You’ll thank me when you type /quit and mean /close.
  • weechat.look.highlight
    Add a comma-separated list of names/terms you’d like to trigger a highlight here
  • weechat.look.prefix_align_max
    Set this to something between 10 and 20. Otherwise, long nicks will crush your available screen real estate.
  • buflist.format.indent
    Adjusts the display of your channel list. I use ${color:237}${if:${buffer.next_buffer.local_variables.type}=~^(channel|private)$?├:└} to print some nice unicode characters to draw nice guides.
  • buflist.format.number
    If you want to skip the . or space after the number, set it to ${color:green}${number}
  • irc.look.color_nicks_in_names
    Set this to on
  • irc.look.color_nicks_in_nicklist
    Set this to on
  • irc.look.server_buffer
    Set this to independent to prevent automatic merges with the core WeeChat buffer. Especially useful if you plan on using autosort.py
  • irc.server_default.autoconnect
    Set this to on so you don’t have to set it for every new network you add.

Scripts

These scripts can be managed with the built in /script tool. Press i, then enter on the selected script to install it.

  • highmon.pl
    Set aside a buffer to list the places your nick has been mentioned.
  • colorize_nicks.py
    Show nicks in chat with colors.
  • go.py
    Fuzzy quick jump by buffer number or channel name.
  • autojoin.py
    Use /autojoin --run to save all the channels you’re currently in to be autojoined the next time you start WeeChat.
  • autosort.py
    Use this script in tandem with irc.look.server_buffer=independent to keep your channel and server list in order.
  • colorize_lines.pl
    I use this script to highlight the entire line of messages I’ve been mentioned in. Check the options in the source or with /help colorize_lines.
  • grep.py
    Quickly search history and buffers with /grep.

The rest of my configs

You can find the rest of my configs here. Be sure to keep the WeeChat Documentation handy as well.

If you have any questions, feel free to ping me on IRC. I’m ben on libera and tilde.chat.

Screenshot

Here’s a screenshot of my current configs

Bonus

If you have an existing setup, you can check the config changes you’ve made with /set diff.

Additionally, feel free to use my .gitignore, add your ~/.weechat to source control, and compare.

Hope you’ve enjoyed customizing your WeeChat!

EDIT: s/freenode/libera/g

Categories
Uncategorized

Proactive (reactive?) redundancy

After the fiasco earlier this week, I’ve been taking steps to minimize the impact if tilde.team were to go down. It’s still a large SPOF (single-point-of-failure), but I’m reasonably certain that at least the IRC net will remain up and functional in the event of another outage.

The first thing that I set up was a handful of additional IRCd nodes: see the wiki for a full list. slash.tilde.chat is on my personal vps, and bsd.tilde.chat is hosted on the bsd vps that I set up for tilde.team.

I added the ipv4 addresses for these machines, along with the IP for yourtilde.com as A records for tilde.chat, creating a DNS round-robin. host tilde.chat will return all four. Requesting the DNS record will return any one of them, rotating them in a semi-random fashion. This means that when connecting to tilde.chat on 6697 for IRC, you might end up on any of {your,team,bsd,slash}.tilde.chat.

This creates the additional problem that visiting the tilde.chat site will end up at any of those 4 machines in much the same way. For the moment, the site is deployed on all of the boxes, making site setup issues hard to debug. the solution to this problem is to use a subdomain as the round-robin host, as other networks like Libera.Chat do (see host irc.libera.chat for the list of servers).

I’m not sure how to make any of the other services more resilient. It’s something that I have been and will continue to research moving forward.

The other main step that I have taken to prevent the same issue from happening again was to configure the firewall to drop outgoing requests to the subnets as defined in rfc 1918.

I’d like to consider at least this risk to be mitigated.

Thanks for reading,

~ben

Update: the round robin host is now irc.tilde.chat, which resolves the site issues that we were having, due to the duplicated deployments.