Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/dotfiles
Path: blob/master/roles/users/files/irssi/pipeline.theme
245 views
#!/bin/bash
#
#  pipeline
#
#  An Irssi theme inspired by madcow and skeita
#
#  Copyright (c) 2016 Beau Hastings. All rights reserved.
#  License: GNU General Public License v2
#
#  Author: Beau Hastings <[email protected]>
#  URL: https://github.com/hastinbe/irssi-theme-pipeline

replaces = { "/[]=" = "%K$*%n"; "*@+." = "%B$*%n"; };

#replaces = { "!@+" = "%r$*%n"; };
info_eol = "false";

abstracts = {
  ##
  ## generic
  ##

  # text to insert at the beginning of each non-message line
  #line_start = "%b.%c.%C.%n ";
  line_start = "";

  # timestamp styling, nothing by default
  timestamp = "%K$*%n";
  #timestamp = "%y$*%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 = "$*";
  channel = "%_$*%_";

  # nick is printed
  nick = "$*";

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

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

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

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

  # mode change is printed ([+o nick])
  #mode = "{comment %n[%W$*]%n}";
  mode = "%b$*%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 = "<%C$0%n$1-%n> %|";
  msgnick = "%b%n$0$1%K |%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-}";
  ownnick = "%W$*%n";

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

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

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

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

  # private message, $0 = nick, $1 = host
  #privmsg = "%b.%c.%C.%n(%c$0%n[%c$1]) ";
  privmsg = "[%w$0!%b$1-%n] ";

  # private message from you, $0 = "msg", $1 = target nick
  #ownprivmsg = "%b.%c.%C.%n[%cmsg%n(%c$1%n)] ";
  ownprivmsg = "{msgnick  $*}";

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

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

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

  # used internally by this theme
  action_core = "%W*%w $*%n";

  # generic one that's used by most actions
  action = "%w{action_core %w$*} ";

  # own action, both private/public
  ownaction = "{action $*}";

  # own action with target, both private/public
  ownaction_target = "{action_core $0}%K:%b$1%n ";

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

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


  ##
  ## other IRC events
  ##

  # notices
  ownnotice = "%b>%c>%C> %c$0%B!%c$1%n: ";
  notice = "%b$*%n ";
  pubnotice_channel = "%K:%m$*";
  pubnotice_host = "%K(%m$*%K)";
  servernotice = "%g!$*%n ";

  # CTCPs
  ownctcp = "%b>%c>%C> %c$0%B!%c$1%n: ";
  ctcp = "%m$*%n";

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

  # netsplits
  netsplit = "%B$*%n";
  netjoin = "%B$*%n";

  # /names list
  names_nick = "[%_$0%_%w$1-%n] ";
  names_users = "%b$*%n:";
  names_channel = "%B$*%n";

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

  # DCC chat, own msg/action
  dccownmsg = "[%b$0%K($1-%K)%n] ";
  dccownnick = "%B$*%n";
  dccownaction = "{action $*}";
  dccownaction_target = "{action_core $0}%K:%b$1%n ";

  # DCC chat, others
  dccmsg = "[%B$1-%K(%b$0%K)%n] ";
  dccquerynick = "%B$*%n";
  dccaction = "%W (*dcc*) $*%n %|";

  ##
  ## statusbar
  ##

  # background of statusbar
  sb_background = "%n";

  prompt = "%w$*%Y >>%n";

  # default statusbar item style
  sb = "%B[%K$*%B]%n";
  sbmode = " %b+%n$*";
  sbaway = " (%Baway%n)";
  sbservertag = ":%c$0";
  sbmore = "%_-- %ymore%n --%_";
  sblag = "{sb L: %B$*}";
  sbmail = "{sb M: $*}";

  # activity. Det is used for hilights when display doesn't support colors
  sbact = "{sb {sbact_act $0}{sbact_det $1}}";
  sbact_act = "A: $*";
  sbact_det = " D: $*";

  # usercount
  sb_usercount = "{sb %K$0%n $1-}";
  sb_uc_ircops = "%_*%_%K/%r$*%n";
  sb_uc_ops = "%_@%_%K/%g$*%n";
  sb_uc_halfops = "%_=%_%K/%g$*%n";
  sb_uc_voices = "%_+%_%K/%y$*%n";
  sb_uc_normal = "%_.%_%K/%K$*%n";
  sb_uc_space = " ";
};

# %r%n%_$0%_$1%K |%n %|
formats = {
  "fe-common/core" = {
    join = "%_%Kjoin%_%K |%n %g{channick_hilight $0}%K!%n{chanhost_hilight $1}";
    part = "%_%Kpart%_%K |%n %W{channick $0}%K!%n{chanhost $1}: {reason $3}";
    kick = "%_%Kkick%_%K |%n %r{channick $0} %nby {nick $2} from {channel $1}: {reason $3}";
    quit = "%_%Kquit%_%K |%n %W{channick $0}%K!%n{chanhost $1}: {reason $2}";
    nick_changed = "%_%Knick%_%K |%n {nick %w$0%n} %Nis now {nick %W$1%n}";
    endofnames = "{channel $0}: {hilight $1} nicks ({comment @/{hilight $2} +/{hilight $3}  -/{hilight $4}})";
    chanmode_change = "%_%Kmode%_%K |%n {$channel $0} %W{channick_hilight $2} %nsets mode %K{$mode $1}";
    channel_mode = "%_%Kmode%_%K |%n {$channel $0} %W{channick_hilight $2} %nsets mode %K{$mode $1}";
    own_msg = "{ownmsgnick $2 {ownnick $[0]0}}$1";
    pubmsg = "{pubmsgnick $2 {pubnick $nickcolor$0}}$1";
  };
  "fe-common/text" = { window_info_sticky = "%#  Sticky  : $0"; };
  "fe-common/irc" = {
    chanmode_change = "%_%Kmode%_%K |%n %y{channick_hilight $2} %nsets mode %b{$mode $1} %non {$channelhilight $0}";
    whois = "{hilight $0} [{nickhost $1@$2}] [$whois_country]%: ircname  : $3";
    server_chanmode_change = "{netsplit ServerMode}/{channelhilight $0}: {mode $1} by {nick $2}";
    whois_server = " server   : $1 ({comment $2})";
    own_action = "{ownaction  $0}%|$1";
    action_public = "{pubaction  $0}%|$1";
  };
  "Irssi::Script::adv_windowlist" = {
    awl_display_key_active = "%R$N${cumode_space}$H$C$S";
    awl_display_nokey_active = "%R$N${cumode_space}$H$C$S";
    awl_display_header = "";
    awl_display_key = "$N%K|%n$H$C$S";
    awl_display_key_visible = "$N%K|%n$H$C$S";
    awl_display_nokey = "$N%K|%n$H$C$S";
    awl_display_nokey_visible = "$N%K|%n$H$C$S";
  };
};