# vim: set expandtab:
# vim: filetype=perl
# (Adapted from solarized-universal theme by Huy Z: https://github.com/huyz/irssi-colors-solarized)
# Adaped by: Paul Saunders
# later adapted by: Farzad Sadeghi https://github.com/terminaldweller
# 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.
#############################################################################
# https://irssi.org/documentation/settings/#a_d
# 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 = { "[]=" = "$*"; };
abstracts = {
##
## generic
##
# text to insert at the beginning of each non-message line
# %N = terminal default (e.g. white on transparent)
# %G = brightgreen (Solarized: base01, i.e. darkest gray)
#line_start = "%N%W %N";
line_start = "%N";
# timestamp styling, nothing by default
# %N%8 = reverse normal (to match line_start)
timestamp = "%N%k%z005f87$*%N%Z005f87%n";
# any kind of text that needs hilighting, default is to bold
hilight = "$*";
# any kind of error message
error = "%Zff8700$*%n";
# channel name is printed
channel = "%Z00af00$*%n";
# nick is printed
nick = "%z005f87%Zeeeeee{nickcolor $*}";
mynick = "%Zeeeeee{nickcolor $*}";
inick = "%Zeeeeee{nickcolor $*}";
# Inverted
imynick = "%Zeeeeee{nickcolor $*}";
# Inverted
# nick host is printed
# (that's the "email" address of a user)
nickhost = "%Z005f5f$*";
# server name is printed
server = "%Z00af00$*";
iserver = "%Zeeeeee%z00af00$*%n";
# some kind of comment is printed
comment = "%Zff8700 %N $*";
# reason for something is printed (part, quit, kick, ..)
reason = "$*";
# mode change is printed ([+o nick])
mode = "%N%0%p$*%n";
##
## channel specific messages
##
# highlighted nick/host is printed (joins)
# %c = cyan (Solarized: cyan)
# %G = brightgreen (Solarized: base01)
# NOTE: %n doesn't work in irssi v0.8.15 for some reason. So we have to end with the same color as line_start
channick_hilight = "%Z00af00$*%G";
chanhost_hilight = "%Z00af00{nickhost $*}%N";
# nick/host is printed (parts, quits, etc.)
channick = "%Z00af00$*%G";
chanhost = "%Z00af5f{nickhost $*}%N";
# highlighted channel name is printed
# SOLARIZED: Channels are Green
channelhilight = "%N%0%g$*%N";
ichannelhilight = "%z005f87$*%n%0";
# ban/ban exception/invite list mask is printed
# %R = brightred (Solarized: orange)
# %n = return
ban = "%zff5f00$*%0%Zff5f00%n";
##
## messages
##
# the basic styling of how to print message, $0 = nick mode, $1 = nick
msgnick = "%z005f87%Zeeeeee $0%Zeeeeee{nick $1-} %Z005f5f";
# 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
# %3 = yellow
ownmsgnick = "%z5f5fff%k{%z5f5fff $0$1-}%N%0%Z5f5fff %Z005f5f";
ownnick = "%Zeeeeee$* %Z005f5f";
# public message in channel, $0 = nick mode, $1 = nick
pubmsgnick = "%z005f87%k%Zeeeeee{%Zeeeeee%z005f87msgnick $0$1-}%N%Z005f87 %Z005f5f";
pubnick = "%Zeeeeee$* %Z005f5f";
# public message in channel meant for me, $0 = nick mode, $1 = nick
# %5 = magenta
pubmsgmenick = "%K%m%5%k%Z0087ff{msgnick $0$1-}%N%m %Z005f5f";
menick = "%Zeeeeee$* %Z005f5f";
# public highlighted message in channel
# $0 = highlight color, $1 = nick mode, $2 = nick
pubmsghinick = " %z005f87%k%z005f87{%Zeeeeee%z005f87msgnick $1 %Zeeeeee$2-}%N%Z005f87 %Z005f5f";
# channel name is printed with message
# This is printed whenever the channel name is printed for disambiguation, e.g.
# while there is a query in the same window. Example: <+funnyuser:#test> hello
msgchannel = "%z005f5f%k:$*%n";
# private message, $0 = nick, $1 = host
# TODO: To test for Solarized
privmsg = " %m$0%G<%n$1-%G>%n ";
# private message from you, $0 = "msg", $1 = target nick
# TODO: To test for Solarized
ownprivmsg = " %Z005f87$0%G<%Z005f87$1-%G>%n ";
# own private message in query
ownprivmsgnick = "%z5f5fff%k{%z5f5fff $*}%N%Z5f5fff %C";
ownprivnick = "%k$*";
# private message in query
# NOTE: for some reason, we gotta handle both the nick & msg on in this line
privmsgnick = "%5%k{msgnick $*}%N%m %n";
##
## Actions (/ME stuff)
##
# used internally by this theme
action_core = "%N%k %n$*";
# generic one that's used by most actions
action = "{action_core $*%n} ";
# own action, both private/public
ownaction = "%N%k {mynick $0}%N%C $1-";
# own action with target, both private/public
# NOTE: to test: /action NICK farted. (This will tell NICK that you farted)
# This is like a /me but only you and NICK will see
ownaction_target = "{action_core $0}%G:%y$1%n ";
# private action sent by others
# %M = brightmagenta (Solarized: violet)
pvtaction = "%m (*) $*%n ";
pvtaction_query = "{action $*}";
# public action sent by others
pubaction = "%N%k {nick $0}%N $1-";
##
## other IRC events
##
# whois
whois = "%k%z005f87WHOIS %0%Z005f87%N%#%N $[8]0 %Y$1-";
# notices
ownnotice = "%z8787ff%k %k$0 %k%z8787ff%8%0 {ichannelhilight $1-} %k%z00af5f%N ";
notice = "%z5f5fd7%k %k$0- %Z5f5fd7%0%N ";
#notice = "%1%w %W$* %k%8%n ";
pubnotice_channel = "{ichannelhighlight $*}";
#pubnotice_channel = "%G%n$*";
pvtnotice_host = " %k%n {hickhost $*}";
servernotice = "%z8787ff%k %k!$* %k%8%n ";
# CTCPs
ownctcp = "%k%z005f87 %k$0%G %N%Z005f87 %Z005f87$1-%G ";
ctcp = "%N%k%n %Zeeeeee$*%n";
# wallops
wallop = "%c$*%n: ";
wallop_nick = "%n$*";
wallop_action = "%c * $*%n ";
# netsplits
netsplit = "%z5f5fd7$*%n";
netjoin = "%g$*%n";
# /names list
names_prefix = "%N%k%n";
names_nick = " %G$0$1-%N ";
names_nick_op = " %g$0$_$1-%n ";
names_nick_halfop = " %Y$_$0$_$1-%n ";
names_nick_voice = " %C$_$0$_$1-%n ";
names_users = "%k%z005f87 $* %Z005f87%0%n";
names_channel = " %k$*";
# DCC
dcc = "%N%k%n %g$*%n";
dccfile = "$*";
# DCC chat, own msg/action
dccownmsg = "[%Z005f87$0%G($1-%G)%n] ";
dccownnick = "%Z005f87$*%n";
dccownquerynick = "%c$*%n";
dccownaction = "{action $*}";
dccownaction_target = "{action_core $0}%G:%c$1%n ";
# DCC chat, others
dccmsg = " %g$1-%G($0%G)%n ";
dccquerynick = "%g$*%n";
dccaction = "%c (*dcc*) $*%n %|";
##
## statusbar
##
# default background for all statusbars. You can also give
# the default foreground color for statusbar items.
# NOTE: if all the other overriding settings below are set, this only seems to affect
# the content parts of the adv_windowlist. Default seems to be blue
# NOTE: if not set, the default background seems to be %w%4 = white on blue
sb_background = "%k%z1c1c1c";
# default backround for "default" statusbar group
# NOTE: this impacts the statusbar of an inactive window and the edges of adv_windowlist
# %7 = white (wich looks gray on a regular terminal with white bg)
sb_default_bg = "%Z005fff";
# background for topicbar at the top (defaults to sb_default_bg)
sb_topic_bg = "%W%0";
# background for the statusbar of active window. You can also give
# the foreground color.
# %2 = green
sb_window_bg = "%k%0";
# background for prompt / input line
sb_prompt_bg = "%k";
# background for info statusbar
# %8 = reverse window
# TODO: To test for Solarized
sb_info_bg = "%z1c1c1c";
# text at the beginning of statusbars. sb-item already puts
# space there,so we don't use anything by default.
sbstart = "%z005f00";
# text at the end of statusbars. Use space so that it's never
# used for anything.
sbend = "%n";
topicsbstart = "{sbstart $*}";
topicsbend = "{sbend $*}";
prompt = "%k%z005f87%9$c $*%w%k$R%w%k$S%w%k$N%w%k$T %N%Z005f87%n ";
# This controls each part of a statusbar, including the outer brackets of adv_windowlist
sb = "$*";
# The mode is next to your NICK and the channel
sbmode = "%p$*%k";
sbaway = "%Z00af00%k%z00af00 zZzZzZzZ %Z00af00%0";
sbservertag = "%Z00af00 $0 %Z005f87(change with ^X)%n";
sbnickmode = "%Zeeeeee$0";
# activity in statusbar
# ',' separator between the window numbers
# %g = green (same color as the active statusbar so we dont' see it)
sb_act_sep = "%Z005fff+";
# normal text
# This also affects the color of the window with activity in adv_windowlist
sb_act_text = "%C$*";
# public message (ordinary messages)
sb_act_msg = "%c$*";
# hilight (when people actually chat)
# This also affects the color of the window with direct message in adv_windowlist
sb_act_hilight = "%m$*";
# hilight with specified color, $0 = color, $1 = text
sb_act_hilight_color = "%z5f5fd7$1-";
# For usercount.pl script
sb_usercount = "%Z000000%z005faf%Z000000%z005faf{sb $0 nicks %Zeeeeee %Z000000$1-%Z005faf%z000000}";
sb_uc_ircops = "%Z000000%z005faf*$*";
sb_uc_ops = "%Z000000%z005faf@$*";
sb_uc_halfops = "%Z000000%z005faf%%$*";
sb_uc_voices = "%Z000000%z005faf+$*";
sb_uc_normal = "$*";
sb_uc_space = " ";
# For adv_windowlist.pl script
# Mentioned in adv_windowlist but not default_theme
sb_act_none = "$*";
# for dcc stats
# $0 = sb_ds_short(_waiting)/sb_ds_normal(_waiting)
sb_dccstat = "{sb $0-}";
# $0 = G/S
# $1 = filename
# $2 = transfer speed
# $3 = percent
# $4 = progressbar
sb_ds_short = "$0%G:%n$1%Y@%n$2kB/s%G:%n$4%G:%n$3";
# $0 = G/S
# $1 = filename
# $2 = to/from
# $3 = nick
sb_ds_short_waiting = "$0%G:%n$1 $2 $3 waiting";
# $0 = GET/SEND
# $1 = nick
# $2 = filename
# $3 = transferred amount
# $4 = full filesize
# $5 = percent
# $6 = speed
# $7 = ETA
# $8 = progressbar
# $9 = rotator thingy :)
sb_ds_normal = "$0 $1: '$2' $3 of $4 [$8] $9 ($5) $6kB/s ETA: $7";
# $0 = GET/SEND
# $1 = nick
# $2 = filename
# $3 = full filesize
# $4 = to/from
# $5 = nick
sb_ds_normal_waiting = "$0 $1: '$2' $3 $4 $5 waiting";
sb_ds_separator = ", ";
};
formats = {
"fe-common/core" = {
daychange = " %g-----%k-%W-%n Day changed to %%D %W-%k-%g-----%n";
join = "%k%z00af5fJOIN %8 {ichannelhilight $2} %0%Z00d700%0 {inick $0}%0 %N%8%n%k%N {chanhost_hilight $1}";
line_start_irssi = "%k%z5f5fd7IRSSI%N%Z5f5fd7 %N";
new_topic = "%k%z00d700TOPIC %8 {ichannelhilight $1} by {inick $0}%8 $2";
nick_changed = "%k%z00d700RENAME %Z00d700%0 {nick $0} %Zff8700 {nick $1} %N%8%n%k%N";
part = "%K%Z00d700%k%z00d700PART %8 {ichannelhilight $2}%N %0%Z005f87 %N{inick $0}%0 %k%Zeeeeee {reason $3}";
quit = "%0%Z005f00%k%z005f00QUIT %N {inick $0}%0 %Zeeeeee %N%n%k%N {reason $2}";
your_nick_changed = "%k%z00d700RENAME %Z00d700%0 {mynick $0} %Zff8700 {mynick $1} %N%8%n%k%N";
own_msg = "{ownmsgnick $nickalign$2 {ownnick $nickcolor$0$nicktrunc}}$1";
own_msg_channel = "{ownmsgnick $nickalign$3 {ownnick $nickcolor$0$nicktrunc}{msgchannel $1}}$2";
own_msg_private_query = "{ownprivmsgnick $nickalign{ownprivnick $nickcolor$2$nicktrunc}}$1";
pubmsg_me = "{pubmsgmenick $nickalign$2 {menick $0$nicktrunc}}$1";
pubmsg_me_channel = "{pubmsgmenick $nickalign$3 {menick $0$nicktrunc}{msgchannel $1}}$2";
pubmsg_hilight = "{pubmsghinick $0 $nickalign$3 $1$nicktrunc}$2";
pubmsg_hilight_channel = "{pubmsghinick $0 $nickalign$4 $1$nicktrunc{msgchannel $2}}$3";
pubmsg = "{pubmsgnick $nickalign$2 {pubnick $nickcolor$0$nicktrunc}}$1";
pubmsg_channel = "{pubmsgnick $nickalign$3 {pubnick $nickcolor$0$nicktrunc}{msgchannel $1}}$2";
msg_private_query = "{privmsgnick $nickalign$nickcolor$0$nicktrunc}$2";
};
"fe-common/irc" = {
away = "%k%z00d700AWAY %Z00d700%0%N";
banlist = "%k%z005f00BANS %z005f00 $[-3]0 %8 %z005f00{ichannelhilight $1} %k%N {ban $2}";
banlist_long = "%k%z005f00BANS %z005f00 $[-3]0 %8 %z005f00{ichannelhilight $1} {comment by {inick $3}%0%k,%Z005f00 $4 secs ago} %N {ban $2}";
chanmode_change = "%k%z008700MODE %N%Z008700%N {channelhilight $0} %Zeeeeee%n {mode $1}%n by {nick $2}";
channel_created = "%k%N Channel {channelhilight $0} created $1";
channel_mode = "%k%N mode/{channelhilight $0} {mode $1}";
ctcp_default_reply = "%W%0%N $0- ";
ctcp_ping_reply = "%k%z005f87 CTCP {hilight PING} reply %n%Z005f87%N {nick $0} %y%N%n $1.$[-3.0]2 seconds ";
ctcp_reply = "%k%z005f87 CTCP {hilight $0} reply %n%Z005f87%N {nick $1} %y%N $2 ";
ctcp_reply_channel = "%k%z005f87 CTCP {hilight $0} reply %n%Z005f87%N {nick $1} %y%N {channel $3} %y%N $2";
ctcp_requested = "%k%z005f87%8%8 CTCP {hilight $2} from {mynick $4} %n%Z005f87%N by {hilight $0} {comment $1} %y%N $3";
default_event = "%N%k %N%n$1";
default_event_server = "%k%z00d700$0 %N%k %N%n$1";
ebanlist = "%k%z005f00BANS %k exception %8 %z005f00{ichannelhilight $0} %N {ban $1}";
ebanlist_long = "%k%z005f00BANS %k exception %8 {ichannelhilight $0} %z005f00{comment by {inick $2}%0%k, $3 secs ago} %N {ban $1}";
end_of_who = "%z00d700%kWHO %Z00d700%0%N END";
end_of_whois = "%z00d700%kWHOIS %Z00d700%0%N END";
end_of_whowas = "%z00d700%kWHOWAS %Z00d700%0%N END";
netsplit = "%k%z8787ff%8%8 NETSPLIT %0%w%0%8 {iserver $0} %z00d700%8 {iserver $1}%8 %N%8%n%k%N Quits: $2";
netsplit_join = "%k%z8787ff NETSPLIT %k%8%N Joins: $0";
netsplit_join_more = "%k%z8787ff NETSPLIT %k%8%N Joins: $0 (+$1 more)";
netsplit_more = "%k%z8787ff%8%8 NETSPLIT %0%w%0%8 {iserver $0} %z00d700%8 {iserver $1}%8 %N%8%n%k%N Quits: $2 (+$3 more, use /NETSPLIT to show all of them)";
no_topic = "%k%N No topic set for {channelhilight $0}";
own_ctcp = "%k%z005f87 CTCP {hilight $2-} {inick $0} %n%Z005f87%N";
server_chanmode_change = "%k%z8787ff SERVERMODE %k%8 {channelhilight $0} {mode $1} by {nick $2}";
topic = "%k%z00d700TOPIC %Z00d700%0%N {channel $0}%N $1";
topic_info = "%k%z00d700TOPIC %Z00d700%0%N {nick $0}%N {nickhost $2} $1";
unaway = "%k%z00d700AWAY %Z00d700%0%N END";
usermode_change = "%z008700%ZeeeeeeMODE %N%Z008700%N {mode $0}%N for %0{mynick $1}%N";
who = "%z00d700%kWHO %Z00d700%z005f87 %z005f87%k{inick $[!9]1} %Z005f87%2 %k$0 %0%g Status: $[!3]2 $[-2]3 hops %N%g%N {nickhost $4@$5} {comment $6}";
whois = "%z00d700%kWHOIS %Z00d700%z005f87 {nick $0} %Z005f87%0 {nickhost $1@$2}%:{whois ircname $3}";
whowas = "%z00d700%kWHOWAS %Z00d700%0%n {nick $0} {nickhost $1@$2}%:{whois was $3}";
own_action = "$nickalign{ownaction $0$nicktrunc}$1";
action_private = "$nickalign{pvtaction $0$nicktrunc}$2";
action_private_query = "$nickalign{pvtaction_query $0$nicktrunc}$2";
action_public = "$nickalign{pubaction $0$nicktrunc}$1";
};
"Irssi::Script::adv_windowlist" = {
awl_display_header = "";
awl_display_key = " %0$N $H$C$S %n";
awl_display_key_active = "%W%Z008700%0%8 %zeeeeee$N $H$C$S%8 %0%8%8%n";
awl_display_key_visible = "%Z005fff %m$N %k $H$C$S %8%8%n";
awl_display_nokey = " %0$N %U$C%U %n";
awl_display_nokey_active = "%k%z005f87 %k$N %k %U$C%U %8%8%n";
awl_display_nokey_visible = "%k%z5f5fff %m$N %k %U$C%U %8%8%n";
awl_separator = "";
};
"Irssi::Script::usercount" = {
sb_usercount = "%z00af5f{sb $0 nicks ($1-)}";
sb_uc_ircops = "%z00d787*$*";
sb_uc_ops = "%z00d787@$*";
sb_uc_halfops = "%z00d787%%$*";
sb_uc_voices = "%z00af5f+$*";
sb_uc_normal = "$*";
sb_uc_space = " ";
};
"Irssi::Script::hilite_url" = {
url_color = "38;5;6";
};
};