Add claude.theme (ports Claude Code's default dark palette)
claude.theme: a dark irssi theme whose colours map 1:1 to the roles Claude Code uses in its default dark UI: #8c8c8c dim timestamps, brackets, connective text #f85149 red errors, netsplits, parts, private msg frames #56d364 green joins, ctcp, dcc, netjoins, quiet activity #e3b341 yellow messages-to-me, /me, statusbar chatter #4a9eff blue channel names, pubnicks, diff-style accents #c9a3ff magenta own nick / prompt / notices / hilights #4ec9b0 cyan whois field names, info lines Uses 24-bit true-colour escapes (%z<rrggbb>) so the shades land exactly regardless of terminal palette. Requires irssi 1.2+ and a truecolour-capable terminal (modern xterm/tmux both are). irssi/config: switch the active theme from rainbow-dark to claude.
This commit is contained in:
215
.irssi/claude.theme
Normal file
215
.irssi/claude.theme
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
# claude.theme — irssi theme that ports the Claude Code default "dark"
|
||||||
|
# palette to IRC.
|
||||||
|
#
|
||||||
|
# Colour role → 24-bit RGB used here:
|
||||||
|
# dim / secondary #8c8c8c timestamps, brackets, connective text
|
||||||
|
# red (destructive) #f85149 errors, netsplits, parts, private msg
|
||||||
|
# green (additive) #56d364 joins, ctcp, dcc, netjoins, quiet activity
|
||||||
|
# yellow (warn) #e3b341 messages-to-me, actions (/me), chatter
|
||||||
|
# blue (info) #4a9eff channel names, pubnick, diff-style accents
|
||||||
|
# magenta (emphasis) #c9a3ff own nick / prompt, notices, hilights
|
||||||
|
# cyan (accent) #4ec9b0 whois field names, info lines
|
||||||
|
#
|
||||||
|
# Activate:
|
||||||
|
# /set theme claude ; /save ; /reload
|
||||||
|
#
|
||||||
|
# Requires irssi 1.2+ and a 24-bit-colour-capable terminal. Format codes:
|
||||||
|
# %z<rrggbb> — 24-bit foreground colour
|
||||||
|
# %Z<rrggbb> — 24-bit background colour
|
||||||
|
|
||||||
|
default_color = "-1";
|
||||||
|
info_eol = "false";
|
||||||
|
|
||||||
|
# Dim all bracket/punctuation glyphs so the palette accents stay the focus.
|
||||||
|
replaces = { "[]=()<>" = "%z8c8c8c$*%n"; };
|
||||||
|
|
||||||
|
abstracts = {
|
||||||
|
##
|
||||||
|
## generic
|
||||||
|
##
|
||||||
|
|
||||||
|
# Subtle dim dash prefix on non-message lines (was "%B-%n!%B-%n ").
|
||||||
|
line_start = "%z8c8c8c-!-%n ";
|
||||||
|
|
||||||
|
# Timestamps in the dim secondary colour.
|
||||||
|
timestamp = "%z8c8c8c$*%n";
|
||||||
|
|
||||||
|
# Highlight = bold + yellow (the "user-directed" Claude Code colour).
|
||||||
|
hilight = "%_%ze3b341$*%n%_";
|
||||||
|
|
||||||
|
# Errors: bold + red (Claude's destructive colour).
|
||||||
|
error = "%_%zf85149$*%n%_";
|
||||||
|
|
||||||
|
# Channel names in link-blue + bold.
|
||||||
|
channel = "%_%z4a9eff$*%n%_";
|
||||||
|
|
||||||
|
# Nicks: default (plain + bold).
|
||||||
|
nick = "%_$*%_";
|
||||||
|
|
||||||
|
# Nick-host in dim brackets.
|
||||||
|
nickhost = "[%z8c8c8c$*%n]";
|
||||||
|
|
||||||
|
# Server names in cyan accent.
|
||||||
|
server = "%_%z4ec9b0$*%n%_";
|
||||||
|
|
||||||
|
# Generic comment: dim grey in brackets.
|
||||||
|
comment = "[%z8c8c8c$*%n]";
|
||||||
|
reason = "{comment $*}";
|
||||||
|
mode = "{comment $*}";
|
||||||
|
|
||||||
|
##
|
||||||
|
## channel-specific messages
|
||||||
|
##
|
||||||
|
|
||||||
|
# Joins → green (additive).
|
||||||
|
channick_hilight = "%z56d364$*%n";
|
||||||
|
chanhost_hilight = "{nickhost %z56d364$*%n}";
|
||||||
|
|
||||||
|
# Parts / quits → red (destructive).
|
||||||
|
channick = "%zf85149$*%n";
|
||||||
|
chanhost = "{nickhost %z8c8c8c$*%n}";
|
||||||
|
|
||||||
|
# Highlighted channel reference → blue.
|
||||||
|
channelhilight = "%z4a9eff$*%n";
|
||||||
|
|
||||||
|
# Ban masks → red.
|
||||||
|
ban = "%zf85149$*%n";
|
||||||
|
|
||||||
|
##
|
||||||
|
## messages
|
||||||
|
##
|
||||||
|
|
||||||
|
# Bracket framing in dim grey; body text falls through to terminal default
|
||||||
|
# (claude-code renders conversation text in #e5e5e5 which is very close to
|
||||||
|
# terminal default on most dark schemes, so no need for a %z wrap here —
|
||||||
|
# that avoids the whitespace-background issue from earlier attempts).
|
||||||
|
msgnick = "%z8c8c8c<%n$0$1-%z8c8c8c>%n %|";
|
||||||
|
|
||||||
|
# Own nick = magenta (Claude's "user/prompt" colour) + bold.
|
||||||
|
ownmsgnick = "{msgnick $0 $1-}";
|
||||||
|
ownnick = "%_%zc9a3ff$*%n%_";
|
||||||
|
|
||||||
|
# Public message nick = blue (info/link colour).
|
||||||
|
pubmsgnick = "{msgnick $0 $1-}";
|
||||||
|
pubnick = "%z4a9eff$*%n";
|
||||||
|
|
||||||
|
# Messages addressed to you → yellow nick (user-directed warn colour).
|
||||||
|
pubmsgmenick = "{msgnick $0 $1-}";
|
||||||
|
menick = "%_%ze3b341$*%n%_";
|
||||||
|
|
||||||
|
# Hilighted message in channel.
|
||||||
|
pubmsghinick = "{msgnick $1 $0$2-%n}";
|
||||||
|
|
||||||
|
# ":#chan" suffix on targeted messages.
|
||||||
|
msgchannel = "%z8c8c8c:%z4a9eff$*%n";
|
||||||
|
|
||||||
|
# Private messages: magenta framing so queries stand apart from public.
|
||||||
|
privmsg = "[%_%zc9a3ff$0%_%z8c8c8c(%zc9a3ff$1-%z8c8c8c)%n] ";
|
||||||
|
ownprivmsg = "[%_%zc9a3ff$0%_%z8c8c8c(%zc9a3ff$1-%z8c8c8c)%n] ";
|
||||||
|
|
||||||
|
# Private message within a query window.
|
||||||
|
ownprivmsgnick = "{msgnick $*}";
|
||||||
|
ownprivnick = "%_%zc9a3ff$*%n%_";
|
||||||
|
privmsgnick = "{msgnick %_%zc9a3ff$*%n%_}";
|
||||||
|
|
||||||
|
##
|
||||||
|
## Actions (/ME)
|
||||||
|
##
|
||||||
|
|
||||||
|
# Bold yellow asterisk — actions read as "warning"-ish urgency.
|
||||||
|
action_core = "%_%ze3b341 * %n$*%n";
|
||||||
|
action = "{action_core $*} ";
|
||||||
|
ownaction = "{action $*}";
|
||||||
|
ownaction_target = "{action_core $0}%z8c8c8c:%zc9a3ff$1%n ";
|
||||||
|
|
||||||
|
pvtaction = "%_%ze3b341 (*) %n$*%n ";
|
||||||
|
pvtaction_query = "{action $*}";
|
||||||
|
pubaction = "{action $*}";
|
||||||
|
|
||||||
|
##
|
||||||
|
## other IRC events
|
||||||
|
##
|
||||||
|
|
||||||
|
whois = "%z4ec9b0%# $[8]0 : %n$1-";
|
||||||
|
|
||||||
|
# Notices — magenta (emphasis).
|
||||||
|
ownnotice = "[%_%zc9a3ff$0%_%z8c8c8c(%zc9a3ff$1-%z8c8c8c)]%n ";
|
||||||
|
notice = "%z8c8c8c-%_%zc9a3ff$*%_%z8c8c8c-%n ";
|
||||||
|
pubnotice_channel = "%z8c8c8c:%zc9a3ff$*";
|
||||||
|
pvtnotice_host = "%z8c8c8c(%zc9a3ff$*%z8c8c8c)";
|
||||||
|
|
||||||
|
# Server notices — green bang (informational).
|
||||||
|
servernotice = "%_%z56d364!%n$*%n ";
|
||||||
|
|
||||||
|
# CTCPs — green.
|
||||||
|
ownctcp = "[%_%z56d364$0%_%z8c8c8c(%z56d364$1-%z8c8c8c)] ";
|
||||||
|
ctcp = "%_%z56d364$*%n%_";
|
||||||
|
|
||||||
|
# Wallops — yellow (broadcast alert).
|
||||||
|
wallop = "%_%ze3b341$*%n%_: ";
|
||||||
|
wallop_nick = "%z8c8c8c$*%n";
|
||||||
|
wallop_action = "%_%ze3b341 * %n$*%n ";
|
||||||
|
|
||||||
|
# Netsplits / netjoins — the classic red/green pair.
|
||||||
|
netsplit = "%_%zf85149$*%n%_";
|
||||||
|
netjoin = "%_%z56d364$*%n%_";
|
||||||
|
|
||||||
|
# /names list
|
||||||
|
names_prefix = "";
|
||||||
|
names_nick = "[%_%z4a9eff$0%n%_$1-] ";
|
||||||
|
names_nick_op = "{names_nick $*}";
|
||||||
|
names_nick_halfop = "{names_nick $*}";
|
||||||
|
names_nick_voice = "{names_nick $*}";
|
||||||
|
names_users = "[%z56d364$*%n]";
|
||||||
|
names_channel = "%_%z4a9eff$*%n%_";
|
||||||
|
|
||||||
|
# DCC — green family (network, transfer flavoured).
|
||||||
|
dcc = "%_%z56d364$*%n%_";
|
||||||
|
dccfile = "%_%z4ec9b0$*%n%_";
|
||||||
|
|
||||||
|
# DCC chat, own msg/action
|
||||||
|
dccownmsg = "[%_%zc9a3ff$0%_%z8c8c8c($1-%z8c8c8c)%n] ";
|
||||||
|
dccownnick = "%_%zc9a3ff$*%n%_";
|
||||||
|
dccownquerynick = "%_%zc9a3ff$*%n%_";
|
||||||
|
dccownaction = "{action $*}";
|
||||||
|
dccownaction_target = "{action_core $0}%z8c8c8c:%zc9a3ff$1%n ";
|
||||||
|
|
||||||
|
# DCC chat, others
|
||||||
|
dccmsg = "[%_%z56d364$1-%_%z8c8c8c(%z56d364$0%z8c8c8c)%n] ";
|
||||||
|
dccquerynick = "%_%z56d364$*%n%_";
|
||||||
|
dccaction = "%_%ze3b341 (*dcc*) %n$*%n %|";
|
||||||
|
|
||||||
|
##
|
||||||
|
## statusbar
|
||||||
|
##
|
||||||
|
|
||||||
|
# Explicit black background with light-grey foreground. Rainbow of
|
||||||
|
# accent colours from individual items below.
|
||||||
|
sb_background = "%0%ze5e5e5";
|
||||||
|
sb_prompt_bg = "%n";
|
||||||
|
sb_info_bg = "%0";
|
||||||
|
|
||||||
|
sbstart = "";
|
||||||
|
sbend = " ";
|
||||||
|
topicsbstart = "{sbstart $*}";
|
||||||
|
topicsbend = "{sbend $*}";
|
||||||
|
|
||||||
|
prompt = "%_%zc9a3ff[%n$*%_%zc9a3ff]%n%_ ";
|
||||||
|
sb = " %z4a9eff[%n$*%z4a9eff]%n";
|
||||||
|
sbmode = "(%z56d364+%n$*)";
|
||||||
|
sbaway = " (%ze3b341zZzZ%n)";
|
||||||
|
sbservertag = ":%z4ec9b0$0%n (^X)";
|
||||||
|
sbnickmode = "%zc9a3ff$0%n";
|
||||||
|
|
||||||
|
# Activity indicators — escalate in colour:
|
||||||
|
# dim → green (normal chat) → yellow (message) → red (hilight)
|
||||||
|
sb_act_sep = "%z8c8c8c$*";
|
||||||
|
sb_act_text = "%z56d364$*";
|
||||||
|
sb_act_msg = "%ze3b341$*";
|
||||||
|
sb_act_hilight = "%zf85149$*";
|
||||||
|
sb_act_hilight_color = "$0$1-%n";
|
||||||
|
};
|
||||||
|
|
||||||
|
formats = {
|
||||||
|
"fe-common/core" = { pubmsg = "{pubmsgnick $2 {pubnick \00305$0}}$1"; };
|
||||||
|
};
|
||||||
@@ -471,7 +471,7 @@ statusbar = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
core = { real_name = "g"; user_name = "g"; nick = "`"; theme = "rainbow-dark"; };
|
core = { real_name = "g"; user_name = "g"; nick = "`"; theme = "claude"; };
|
||||||
"fe-text" = { actlist_sort = "refnum"; };
|
"fe-text" = { actlist_sort = "refnum"; };
|
||||||
"irc/core" = { cmds_max_at_once = "999999"; cmd_queue_speed = "0ms"; };
|
"irc/core" = { cmds_max_at_once = "999999"; cmd_queue_speed = "0ms"; };
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user