| @@ -0,0 +1,307 @@ | |||
| # | |||
| # | |||
| # Beastie's irssi theme. | |||
| # | |||
| # Thanks to crshd. | |||
| # | |||
| # | |||
| # Visit irc.unixhub.net #unixhub :) | |||
| # | |||
| # default foreground color (%N) - -1 is the "default terminal color" | |||
| default_color = "-1"; | |||
| # print timestamp/servertag at the end of line, not at beginning | |||
| info_eol = "false"; | |||
| # these characters are automatically replaced with specified color | |||
| # (dark grey by default) | |||
| replaces = { "[]" = "%g$*%n"; }; | |||
| abstracts = { | |||
| ############# generic ############################### | |||
| #indent_default = " + "; | |||
| indent_default = ""; | |||
| # text to insert at the beginning of each non-message line | |||
| # line_start = "%g//%n "; | |||
| line_start = ""; | |||
| # timestamp styling, nothing by default | |||
| #timestamp = "%K$0-%n"; | |||
| timestamp = ""; | |||
| # any kind of text that needs hilighting, default is to bold | |||
| hilight = "%_$*%_"; | |||
| # any kind of error message, default is bright red | |||
| error = "%R$*%n"; | |||
| # channel name is printed | |||
| channel = "%b$*%n"; | |||
| # nick is printed | |||
| #nick = "%_$*%_"; | |||
| nick = ""; | |||
| # nick host is printed | |||
| nickhost = "%g$*"; | |||
| # server name is printed | |||
| server = "%_$*%_"; | |||
| # some kind of comment is printed | |||
| comment = "%n(%b\"$*\"%n);"; | |||
| # reason for something is printed (part, quit, kick, ..) | |||
| reason = "{comment $*}"; | |||
| # mode change is printed ([+o nick]) | |||
| mode = "{comment $*}"; | |||
| ## channel specific messages | |||
| # highlighted nick/host is printed (joins) | |||
| channick_hilight = "%g$*%N"; | |||
| chanhost_hilight = "{nickhost $*}"; | |||
| # nick/host is printed (parts, quits, etc.) | |||
| channick = "$*"; | |||
| chanhost = "{nickhost $*}"; | |||
| # highlighted channel name is printed | |||
| channelhilight = "%g$*%n"; | |||
| # ban/ban exception/invite list mask is printed | |||
| ban = "$*"; | |||
| ########### messages ################################# | |||
| # the basic styling of how to print message, $0 = nick mode, $1 = nick | |||
| # msgnick = "$1-$0%K·%N %|"; | |||
| #msgnick = "%K$0%N $1 %K│ %|%N"; | |||
| # msgnick = "%K$0%N $1 %K· %|%N"; | |||
| msgnick = "%K%N $1 %K│ %N"; | |||
| # $0 = nick mode, $1 = nick | |||
| ownmsgnick = "{msgnick $0 $1}"; | |||
| ownnick = "%Y$*%n"; | |||
| # public message in channel, $0 = nick mode, $1 = nick | |||
| pubmsgnick = "{msgnick $0 $1}"; | |||
| pubnick = "%N$*%n"; | |||
| # public highlighted message in channel | |||
| pubmsghinick = "{msgnick $0 $1}%r"; | |||
| menick = "%R$*%n"; | |||
| # channel name is printed with message | |||
| msgchannel = "%K:%m$*%n"; | |||
| # private message, $0 = nick, $1 = host | |||
| privmsg = "$0=%b\"$1-\"%n "; | |||
| # private message from you, $0 = "msg", $1 = target nick | |||
| ownprivmsg = "$0=%b\"$1-\"%n "; | |||
| # private message in query | |||
| # privmsgnick = "{msgnick $*}"; | |||
| privmsgnick = " %g<%N "; | |||
| # own private message in query | |||
| #ownprivmsgnick = "{privmsgnick $*}"; | |||
| ownprivmsgnick = " %r>%N "; | |||
| #ownprivnick = "$*"; | |||
| ########## Actions (/ME stuff) ######################### | |||
| # used internally by this theme | |||
| action_core = " %n$* │"; | |||
| # generic one that's used by most actions | |||
| action = "{action_core $*} "; | |||
| # own action, both private/public | |||
| ownaction = "{action %p$*}"; | |||
| # own action with target, both private/public | |||
| ownaction_target = "{action_core $0}%Y:%c$1%n "; | |||
| # private action sent by others | |||
| pvtaction = "%y (*) $*%n "; | |||
| pvtaction_query = "{action $* }"; | |||
| # public action sent by others | |||
| pubaction = "{action $*}"; | |||
| # generic one that's used by most actions | |||
| # action = " %m$* │ %N%m"; | |||
| # own action, both private/public | |||
| # ownaction = "{action $*}"; | |||
| # ownaction = " %m$* │ %N%m"; | |||
| # own action with target, both private/public | |||
| # ownaction_target = " {action $*}"; | |||
| # private action sent by others | |||
| # pvtaction = "{ $*}"; | |||
| # pvtaction_query = "{ $*}"; | |||
| # public action sent by others | |||
| # pubaction = " {action}"; | |||
| ########## other IRC events ############################# | |||
| # whois | |||
| whois = "%# $[8]0 = $1-;"; | |||
| # notices | |||
| ownnotice = "%NNote n = %Mnew%n $0 ($1-) "; | |||
| notice = "%M$*%n "; | |||
| pubnotice_channel = " %N($*)"; | |||
| pvtnotice_host = " %N($*)"; | |||
| servernotice = " %N($*)"; | |||
| # CTCPs | |||
| ownctcp = "%NCTCP c = %Mnew%n $0 ($1-) "; | |||
| ctcp = "%N$*%n"; | |||
| # wallops | |||
| wallop = "%K$*%n: "; | |||
| wallop_nick = "%n$*"; | |||
| wallop_action = "%K * $*%n "; | |||
| # netsplits | |||
| netsplit = " %Knsplit %R│ %b\"$*\"%n"; | |||
| netjoin = " %Knjoin %G│ %b\"$*\"%n"; | |||
| # /names list | |||
| names_prefix = " %Y│%n "; | |||
| names_nick = "%_$2$0%_%n$1- "; | |||
| names_nick_op = "{names_nick $* %R}"; | |||
| names_nick_halfop = "{names_nick $* %C}"; | |||
| names_nick_voice = "{names_nick $* %K}"; | |||
| names_users = " %Y│%n $1"; | |||
| names_channel = "\"%b$*\"%n"; | |||
| # DCC | |||
| dcc = "%g$*%n"; | |||
| dccfile = "%_$*%_"; | |||
| # DCC chat, own msg/action | |||
| dccownmsg = "%g /* $0 ($1-) */"; | |||
| dccownnick = "$*%n"; | |||
| dccownquerynick = "$*%n"; | |||
| dccownaction = "{action $*}"; | |||
| dccownaction_target = "{action $*}"; | |||
| # DCC chat, others | |||
| dccmsg = "%g/* $1- ($0) */"; | |||
| dccquerynick = "%g$*%n"; | |||
| dccaction = "{action $*}"; | |||
| ######## statusbar/topicbar ############################ | |||
| # default background for all statusbars. You can also give | |||
| # the default foreground color for statusbar items. | |||
| sb_background = "%9"; | |||
| # default backround for "default" statusbar group | |||
| #sb_default_bg = "%4"; | |||
| # background for prompt / input line | |||
| sb_prompt_bg = "%n"; | |||
| # background for info statusbar | |||
| #sb_info_bg = "%1"; | |||
| # background for topicbar (same default) | |||
| #sb_topic_bg = "%4"; | |||
| # text at the beginning of statusbars. sb-item already puts | |||
| # space there,so we don't use anything by default. | |||
| sbstart = "%K╒┅┅━━━━━━━━━━━┙"; | |||
| # text at the end of statusbars. Use space so that it's never | |||
| # used for anything. | |||
| sbend = ""; | |||
| topicsbstart = "%K╘┅┅━━━━━━━━━━━┑ %K$N on $C: $S%N$*"; | |||
| topicsbend = "$*"; | |||
| prompt = "%K└──╼ %n"; | |||
| sb = "%K$*%N "; | |||
| sbmode = " %K[%g+%n$*%K]"; | |||
| sbaway = " %g/* zZzZ */"; | |||
| sbservertag = ":%g$0"; | |||
| sbnickmode = "$0"; | |||
| # Usercount | |||
| sb_usercount = "{sb %_$0%_ nicks ($1-)}"; | |||
| sb_uc_ircops = "%_*%_$*"; | |||
| sb_uc_ops = "%_@%r$*%n"; | |||
| sb_uc_halfops = "%_%%%g$*%n"; | |||
| sb_uc_voices = "%_+%y$*%n"; | |||
| sb_uc_normal = "%w$*%n"; | |||
| sb_uc_space = " "; | |||
| # activity in statusbar | |||
| # ',' separator | |||
| sb_act_sep = " "; | |||
| # normal text | |||
| sb_act_text = "%g%9$*%n"; | |||
| # public message | |||
| sb_act_msg = "%Y%9$*%n"; | |||
| # hilight | |||
| sb_act_hilight = "%R%9$*%n"; | |||
| # hilight with specified color, $0 = color, $1 = text | |||
| sb_act_hilight_color = "%R%9$1-%n"; | |||
| }; | |||
| ######################################################## | |||
| formats = { | |||
| "fe-common/core" = { | |||
| line_start = "{line_start}"; | |||
| line_start_irssi = "{line_start}"; | |||
| join = " join %g│ %n {channick $0}"; | |||
| part = " part %r│ %n {channick $0}"; | |||
| kick = " kicked %r│ %n {channick $0}"; | |||
| quit = " quit %r│ %n {channick $0}"; | |||
| quit_once = "{channel $3} {channick $0} {chanhost $1} %kquit {reason %C$2}"; | |||
| nick_changed = "%K{channick $[-13]0}%G│ %n {channick $1}"; | |||
| your_nick_changed = "%K you %G│ %n {channick $1}"; | |||
| pubmsg = "{pubmsgnick $2 {pubnick \00304$[-11]0}}$1"; | |||
| own_msg = "{ownmsgnick $2 {ownnick $[-11]0}}$1"; | |||
| own_msg_channel = "{ownmsgnick $3 {ownnick $[-11]0}{msgchannel $1}}$2"; | |||
| own_msg_private_query = "{ownprivmsgnick {ownprivnick $[-11]2}}$1"; | |||
| pubmsg_me = "{pubmsghinick $2 {menick $[-11]0}}$1"; | |||
| pubmsg_me_channel = "{pubmsghinick $3 {menick $[-11]0}{msgchannel $1}}$2"; | |||
| pubmsg_hilight = "{pubmsghinick $3 {menick $[-11]1}}$2"; | |||
| pubmsg_hilight_channel = "{pubmsghinick $0 $[-11]1$4{msgchannel $2}}$3"; | |||
| pubmsg_channel = "{pubmsgnick {pubnick %G$[-11]0}$2}$1"; | |||
| msg_private_query = "{privmsgnick $[-11]0}$2"; | |||
| new_topic = " %ctopic %K│ %B'$2' %non %b$1%n%K[set by {nick %y$0}]"; | |||
| endofnames = " names %Y│%m Total: {hilight $2} ops, {hilight $3} halfops, {hilight $4} voices, {hilight $5} normal%n"; | |||
| }; | |||
| "fe-common/irc" = { | |||
| chanmode_change = " mode %y│ %n {channick $1}"; | |||
| server_chanmode_change = "% mode %y│ %n {channick $1}"; | |||
| own_action = "{ownaction $[-11]0} $1"; | |||
| action_private = "{pvtaction $[-11]0}$1"; | |||
| action_private_query = "{pvtaction_query $[-11]0} $2"; | |||
| action_public = "{pubaction $[-11]0}$1"; | |||
| }; | |||
| }; | |||
| @@ -0,0 +1,269 @@ | |||
| servers = ( | |||
| { address = "irc.ubuntu.com"; chatnet = "Ubuntu"; port = "8001"; }, | |||
| { address = "eu.irc6.net"; chatnet = "IRCnet"; port = "6667"; }, | |||
| { address = "open.ircnet.net"; chatnet = "IRCnet"; port = "6667"; }, | |||
| { address = "irc.efnet.org"; chatnet = "EFNet"; port = "6667"; }, | |||
| { | |||
| address = "irc.undernet.org"; | |||
| chatnet = "Undernet"; | |||
| port = "6667"; | |||
| }, | |||
| { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; }, | |||
| { | |||
| address = "irc.quakenet.org"; | |||
| chatnet = "QuakeNet"; | |||
| port = "6667"; | |||
| }, | |||
| { address = "irc.oftc.net"; chatnet = "OFTC"; port = "6667"; }, | |||
| { | |||
| address = "irc.gamesurge.net"; | |||
| chatnet = "GameSurge"; | |||
| port = "6667"; | |||
| }, | |||
| { address = "irc.webchat.org"; chatnet = "WebChat"; port = "6667"; }, | |||
| { address = "irc.rizon.net"; chatnet = "Rizon"; port = "6667"; }, | |||
| { address = "irc.link-net.org"; chatnet = "LinkNet"; port = "6667"; }, | |||
| { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; } | |||
| ); | |||
| chatnets = { | |||
| IRCnet = { | |||
| type = "IRC"; | |||
| max_kicks = "4"; | |||
| max_msgs = "5"; | |||
| max_whois = "4"; | |||
| max_query_chans = "5"; | |||
| }; | |||
| EFNet = { | |||
| type = "IRC"; | |||
| max_kicks = "4"; | |||
| max_msgs = "3"; | |||
| max_whois = "1"; | |||
| }; | |||
| Undernet = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| DALnet = { | |||
| type = "IRC"; | |||
| max_kicks = "4"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| QuakeNet = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| OFTC = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| GameSurge = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| WebChat = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| Rizon = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| LinkNet = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| SILC = { type = "SILC"; }; | |||
| Ubuntu = { type = "IRC"; }; | |||
| }; | |||
| channels = ( | |||
| { name = "#irssi"; chatnet = "ircnet"; autojoin = "No"; }, | |||
| { name = "silc"; chatnet = "silc"; autojoin = "No"; } | |||
| ); | |||
| aliases = { | |||
| J = "join"; | |||
| WJOIN = "join -window"; | |||
| WQUERY = "query -window"; | |||
| LEAVE = "part"; | |||
| BYE = "quit"; | |||
| EXIT = "quit"; | |||
| SIGNOFF = "quit"; | |||
| DESCRIBE = "action"; | |||
| 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"; | |||
| K = "kick"; | |||
| KB = "kickban"; | |||
| KN = "knockout"; | |||
| BANS = "ban"; | |||
| B = "ban"; | |||
| MUB = "unban *"; | |||
| UB = "unban"; | |||
| IG = "ignore"; | |||
| UNIG = "unignore"; | |||
| SB = "scrollback"; | |||
| UMODE = "mode $N"; | |||
| WC = "window close"; | |||
| WN = "window new hide"; | |||
| SV = "say Irssi $J ($V) - http://irssi.org/"; | |||
| GOTO = "sb goto"; | |||
| CHAT = "dcc chat"; | |||
| RUN = "SCRIPT LOAD"; | |||
| CALC = "exec - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi"; | |||
| SBAR = "STATUSBAR"; | |||
| INVITELIST = "mode $C +I"; | |||
| Q = "QUERY"; | |||
| "MANUAL-WINDOWS" = "set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set reuse_unused_windows on;save"; | |||
| EXEMPTLIST = "mode $C +e"; | |||
| ATAG = "WINDOW SERVER"; | |||
| UNSET = "set -clear"; | |||
| RESET = "set -default"; | |||
| }; | |||
| 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:$tag/$itemname{sbmode $M}}"; | |||
| window_empty = "{sb $winref{sbservertag $tag}}"; | |||
| prompt = "{prompt $[.15]itemname}"; | |||
| prompt_empty = "{prompt $winname}"; | |||
| topic = " $topic"; | |||
| topic_empty = " Irssi v$J - http://www.irssi.org"; | |||
| # 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"; }; | |||
| act = { priority = "10"; }; | |||
| more = { priority = "-1"; 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. | |||
| 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"; }; | |||
| }; | |||
| }; | |||
| }; | |||
| }; | |||
| settings = { | |||
| core = { | |||
| real_name = "Paul Longtine"; | |||
| user_name = "paul"; | |||
| nick = "lalala"; | |||
| }; | |||
| "fe-text" = { actlist_sort = "refnum"; }; | |||
| "fe-common/core" = { theme = "asdf"; }; | |||
| }; | |||
| @@ -0,0 +1,269 @@ | |||
| servers = ( | |||
| { address = "irc.ubuntu.com"; chatnet = "Ubuntu"; port = "8001"; }, | |||
| { address = "eu.irc6.net"; chatnet = "IRCnet"; port = "6667"; }, | |||
| { address = "open.ircnet.net"; chatnet = "IRCnet"; port = "6667"; }, | |||
| { address = "irc.efnet.org"; chatnet = "EFNet"; port = "6667"; }, | |||
| { | |||
| address = "irc.undernet.org"; | |||
| chatnet = "Undernet"; | |||
| port = "6667"; | |||
| }, | |||
| { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; }, | |||
| { | |||
| address = "irc.quakenet.org"; | |||
| chatnet = "QuakeNet"; | |||
| port = "6667"; | |||
| }, | |||
| { address = "irc.oftc.net"; chatnet = "OFTC"; port = "6667"; }, | |||
| { | |||
| address = "irc.gamesurge.net"; | |||
| chatnet = "GameSurge"; | |||
| port = "6667"; | |||
| }, | |||
| { address = "irc.webchat.org"; chatnet = "WebChat"; port = "6667"; }, | |||
| { address = "irc.rizon.net"; chatnet = "Rizon"; port = "6667"; }, | |||
| { address = "irc.link-net.org"; chatnet = "LinkNet"; port = "6667"; }, | |||
| { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; } | |||
| ); | |||
| chatnets = { | |||
| IRCnet = { | |||
| type = "IRC"; | |||
| max_kicks = "4"; | |||
| max_msgs = "5"; | |||
| max_whois = "4"; | |||
| max_query_chans = "5"; | |||
| }; | |||
| EFNet = { | |||
| type = "IRC"; | |||
| max_kicks = "4"; | |||
| max_msgs = "3"; | |||
| max_whois = "1"; | |||
| }; | |||
| Undernet = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| DALnet = { | |||
| type = "IRC"; | |||
| max_kicks = "4"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| QuakeNet = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| OFTC = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| GameSurge = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| WebChat = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| Rizon = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| LinkNet = { | |||
| type = "IRC"; | |||
| max_kicks = "1"; | |||
| max_msgs = "3"; | |||
| max_whois = "30"; | |||
| }; | |||
| SILC = { type = "SILC"; }; | |||
| Ubuntu = { type = "IRC"; }; | |||
| }; | |||
| channels = ( | |||
| { name = "#irssi"; chatnet = "ircnet"; autojoin = "No"; }, | |||
| { name = "silc"; chatnet = "silc"; autojoin = "No"; } | |||
| ); | |||
| aliases = { | |||
| J = "join"; | |||
| WJOIN = "join -window"; | |||
| WQUERY = "query -window"; | |||
| LEAVE = "part"; | |||
| BYE = "quit"; | |||
| EXIT = "quit"; | |||
| SIGNOFF = "quit"; | |||
| DESCRIBE = "action"; | |||
| 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"; | |||
| K = "kick"; | |||
| KB = "kickban"; | |||
| KN = "knockout"; | |||
| BANS = "ban"; | |||
| B = "ban"; | |||
| MUB = "unban *"; | |||
| UB = "unban"; | |||
| IG = "ignore"; | |||
| UNIG = "unignore"; | |||
| SB = "scrollback"; | |||
| UMODE = "mode $N"; | |||
| WC = "window close"; | |||
| WN = "window new hide"; | |||
| SV = "say Irssi $J ($V) - http://irssi.org/"; | |||
| GOTO = "sb goto"; | |||
| CHAT = "dcc chat"; | |||
| RUN = "SCRIPT LOAD"; | |||
| CALC = "exec - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi"; | |||
| SBAR = "STATUSBAR"; | |||
| INVITELIST = "mode $C +I"; | |||
| Q = "QUERY"; | |||
| "MANUAL-WINDOWS" = "set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set reuse_unused_windows on;save"; | |||
| EXEMPTLIST = "mode $C +e"; | |||
| ATAG = "WINDOW SERVER"; | |||
| UNSET = "set -clear"; | |||
| RESET = "set -default"; | |||
| }; | |||
| 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:$tag/$itemname{sbmode $M}}"; | |||
| window_empty = "{sb $winref{sbservertag $tag}}"; | |||
| prompt = "{prompt $[.15]itemname}"; | |||
| prompt_empty = "{prompt $winname}"; | |||
| topic = " $topic"; | |||
| topic_empty = " Irssi v$J - http://www.irssi.org"; | |||
| # 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"; }; | |||
| act = { priority = "10"; }; | |||
| more = { priority = "-1"; 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. | |||
| 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"; }; | |||
| }; | |||
| }; | |||
| }; | |||
| }; | |||
| settings = { | |||
| core = { | |||
| real_name = "Paul Longtine"; | |||
| user_name = "paul"; | |||
| nick = "paull"; | |||
| }; | |||
| "fe-text" = { actlist_sort = "refnum"; }; | |||
| "fe-common/core" = { theme = "asdf"; }; | |||
| }; | |||
| @@ -0,0 +1 @@ | |||
| ../hilightwin.pl | |||
| @@ -0,0 +1 @@ | |||
| ../notify.pl | |||
| @@ -0,0 +1 @@ | |||
| ../xchatnickcolor.pl | |||
| @@ -0,0 +1,57 @@ | |||
| # | |||
| # Print hilighted messages & private messages to window named "hilight" for | |||
| # irssi 0.7.99 by Timo Sirainen | |||
| # | |||
| # Modded a tiny bit by znx to stop private messages entering the hilighted | |||
| # window (can be toggled) and to put up a timestamp. | |||
| # | |||
| use Irssi; | |||
| use POSIX; | |||
| use vars qw($VERSION %IRSSI); | |||
| $VERSION = "0.02"; | |||
| %IRSSI = ( | |||
| authors => "Timo \'cras\' Sirainen, Mark \'znx\' Sangster", | |||
| contact => "tss\@iki.fi, znxster\@gmail.com", | |||
| name => "hilightwin", | |||
| description => "Print hilighted messages to window named \"hilight\"", | |||
| license => "Public Domain", | |||
| url => "http://irssi.org/", | |||
| changed => "Sun May 25 18:59:57 BST 2008" | |||
| ); | |||
| sub sig_printtext { | |||
| my ($dest, $text, $stripped) = @_; | |||
| my $opt = MSGLEVEL_HILIGHT; | |||
| if(Irssi::settings_get_bool('hilightwin_showprivmsg')) { | |||
| $opt = MSGLEVEL_HILIGHT|MSGLEVEL_MSGS; | |||
| } | |||
| if( | |||
| ($dest->{level} & ($opt)) && | |||
| ($dest->{level} & MSGLEVEL_NOHILIGHT) == 0 | |||
| ) { | |||
| $window = Irssi::window_find_name('hilight'); | |||
| if ($dest->{level} & MSGLEVEL_PUBLIC) { | |||
| $text = $dest->{target}.": ".$text; | |||
| } | |||
| $text = strftime( | |||
| Irssi::settings_get_str('timestamp_format')." ", | |||
| localtime | |||
| ).$text; | |||
| $window->print($text, MSGLEVEL_NEVER) if ($window); | |||
| } | |||
| } | |||
| $window = Irssi::window_find_name('hilight'); | |||
| Irssi::print("Create a window named 'hilight'") if (!$window); | |||
| Irssi::settings_add_bool('hilightwin','hilightwin_showprivmsg',1); | |||
| Irssi::signal_add('print text', 'sig_printtext'); | |||
| # vim:set ts=4 sw=4 et: | |||
| @@ -0,0 +1,156 @@ | |||
| use strict; | |||
| use Irssi 20020101.0250 (); | |||
| use vars qw($VERSION %IRSSI); | |||
| $VERSION = "1"; | |||
| %IRSSI = ( | |||
| authors => "Timo Sirainen, Ian Peters", | |||
| contact => "tss\@iki.fi", | |||
| name => "Nick Color", | |||
| description => "assign a different color for each nick", | |||
| license => "Public Domain", | |||
| url => "http://irssi.org/", | |||
| changed => "2002-03-04T22:47+0100" | |||
| ); | |||
| # hm.. i should make it possible to use the existing one.. | |||
| Irssi::theme_register([ | |||
| 'pubmsg_hilight', '{pubmsghinick $0 $3 $1}$2' | |||
| ]); | |||
| my %saved_colors; | |||
| my %session_colors = {}; | |||
| my @colors = qw/2 3 4 5 6 7 9 10 11 12 13/; | |||
| sub load_colors { | |||
| open COLORS, "$ENV{HOME}/.irssi/saved_colors"; | |||
| while (<COLORS>) { | |||
| # I don't know why this is necessary only inside of irssi | |||
| my @lines = split "\n"; | |||
| foreach my $line (@lines) { | |||
| my($nick, $color) = split ":", $line; | |||
| $saved_colors{$nick} = $color; | |||
| } | |||
| } | |||
| close COLORS; | |||
| } | |||
| sub save_colors { | |||
| open COLORS, ">$ENV{HOME}/.irssi/saved_colors"; | |||
| foreach my $nick (keys %saved_colors) { | |||
| print COLORS "$nick:$saved_colors{$nick}\n"; | |||
| } | |||
| close COLORS; | |||
| } | |||
| # If someone we've colored (either through the saved colors, or the hash | |||
| # function) changes their nick, we'd like to keep the same color associated | |||
| # with them (but only in the session_colors, ie a temporary mapping). | |||
| sub sig_nick { | |||
| my ($server, $newnick, $nick, $address) = @_; | |||
| my $color; | |||
| $newnick = substr ($newnick, 1) if ($newnick =~ /^:/); | |||
| if ($color = $saved_colors{$nick}) { | |||
| $session_colors{$newnick} = $color; | |||
| } elsif ($color = $session_colors{$nick}) { | |||
| $session_colors{$newnick} = $color; | |||
| } | |||
| } | |||
| # This gave reasonable distribution values when run across | |||
| # /usr/share/dict/words | |||
| sub simple_hash { | |||
| my ($string) = @_; | |||
| chomp $string; | |||
| my @chars = split //, $string; | |||
| my $counter; | |||
| foreach my $char (@chars) { | |||
| $counter += ord $char; | |||
| } | |||
| $counter = $colors[$counter % 11]; | |||
| return $counter; | |||
| } | |||
| # FIXME: breaks /HILIGHT etc. | |||
| sub sig_public { | |||
| my ($server, $msg, $nick, $address, $target) = @_; | |||
| my $chanrec = $server->channel_find($target); | |||
| return if not $chanrec; | |||
| my $nickrec = $chanrec->nick_find($nick); | |||
| return if not $nickrec; | |||
| my $nickmode = $nickrec->{op} ? "@" : $nickrec->{voice} ? "+" : ""; | |||
| # Has the user assigned this nick a color? | |||
| my $color = $saved_colors{$nick}; | |||
| # Have -we- already assigned this nick a color? | |||
| if (!$color) { | |||
| $color = $session_colors{$nick}; | |||
| } | |||
| # Let's assign this nick a color | |||
| if (!$color) { | |||
| $color = simple_hash $nick; | |||
| $session_colors{$nick} = $color; | |||
| } | |||
| $color = "0".$color if ($color < 10); | |||
| $server->command('/^format pubmsg {pubmsgnick $2 {pubnick '.chr(3).$color.'$0}}$1'); | |||
| } | |||
| sub cmd_color { | |||
| my ($data, $server, $witem) = @_; | |||
| my ($op, $nick, $color) = split " ", $data; | |||
| $op = lc $op; | |||
| if (!$op) { | |||
| Irssi::print ("No operation given"); | |||
| } elsif ($op eq "save") { | |||
| save_colors; | |||
| } elsif ($op eq "set") { | |||
| if (!$nick) { | |||
| Irssi::print ("Nick not given"); | |||
| } elsif (!$color) { | |||
| Irssi::print ("Color not given"); | |||
| } elsif ($color < 2 || $color > 14) { | |||
| Irssi::print ("Color must be between 2 and 14 inclusive"); | |||
| } else { | |||
| $saved_colors{$nick} = $color; | |||
| } | |||
| } elsif ($op eq "clear") { | |||
| if (!$nick) { | |||
| Irssi::print ("Nick not given"); | |||
| } else { | |||
| delete ($saved_colors{$nick}); | |||
| } | |||
| } elsif ($op eq "list") { | |||
| Irssi::print ("\nSaved Colors:"); | |||
| foreach my $nick (keys %saved_colors) { | |||
| Irssi::print (chr (3) . "$saved_colors{$nick}$nick" . | |||
| chr (3) . "1 ($saved_colors{$nick})"); | |||
| } | |||
| } elsif ($op eq "preview") { | |||
| Irssi::print ("\nAvailable colors:"); | |||
| foreach my $i (2..14) { | |||
| Irssi::print (chr (3) . "$i" . "Color #$i"); | |||
| } | |||
| } | |||
| } | |||
| load_colors; | |||
| Irssi::command_bind('color', 'cmd_color'); | |||
| Irssi::signal_add('message public', 'sig_public'); | |||
| Irssi::signal_add('event nick', 'sig_nick'); | |||
| @@ -0,0 +1,90 @@ | |||
| ## | |||
| ## Put me in ~/.irssi/scripts, and then execute the following in irssi: | |||
| ## | |||
| ## /load perl | |||
| ## /script load notify | |||
| ## | |||
| use strict; | |||
| use Irssi; | |||
| use vars qw($VERSION %IRSSI); | |||
| use HTML::Entities; | |||
| $VERSION = "0.5"; | |||
| %IRSSI = ( | |||
| authors => 'Luke Macken, Paul W. Frields', | |||
| contact => 'lewk@csh.rit.edu, stickster@gmail.com', | |||
| name => 'notify.pl', | |||
| # description => 'Use D-Bus to alert user to hilighted messages', | |||
| description => 'Use notify-send to alert user to hilighted messages', | |||
| license => 'GNU General Public License', | |||
| url => 'http://code.google.com/p/irssi-libnotify', | |||
| ); | |||
| Irssi::settings_add_str('notify', 'notify_remote', ''); | |||
| sub sanitize { | |||
| my ($text) = @_; | |||
| encode_entities($text,'\'<>&'); | |||
| my $apos = "'"; | |||
| my $aposenc = "\'"; | |||
| $text =~ s/$apos/$aposenc/g; | |||
| $text =~ s/"/\\"/g; | |||
| return $text; | |||
| } | |||
| sub notify { | |||
| my ($server, $summary, $message) = @_; | |||
| # Make the message entity-safe | |||
| $summary = sanitize($summary); | |||
| $message = sanitize($message); | |||
| # my $cmd = "EXEC - " . | |||
| # "dbus-send --session /org/irssi/Irssi org.irssi.Irssi.IrssiNotify" . | |||
| # " string:'" . $summary . "'" . | |||
| # " string:'" . $message . "'"; | |||
| my $cmd = "EXEC - " . "notify-send '" . $summary . "' '" . $message . "'"; | |||
| $server->command($cmd); | |||
| my $remote = Irssi::settings_get_str('notify_remote'); | |||
| if ($remote ne '') { | |||
| my $cmd = "EXEC - ssh -q " . $remote . | |||
| " \"dbus-send --session /org/irssi/Irssi org.irssi.Irssi.IrssiNotify" . | |||
| " string:'" . $summary . "'" . | |||
| " string:'" . $message . "'\""; | |||
| $server->command($cmd); | |||
| } | |||
| } | |||
| sub print_text_notify { | |||
| my ($dest, $text, $stripped) = @_; | |||
| my $server = $dest->{server}; | |||
| return if (!$server || !($dest->{level} & MSGLEVEL_HILIGHT)); | |||
| my $sender = $stripped; | |||
| $sender =~ s/^\<.([^\>]+)\>.+/\1/ ; | |||
| $stripped =~ s/^\<.[^\>]+\>.// ; | |||
| my $summary = $dest->{target} . ": " . $sender; | |||
| notify($server, $summary, $stripped); | |||
| } | |||
| sub message_private_notify { | |||
| my ($server, $msg, $nick, $address) = @_; | |||
| return if (!$server); | |||
| notify($server, "PM from ".$nick, $msg); | |||
| } | |||
| sub dcc_request_notify { | |||
| my ($dcc, $sendaddr) = @_; | |||
| my $server = $dcc->{server}; | |||
| return if (!$dcc); | |||
| notify($server, "DCC ".$dcc->{type}." request", $dcc->{nick}); | |||
| } | |||
| Irssi::signal_add('print text', 'print_text_notify'); | |||
| Irssi::signal_add('message private', 'message_private_notify'); | |||
| Irssi::signal_add('dcc request', 'dcc_request_notify'); | |||
| @@ -0,0 +1,160 @@ | |||
| use strict; | |||
| use Irssi 20020101.0250 (); | |||
| use vars qw($VERSION %IRSSI); | |||
| $VERSION = "1"; | |||
| %IRSSI = ( | |||
| authors => "Timo Sirainen, Ian Peters", | |||
| contact => "tss\@iki.fi", | |||
| name => "Nick Color", | |||
| description => "assign a different color for each nick", | |||
| license => "Public Domain", | |||
| url => "http://irssi.org/", | |||
| changed => "2002-03-04T22:47+0100" | |||
| ); | |||
| # hm.. i should make it possible to use the existing one.. | |||
| Irssi::theme_register([ | |||
| 'pubmsg_hilight', '{pubmsghinick $0 $3 $1}$2' | |||
| ]); | |||
| my %saved_colors; | |||
| my %session_colors = {}; | |||
| my @colors = qw/ 2 3 4 5 6 7 9 10 11 12 13 14 15/; | |||
| sub load_colors { | |||
| open COLORS, "$ENV{HOME}/.irssi/saved_colors"; | |||
| while (<COLORS>) { | |||
| # I don't know why this is necessary only inside of irssi | |||
| my @lines = split "\n"; | |||
| foreach my $line (@lines) { | |||
| my($nick, $color) = split ":", $line; | |||
| $saved_colors{$nick} = $color; | |||
| } | |||
| } | |||
| close COLORS; | |||
| } | |||
| sub save_colors { | |||
| open COLORS, ">$ENV{HOME}/.irssi/saved_colors"; | |||
| foreach my $nick (keys %saved_colors) { | |||
| print COLORS "$nick:$saved_colors{$nick}\n"; | |||
| } | |||
| close COLORS; | |||
| } | |||
| # If someone we've colored (either through the saved colors, or the hash | |||
| # function) changes their nick, we'd like to keep the same color | |||
| # associated | |||
| # with them (but only in the session_colors, ie a temporary mapping). | |||
| sub sig_nick { | |||
| my ($server, $newnick, $nick, $address) = @_; | |||
| my $color; | |||
| $newnick = substr ($newnick, 1) if ($newnick =~ /^:/); | |||
| if ($color = $saved_colors{$nick}) { | |||
| $session_colors{$newnick} = $color; | |||
| } elsif ($color = $session_colors{$nick}) { | |||
| $session_colors{$newnick} = $color; | |||
| } | |||
| } | |||
| # This gave reasonable distribution values when run across | |||
| # /usr/share/dict/words | |||
| sub simple_hash { | |||
| my ($string) = @_; | |||
| chomp $string; | |||
| my @chars = split //, $string; | |||
| my $counter; | |||
| foreach my $char (@chars) { | |||
| $counter += ord $char; | |||
| } | |||
| $counter = $colors[$counter % 11]; | |||
| return $counter; | |||
| } | |||
| # FIXME: breaks /HILIGHT etc. | |||
| sub sig_public { | |||
| my ($server, $msg, $nick, $address, $target) = @_; | |||
| my $chanrec = $server->channel_find($target); | |||
| return if not $chanrec; | |||
| my $nickrec = $chanrec->nick_find($nick); | |||
| return if not $nickrec; | |||
| my $nickmode = $nickrec->{op} ? "@" : $nickrec->{voice} ? "+" : ""; | |||
| # Has the user assigned this nick a color? | |||
| my $color = $saved_colors{$nick}; | |||
| # Have -we- already assigned this nick a color? | |||
| if (!$color) { | |||
| $color = $session_colors{$nick}; | |||
| } | |||
| # Let's assign this nick a color | |||
| if (!$color) { | |||
| $color = simple_hash $nick; | |||
| $session_colors{$nick} = $color; | |||
| } | |||
| $color = "0".$color if ($color < 10); | |||
| $server->command('/^format pubmsg %b%w$2'.chr(3).$color.'$[-11]0%b | |||
| %K │ %n $1'); | |||
| # $server->command('/^format action_public {pubaction | |||
| # '.chr(3).$color.'$0}$1'); | |||
| } | |||
| sub cmd_color { | |||
| my ($data, $server, $witem) = @_; | |||
| my ($op, $nick, $color) = split " ", $data; | |||
| $op = lc $op; | |||
| if (!$op) { | |||
| Irssi::print ("No operation given"); | |||
| } elsif ($op eq "save") { | |||
| save_colors; | |||
| } elsif ($op eq "set") { | |||
| if (!$nick) { | |||
| Irssi::print ("Nick not given"); | |||
| } elsif (!$color) { | |||
| Irssi::print ("Color not given"); | |||
| } elsif ($color < 2 || $color > 14) { | |||
| Irssi::print ("Color must be between 2 and 14 inclusive"); | |||
| } else { | |||
| $saved_colors{$nick} = $color; | |||
| } | |||
| } elsif ($op eq "clear") { | |||
| if (!$nick) { | |||
| Irssi::print ("Nick not given"); | |||
| } else { | |||
| delete ($saved_colors{$nick}); | |||
| } | |||
| } elsif ($op eq "list") { | |||
| Irssi::print ("\nSaved Colors:"); | |||
| foreach my $nick (keys %saved_colors) { | |||
| Irssi::print (chr (3) . "$saved_colors{$nick}$nick" . | |||
| chr (3) . "1 ($saved_colors{$nick})"); | |||
| } | |||
| } elsif ($op eq "preview") { | |||
| Irssi::print ("\nAvailable colors:"); | |||
| foreach my $i (2..14) { | |||
| Irssi::print (chr (3) . "$i" . "Color #$i"); | |||
| } | |||
| } | |||
| } | |||
| load_colors; | |||
| Irssi::command_bind('color', 'cmd_color'); | |||
| Irssi::signal_add('message public', 'sig_public'); | |||
| Irssi::signal_add('event nick', 'sig_nick'); | |||