# vim: filetype=perl
# https://libera.chat/guides/certfp
# https://www.oftc.net/NickServ/CertFP/
servers = (
{
address = "irc.gitter.im";
chatnet = "gitter";
port = "6697";
password = "";
use_tls = "yes";
tls_verify = "yes";
autoconnect = "yes";
},
{
address = "192.99.102.52";
chatnet = "FRRouting.slack.com";
port = "6667";
password = "";
use_tls = "yes";
tls_verify = "no";
autoconnect = "yes";
},
# {
# address = "irc.oftc.net";
# chatnet = "OFTC";
# port = "6697";
# use_tls = "yes";
# tls_cert = "~/.irssi/certs/nick.pem";
# tls_verify = "yes";
# autoconnect = "no";
# },
{
address = "192.168.1.109";
port = "6667";
chatnet = "bitlbee";
autoconnect = "yes";
},
{
address = "192.168.1.214";
port = "8667";
chatnet = "bitlbee_r";
autoconnect = "no";
use_tls = "no";
},
# {
# address = "irc.libera.chat";
# chatnet = "LiberaChat";
# port = "6697";
# use_tls = "yes";
# tls_cert = "~/.irssi/certs/nick.pem";
# tls_verify = "yes";
# autoconnect = "no";
# },
# {
# address = "irc.rizon.net";
# chatnet = "Rizon";
# port = "6697";
# use_tls = "yes";
# tls_cert = "~/.irssi/certs/nick.pem";
# tls_verify = "yes";
# autoconnect = "no";
# },
{
address = "ssl.ircnet.io";
chatnet = "IRCNet";
port = "6697";
use_tls = "yes";
tls_cert = "~/.irssi/certs/nick.pem";
tls_verify = "yes";
autoconnect = "yes";
},
{
address = "185.130.45.46";
chatnet = "Libera-ZNC";
port = "1025";
password = "terminaldweller/Liberachat:"; # pragma: allowlist secret
use_tls = "yes";
tls_cert = "~/.irssi/certs/nick.pem";
tls_verify = "no";
autoconnect = "yes";
},
{
address = "185.130.45.46";
chatnet = "OFTC-ZNC";
port = "1025";
password = "terminaldweller/OFTC:network"; # pragma: allowlist secret
use_tls = "yes";
tls_cert = "~/.irssi/certs/nick.pem";
tls_verify = "no";
autoconnect = "yes";
},
{
address = "185.130.45.46";
chatnet = "Rizon-ZNC";
port = "1025";
password = "terminaldweller/Rizon:network"; # pragma: allowlist secret
use_tls = "yes";
tls_cert = "~/.irssi/certs/nick.pem";
tls_verify = "no";
autoconnect = "yes";
},
{
address = "185.130.45.46";
chatnet = "Undernet-ZNC";
port = "1025";
password = "terminaldweller/undernet:network"; # pragma: allowlist secret
use_tls = "yes";
tls_cert = "~/.irssi/certs/nick.pem";
tls_verify = "no";
autoconnect = "yes";
},
{
address = "efnet.port80.se";
chatnet = "EFnet";
port = "6697";
use_tls = "yes";
tls_verify = "no";
autoconnect = "yes";
},
{
address = "irc.dal.net";
chatnet = "DALnet";
port = "6697";
use_tls = "yes";
tls_verify = "yes";
autoconnect = "yes";
},
{
address = "185.130.45.46";
chatnet = "TildeChat_ZNC";
port = "1025";
password = "terminaldweller/Tilde_Chat:network"; # pragma: allowlist secret
tls_cert = "~/.irssi/certs/nick.pem";
use_tls = "yes";
tls_verify = "no";
autoconnect = "yes";
}
);
chatnets = {
OFTC = {
type = "IRC";
nick = "terminaldweller";
autosendcmd = "/^msg nickserv set cloak on;wait 3000";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
"OFTC-ZNC" = {
type = "IRC";
nick = "terminaldweller";
autosendcmd = "/^msg nickserv set cloak on;mode terminaldweller j;wait 3000";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
gitter = { type = "IRC"; nick = "terminaldweller"; };
"app.slack.com" = { type = "IRC"; nick = "terminaldweller"; };
"FRRouting.slack.com" = { type = "IRC"; };
bitlbee = {
autosendcmd = "/^msg &bitlbee identify gorgoroth;wait 3000";
type = "IRC";
};
LiberaChat = { type = "IRC"; sasl_mechanism = "EXTERNAL"; };
"Libera-ZNC" = {
type = "IRC";
autosendcmd = "/^mode terminaldweller +g;wait 3000";
};
# Rizon = {
# type = "IRC";
# autosendcmd = "/^mode terminaldweller +px;wait 3000";
# };
"Rizon-ZNC" = {
type = "IRC";
autosendcmd = "/^mode terminaldweller +RCGpx;wait 3000";
};
IRCNet = { type = "IRC"; };
"Undernet-ZNC" = {
type = "IRC";
nick = "terminaldwel";
autosendcmd = "/^mode termi +ix;msg *status traffic;wait 3000";
};
EFnet = { type = "IRC"; };
DALnet = {
type = "IRC";
nick = "terminaldweller";
autosendcmd = "/^msg nickserv@services.dal.net identify identify;mode terminaldweller HCi;wait 3000";
};
bitlbee_r = { type = "IRC"; };
};
channels = (
# { name = "#dpdk"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
# { name = "#fdio-vpp"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
# { name = "#openssl"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#netbsd"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
# { name = "#netplan"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#ubuntu"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
# { name = "#qemu"; chatnet = "OFTC-ZNC"; autojoin = "yes"; },
{ name = "#debian"; chatnet = "OFTC-ZNC"; autojoin = "yes"; },
# { name = "#virt"; chatnet = "OFTC-ZNC"; autojoin = "yes"; },
{ name = "#openwrt"; chatnet = "OFTC-ZNC"; autojoin = "yes"; },
{ name = "#selfhosting"; chatnet = "TildeChat_ZNC"; autojoin = "yes"; },
{ name = "#tor"; chatnet = "OFTC-ZNC"; autojoin = "yes"; },
{ name = "#llvm"; chatnet = "OFTC-ZNC"; autojoin = "yes"; },
{ name = "##terminaldweller"; chatnet = "OFTC-ZNC"; autojoin = "yes"; },
# { name = "#openssh"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
# { name = "#gdb"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#openbsd"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#lobsters"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#gnupg"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#znc"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#go-nuts"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#opennic"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "##terminaldweller"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#voidlinux"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#CataclysmDDA"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#security"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#docker"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#crypto"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#tmux"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#vim"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#git"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#neomutt"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#busybox"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
# { name = "#shadow"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#freebsd"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#linux"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#irssi"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#bookz"; chatnet = "Undernet-ZNC"; autojoin = "yes"; },
{ name = "#postgresql"; chatnet = "Libera-ZNC"; autojoin = "yes"; },
{ name = "#news"; chatnet = "Rizon-ZNC"; autojoin = "yes"; },
{ name = "##terminaldweller"; chatnet = "Rizon-ZNC"; autojoin = "yes"; },
{ name = "#irc"; chatnet = "IRCNet"; autojoin = "yes"; },
{ name = "#supersonic"; chatnet = "DALNet"; autojoin = "yes"; },
# { name = "#kvm"; chatnet = "Libera-ZNC"; autojoin = "yes"; }
);
aliases = {
ATAG = "WINDOW SERVER";
ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}";
B = "BAN";
BACK = "AWAY";
BANS = "BAN";
BYE = "QUIT";
C = "CLEAR";
CALC = "EXEC - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi";
CHAT = "DCC CHAT";
DATE = "TIME";
DEHIGHLIGHT = "DEHILIGHT";
DESCRIBE = "ACTION";
DHL = "DEHILIGHT";
EXEMPTLIST = "MODE $C +e";
EXIT = "QUIT";
GOTO = "SCROLLBACK GOTO";
HIGHLIGHT = "HILIGHT";
HL = "HILIGHT";
HOST = "USERHOST";
INVITELIST = "MODE $C +I";
J = "JOIN";
K = "KICK";
KB = "KICKBAN";
KN = "KNOCKOUT";
LAST = "LASTLOG";
LEAVE = "PART";
M = "MSG";
MUB = "UNBAN *";
N = "NAMES";
NMSG = "^MSG";
P = "PART";
Q = "QUERY";
RESET = "SET -default";
RUN = "SCRIPT LOAD";
SAY = "MSG *";
SB = "SCROLLBACK";
SBAR = "STATUSBAR";
SIGNOFF = "QUIT";
SV = "MSG * Irssi $J ($V) - http://www.irssi.org";
T = "TOPIC";
UB = "UNBAN";
UMODE = "MODE $N";
UNSET = "SET -clear";
W = "WHO";
WC = "WINDOW CLOSE";
WG = "WINDOW GOTO";
WJOIN = "JOIN -window";
WI = "WHOIS";
WII = "WHOIS $0 $0";
WL = "WINDOW LIST";
WN = "WINDOW NEW HIDDEN";
WQUERY = "QUERY -window";
WW = "WHOWAS";
};
statusbar = {
# formats:
# when using {templates}, the template is shown only if it's argument isn't
# empty unless no argument is given. for example {sb} is printed always,
# but {sb $T} is printed only if $T isn't empty.
items = {
# start/end text in statusbars
barstart = "{sbstart}";
barend = "{sbend}";
topicbarstart = "{topicsbstart}";
topicbarend = "{topicsbend}";
# treated "normally", you could change the time/user name to whatever
time = "{sb $Z}";
user = "%9%z005fff{sb {sbnickmode $[-2]cumode}%k$N %Zeeeeee {sbumode %k$usermode} %Z005fff%0%z005f00{sbaway $A}}%N";
# treated specially .. window is printed with non-empty windows,
# window_empty is printed with empty windows
window = " %Z00af00{sb $tag/{channel $itemname} %C {sbmode $M}} %C%n ";
window_empty = "{sb {sbservertag $tag}}";
prompt = "please%z005f87{%k%z005f87%9$c $*%w%k$R%w%k$S%w%k$N%w%k$T %N%Z005f87}%n";
prompt_empty = "you%z005f87%k%z005f87%9$c $*%w%k$R%w%k$S%w%k$N%w%k$T %N%Z005f87%n";
topic = "%Z005f00%k%z005f00%N%Z005f00%N %Z5f5faf%9 $topic%N";
topic_empty = " Irssi v$J - http://www.irssi.org";
# all of these treated specially, they're only displayed when needed
# Powerline
lag = "{sb %0%Zff8700%zff8700%k ⌚ $0 %Zff8700%0%N}";
act = "{sb %Zeeeeee%0%n%z005fff %F$0%F %N}";
more = "%c%0%n%6 more ⬇ %c%0%N";
# vim_mode
vim_mode_1 = "%z005f5f%Zffffff%z005f5f%k%9 $vim_cmd_mode%N";
vim_windows_1 = "%Z005f5f%0%z005f5f%k%9 $vim_wins%z005f5f";
itime = "%Z005f00%k%z005f00%9 $0 %z005f00";
};
# there's two type of statusbars. root statusbars are either at the top
# of the screen or at the bottom of the screen. window statusbars are at
# the top/bottom of each split window in screen.
default = {
# the "default statusbar" to be displayed at the bottom of the window.
# contains all the normal items.
window = {
disabled = "no";
# window, root
type = "window";
# top, bottom
placement = "bottom";
# number
position = "1";
# active, inactive, always
visible = "active";
# list of items in statusbar in the display order
items = {
barstart = { priority = "100"; };
user = { };
window = { };
window_empty = { };
lag = { priority = "-1"; };
more = { priority = "-1"; alignment = "right"; };
otr = { priority = "100"; alignment = "right"; };
usercount = { };
inputlength = { alignment = "right"; };
rotator = { alignment = "right"; };
vim_windows_1 = { alignment = "right"; };
vim_mode_1 = { priority = "100"; alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
};
# statusbar to use in inactive split windows
window_inact = {
type = "window";
placement = "bottom";
position = "1";
visible = "inactive";
items = {
barstart = { priority = "100"; };
window = { };
window_empty = { };
more = { priority = "-1"; alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
};
# we treat input line as yet another statusbar :) It's possible to
# add other items before or after the input line item.
# topicbar
topic = {
type = "root";
placement = "top";
position = "1";
visible = "always";
items = {
topicbarstart = { priority = "100"; };
topicbarend = { priority = "100"; alignment = "right"; };
topic = { };
topicempty = { };
};
};
sb_timezones = {
items = {
barstart = { };
timezones = { };
itime = { priority = "1"; alignment = "right"; };
barend = { alignment = "right"; };
};
};
dccstat = { items = { dccstat = { }; }; };
prompt = {
items = {
uberprompt = { priority = "-1"; };
input = { priority = "10"; };
};
position = "100";
};
awl_0 = {
items = {
barstart = { priority = "100"; };
awl_0 = { };
barend = { priority = "100"; alignment = "right"; };
};
};
awl_1 = {
items = {
barstart = { priority = "100"; };
awl_1 = { };
barend = { priority = "100"; alignment = "right"; };
};
};
awl_2 = {
items = {
barstart = { priority = "100"; };
awl_2 = { };
barend = { priority = "100"; alignment = "right"; };
};
};
awl_3 = {
items = {
barstart = { priority = "100"; };
awl_3 = { };
barend = { priority = "100"; alignment = "right"; };
};
};
awl_4 = {
items = {
barstart = { priority = "100"; };
awl_4 = { };
barend = { priority = "100"; alignment = "right"; };
};
};
};
};
settings = {
misc = {
split_line_end = "↪";
}
core = {
real_name = "john doe";
user_name = "devi";
nick = "terminaldweller";
use_proxy = "no";
proxy_address = "127.0.0.1";
proxy_port = "9050";
proxy_string = "CONNECT %s:%d HTTP/1.0\012\012";
proxy_string_after = "conn %s %d";
proxy_password = "";
};
"fe-common/core" = {
theme = "solarized-powerline";
hilight_color = "%Zd75f5f";
emphasis_italics = "yes";
emphasis_multiword = "yes";
emphasis_replace = "no";
show_names_on_join = "no";
};
"fe-text" = { actlist_sort = "refnum"; };
"perl/core/scripts" = {
# adv_windowlist.pl
awl_block = "-20";
awl_sbar_maxlength = "off";
awl_hide_empty = "yes";
awl_mouse = "no";
awl_viewer = "no";
awl_maxlines = "0";
#fancy_abbrev = "head";
# trackbar.pl
trackbar_style = "%B";
title_screen_window = "yes";
awl_shared_sbar = "OFF";
# usercount.pl
usercount_show_halfops = "ON";
usercount_show_ircops = "ON";
usercount_show_zero = "ON";
# timezones
timezones_divider = " %Zeeeeee%Z008080 ";
timezones = "GMT:GMT EST:EST CET:CET Tehran:Asia/Tehran Tokyo:Asia/Tokyo Montreal:America/Montreal Pacific:America/Los_Angeles Paris:Europe/Paris";
# hilite_url
url_color = "32";
hilite_url = "32";
# rotator
rotator_chars = "%Z005f5f%z005f5f%k..%N %Z005f5f%z005f5f%koo%N %Z005f5f%z005f5f%k00%N %Z005f5f%z005f5f%kOO%N %Z005f5f%z005f5f%k00%N %Z005f5f%z005f5f%koo%N";
rotator_speed = "1000";
rotator_bounce = "yes";
rotator_seperator = " ";
# dccstats
dccstat_hide_sbar_when_inactive = "no";
dccstat_cycle_through_transfers = "yes";
# uberprmpt
uberprompt_format = "%k%z005f87%9$c $*%w%k$R%w%k$S%w%k$N%w%k$T %N%Z005f87%Z005f5f$uber";
uberprompt_format_empty = "%k%z005f87%9$c $*%w%k$R%w%k$S%w%k$N%w%k$T %N%Z005f87%Z005f5f$uber";
# irssi_logger
il_dbname = "irc";
il_dbuser = "postgres";
il_dbpass = "devi";
# nm2
neat_shrink = "yes";
neat_staircase_shrink = "yes";
neat_custom_modes = "no";
neat_dynamic = "yes";
# vim_mode
start_cmd = "yes";
vim_mode_start_cmd = "yes";
vim_mode_max_undo_lines = "100";
# inputlength
inputlength_width = "0";
inputlength_padding_char = "%Z005f00 ";
# bitlbee_typing_notice
bitlbee_send_typing = "0";
bitlbee_typing_allwin = "1";
};
"irc/dcc" = {
dcc_download_path = "~/.irssi/downloads/";
dcc_send_replace_space_with_underscore = "yes";
dcc_timeout = "10min";
dcc_upload_path = "~/.irssi/uploads/";
dcc_autorename = "yes";
};
};
keyboard = (
{ key = "meta-[M"; id = "command"; data = "mouse_xterm"; },
{ key = "meta-p"; id = "change_window"; data = "20"; },
{ key = "meta-a"; id = "change_window"; data = "21"; },
{ key = "meta-s"; id = "change_window"; data = "22"; },
{ key = "meta-d"; id = "change_window"; data = "23"; },
{ key = "meta-f"; id = "change_window"; data = "24"; },
{ key = "meta-g"; id = "change_window"; data = "25"; },
{ key = "meta-h"; id = "change_window"; data = "26"; },
{ key = "meta-j"; id = "change_window"; data = "27"; },
{ key = "meta-k"; id = "change_window"; data = "28"; },
{ key = "meta-l"; id = "change_window"; data = "29"; },
{ key = "meta-;"; id = "change_window"; data = "30"; },
{ key = "meta-z"; id = "change_window"; data = "31"; },
{ key = "meta-x"; id = "change_window"; data = "32"; },
{ key = "meta-c"; id = "change_window"; data = "33"; },
{ key = "meta-v"; id = "change_window"; data = "34"; },
{ key = "meta-b"; id = "change_window"; data = "35"; },
{ key = "meta-n"; id = "change_window"; data = "36"; },
{ key = "meta-m"; id = "change_window"; data = "37"; },
{ key = "meta-,"; id = "change_window"; data = "38"; },
{ key = "meta-."; id = "change_window"; data = "39"; },
{ key = "meta-/"; id = "change_window"; data = "40"; }
{ key = "meta-meta2-1"; id = "change_window"; data = "41"; }
);
ignores = (
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#docker" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#voidlinux" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#node.js" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#ansible" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#dpdk" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#fdio-vpp" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#alacritty" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#go-nuts" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#neomutt" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#kvm" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#znc" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#netbsd" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#ubuntu" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#netplan" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#vagrant" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#openssl" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#crypto" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#tmux" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#vim" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#virt" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#debian" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#openbsd" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#freebsd" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#git" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#voidlinux" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#openwrt" ); },
{
level = "JOINS PARTS QUITS NICKS";
channels = ( "#debian-next" );
},
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#openssh" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#irssi" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#gdb" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#qemu" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#linux" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#shadow" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#tor" ); },
{
level = "JOINS PARTS QUITS NICKS";
channels = ( "#CataclysmDDA" );
},
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#security" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#busybox" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#bookz" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#qubes" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#gnupg" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#supersonic" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#news" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#mednafen" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#forgefed" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#lobsters" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#s6" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#postgresql" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#meta" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#gemini" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#llvm" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#opennic" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#selfhosting" ); },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#irc" ); },
{ level = "CTCPS"; },
{ level = "JOINS PARTS QUITS NICKS"; channels = ( "#zsh" ); }
);
Mogs = { };
logs = { };