Excluding Multiple Channels from Custom Highlights in Quassel

One of the things that came out of the PTL tips and tricks discussion in Denver was that some people are not in favor of courtesy ping lists for meeting reminders. The recommended method was to add a custom highlight to your client for "#startmeeting [name]". I did that, but I also decided to take the opportunity to add a custom highlight for "oslo" so I get notified when people are talking about Oslo-related things in other channels.

For completeness, I'll include a brief explanation of how to configure a custom highlight in Quassel. Click Settings->Configure Quassel, then go to the Interface->Highlight page. Click "Add" and put the text you want highlighted in the Highlight column.

However, there are some channels I do not want to receive certain notifications from. For example, I don't want to be pinged every time a patch to an oslo library is proposed. Since #openstack-oslo has a bot that sends a message for every proposed patch, I needed to exclude that channel. No problem, just add "!#openstack-oslo" to the Channel regular expression.

Then I started to find other channels that I needed to exclude. For example, I don't need to be notified every time there is a requirements update involving an Oslo library. #openstack-requirements needed to be ignored as well. The "Channel" option for a highlight in Quassel is a regular expression, but I couldn't find any examples of how you would exclude multiple channels at once. Is it "!#openstack-oslo|!#openstack-requirements"? I found something that suggested "!#openstack-oslo;!#openstack-requirements" might work (it didn't). Perhaps "!(#openstack-oslo|#openstack-requirements)"?

Some of those may work, but what I ended up using (and seems to do what I intended) is simply !#openstack-oslo|#openstack-requirements. You can add as many channels as you need by appending "|#channelname" to the regex. Note that I do not have the "RegEx" box checked for the highlight. It seems the "Channel" field always behaves as a regular expression.

I thought I would write this post since regexes are tricky and I couldn't find any other examples of the specific Quassel regex needed to do this. Hope it was helpful.