@@ 16,11 16,8 @@ It is recommended to stick to the [XDG Base Directory Specification][xdg] if
possible, and collect configuration files under `$HOME/.config` unless otherwise
specified.
-A more detailed write-up can be found on my [blog][blog-post].
-
## License
Scripts are licensed under the [Unlicense](LICENSE) (https://unlicense.org/).
-[blog-post]: https://rycwo.xyz/2019/01/29/nixos-series-configuration-primer
[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
@@ 1,257 0,0 @@
servers = (
{ address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; },
{
address = "178.79.145.29";
chatnet = "libera";
port = "6697";
password = "rycwo/libera:";
use_tls = "yes";
tls_cert = "~/.irssi/certs/user.pem";
tls_verify = "no";
autoconnect = "yes";
},
{
address = "178.79.145.29";
chatnet = "OFTC";
port = "6697";
password = "rycwo/OFTC:";
use_tls = "yes";
tls_cert = "~/.irssi/certs/user.pem";
tls_verify = "no";
autoconnect = "yes";
}
);
chatnets = {
SILC = { type = "SILC"; };
libera = { type = "IRC"; };
OFTC = { type = "IRC"; };
};
channels = ( { name = "silc"; chatnet = "SILC"; autojoin = "No"; } );
aliases = {
ATAG = "WINDOW SERVER";
ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}";
B = "BAN";
BACK = "AWAY";
BANS = "BAN";
BYE = "QUIT";
C = "CLEAR";
CALC = "EXEC - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi";
CHAT = "DCC CHAT";
DATE = "TIME";
DEHIGHLIGHT = "DEHILIGHT";
DESCRIBE = "ACTION";
DHL = "DEHILIGHT";
EXEMPTLIST = "MODE $C +e";
EXIT = "QUIT";
GOTO = "SCROLLBACK GOTO";
HIGHLIGHT = "HILIGHT";
HL = "HILIGHT";
HOST = "USERHOST";
INVITELIST = "MODE $C +I";
J = "JOIN";
K = "KICK";
KB = "KICKBAN";
KN = "KNOCKOUT";
LAST = "LASTLOG";
LEAVE = "PART";
M = "MSG";
MUB = "UNBAN *";
N = "NAMES";
NMSG = "^MSG";
P = "PART";
Q = "QUERY";
RESET = "SET -default";
RUN = "SCRIPT LOAD";
SAY = "MSG *";
SB = "SCROLLBACK";
SBAR = "STATUSBAR";
SIGNOFF = "QUIT";
SV = "MSG * Irssi $J ($V) - https://irssi.org";
T = "TOPIC";
UB = "UNBAN";
UMODE = "MODE $N";
UNSET = "SET -clear";
W = "WHO";
WC = "WINDOW CLOSE";
WG = "WINDOW GOTO";
WJOIN = "JOIN -window";
WI = "WHOIS";
WII = "WHOIS $0 $0";
WL = "WINDOW LIST";
WN = "WINDOW NEW HIDDEN";
WQUERY = "QUERY -window";
WW = "WHOWAS";
znc = "msg *status";
};
statusbar = {
items = {
barstart = "{sbstart}";
barend = "{sbend}";
topicbarstart = "{topicsbstart}";
topicbarend = "{topicsbend}";
time = "{sb $Z}";
user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}";
window = "{sb $winref:$tag/$itemname{sbmode $M}}";
window_empty = "{sb $winref{sbservertag $tag}}";
prompt = "{prompt $[.15]itemname}";
prompt_empty = "{prompt $winname}";
topic = " $topic";
topic_empty = " Irssi v$J - https://irssi.org";
lag = "{sb Lag: $0-}";
act = "{sb Act: $0-}";
more = "-- more --";
};
default = {
window = {
disabled = "no";
type = "window";
placement = "bottom";
position = "1";
visible = "active";
items = {
barstart = { priority = "100"; };
time = { };
user = { };
window = { };
window_empty = { };
lag = { priority = "-1"; };
more = { priority = "-1"; alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
};
window_inact = {
type = "window";
placement = "bottom";
position = "1";
visible = "inactive";
items = {
barstart = { priority = "100"; };
window = { };
window_empty = { };
more = { priority = "-1"; alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
};
prompt = {
type = "root";
placement = "bottom";
position = "100";
visible = "always";
items = {
prompt = { priority = "-1"; };
prompt_empty = { priority = "-1"; };
input = { priority = "10"; };
};
};
topic = {
type = "root";
placement = "top";
position = "1";
visible = "always";
items = {
topicbarstart = { priority = "100"; };
topic = { };
topic_empty = { };
topicbarend = { priority = "100"; alignment = "right"; };
};
};
awl_0 = {
placement = "top";
items = {
barstart = { priority = "100"; };
awl_0 = { };
barend = { priority = "100"; alignment = "right"; };
};
};
};
};
settings = {
core = {
real_name = "Unknown";
user_name = "rycwo";
nick = "rycwo";
timestamp_format = "%H:%M";
awaylog_file = "~/.irssi/logs/away.log";
};
"fe-text" = { actlist_sort = "refnum"; };
"fe-common/core" = {
autocreate_own_query = "no";
theme = "simplicity";
show_names_on_join = "no";
autolog = "yes";
autolog_path = "~/.irssi/logs/$tag/$0.log";
};
"perl/core/scripts" = {
awl_shared_sbar = "OFF";
awl_viewer = "no";
awl_placement = "top";
};
};
logs = { };
windows = {
1 = { immortal = "yes"; name = "(status)"; level = "ALL"; };
2 = { name = "(msgs)"; level = "MSGS"; };
3 = {
items = (
{
type = "CHANNEL";
chat_type = "IRC";
name = "#cmpwn";
tag = "libera";
}
);
};
4 = {
items = (
{
type = "CHANNEL";
chat_type = "IRC";
name = "#sr.ht";
tag = "libera";
}
);
};
5 = {
items = (
{
type = "CHANNEL";
chat_type = "IRC";
name = "#alpine-linux";
tag = "OFTC";
}
);
};
};
mainwindows = {
1 = {
first_line = "2";
lines = "23";
first_column = "0";
columns = "116";
};
};
@@ 1,312 0,0 @@
# 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.
#############################################################################
# simplicity - a theme by opqdonut: opqdnut _at_ gmail _dot_ com
# 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 = { "[]=" = "%K$*%n"; };
abstracts = {
##
## generic
##
# text to insert at the beginning of each non-message line
line_start = " # %|";
# timestamp styling, nothing by default
timestamp = "$*";
# 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 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 = "{comment $*}";
##
## channel specific messages
##
# highlighted nick/host is printed (joins)
channick_hilight = "%_$*%_";
chanhost_hilight = "{nickhost %_$*%_}";
# nick/host is printed (parts, quits, etc.)
channick = "$*";
chanhost = "{nickhost $*}";
# highlighted channel name is printed
channelhilight = "%_$*%_";
# ban/ban exception/invite list mask is printed
ban = "%_$*%_";
##
## messages
##
# the basic styling of how to print message, $0 = nick mode, $1 = nick
msgnick = "$0$1-%_$$%_%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-%r}";
ownnick = "$*";
# public message in channel, $0 = nick mode, $1 = nick
pubmsgnick = "{msgnick $0 $1-}";
pubnick = "$*";
# public message in channel meant for me, $0 = nick mode, $1 = nick
pubmsgmenick = "{msgnick $0 $1-%y}";
menick = "{pubnick $*}";
# public highlighted message in channel
# $0 = highlight color, $1 = nick mode, $2 = nick
pubmsghinick = "{msgnick $1 $2-$0}";
# channel name is printed with message
msgchannel = "%K:%n{channel $*}";
# private message, $0 = nick, $1 = host
privmsg = "<-{menick $0}!{nickhost $1}$ ";
# private message from you, $0 = "msg", $1 = target nick
ownprivmsg = "->($1-)$ ";
# own private message in query
ownprivmsgnick = "{ownmsgnick $*}";
ownprivnick = "{ownnick $*}";
# private message in query
privmsgnick = "{msgnick $*}";
##
## Actions (/ME stuff)
##
# used internally by this theme
action_core = "%_! $*%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 = "%W (*) $*%n ";
pvtaction_query = "{action $*}";
# public action sent by others
pubaction = "{action $*}";
##
## other IRC events
##
# whois
whois = " $[8]0 : $1-";
# 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 ";
# CTCPs
ownctcp = "[%r$0%K(%R$1-%K)] ";
ctcp = "%m$*%n";
# wallops
wallop = "%_$*%_: ";
wallop_nick = "%n$*";
wallop_action = "%_ * $*%_ ";
# netsplits
netsplit = "%R$*%n";
netjoin = "%C$*%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 = "[%m$*%n]";
names_channel = "%M$*%n";
# DCC
dcc = "%m$*%n";
dccfile = "%_$*%_";
# DCC chat, own msg/action
dccownmsg = "[%r$0%K($1-%K)%n] ";
dccownnick = "%R$*%n";
dccownquerynick = "%W$*%n";
dccownaction = "{action $*}";
dccownaction_target = "{action_core $0}%K:%c$1%n ";
# DCC chat, others
dccmsg = "[%G$1-%K(%g$0%K)%n] ";
dccquerynick = "%G$*%n";
dccaction = "%W (*dcc*) $*%n %|";
##
## statusbar
##
# default background for all statusbars. You can also give
# the default foreground color for statusbar items.
sb_background = "%8";
# 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 = "";
# 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 = " ";
prompt = ".o($*) ";
sb = "$* | ";
sbmode = "(%_+%_$*)";
sbaway = " (%_zZzZ%_)";
sbservertag = ":@$0";
# activity in statusbar
# ',' separator
sb_act_sep = "$*";
# normal text
sb_act_text = " $* ";
# public message
sb_act_msg = "%_ $* %_";
# hilight
sb_act_hilight = "%M $* %n";
# hilight with specified color, $0 = color, $1 = text
sb_act_hilight_color = "$0 $1- %n";
};
# uncomment for aligned nicks
#formats = {
# "fe-common/core" = {
# own_msg = "{ownmsgnick $2 {ownnick $[-15]0}}$1";
# own_msg_channel = "{ownmsgnick $3 {ownnick $[-15]0}{msgchannel $1}}$2";
# pubmsg_me = "{pubmsgmenick $2 {menick $[-15]0}}$1";
# pubmsg_me_channel = "{pubmsgmenick $3 {menick $[-15]0}{msgchannel $1}}$2";
# pubmsg_hilight = "{pubmsghinick $0 $3 $[-15]1}$2";
# pubmsg_hilight_channel = "{pubmsghinick $0 $4 $[-15]1{msgchannel $2}}$3";
# pubmsg = "{pubmsgnick $2 {pubnick $[-15]0}}$1";
# pubmsg_channel = "{pubmsgnick $3 {pubnick $[-15]0}{msgchannel $1}}$2";
# };
#};
formats = {
"Irssi::Script::adv_windowlist" = { awl_display_header = ""; };
"fe-common/core" = {
pubmsg = "{pubmsgnick $2 {pubnick \00310$[0]0}}$1";
};
};