diff --git a/.irssi/rainbow-dark.theme b/.irssi/rainbow-dark.theme index 9dfd47ba..f7d767d4 100644 --- a/.irssi/rainbow-dark.theme +++ b/.irssi/rainbow-dark.theme @@ -1,241 +1,298 @@ -# rainbow-dark.theme -# -# A dark-background irssi theme that leans into a full rainbow for -# highlights, nicks, and statusbar accents. Reads best on a true-black -# or near-black terminal background (e.g. xterm-256color, 80% opacity, -# no bright-bold forced to normal weight). -# -# Activate: -# /set theme rainbow-dark -# /save -# -# When testing changes: /RELOAD picks up edits without restarting irssi. -# Remember to /SAVE before /RELOAD — /SAVE will overwrite this file -# otherwise. Keep a backup. +# 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"; -# Fade any bracket-ish punctuation to dark grey so the rainbow colors pop. -replaces = { "[]=()<>" = "%z4a90e2$*%n"; }; +# these characters are automatically replaced with specified color +# (dark grey by default) +replaces = { "[]=" = "%K$*%n"; }; abstracts = { ## ## generic ## - # Rainbow dash at the start of non-message lines. Rotates R O Y G B I V - # across seven characters for the classic prism. - line_start = "%R-%Y-%Y-%G-%C-%B-%M-%n "; + # text to insert at the beginning of each non-message line — rainbow dashes + line_start = "%R-%Y-%G-%C-%B-%M-%n "; - # Dim cyan timestamps — present but recessive. - timestamp = "%z4a90e2$*%n"; + # timestamp styling, nothing by default + timestamp = "$*"; - # Highlight anything important in bold yellow. - hilight = "%_%Y$*%n%_"; + # any kind of text that needs hilighting, default is to bold + hilight = "%_$*%_"; - # Errors in bright red, bold. - error = "%_%R$*%n%_"; + # any kind of error message, default is bright red + error = "%R$*%n"; - # Channel names: bright magenta, bold. - channel = "%_%M$*%n%_"; + # channel name is printed + channel = "%_$*%_"; - # Default nick styling: bold cyan. - nick = "%_%C$*%n%_"; + # nick is printed + nick = "%_$*%_"; - # Nick-host wrapped in dark-grey square brackets (picked up by "replaces"). - nickhost = "[%z4a90e2$*%n]"; + # nick host is printed + nickhost = "[$*]"; - # Server names: bright blue. - server = "%_%B$*%n%_"; + # server name is printed + server = "%_$*%_"; - # Generic bracketed comment: fade to dark grey. - comment = "[%z4a90e2$*%n]"; + # some kind of comment is printed + comment = "[$*]"; + + # reason for something is printed (part, quit, kick, ..) reason = "{comment $*}"; - mode = "{comment $*}"; + + # mode change is printed ([+o nick]) + mode = "{comment $*}"; ## - ## channel-specific messages (joins, parts, quits, etc.) + ## channel specific messages ## - # Someone new showing up (join) — bright green. - channick_hilight = "%_%G$*%n%_"; - chanhost_hilight = "{nickhost %g$*%n}"; + # highlighted nick/host is printed (joins) + channick_hilight = "%C$*%n"; + chanhost_hilight = "{nickhost %c$*%n}"; - # Someone leaving (part/quit) — dim red. - channick = "%r$*%n"; - chanhost = "{nickhost %z4a90e2$*%n}"; + # nick/host is printed (parts, quits, etc.) + channick = "%c$*%n"; + chanhost = "{nickhost $*}"; - # Highlighted channel reference — bright magenta. - channelhilight = "%_%M$*%n%_"; + # highlighted channel name is printed + channelhilight = "%c$*%n"; - # Ban / invite masks — dim red. - ban = "%r$*%n"; + # ban/ban exception/invite list mask is printed + ban = "%c$*%n"; ## ## messages ## - # Angle brackets around nicks stay dark grey so the nick color is the star. - # Trailing %w tints the message body dim grey so it doesn't compete with - # the rainbow accents. - msgnick = "%z4a90e2<%n$0$1-%z4a90e2>%n %|%z4a90e2"; + # the basic styling of how to print message, $0 = nick mode, $1 = nick + msgnick = "%K<%n$0$1-%K>%n %|"; - # Messages from you. + # 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 = "%_%M$*%n%_"; + ownnick = "%_$*%n"; - # Normal public messages — nick gets a bright cyan. + # public message in channel, $0 = nick mode, $1 = nick pubmsgnick = "{msgnick $0 $1-}"; - pubnick = "%_%C$*%n%_"; + pubnick = "%N$*%n"; - # Messages addressed to you (@you) — bright yellow nick to catch the eye. + # public message in channel meant for me, $0 = nick mode, $1 = nick pubmsgmenick = "{msgnick $0 $1-}"; - menick = "%_%Y$*%n%_"; + menick = "%Y$*%n"; - # Hilighted message (keyword triggered). + # public highlighted message in channel + # $0 = highlight color, $1 = nick mode, $2 = nick pubmsghinick = "{msgnick $1 $0$2-%n}"; - # channel prefix on a message: ":#chan" in bright magenta. - msgchannel = "%z4a90e2:%M$*%n"; + # channel name is printed with message + msgchannel = "%K:%c$*%n"; - # Private messages — heavy bright-magenta framing so queries stand apart. - privmsg = "[%_%M$0%_%z4a90e2(%m$1-%z4a90e2)%n] "; - ownprivmsg = "[%_%m$0%_%z4a90e2(%M$1-%z4a90e2)%n] "; + # private message, $0 = nick, $1 = host + privmsg = "[%R$0%K(%r$1-%K)%n] "; - # Private message in a query window. + # 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 = "%_%M$*%n%_"; - privmsgnick = "{msgnick %_%M$*%n%_}"; + ownprivnick = "%_$*%n"; + + # private message in query + privmsgnick = "{msgnick %R$*%n}"; ## - ## Actions (/me) + ## Actions (/ME stuff) ## - # Bright yellow asterisks so actions are unmistakable. Action text in dim - # grey to match ordinary message bodies. - action_core = "%_%Y * %n%z4a90e2$*%n"; - action = "{action_core $*} "; - ownaction = "{action $*}"; - ownaction_target = "{action_core $0}%z4a90e2:%M$1%n "; + # used internally by this theme + action_core = "%_ * $*%n"; - # Private actions get a parenthesized asterisk; keep it in bright yellow. - pvtaction = "%_%Y (*) %n%z4a90e2$*%n "; + # generic one that's used by most actions + action = "{action_core $*} "; + + # own action, both private/public + ownaction = "{action $*}"; + + # 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 $*}"; - pubaction = "{action $*}"; + + # public action sent by others + pubaction = "{action $*}"; + ## ## other IRC events ## - # whois — cyan field name, dim-grey value - whois = "%z4a90e2 %# $[8]0 : %n%z4a90e2$1-%n"; + # whois + whois = "%# $[8]0 : $1-"; - # notices — magenta stays the "alert" color - ownnotice = "[%_%m$0%_%z4a90e2(%M$1-%z4a90e2)]%n "; - notice = "%z4a90e2-%_%M$*%_%z4a90e2-%n "; - pubnotice_channel = "%z4a90e2:%m$*"; - pvtnotice_host = "%z4a90e2(%m$*%z4a90e2)"; + # notices + ownnotice = "[%r$0%K(%R$1-%K)]%n "; + notice = "%K-%M$*%K-%n "; + pubnotice_channel = "%K:%m$*"; + pvtnotice_host = "%K(%m$*%K)"; + servernotice = "%g!$*%n "; - # server notices — bright green bang, dim-grey body - servernotice = "%_%G!%n%z4a90e2$*%n "; - - # CTCPs — bright green - ownctcp = "[%_%g$0%_%z4a90e2(%G$1-%z4a90e2)] "; - ctcp = "%_%G$*%n%_"; + # CTCPs + ownctcp = "[%r$0%K(%R$1-%K)] "; + ctcp = "%g$*%n"; # wallops - wallop = "%_%Y$*%n%_: "; - wallop_nick = "%z4a90e2$*%n"; - wallop_action = "%_%Y * %n%z4a90e2$*%n "; + wallop = "%_$*%n: "; + wallop_nick = "%n$*"; + wallop_action = "%_ * $*%n "; - # netsplits / netjoins — red fall, green rise - netsplit = "%_%R$*%n%_"; - netjoin = "%_%G$*%n%_"; + # netsplits + netsplit = "%R$*%n"; + netjoin = "%C$*%n"; - # /names list — each name gets bright cyan brackets - names_prefix = ""; - names_nick = "[%_%C$0%n%_$1-] "; - names_nick_op = "{names_nick $*}"; - names_nick_halfop = "{names_nick $*}"; - names_nick_voice = "{names_nick $*}"; - names_users = "[%g$*%n]"; - names_channel = "%_%M$*%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 — green family so transfers read as "network-y" - dcc = "%_%G$*%n%_"; - dccfile = "%_%z4a90e2$*%n%_"; + # DCC + dcc = "%g$*%n"; + dccfile = "%_$*%_"; # DCC chat, own msg/action - dccownmsg = "[%_%r$0%_%z4a90e2($1-%z4a90e2)%n] "; - dccownnick = "%_%R$*%n%_"; - dccownquerynick = "%_%M$*%n%_"; - dccownaction = "{action $*}"; - dccownaction_target = "{action_core $0}%z4a90e2:%M$1%n "; + 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-%_%z4a90e2(%g$0%z4a90e2)%n] "; - dccquerynick = "%_%G$*%n%_"; - dccaction = "%_%Y (*dcc*) %n%z4a90e2$*%n %|"; + dccmsg = "[%G$1-%K(%g$0%K)%n] "; + dccquerynick = "%G$*%n"; + dccaction = "%_ (*dcc*) $*%n %|"; ## - ## statusbar — the rainbow lives here + ## statusbar ## - # Explicit black bg with light-grey fg. (%8 / "default" bg varied per - # terminal — on some it renders as reverse-video white, breaking the - # dark aesthetic.) Individual items override with their own rainbow. - sb_background = "%0%w"; + # default background for all statusbars. You can also give + # the default foreground color for statusbar items. + sb_background = "%4%w"; - # Input line sits on the terminal's normal background. - sb_prompt_bg = "%n"; + # 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"; - # Info bar (middle statusbar) — same explicit black. - sb_info_bg = "%0"; + # 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 = " "; - sbstart = ""; - sbend = " "; topicsbstart = "{sbstart $*}"; - topicsbend = "{sbend $*}"; + topicsbend = "{sbend $*}"; - prompt = "%_%M[%n$*%_%M]%n%_ "; - sb = " %M[%n$*%M]%n"; - sbmode = "(%G+%n$*)"; - sbaway = " (%YzZzZ%n)"; - sbservertag = ":%C$0%n (^X)"; - sbnickmode = "%Y$0%n"; + prompt = "[$*] "; - # activity in statusbar — rotates through the rainbow. - sb_act_sep = "%z4a90e2$*"; - sb_act_text = "%G$*"; # plain chatter (green) - sb_act_msg = "%_%C$*%_"; # someone said something (cyan) - sb_act_hilight = "%_%M$*%_"; # something for you (magenta) + sb = " %c[%n$*%c]%n"; + sbmode = "(%c+%n$*)"; + sbaway = " (%GzZzZ%n)"; + sbservertag = ":$0 (change with ^X)"; + sbnickmode = "$0"; + + # activity in statusbar — rainbow escalation: + # green (quiet chatter) → yellow (someone said something) → red (hilight) + + # ',' separator + sb_act_sep = "%K$*"; + # normal text (low-stakes activity) + sb_act_text = "%G$*"; + # public message (someone said something in a channel) + sb_act_msg = "%Y$*"; + # hilight (something directed at you) + sb_act_hilight = "%R$*"; + # hilight with specified color, $0 = color, $1 = text sb_act_hilight_color = "$0$1-%n"; }; - formats = { - # Common channel-event formats get explicitly wrapped in %z4a90e2 (dark grey) - # so the plain-text body doesn't fall through to the terminal default - # (which on a typical dark terminal is stark white). - "fe-common/core" = { - pubmsg = "{pubmsgnick $2 {pubnick \00305$0}}$1"; - join = "%z4a90e2-->%n {channick_hilight $0} {chanhost_hilight $1} has joined {channel $2}"; - part = "%z4a90e2<--%n {channick $0} {chanhost $1} %z4a90e2has left%n {channel $2} {reason $3}"; - quit = "%z4a90e2<--%n {channick $0} {chanhost $1} %z4a90e2has quit%n {reason $2}"; - quit_once = "%z4a90e2<--%n {channick $0} {chanhost $1} %z4a90e2has quit%n {channel $2} {reason $3}"; - kick = "%z4a90e2<--%n {channick $0} %z4a90e2was kicked from%n {channel $1} %z4a90e2by%n {nick $2} {reason $3}"; - nick_changed = "%z4a90e2-!-%n {channick $0} %z4a90e2is now known as%n {channick_hilight $1}"; - your_nick_changed = "%z4a90e2-!-%n %z4a90e2You're now known as%n {channick_hilight $1}"; - topic = "%z4a90e2-!-%n %z4a90e2Topic for%n {channel $0}%z4a90e2:%n %z4a90e2$1%n"; - topic_info = "%z4a90e2-!-%n %z4a90e2Topic set by%n {nick $0} {nickhost $1} %z4a90e2($2)%n"; - new_topic = "%z4a90e2-!-%n {nick $0} %z4a90e2changed the topic of%n {channel $1} %z4a90e2to:%n %z4a90e2$2%n"; - server_changed = "%z4a90e2-!-%n %z4a90e2Server changed to%n %_$1%_"; - chanmode_change = "%z4a90e2-!-%n %z4a90e2mode/%n{channelhilight $0} {mode $1} %z4a90e2by%n {nick $2}"; - usermode_change = "%z4a90e2-!-%n %z4a90e2mode/%n{nick $1} {mode $0}"; - away = "%z4a90e2-!-%n %z4a90e2zzz: %n$0"; - unaway = "%z4a90e2-!-%n %z4a90e2welcome back%n"; - own_msg = "{ownmsgnick $2 {ownnick $0}}$1"; - own_msg_channel = "{ownmsgnick $3 {ownnick $0}{msgchannel $1}}$2"; - own_msg_private_query = "{ownprivmsgnick {ownprivnick $2}}$1"; - }; + "fe-common/core" = { pubmsg = "{pubmsgnick $2 {pubnick \00305$0}}$1"; }; };