irssi: some help to format the interface.

rigoletto@

Developer
Hi!

I just started using irc/irssi, and I am creating a theme using the default one as base, but also grabbing something here and there.

As can be seen in the image, I manage to properly align the nicks but I am not being able to properly do the same with other messages like join/quit/etc and /me/etc.

I managed to align some of them but in a very *ugly* way (what I will not keep), and still I cannot get rid (or just modify) of the "line_start" setting in those messages specifically (the blue asterisk).

My intention is to archive that without using any script to modify the interface.

Screenshot

Code:
# 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 = { "[]=" = "%w$*%n"; };

abstracts = {
  ##
  ## generic
  ##

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

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

  # 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 = "[$*]";

  # 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 = "%w$*%g";
  chanhost_hilight = "{nickhost %w$*%n}";

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

  # highlighted channel name is printed
  channelhilight = "%b%_$*%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 = "%n$0$1-%B | %n %|";

  # message from you is printed. "ownnick" 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%4%_$*%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 = "%Y$*%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 = "%K:%c$*%n";

  # private message, $0 = nick, $1 = host
  privmsg = "[%R$0%K(%r$1-%K)%n] ";

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

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

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

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

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

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

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

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

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

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


  ##
  ## other IRC events
  ##

  # whois
  whois = "%# $[8]0 : $1-";

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

  # CTCPs
  ownctcp = "[%r$0%K(%R$1-%K)] ";
  ctcp = "%g$*%n";

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

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

  # /names list
  names_prefix = "";
  names_nick = "[%_$0%_$1-] ";
  names_nick_op = "{names_nick $*}";
  names_nick_halfop = "{names_nick $*}";
  names_nick_voice = "{names_nick $*}";
  names_users = "[%g$*%n]";
  names_channel = "%G$*%n";

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

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

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

  ##
  ## statusbar
  ##

  # default background for all statusbars. You can also give
  # the default foreground color for statusbar items.
  sb_background = "%W%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 = "%8";
  # 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 = "";
  # text at the end of statusbars. Use space so that it's never
  # used for anything.
  sbend = " ";

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

  prompt = "[$*] ";

  sb = " %w[%n$*%w]%n";
  sbmode = "(%w+%n$*)";
  sbaway = " (%GzZzZ%n)";
  sbservertag = ":$0 (change with ^X)";
  sbnickmode = "$0";

  # activity in statusbar

  # ',' separator
  sb_act_sep = "%w$*";
  # normal text
  sb_act_text = "%W$*";
  # public message
  sb_act_msg = "%W$*";
  # hilight
  sb_act_hilight = "%B$*";
  # hilight with specified color, $0 = color, $1 = text
  sb_act_hilight_color = "$0$1-%n";
};
[B]formats = {
  "fe-common/core" = {
    query_start = "              %g*%B |  %gStarting query%W on {server $1} w/ {nick $0}";
    join = "              %g*%B |  %K{channick_hilight $0} %gjoined%K {channel $2}";
    part = "              %y*%B |  %K{channick $0} %yleft%K {channel $2}";
    quit = "              %r*%B |  %K{channick $0} %rquit%k %w(%KReason: {reason $2}%w)";
    quit_once = "              %r*%B |  %K{channick $0} [{chanhost $1}] %rquit%K %w(%KReason: \012{reason $2}%w)";
    nick_changed = "              %y*%B |  %K{channick_hilight $0} %yis now known as%K {channick_hilight $1}";
 
    pubmsg = "{pubmsgnick {pubnick $[-16]0}$2}$1";
    own_msg = "{ownmsgnick {ownnick $[-16]0$2}}$1";
    own_msg_channel = "{ownmsgnick {ownnick $[-16]0$3}{msgchannel $1}}$2";
    pubmsg_me = "{pubmsgmenick {menick $[-16]0}$2}$1";
    pubmsg_me_channel = "{pubmsgmenick {menick $[-16]0$3}{msgchannel $1}}$2";
    pubmsg_hilight = "{pubmsghinick $0 $0 $[-16]1$3%n}$2";
    pubmsg_hilight_channel = "{pubmsghinick $0 $[-16]1$4{msgchannel $2}}$3";
    pubmsg_channel = "{pubmsgnick {pubnick $[-16]0}$2}$1";
    own_msg_private_query = "{ownprivmsgnick {ownprivnick $[-16]2}}$1";
    msg_private_query = "{privmsgnick $[-16]0}$2";
  };[/B]
  "Irssi::Script::anames" = { names_awaynick = "%K$0"; };
};

Thanks!!!
 
Back
Top