# $Id: $ # # Filename: ~/.irssi/painless.theme # Purpose: Just another theme for irssi # Author: Christian Schneider # Latest release : http://strcat.pebcak.de/dotfiles/#irssi # # Structure of this file: # Lines starting with '#' are comments. # # When testing changes, the easiest way to reload the theme is with /RELOAD. # This reloads the configuration file too, so if you did any changes remember # to /SAVE it first. Remember also that /SAVE overwrites the theme file with # old data so keep backups :) # # # TEMPLATES: # # The real text formats that irssi uses are the ones you can find with # /FORMAT command. Back in the old days all the colors and texts were mixed # up in those formats, and it was really hard to change the colors since you # might have had to change them in tens of different places. So, then came # this templating system. # Now the /FORMATs don't have any colors in them, and they also have very # little other styling. Most of the stuff you need to change is in this # theme file. If you can't change something here, you can always go back # to change the /FORMATs directly, they're also saved in these .theme files. # # So .. the templates. They're those {blahblah} parts you see all over the # /FORMATs and here. Their usage is simply {name parameter1 parameter2}. # When irssi sees this kind of text, it goes to find "name" from abstracts # block below and sets "parameter1" into $0 and "parameter2" into $1 (you # can have more parameters of course). Templates can have subtemplates. # Here's a small example: # /FORMAT format hello {colorify {underline world}} # abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; } # When irssi expands the templates in "format", the final string would be: # hello %G%Uworld%U%n # ie. underlined bright green "world" text. # and why "$0-", why not "$0"? $0 would only mean the first parameter, # $0- means all the parameters. With {underline hello world} you'd really # want to underline both of the words, not just the hello (and world would # actually be removed entirely). # # # COLORS: # # You can find definitions for the color format codes in docs/formats.txt. # There's one difference here though. %n format. Normally it means the # default color of the terminal (white mostly), but here it means the # "reset color back to the one it was in higher template". For example # if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would # print yellow "foo" (as set with %Y) but "bar" would be green, which was # set at the beginning before the {foo} template. If there wasn't the %g # at start, the normal behaviour of %n would occur. If you _really_ want # to use the terminal's default color, use %N. # 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 = { "!" = "%R$*%n"; "[]=" = "%K$*%n"; }; abstracts = { # text to insert at the beginning of each non-message line line_start = "%K<%n%r*%n%K>%n "; # timestamp styling, nothing by default timestamp = "%w$*%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 = "%_$*%_"; # 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 = "{highlight %p$*%n}"; ## channel specific messages # highlighted nick/host is printed (joins) # channick_hilight = "$*"; chanhost_hilight = "{nickhost $*%n}"; # nick/host is printed (parts, quits, etc.) channick = "$*"; chanhost = "{nickhost $*%n}"; # 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 = "%w$0%B$1-%n: %|"; #-------------------------------------------------- # msgnick = "[%w$0%B$1-]%n: %|"; #-------------------------------------------------- # msgnick = "%p$0%n$1-: %|"; # msgnick = "[%G$0%B$1-]%n: %|"; # msgnick = "%G$0%C$1 %K) %|%w"; # msgnick = "%_$0%_$1%g:%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 = "%w$*%n"; # ownnick = "%r$*%n"; # public message in channel, $0 = nick mode, $1 = nick pubmsgnick = "{msgnick $0$1-}"; pubnick = "$0-%g"; # pubnick = "%p$*%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 = "%r:$*%n"; # private message, $0 = nick, $1 = host privmsg = "<-[msg %y$0%n] "; # private message from you, $0 = "msg", $1 = target nick ownprivmsg = "->[msg %y$1-%n] "; # own private message in query ownprivmsgnick = "{msgnick $*}"; ownprivnick = "%w$*%n"; # private message in query privmsgnick = "{msgnick %r$*%n}"; ## Actions (/ME stuff) # used internally by this theme action_core = "$*"; # generic one that's used by most actions action = "%R + %n{action_core $*} "; # own action, both private/public ownaction = "%G + %n{action_core $*} "; # own action with target, both private/public ownaction_target = "{action_core $0}%p:%c$1%n "; # private action sent by others pvtaction = "%r (!)%n $* "; pvtaction_query = "{action $*}"; # public action sent by others pubaction = "{action $*}"; ## other IRC events # whois whois = " %r: %W$[8]0%n %r: %w$1-%n"; # notices ownnotice = "->[notice %y$1-%n] "; notice = "<-[notice %y$*%n] "; pubnotice_channel = "%R:%R$*"; pvtnotice_host = ""; servernotice = "%g: %w$*%g :%n %_"; # CTCPs ownctcp = "%rCTCP --|%n .:[%n Request $0 from $1- ]%n: "; ctcp = "%rCTCP --|%n $*"; # wallops wallop = "%W$*%n: "; wallop_nick = "%n$*"; wallop_action = "%W * $*%n "; # netsplits netsplit = "%R$*%n"; netjoin = "%G$*%n"; # /names list names_prefix = " %r:%n "; names_nick = "[%_$0%_$1-] "; names_nick_op = "%r{names_nick $*}%n"; names_nick_halfop = "%r{names_nick $*}%n"; names_nick_voice = "%y{names_nick $*}%n"; names_users = "[%w$*%n]"; names_channel = "in %r$0-%n"; # names_channel = "%r$*%n"; # DCC dcc = "%r- $0-%n"; dccfile = "$0-"; # DCC chat, own msg/action dccownmsg = "%Y$1%n "; dccownnick = "%K$0-%n"; dccownaction = "{action $0-}"; dccownaction_target = "{action_core $0}%K:%c$1%n "; # DCC chat, others dccmsg = "[%G$1-%K(%g$0%K)%n] "; dccquerynick = "%G$0-%n"; dccaction = "%W (*dcc*) $0-%n %|"; ## statusbar # default background for all statusbars. You can also give # the default foreground color for statusbar items. # sb_background = "%b%K"; # background for prompt / input line sb_prompt_bg = "%n"; # background for info statusbar sb_info_bg = " "; # background for topicbar (same default) sb_topic_fg = "%6"; 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[%R=%K]-"; # text at the end of statusbars. Use space so that it's never # used for anything. sbend = "%K[%R=%K]%n"; sb_daumode = "{sb daumode I: $0 ($1) O: $2 ($3)}"; ## topics/misc topicsbstart = "Topic:{sbstart $*}"; topicsbend = "{sbend $*}"; prompt = "%w$chatnet%B/%w$*%n%B:%W "; #-------------------------------------------------- # prompt = "[$C]: "; #-------------------------------------------------- sb = "%K(%w$*%K)-%n"; sbmode = " (+%K$*%n)"; sbaway = " (%Kaway%n)"; sbservertag = ":$0 (change with ^X)"; sbnickmode = "%_$0%_"; sblag = "{sb Lagging %r$0-%K seconds!}"; # activity in statusbar # ',' separator sb_act_sep = "$*"; # normal text sb_act_text = "%Y$*"; # public message sb_act_msg = "%w$*"; # hilight sb_act_hilight = "%G$*"; # hilight with specified color, $0 = color, $1 = text sb_act_hilight_color = "$0$1-%n"; # usercount sb_info1_bg = "%n"; sb_window_bg = "%4%W"; sb_window2_bg = "%4%W"; sb_info2_bg = "%n"; sb_usercount = "{sb Total:%w$0%n $1-}"; sb_uc_ircops = "Opers:%w$*%n"; sb_uc_ops = "Chanop:%w$*%n"; sb_uc_halfops = "Halfop:%w$*%n"; sb_uc_voices = "Voice:%w$*%n"; sb_uc_normal = "Regular:%w$*%n"; sb_uc_space = " "; # nact nact_display = "%B(%b$3%n%B)%n$0%G>%W$1%R>%n$2%B(%b$4%B)%n"; }; formats = { "fe-common/core" = { new_topic = "Topic for {channel $1} changed by {channick $0} to: $2"; topic_unset = "Topic for {channel $1} unset by {channick $0}"; talking_in = "You are now talking in {channel $0}"; pubmsg = "{pubmsgnick {pubnick $[-12]0}$2}$1"; join = "join -->%n {nick %w.:[ $0 %n{chanhost_hiligh %g($1)%n} ]:.} %whas joined to {channel $2}"; part = "part <--%n {nick %w.:[ $0 %n{chanhost_hiligh %g($1)%n} ]:.} %whas left {channel $2}"; kick = "%rkicked:%n {channick_hilight $0} was kicked from {channel $1} by {nick $2} ({reason $3})"; quit = "%yQuit --|%n {channick $0} {chanhost_hilight $1} {reason $2}"; nick_changed = "%ynickchange -->%n {channick %r$0%n} changed nick to {channick %r$1%n}"; # own_msg = "{ownmsgnick {ownnick $[-13]0$2}}$1"; # own_msg_channel = "{ownmsgnick {ownnick $[-13]0$3}{msgchannel $1}}$2"; # pubmsg_me = "{pubmsgmenick {menick $[-13]0}$2}$1"; # pubmsg_me_channel = "{pubmsgmenick {menick $[-13]0$3}{msgchannel $1}}$2"; # pubmsg_hilight = "{pubmsghinick $0 $0 $[-13]1$3%n}$2"; # pubmsg_hilight_channel = "{pubmsghinick $0 $[-13]1$4{msgchannel $2}}$3"; # pubmsg_channel = "{pubmsgnick {pubnick $[-13]0$3}{msgchannel $1}}$2"; # own_msg_private_query = "{ownprivmsgnick {ownprivnick $[-9]2}}$1"; # msg_private_query = "{privmsgnick $[-9]0}$2"; own_msg = "{ownmsgnick {ownnick $[-12]0$2}}$1"; own_msg_channel = "{ownmsgnick {ownnick $[-12]0$3}{msgchannel $1}}$2"; pubmsg_me = "{pubmsgmenick {menick $[-12]0}$2}$1"; pubmsg_me_channel = "{pubmsgmenick {menick $[-12]0$3}{msgchannel $1}}$2"; pubmsg_hilight = "{pubmsghinick $0 $0 $[-12]1$3%n}$2"; pubmsg_hilight_channel = "{pubmsghinick $0 $[-12]1$4{msgchannel $2}}$3"; pubmsg_channel = "{pubmsgnick {pubnick $[-12]0$3}{msgchannel $1}}$2"; own_msg_private_query = "{ownprivmsgnick {ownprivnick $[-12]2}}$1"; msg_private_query = "{privmsgnick $[-12]0}$2"; }; "fe-common/irc" = { ctcp_reply = "{ctcp CTCP {hilight $0} reply from {nick $1}: $2 }"; ctcp_reply_channel = "{ctcp CTCP {hilight $0} reply from {nick $1} in channel {channel $3}: $2 }"; ctcp_ping_reply = "{ctcp CTCP {hilight PING} reply from {nick $0}: $1.$[-3.0]2 seconds }"; netsplit = "{netsplit %rsplit %R<<%n} {server $0} %w<-%r\\->%n {server %R$1%n}: [$2]"; netsplit_more = "{netsplit %rsplit %R<<%n} {server $0} %W<-%r\\->%n {server %R$1%n}: [$2%_+$3 more%_]"; netsplit_join = "{netjoin %gre-join %G>>%n} [$0]"; netsplit_join_more = "{netjoin %gre-join %G>>%n} [$0\012%_+$1 more%_]"; chanmode_change = "Modechange -->%n %w{nick $2} set mode%n [{mode $1}]"; inviting = "Inviting -->%n %w{nick $0} to {channel $1}%n"; server_chanmode_change = "%rserv #%n [{mode $1}] by {nick $2}"; own_action = "{ownaction $[-10]0} $1"; action_public = "{pubaction $[-10]0}$1"; topic_info = "Topic set by {channick $0} {comment $1}"; }; # Script Addons.... # kills.pl reformat "Irssi::Script::kills" = { kill_public = "%rkilled :%n {channick %w$0%n}!{chanhost $1%n} {reason %w$4%n} by {nick %W$2%n}$3"; }; };