### # irssi configuration file, using irssi 0.8.14 # - anrxc.sysphere.org # ############################################### # I modified this copy to serve new users # as a template, it covers a lot of things: # + Contains # - Bouncer example # - Using SSL # - SILC # - Autojoin channels # - Completition/auto replacement # - Managing aliases with special variables # - Windows/channels auto arrangement and positioning # - Irssi proxy # + For explanations of the settings clause refer to: # - http://irssi.org/documentation/settings # # + Some scripts that I recommend and use: # - autorejoin.pl dns.pl mlock.pl # - namesaway.pl quitmsg.pl mail.pl # - usercount.pl nact.pl sysinfo.pl # - hilightwin.pl nm.pl crapbuster.pl # - screen_away.pl adv_windowlist.pl # # + I use this config in combination with the zenbarn theme servers = ( { # Standard connection address = "irc.freenode.net"; chatnet = "fnode"; port = "6667"; autoconnect = "yes"; }, { # Standard connection address = "irc.oftc.net"; chatnet = "oftc"; port = "6667"; autoconnect = "no"; }, { # SSL connection address = "irc.sysphere.org"; chatnet = "sys"; port = "6697"; use_ssl = "yes"; # Automatic login password = "xxxxxx"; autoconnect = "yes"; }, { # IRC bouncer connection address = "polarhome.com"; chatnet = "bnc"; port = "14444"; # Automatic login password = "xxxxxx"; use_ssl = "yes"; ssl_verify = "no"; autoconnect = "no"; }, { # SILC connection address = "silc.silcnet.org"; chatnet = "silc"; port = "706"; }, ); chatnets = { fnode = { type = "IRC"; # Automatic login to nickserv autosendcmd = "/msg nickserv identify xxxxxx"; max_kicks = "4"; max_modes = "3"; max_msgs = "5"; max_whois = "4"; }; oftc= { type = "IRC"; # Automatic login to nickserv autosendcmd = "/msg nickserv identify xxxxxx"; max_kicks = "1"; max_msgs = "3"; max_whois = "30"; }; sys = { type = "IRC"; # Automatic login as an IRC operator autosendcmd = "/oper nickname xxxxxx"; }; bnc = { type = "IRC"; }; silc = { type = "SILC"; }; }; channels = ( { name = "#sysphere"; chatnet = "sys"; autojoin = "Yes"; }, { name = "##slackware"; chatnet = "fnode"; autojoin = "Yes"; }, { name = "#archlinux"; chatnet = "fnode"; autojoin = "Yes"; }, { name = "#razmjenavjestina"; chatnet = "fnode"; autojoin = "Yes"; }, { name = "#awesome"; chatnet = "oftc"; autojoin = "Yes"; }, { name = "#ecryptfs"; chatnet = "oftc"; autojoin = "Yes"; }, { name = "silc"; chatnet = "silc"; autojoin = "No"; } ); aliases = { j = "join"; wjoin = "join -window"; wquery = "query -window"; leave = "part"; exit = "quit"; date = "time"; host = "userhost"; last = "lastlog"; say = "msg *"; wi = "whois"; wii = "whois $0 $0"; ww = "whowas"; w = "who"; n = "names"; m = "msg"; t = "topic"; c = "clear"; cl = "clear"; cls = "clear"; k = "kick"; kb = "kickban"; b = "ban"; ub = "unban"; ig = "ignore"; unig = "unignore"; sb = "scrollback"; wc = "window close"; wn = "window new hide"; goto = "sb goto"; chat = "dcc chat"; run = "script load"; uptime = "eval exec - expr `date +%s` - \\$F | awk '{print \"Irssi uptime: \"int(\\\\\\$1/3600/24)\"d \"int(\\\\\\$1/3600%24)\"h \"int(\\\\\\$1/60%60)\"m \"int(\\\\\\$1%60)\"s\" }'"; calc = "exec - if which bc &>/dev/null\\; then echo '$*' | bc | awk '{print \"$*=\"$$1}'\\; else echo bc was not found\\; fi"; invlist = "mode $C +I"; q = "query"; ak = "amarok"; ec = "window close"; em = "me"; nixk = "nick"; mw = "me"; mne = "me"; wm = "window move"; awat = "away"; gone = "away M-x work-mode"; afk = "me afk: [detached]"; awk = "me afk: Out of my mind. back in 5 minutes."; sleep = "me invokes: M-x sleep-mode"; uc = "statusbar window add usercount"; nact = "statusbar window add nact"; cb = "crapbuster"; hideset = "set activity_hide_level parts joins quits nicks modes"; hideclear = "set -c activity_hide_level"; ignoreall = "/ignore $C CRAP NOTICES SNOTES CTCPS JOINS PARTS QUITS KICKS MODES WALLOPS NICKS DCC DCCMSGS CLIENTNOTICES CLIENTCRAP CLIENTERRORS HILIGHTS"; slap = "me slaps $0 around with a small 50lb Unix Manual"; bslap = "me slaps $0 around a bit with a 'Get a Life' HOWTO"; rtfm = "msg $C $0: http://www.catb.org/~esr/jargon/html/R/RTFM.html"; google = "msg $C $0: http://www.google.com"; hackers = "msg $C $0: http://www.hackersmovie.com/"; }; completions = { ":9" = { value = ":)"; auto = "yes"; }; ".)" = { value = ":)"; auto = "yes"; }; ".-9" = { value = ":)"; auto = "yes"; }; ":-9" = { value = ":)"; auto = "yes"; }; ".-)" = { value = ":)"; auto = "yes"; }; ".9" = { value = ":)"; auto = "yes"; }; ":=" = { value = ":)"; auto = "yes"; }; ":-=" = { value = ":)"; auto = "yes"; }; ";9" = { value = ";)"; auto = "yes"; }; ",)" = { value = ";)"; auto = "yes"; }; ",-9" = { value = ";)"; auto = "yes"; }; ";-9" = { value = ";)"; auto = "yes"; }; ",-)" = { value = ";)"; auto = "yes"; }; ",9" = { value = ";)"; auto = "yes"; }; ";=" = { value = ";)"; auto = "yes"; }; ";-=" = { value = ";)"; auto = "yes"; }; }; 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 = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}"; # treated specially .. window is printed with non-empty windows, # window_empty is printed with empty windows window = "{sb $winref:$itemname{sbmode $M}}"; window_empty = "{sb $winref{sbservertag $tag}}"; prompt = "{prompt $[.15]itemname}"; prompt_empty = "{prompt $winname}"; topic = " $topic"; topic_empty = " Irssi"; # all of these treated specially, they're only displayed when needed lag = "{sb Lag: $0-}"; act = "{sb Act: $0-}"; more = "-- more --"; }; # 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"; }; #time = { }; user = { }; window = { }; window_empty = { }; lag = { priority = "-1"; }; more = { priority = "-1"; alignment = "right"; }; barend = { priority = "100"; alignment = "right"; }; usercount = { }; nact = { }; mail = { }; }; }; # 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. prompt = { type = "root"; placement = "bottom"; # we want to be at the bottom always position = "100"; visible = "always"; items = { prompt = { priority = "-1"; }; prompt_empty = { priority = "-1"; }; # treated specially, this is the real input line. input = { priority = "10"; }; }; }; # topicbar topic = { type = "root"; placement = "top"; position = "1"; visible = "always"; items = { topicbarstart = { priority = "100"; }; topic = { }; topic_empty = { }; topicbarend = { priority = "100"; alignment = "right"; }; }; }; awl_0 = { items = { barstart = { priority = "100"; }; awl_0 = { }; barend = { priority = "100"; alignment = "right"; }; }; }; }; }; settings = { core = { real_name = "aic"; user_name = "anrxc"; nick = "anrxc"; settings_autosave = "off"; awaylog_file = "~/.irssi/irclogs/away.log"; awaylog_level = "msgs hilight"; log_create_mode = "600"; }; "fe-common/core" = { theme = "zenbarn"; timestamps = "yes"; autocreate_own_query = "no"; autocreate_query_level = "DCCMSGS"; use_status_window = "no"; use_msgs_window = "yes"; autolog = "yes"; autolog_path = "~/.irssi/irclogs/$tag/$0.log"; emphasis_multiword = "on"; emphasis_replace = "on"; autoclose_windows = "on"; hide_server_tags = "on"; show_own_nickchange_once = "on"; bell_beeps = "yes"; beep_msg_level = "MSGS NOTICES INVITES DCC DCCMSGS HILIGHT"; #not working, wtf? #recode_fallback = "cp1250"; #term_charset = "utf-8"; }; "irc/core" = { alternate_nick = "aic"; ctcp_version_reply = "irssi v$J ($sysname)"; ctcp_userinfo_reply = "$Y ($X)"; }; "fe-text" = { term_force_colors = "on"; actlist_sort = "refnum"; }; proxy = { irssiproxy_password = "xxxxxx"; irssiproxy_ports = "fnode=25000 oftc=25001"; }; "perl/core/scripts" = { autorejoin_channels = "#sysphere #slackware-hr"; awl_display_key = "$Q%G:%n$H$C$S"; nact_devices = "eth0"; neat_maxlength = "8"; neat_right_mode = "no"; neat_left_actions = "no"; nicklist_automode = "SCREEN"; usercount_show_zero = "no"; usercount_show_halfops = "no"; mail_mailboxes = "inbox=~/Mail/INBOX,"; mail_format = "%u/%t"; crapbuster_levels = "JOINS PARTS QUITS NICKS CLIENTCRAP CRAP MODE TOPICS KICKS"; neat_colorize = "yes"; }; }; hilights = ( { text = "anrxc"; nick = "yes"; word = "yes"; }, { text = "vicious"; nick = "no"; word = "yes"; } ); logs = { }; ignores = ( { mask = "rilix"; level = "ALL"; }, { mask = "sysms"; level = "ALL"; }, { mask = "rico"; level = "ALL"; } # Also see hideclear and ignoreall aliases { level = "JOINS PARTS QUITS"; channels = ( "#archlinux" ); } ); windows = { 1 = { immortal = "yes"; name = "(status)"; level = "ALL"; sticky = "yes"; parent = "2"; }; 2 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#awesome"; tag = "oftc"; } ); }; 3 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#ecryptfs"; tag = "oftc"; } ); }; 4 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#archlinux"; tag = "fnode"; } ); }; 5 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "##slackware"; tag = "fnode"; } ); }; 6 = { name = "hilight"; sticky = "yes"; }; }; mainwindows = { 2 = { first_line = "7"; lines = "22"; }; 4 = { first_line = "1"; lines = "5"; }; };