######################### madcow.theme by dubkat@efnet www.dubkat.org ##################################
# includes formats for scripts such as nact.pl kills.pl and chanact.pl
# this theme may not look too good directly in a term, but looks ok in putty if you have
# 'bolded text as alternate color' checked in your putty window/colours settings
# enjoy.

# 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 = {
  #  "[]" = "%B$*%n";
  "!@+" = "%r$*%n";
};

abstracts = {
  ##
  ## generic
  ##

  # text to insert at the beginning of each non-message line
  line_start = "";

  # timestamp styling, nothing by default
  timestamp = "%K$*%n";

  # 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 = "%_$*%_";

  # nick is printed
  nick = "%_$*%_";

  # nick host is printed
  nickhost = "$*";

  # server name is printed
  server = "%_$*%_";

  # some kind of comment is printed
  comment = "%r[%n$*%r]%n";

  # reason for something is printed (part, quit, kick, ..)
  reason = "{comment %_$*%_}";

  # mode change is printed ([+o nick])
  mode = "%r$*%n";

  ##
  ## channel specific messages
  ##

  # highlighted nick/host is printed (joins)
  channick_hilight = "$*";
  chanhost_hilight = "{nickhost $*}";

  # nick/host is printed (parts, quits, etc.)
  channick = "%W$*%n";
  chanhost = "{nickhost $*}";

  # highlighted channel name is printed
  channelhilight = "%R$*%n";

  # ban/ban exception/invite list mask is printed
  ban = "%r$*%n";

  ##
  ## messages
  ##

  # the basic styling of how to print message, $0 = nick mode, $1 = nick
  msgnick = "%r<%n%_$0%_$1%r>%n %|";

  # message from you is printed. "msgownnick" specifies the styling of the
  # nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the
  # whole line.

  # Example1: You want the message text to be green:
  #  ownmsgnick = "{msgnick $0 $1-}%g";
  # Example2.1: You want < and > chars to be yellow:
  #  ownmsgnick = "%Y{msgnick $0 $1-%Y}%n";
  #  (you'll also have to remove <> from replaces list above)
  # Example2.2: But you still want to keep <> grey for other messages:
  #  pubmsgnick = "%K{msgnick $0 $1-%K}%n";
  #  pubmsgmenick = "%K{msgnick $0 $1-%K}%n";
  #  pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n";
  #  ownprivmsgnick = "%K{msgnick  $*%K}%n";
  #  privmsgnick = "%K{msgnick  %R$*%K}%n";

  # $0 = nick mode, $1 = nick
  ownmsgnick = "{msgnick $0 $1-}%W";
  ownnick = "%r$*%n";

  # public message in channel, $0 = nick mode, $1 = nick
  pubmsgnick = "{msgnick $0$1-}";
  pubnick = "%w$*%n";

  # public message in channel meant for me, $0 = nick mode, $1 = nick
  pubmsgmenick = "{msgnick $0$1-}";
  menick = "%g$*%n";

  # public highlighted message in channel
  # $0 = highlight color, $1 = nick mode, $2 = nick
  pubmsghinick = "{msgnick $1 $0$2-%n}";

  # channel name is printed with message
  msgchannel = "%r:$*%n";

  # private message, $0 = nick, $1 = host
  privmsg = "[%w$0!%r$1-%n] ";

  # private message from you, $0 = "msg", $1 = target nick
  ownprivmsg = "[%r$0%b(%R$1-%b)%n] ";

  # own private message in query
  ownprivmsgnick = "{msgnick  $*}";
  ownprivnick = "%r$*%n";

  # private message in query
  privmsgnick = "{msgnick  %w$*%n}";

  ##
  ## Actions (/ME stuff)
  ##

  # used internally by this theme
  action_core = "%p            $*";

  # 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}%p:%c$1%n ";

  # private action sent by others
  pvtaction = "%p (*) $*%n ";
  pvtaction_query = "{action $* }";

  # public action sent by others
  pubaction = "{action $*}";


  ##
  ## other IRC events
  ##

  # whois
  whois = "%r$[-8]0%n  | %w$1-%n";

  # notices
  ownnotice = "[%w$0!%r$1-]%n ";
  notice = "[%rnotice%K(%n$*%K)%n] ";
  pubnotice_channel = "%R:%R$*";
  pvtnotice_host = "!%K$*%n";
  servernotice = "[%r$*%n]%B:%n %_";

  # CTCPs
  ownctcp = "[%w$0!%c$1-] ";
  ctcp = "%C$*%n";

  # wallops
  wallop = "%W$*%n: ";
  wallop_nick = "%n$*";
  wallop_action = "%W * $*%n ";

  # netsplits
  netsplit = "%R$*%n";
  netjoin = "%G$*%n";

  # /names list
  names_prefix = "%K>%r>%R>%n ";
  names_nick = "%K$0$1-%n ";
  names_nick_op = "%G$0%n%_$1-%_ ";
  names_nick_halfop = "%g$0%n%_$1-%_ ";
  names_nick_voice = "%Y$0%n$1- ";
  names_users = "[$*]";
  names_channel = "%r$*%n";

  # DCC
  dcc = "$*";
  dccfile = "%_$*%_";

  # DCC chat, own msg/action
  dccownmsg = "[%w$0!%r$1-%n] ";
  dccownnick = "%w$*%n";
  dccownquerynick = "%W$*%n";
  dccownaction = "{action $*}";
  dccownaction_target = "{action_core $0}%B:%c$1%n ";

  # DCC chat, others
  dccmsg = "[%w$1-!%g$0%n] ";
  dccquerynick = "%G$*%n";
  dccaction = "%W (*dcc*) $*%n %|";

  ##
  ## statusbar
  ##

  # default background for all statusbars. You can also give
  # the default foreground color for statusbar items.
  sb_background = "%4";

  # 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 = "%4";
  # 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 = " %W>%n ";
  # text at the end of statusbars. Use space so that it's never
  # used for anything.
  sbend = " %W<%n ";

  topicsbstart = "{sbstart $*}";
  topicsbend = "{sbend $*}";

  prompt = "%w$S%B/%w$*%n%B:%W ";

  sb = " %w$*%n";
  sbmode = " (+%W$*%n)";
  sbaway = " (%Waway%n)";
  sbservertag = ":$1";
  sbnickmode = "%W$0%n";

  # activity in statusbar

  # ',' separator
  sb_act_sep = "%w$*%n";
  # normal text
  sb_act_text = "%w$*%n";
  # public message
  sb_act_msg = "%W$*%n";
  # hilight
  sb_act_hilight = "%R$*%n";
  # hilight with specified color, $0 = color, $1 = text
  sb_act_hilight_color = "$0$1-%n";

  #usercount
  sb_usercount = "{sb %W[%W$0%n $1-}";
  sb_uc_ircops = "%wi/%R$*%n";
  sb_uc_ops = "%wo/%G$*%n";
  sb_uc_halfops = "%wh/%g$*%n";
  sb_uc_voices = "%wv/%Y$*%n";
  sb_uc_normal = "%wn/%W$*%W]%n";
  sb_uc_space = " ";

  #nact
  nact_display = "%W(%w$3%n%W)%n$0%G>%W$1%R>%n$2%W(%w$4%W)%n";
};

formats = {
  "fe-common/core" = {
    pubmsg = "{pubmsgnick $2 {pubnick \00312$[0]0}}$1";
    join = "             %K>%g>%G>%n {nick %W$0%n}!%n{chanhost_hilight %K$1%n}";
    part = "             %r<%n   {nick %w$0%n}!%n{chanhost_hilight %K$1%n} {reason %K$3%n}%n";
    kick = "             %R<%r<%K<%n {nick %w$0%n} {reason %w$3%n} %rkicked%n by {nick $2}";
    quit = "             %K<%n   {nick %w$0%n}!%n{chanhost_hilight %K$1%n} {reason %K$2%n}";
    nick_changed = "             %c~%n   {nick %w$0%n} %Nis now {nick %W$1%n}";
    new_topic = "%K>%r>%R>%n topic changed by $0: $2";
    daychange = "                     %K-----------------%w-%W-%n Day changed to %%D %W-%w-%K-----------------%n";
    own_msg = "{ownmsgnick $2 {ownnick $[-9]0}}$1";
    own_msg_channel = "{ownmsgnick $3 {ownnick $[-9]0}{msgchannel $1}}$2";
    pubmsg_me = "{pubmsgmenick $2 {menick $[-9]0}}$1";
    pubmsg_me_channel = "{pubmsgmenick $3 {menick $[-9]0}{msgchannel $1}}$2";
    pubmsg_hilight = "{pubmsghinick $0 $3 $[-9]1}$2";
    pubmsg_hilight_channel = "{pubmsghinick $0 $4 $[-9]1{msgchannel $2}}$3";
    pubmsg_channel = "{pubmsgnick $3 {pubnick $[-9]0}{msgchannel $1}}$2";
    own_msg_private_query = "{ownprivmsgnick {ownprivnick $[-9]2}}$1";
    msg_private_query = "{privmsgnick $[-9]0}$2";
    your_nick = "%K>%r>%R>%n %_Y%_our nickname is {nick $0}";
    your_nick_changed = "%K>%r>%R>%n %_Y%_ou're now known as {nick $1}";
    window_name_not_unique = "%K>%r>%R>%n Window names must be unique";
    window_level = "%K>%r>%R>%n Window level is now $0";
    window_set_immortal = "%K>%r>%R>%n Window is now immortal";
    window_unset_immortal = "%K>%r>%R>%n Window isn't immortal anymore";
    window_immortal_error = "%K>%r>%R>%n Window is immortal, if you really want to kill it, say /WINDOW IMMORTAL OFF";
    windowlist_header = "%#%r,--%wRef%r-%wName%r------------------%wActive item%r-----%wNetwork%r-----------%wLevels%r---->%n";
    windowlist_line = "%r|%n%#   $[3]0 %|$[20]1 $[15]2 $[15]3 $4";
    windowlist_footer = "%r`--------------------------------------------------->%n";
    windows_layout_saved = "%K>%r>%R>%n Window Layout has been %_Saved%_";
    windows_layout_reset = "%K>%r>%R>%n Womdpw Layout has been returned to %_I%_rssi Defaults";
    window_info_header = "%r%#,----%wwindow info%r---->%n";
    window_info_footer = "%r%#`----------------------->%n";
    window_info_refnum = "%# Window  : {hilight #$0}";
    window_info_refnum_sticky = "%# Window  : {hilight #$0 (sticky)}";
    window_info_name = "%# Name    : $0";
    window_info_history = "%# History : $0";
    window_info_immortal = "%# Immortal: yes";
    window_info_size = "%# Size    : $0x$1";
    window_info_level = "%# Level   : $0";
    window_info_server = "%# Server  : $0";
    window_info_server_sticky = "%# Server  : $0 (sticky)";
    window_info_theme = "%# Theme   : $0$1";
    window_info_items_header = "%#Items   : {hilight Name                           Server tag}";
    window_info_item = "%# $[7]0: $[!30]1 $2";
    window_info_items_footer = "%r-------------------------------->%n";

  };
  "fe-common/text" = { window_info_sticky = "%#  Sticky  : $0"; };

  "fe-common/irc" = {
    netsplit = "{netsplit                  } {server $0} %w<-%r\\->%n {server %R$1%n}: [$2]";
    netsplit_more = "{netsplit                  } %K-%w-%W-%n {server $0} %w<-%r\\->%n {server %K$1%n} %W-%w-%K-%n%:             %K<<<%n [$2%_+$3 more%_]";
    netsplit_join = "{netjoin              %G>>>%n} [$0]";
    netsplit_join_more = "{netjoin              %G>>%n} [$0\012%_+$1 more%_]";
    chanmode_change = "                 $2 sets {mode $1}";
    server_chanmode_change = "             {nick $2} sets {mode $1}";
    own_action = "{ownaction  $0}%|$1";
    action_public = "{pubaction  $0}%|$1";
    who = "%#{channelhilight $[-10]0} {nick %n$[9]1%n} $[3]2 $[2]3 {comment {hilight $[10]6}} {comment $[!18]7} {chanhost %n$4@$5}";
    whois = "%r,%B----------%r,%w----------%r(%W whois %r)%w--------- %B -%w  ---   -- %B  -%n %:     {whois %rnick%n $0}%n %: {whois host $1@$2}%: {whois gecos $3}";
    whois_idle = " {whois idle %|$1d $2h $3m $4s}";
    whois_idle_signon = " {whois idle %|$1d $2h $3m $4s {comment signon: $5}}";
    whois_server = " {whois server %|$1 {comment $2}}";
    whois_oper = " {whois operator %W$1-%n}";
    whois_registered = " {whois  registered}";
    whois_help = " {whois  is available for help}";
    whois_modes = " {whois modes $1}";
    whois_realhost = " {whois hostname $1-}";
    whois_usermode = " {whois usermode $1}";
    whois_channels = " {whois channels %|$1}";
    whois_away = " {whois away %|$1}";
    whois_special = " {whois info %|$1}";
    whois_extra = " {whois extra %|$1}";
    end_of_whois = "%r`%B----------%r`%w------ --  --- %B-%w ------ ---   %r--  %w-   %B-%n";
    whois_not_found = "%K>%r>%R>%N There is no such nick $0";
    default_event_server = " {whois remote $1 from %K$0%n}";
    usermode_change = "%K>%r>%R>%n %_Y%_ou have set user mode {mode $0}";
    user_mode = "%K>%r>%R>%n %_Y%_our user mode is {mode $0}";
    away = "%K>%r>%R>%n %_Y%_ou have been marked as being %_away%_";
    unaway = "%K>%r>%R>%n %_Y%_ou are no longer marked %_away%_, Welcome Back!";
    nick_away = "%K>%r>%R>%n {nick $0} is away: $1";
    no_such_nick = "%K>%r>%R>%n {nick $0}: No such nickname";
    nick_in_use = "%K>%r>%R>%n Nick {nick $0} is already in use";
    nick_unavailable = "%K>%r>%R>%n Nick {nick $0} is %_Juped%_";
    your_nick_owned = "%K>%r>%R>%n Your nick is Chowned by {nick $3} {comment $1@$2}";
    kill = "%r>%r>%r>%n %_Y%_ou were {error killed} by {nick $0} {nickhost $1} {reason $2} {comment Path: $3}";
    kill_server = "%r>%r>%r>%n %_Y%_ou were {error killed} by {server $0} {reason $1} {comment Path: $2}";
    default_event = "%K>%r>%R>%n $1";
    unknown_mode = "%K>%r>%R>%n %_U%_nknown mode character $0";
    joinerror_toomany = "%K>%r>%R>%n %_M%_ax Channels Exceeded! Cannot join {channel $0}";
    joinerror_full = "%K>%r>%R>%n %_C%_hannel Limit Reached... Cannot join {channel $0}";
    joinerror_invite = "%K>%r>%R>%n %_C%_annot join {channel $0} without an %_I%_nvite";
    joinerror_banned = "%K>%r>%R>%n %_Y%_ou are %rBANNED%n from {channel $0}";
    joinerror_bad_key = "%K>%r>%R>%n %_K%_ey required to join {channel $0}";
    joinerror_bad_mask = "%K>%r>%R>%n %_C%_annot join to channel {channel $0} (Bad channel mask)";
    joinerror_unavail = "%K>%r>%R>%n {channel $0} is %_JUPED%_ %:%K>%r>%R>%n %_R%_epeated attempts to join {channel $0} could result in a %_k-line%_";
    joinerror_duplicate = "%K>%r>%R>%n {channel $0} already exists";
    channel_rejoin = "%K>%r>%R>%n {channel $0} is temporarily unavailable, most likely because of a netsplit. %_I%_rssi will now automagicly try to rejoin this channel untill sucessful. %:%K>%r>%R>%n %_A%_uto-rejoin initiated. Use %_/RMREJOINS%_ to abort.";
    inviting = "%K>%r>%R>%n %_I%_nviting {nick $0} to {channel $1}";
    channel_created = "%K>%r>%R>%n %_T%_his Channel was created on $1";
    url = "%K>%r>%R>%n Home page for {channelhilight $0}: $1";
    topic = "%K>%r>%R>%n Topic for {channelhilight $0}: $1";
    no_topic = "%K>%r>%R>%n No topic set for {channelhilight $0}";
    topic_info = "%K>%r>%R>%n Topic set by {nick $0} {nickhost $2} {comment $1}";
    bantype = "%K>%r>%R>%n Ban type changed to {channel $0}";
    no_bans = "%K>%r>%R>%n No bans in {channel $0}";
    banlist = "%K>%r>%R>%n $0 - {channel $1}: ban {ban $2}";
    banlist_long = "%K>%r>%R>%n $0 - {channel $1}: ban {ban $2} {comment by {nick $3}, $4 secs ago}";
    ebanlist = "%K>%r>%R>%n {channel $0}: ban exception {ban $1}";
    ebanlist_long = "%K>%r>%R>%n {channel $0}: ban exception {ban $1} {comment by {nick $2}, $3 secs ago}";
    no_invitelist = "%K>%r>%R>%n Invite list is empty for {channel $0}";
    invitelist = "%K>%r>%R>%n {channel $0}: invite {ban $1}";
    no_such_channel = "%K>%r>%R>%n {channel $0}: No such channel";
    channel_synced = "%K>%r>%R>%n Join to {channel $0} was synced in {hilight $1} secs";
    ircnet_added = "%K>%r>%R>%n Ircnet $0 saved";
    ircnet_removed = "%K>%r>%R>%n Ircnet $0 removed";
    ircnet_not_found = "%K>%r>%R>%n Ircnet $0 not found";
    ircnet_header = "%#%r,--------------------------( %WNETWORKS %r)--------------------------->";
    ircnet_line = "%#%r|%n  %_$0%_:  $1";
    ircnet_footer = "%#%r`------------------------------------------------->";
    no_netsplits = "%K>%r>%R>%n No Detected %_N%_etsplits! :)";
    netsplits_header = "%#%r,--%WNick%r------%WChannel%r----%WServer%r---------------#WSplit Server%r---->%n";
    netsplits_line = "%r|%#%n   $[9]0 $[10]1 $[20]2 $3";
    netsplits_footer = "%r`-------------------------------------------------->%n";
    channel_mode = "%K>%r>%R>%n %_M%_odes for $0 {mode $1}";

  };

  # kills.pl reformat
  "Irssi::Script::kills" = {
    kill_public = "             %B<<<%n {channick %B$0%n}!{chanhost %K$1%n} {reason %w$4%n} %Bkilled%n by {nick %W$2%n}$3";
  };
};

