rainbow-dark: %z not %Z (lowercase is fg, uppercase is bg)

Previous commit used %Z005f5f, which irssi 1.4 interprets as a
24-bit *background* colour. That rendered as 'teal background
behind each affected character' — easy to miss on short glyphs,
invisible on whitespace. Foreground is %z (lowercase).
This commit is contained in:
2026-04-21 08:52:06 -07:00
parent 92c4f0bdc1
commit 415ee5028c

View File

@@ -17,7 +17,7 @@ default_color = "-1";
info_eol = "false"; info_eol = "false";
# Fade any bracket-ish punctuation to dark grey so the rainbow colors pop. # Fade any bracket-ish punctuation to dark grey so the rainbow colors pop.
replaces = { "[]=()<>" = "%Z005f5f$*%n"; }; replaces = { "[]=()<>" = "%z005f5f$*%n"; };
abstracts = { abstracts = {
## ##
@@ -29,7 +29,7 @@ abstracts = {
line_start = "%R-%Y-%Y-%G-%C-%B-%M-%n "; line_start = "%R-%Y-%Y-%G-%C-%B-%M-%n ";
# Dim cyan timestamps — present but recessive. # Dim cyan timestamps — present but recessive.
timestamp = "%Z005f5f$*%n"; timestamp = "%z005f5f$*%n";
# Highlight anything important in bold yellow. # Highlight anything important in bold yellow.
hilight = "%_%Y$*%n%_"; hilight = "%_%Y$*%n%_";
@@ -44,13 +44,13 @@ abstracts = {
nick = "%_%C$*%n%_"; nick = "%_%C$*%n%_";
# Nick-host wrapped in dark-grey square brackets (picked up by "replaces"). # Nick-host wrapped in dark-grey square brackets (picked up by "replaces").
nickhost = "[%Z005f5f$*%n]"; nickhost = "[%z005f5f$*%n]";
# Server names: bright blue. # Server names: bright blue.
server = "%_%B$*%n%_"; server = "%_%B$*%n%_";
# Generic bracketed comment: fade to dark grey. # Generic bracketed comment: fade to dark grey.
comment = "[%Z005f5f$*%n]"; comment = "[%z005f5f$*%n]";
reason = "{comment $*}"; reason = "{comment $*}";
mode = "{comment $*}"; mode = "{comment $*}";
@@ -64,7 +64,7 @@ abstracts = {
# Someone leaving (part/quit) — dim red. # Someone leaving (part/quit) — dim red.
channick = "%r$*%n"; channick = "%r$*%n";
chanhost = "{nickhost %Z005f5f$*%n}"; chanhost = "{nickhost %z005f5f$*%n}";
# Highlighted channel reference — bright magenta. # Highlighted channel reference — bright magenta.
channelhilight = "%_%M$*%n%_"; channelhilight = "%_%M$*%n%_";
@@ -79,7 +79,7 @@ abstracts = {
# Angle brackets around nicks stay dark grey so the nick color is the star. # 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 # Trailing %w tints the message body dim grey so it doesn't compete with
# the rainbow accents. # the rainbow accents.
msgnick = "%Z005f5f<%n$0$1-%Z005f5f>%n %|%Z005f5f"; msgnick = "%z005f5f<%n$0$1-%z005f5f>%n %|%z005f5f";
# Messages from you. # Messages from you.
ownmsgnick = "{msgnick $0 $1-}"; ownmsgnick = "{msgnick $0 $1-}";
@@ -97,11 +97,11 @@ abstracts = {
pubmsghinick = "{msgnick $1 $0$2-%n}"; pubmsghinick = "{msgnick $1 $0$2-%n}";
# channel prefix on a message: ":#chan" in bright magenta. # channel prefix on a message: ":#chan" in bright magenta.
msgchannel = "%Z005f5f:%M$*%n"; msgchannel = "%z005f5f:%M$*%n";
# Private messages — heavy bright-magenta framing so queries stand apart. # Private messages — heavy bright-magenta framing so queries stand apart.
privmsg = "[%_%M$0%_%Z005f5f(%m$1-%Z005f5f)%n] "; privmsg = "[%_%M$0%_%z005f5f(%m$1-%z005f5f)%n] ";
ownprivmsg = "[%_%m$0%_%Z005f5f(%M$1-%Z005f5f)%n] "; ownprivmsg = "[%_%m$0%_%z005f5f(%M$1-%z005f5f)%n] ";
# Private message in a query window. # Private message in a query window.
ownprivmsgnick = "{msgnick $*}"; ownprivmsgnick = "{msgnick $*}";
@@ -114,13 +114,13 @@ abstracts = {
# Bright yellow asterisks so actions are unmistakable. Action text in dim # Bright yellow asterisks so actions are unmistakable. Action text in dim
# grey to match ordinary message bodies. # grey to match ordinary message bodies.
action_core = "%_%Y * %n%Z005f5f$*%n"; action_core = "%_%Y * %n%z005f5f$*%n";
action = "{action_core $*} "; action = "{action_core $*} ";
ownaction = "{action $*}"; ownaction = "{action $*}";
ownaction_target = "{action_core $0}%Z005f5f:%M$1%n "; ownaction_target = "{action_core $0}%z005f5f:%M$1%n ";
# Private actions get a parenthesized asterisk; keep it in bright yellow. # Private actions get a parenthesized asterisk; keep it in bright yellow.
pvtaction = "%_%Y (*) %n%Z005f5f$*%n "; pvtaction = "%_%Y (*) %n%z005f5f$*%n ";
pvtaction_query = "{action $*}"; pvtaction_query = "{action $*}";
pubaction = "{action $*}"; pubaction = "{action $*}";
@@ -129,25 +129,25 @@ abstracts = {
## ##
# whois — cyan field name, dim-grey value # whois — cyan field name, dim-grey value
whois = "%Z005f5f %# $[8]0 : %n%Z005f5f$1-%n"; whois = "%z005f5f %# $[8]0 : %n%z005f5f$1-%n";
# notices — magenta stays the "alert" color # notices — magenta stays the "alert" color
ownnotice = "[%_%m$0%_%Z005f5f(%M$1-%Z005f5f)]%n "; ownnotice = "[%_%m$0%_%z005f5f(%M$1-%z005f5f)]%n ";
notice = "%Z005f5f-%_%M$*%_%Z005f5f-%n "; notice = "%z005f5f-%_%M$*%_%z005f5f-%n ";
pubnotice_channel = "%Z005f5f:%m$*"; pubnotice_channel = "%z005f5f:%m$*";
pvtnotice_host = "%Z005f5f(%m$*%Z005f5f)"; pvtnotice_host = "%z005f5f(%m$*%z005f5f)";
# server notices — bright green bang, dim-grey body # server notices — bright green bang, dim-grey body
servernotice = "%_%G!%n%Z005f5f$*%n "; servernotice = "%_%G!%n%z005f5f$*%n ";
# CTCPs — bright green # CTCPs — bright green
ownctcp = "[%_%g$0%_%Z005f5f(%G$1-%Z005f5f)] "; ownctcp = "[%_%g$0%_%z005f5f(%G$1-%z005f5f)] ";
ctcp = "%_%G$*%n%_"; ctcp = "%_%G$*%n%_";
# wallops # wallops
wallop = "%_%Y$*%n%_: "; wallop = "%_%Y$*%n%_: ";
wallop_nick = "%Z005f5f$*%n"; wallop_nick = "%z005f5f$*%n";
wallop_action = "%_%Y * %n%Z005f5f$*%n "; wallop_action = "%_%Y * %n%z005f5f$*%n ";
# netsplits / netjoins — red fall, green rise # netsplits / netjoins — red fall, green rise
netsplit = "%_%R$*%n%_"; netsplit = "%_%R$*%n%_";
@@ -164,19 +164,19 @@ abstracts = {
# DCC — green family so transfers read as "network-y" # DCC — green family so transfers read as "network-y"
dcc = "%_%G$*%n%_"; dcc = "%_%G$*%n%_";
dccfile = "%_%Z005f5f$*%n%_"; dccfile = "%_%z005f5f$*%n%_";
# DCC chat, own msg/action # DCC chat, own msg/action
dccownmsg = "[%_%r$0%_%Z005f5f($1-%Z005f5f)%n] "; dccownmsg = "[%_%r$0%_%z005f5f($1-%z005f5f)%n] ";
dccownnick = "%_%R$*%n%_"; dccownnick = "%_%R$*%n%_";
dccownquerynick = "%_%M$*%n%_"; dccownquerynick = "%_%M$*%n%_";
dccownaction = "{action $*}"; dccownaction = "{action $*}";
dccownaction_target = "{action_core $0}%Z005f5f:%M$1%n "; dccownaction_target = "{action_core $0}%z005f5f:%M$1%n ";
# DCC chat, others # DCC chat, others
dccmsg = "[%_%G$1-%_%Z005f5f(%g$0%Z005f5f)%n] "; dccmsg = "[%_%G$1-%_%z005f5f(%g$0%z005f5f)%n] ";
dccquerynick = "%_%G$*%n%_"; dccquerynick = "%_%G$*%n%_";
dccaction = "%_%Y (*dcc*) %n%Z005f5f$*%n %|"; dccaction = "%_%Y (*dcc*) %n%z005f5f$*%n %|";
## ##
## statusbar — the rainbow lives here ## statusbar — the rainbow lives here
@@ -206,7 +206,7 @@ abstracts = {
sbnickmode = "%Y$0%n"; sbnickmode = "%Y$0%n";
# activity in statusbar — rotates through the rainbow. # activity in statusbar — rotates through the rainbow.
sb_act_sep = "%Z005f5f$*"; sb_act_sep = "%z005f5f$*";
sb_act_text = "%G$*"; # plain chatter (green) sb_act_text = "%G$*"; # plain chatter (green)
sb_act_msg = "%_%C$*%_"; # someone said something (cyan) sb_act_msg = "%_%C$*%_"; # someone said something (cyan)
sb_act_hilight = "%_%M$*%_"; # something for you (magenta) sb_act_hilight = "%_%M$*%_"; # something for you (magenta)
@@ -214,26 +214,26 @@ abstracts = {
}; };
formats = { formats = {
# Common channel-event formats get explicitly wrapped in %Z005f5f (dark grey) # Common channel-event formats get explicitly wrapped in %z005f5f (dark grey)
# so the plain-text body doesn't fall through to the terminal default # so the plain-text body doesn't fall through to the terminal default
# (which on a typical dark terminal is stark white). # (which on a typical dark terminal is stark white).
"fe-common/core" = { "fe-common/core" = {
pubmsg = "{pubmsgnick $2 {pubnick \00305$0}}$1"; pubmsg = "{pubmsgnick $2 {pubnick \00305$0}}$1";
join = "%Z005f5f-->%n {channick_hilight $0} {chanhost_hilight $1} has joined {channel $2}"; join = "%z005f5f-->%n {channick_hilight $0} {chanhost_hilight $1} has joined {channel $2}";
part = "%Z005f5f<--%n {channick $0} {chanhost $1} %Z005f5fhas left%n {channel $2} {reason $3}"; part = "%z005f5f<--%n {channick $0} {chanhost $1} %z005f5fhas left%n {channel $2} {reason $3}";
quit = "%Z005f5f<--%n {channick $0} {chanhost $1} %Z005f5fhas quit%n {reason $2}"; quit = "%z005f5f<--%n {channick $0} {chanhost $1} %z005f5fhas quit%n {reason $2}";
quit_once = "%Z005f5f<--%n {channick $0} {chanhost $1} %Z005f5fhas quit%n {channel $2} {reason $3}"; quit_once = "%z005f5f<--%n {channick $0} {chanhost $1} %z005f5fhas quit%n {channel $2} {reason $3}";
kick = "%Z005f5f<--%n {channick $0} %Z005f5fwas kicked from%n {channel $1} %Z005f5fby%n {nick $2} {reason $3}"; kick = "%z005f5f<--%n {channick $0} %z005f5fwas kicked from%n {channel $1} %z005f5fby%n {nick $2} {reason $3}";
nick_changed = "%Z005f5f-!-%n {channick $0} %Z005f5fis now known as%n {channick_hilight $1}"; nick_changed = "%z005f5f-!-%n {channick $0} %z005f5fis now known as%n {channick_hilight $1}";
your_nick_changed = "%Z005f5f-!-%n %Z005f5fYou're now known as%n {channick_hilight $1}"; your_nick_changed = "%z005f5f-!-%n %z005f5fYou're now known as%n {channick_hilight $1}";
topic = "%Z005f5f-!-%n %Z005f5fTopic for%n {channel $0}%Z005f5f:%n %Z005f5f$1%n"; topic = "%z005f5f-!-%n %z005f5fTopic for%n {channel $0}%z005f5f:%n %z005f5f$1%n";
topic_info = "%Z005f5f-!-%n %Z005f5fTopic set by%n {nick $0} {nickhost $1} %Z005f5f($2)%n"; topic_info = "%z005f5f-!-%n %z005f5fTopic set by%n {nick $0} {nickhost $1} %z005f5f($2)%n";
new_topic = "%Z005f5f-!-%n {nick $0} %Z005f5fchanged the topic of%n {channel $1} %Z005f5fto:%n %Z005f5f$2%n"; new_topic = "%z005f5f-!-%n {nick $0} %z005f5fchanged the topic of%n {channel $1} %z005f5fto:%n %z005f5f$2%n";
server_changed = "%Z005f5f-!-%n %Z005f5fServer changed to%n %_$1%_"; server_changed = "%z005f5f-!-%n %z005f5fServer changed to%n %_$1%_";
chanmode_change = "%Z005f5f-!-%n %Z005f5fmode/%n{channelhilight $0} {mode $1} %Z005f5fby%n {nick $2}"; chanmode_change = "%z005f5f-!-%n %z005f5fmode/%n{channelhilight $0} {mode $1} %z005f5fby%n {nick $2}";
usermode_change = "%Z005f5f-!-%n %Z005f5fmode/%n{nick $1} {mode $0}"; usermode_change = "%z005f5f-!-%n %z005f5fmode/%n{nick $1} {mode $0}";
away = "%Z005f5f-!-%n %Z005f5fzzz: %n$0"; away = "%z005f5f-!-%n %z005f5fzzz: %n$0";
unaway = "%Z005f5f-!-%n %Z005f5fwelcome back%n"; unaway = "%z005f5f-!-%n %z005f5fwelcome back%n";
own_msg = "{ownmsgnick $2 {ownnick $0}}$1"; own_msg = "{ownmsgnick $2 {ownnick $0}}$1";
own_msg_channel = "{ownmsgnick $3 {ownnick $0}{msgchannel $1}}$2"; own_msg_channel = "{ownmsgnick $3 {ownnick $0}{msgchannel $1}}$2";
own_msg_private_query = "{ownprivmsgnick {ownprivnick $2}}$1"; own_msg_private_query = "{ownprivmsgnick {ownprivnick $2}}$1";