Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Add irssi configuration

  • Loading branch information...
commit e466f87afb433d7324faf00669f4850fc147b622 1 parent ca27d84
@txus txus authored
View
21 Rakefile
@@ -5,7 +5,7 @@ desc "install the dot files into user's home directory"
task :install do
replace_all = false
Dir['*'].each do |file|
- next if %w[Rakefile README.rdoc Readme.rdoc LICENSE zsh zshrc].include? file
+ next if %w[Rakefile README.rdoc Readme.rdoc LICENSE irssi zsh zshrc].include? file
if File.exist?(File.join(ENV['HOME'], ".#{file.sub('.erb', '')}"))
if File.identical? file, File.join(ENV['HOME'], ".#{file.sub('.erb', '')}")
@@ -32,6 +32,8 @@ task :install do
end
system('cat zshrc >> ~/.zshrc')
+
+ configure_irssi
end
def replace_file(file)
@@ -50,3 +52,20 @@ def link_file(file)
system %Q{ln -s "$PWD/#{file}" "$HOME/.#{file}"}
end
end
+
+def configure_irssi
+ system('rm -fR ~/.irssi')
+ system('mkdir -p ~/.irssi')
+
+ # Link config file
+ puts "generating ~/irssi/.config"
+ File.open(File.join(ENV['HOME'], ".irssi/config"), 'w') do |new_file|
+ new_file.write ERB.new(File.read("irssi/config.erb")).result(binding)
+ end
+ puts "copying IRSSI themes..."
+ system("cp irssi/*.theme ~/.irssi")
+
+ puts "copying IRSSI plugins..."
+ system("mkdir -p ~/.irssi/")
+ system("cp -r irssi/scripts ~/.irssi")
+end
View
200 irssi/config.erb
@@ -0,0 +1,200 @@
+<% print("Your grove.io organization name: "); STDOUT.flush; $org = STDIN.gets.chomp %>
+<% print("Your grove.io organization password: "); STDOUT.flush; $orgpass = STDIN.gets.chomp %>
+servers = (
+{
+ address = "irc.freenode.org";
+ chatnet = "freenode";
+ autoconnect = "yes";
+},
+{
+ address = "<%=$org%>.irc.grove.io";
+ chatnet = "<%=$org%>";
+ autoconnect = "yes";
+ password = "<%=$orgpass%>";
+}
+);
+<% print("Your nickname: "); STDOUT.flush; $nick = STDIN.gets.chomp %>
+settings = {
+ core = {
+ nick = "<%= $nick %>";
+ user_name = "<%= $nick %>";
+ real_name = "<%= print("Your real name: "); STDOUT.flush; STDIN.gets.chomp %>";
+ timestamp_format = "%H:%M:%S";
+ };
+ "fe-text" = { scrollback_time = "48h"; actlist_sort = "refnum"; };
+ "fe-common/core" = {
+ completion_char = ",";
+ completion_nicks_lowercase = "yes";
+ autocreate_query_level = "MSGS DCCMSGS";
+ autofocus_new_items = "yes";
+ autolog = "yes";
+ autolog_level = "all -crap -clientcrap -ctcps";
+ theme = "fear2";
+ bell_beeps = "no";
+ beep_msg_level = "MSGS NOTICES DCC DCCMSGS HILIGHT";
+ };
+};
+
+chatnets = {
+ freenode = {
+ type = "IRC";
+ autosendcmd = "/msg nickserv identify <%= print("Your freenode password: "); STDOUT.flush; STDIN.gets.chomp %>";
+ };
+
+ <%=$org%> = {
+ type = "IRC";
+ autosendcmd = "/msg nickserv identify <%= print("Password for #{$nick} at #{$org} grove.io IRC: "); STDOUT.flush; STDIN.gets.chomp %>";
+ };
+};
+
+channels = (
+ { name = "#rubinius"; chatnet = "freenode"; autojoin = "yes"; },
+ { name = "#<%=$org%>"; chatnet = "<%=$org%>"; autojoin = "no"; },
+);
+
+hilights = (
+ { text = "<%=$nick%>"; nick = "yes"; word = "yes"; }
+);
+
+# BOILERPLATE
+statusbar = {
+ # formats:
+ # when using {templates}, the template is shown only if it's argument isn't
+ # empty unless no argument is given. for example {sb} is printed always,
+ # but {sb $T} is printed only if $T isn't empty.
+
+ items = {
+ # start/end text in statusbars
+ barstart = "{sbstart}";
+ barend = "{sbend}";
+
+ topicbarstart = "{topicsbstart}";
+ topicbarend = "{topicsbend}";
+
+ # treated "normally", you could change the time/user name to whatever
+ time = "{sb $Z}";
+ user = "{sb $cumode$N{sbmode $usermode}{sbaway $A}}";
+
+ # treated specially .. window is printed with non-empty windows,
+ # window_empty is printed with empty windows
+ window = "{sb $winref:$itemname{sbmode $M}}";
+ window_empty = "{sb $winref{sbservertag $tag}}";
+ prompt = "{prompt $[.15]itemname}";
+ prompt_empty = "{prompt $winname}";
+ topic = " $topic";
+ topic_empty = " Irssi v$J - http://irssi.org/help/";
+
+ # all of these treated specially, they're only displayed when needed
+ lag = "{sb Lag: $0-}";
+ act = "{sb Act: $0-}";
+ more = "-- more --";
+ };
+
+ # there's two type of statusbars. root statusbars are either at the top
+ # of the screen or at the bottom of the screen. window statusbars are at
+ # the top/bottom of each split window in screen.
+ default = {
+ # the "default statusbar" to be displayed at the bottom of the window.
+ # contains all the normal items.
+ window = {
+ disabled = "no";
+
+ # window, root
+ type = "window";
+ # top, bottom
+ placement = "bottom";
+ # number
+ position = "1";
+ # active, inactive, always
+ visible = "active";
+
+ # list of items in statusbar in the display order
+ items = {
+ barstart = { priority = "100"; };
+ time = { };
+ user = { };
+ window = { };
+ window_empty = { };
+ lag = { priority = "-1"; };
+ act = { priority = "10"; };
+ more = { priority = "-1"; alignment = "right"; };
+ barend = { priority = "100"; alignment = "right"; };
+ };
+ };
+
+ # statusbar to use in inactive split windows
+ 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"; };
+ };
+ };
+
+ # we treat input line as yet another statusbar :) It's possible to
+ # add other items before or after the input line item.
+ prompt = {
+ type = "root";
+ placement = "bottom";
+ # we want to be at the bottom always
+ position = "100";
+ visible = "always";
+ items = {
+ prompt = { priority = "-1"; };
+ prompt_empty = { priority = "-1"; };
+ # treated specially, this is the real input line.
+ input = { priority = "10"; };
+ };
+ };
+
+ # topicbar
+ topic = {
+ type = "root";
+ placement = "top";
+ position = "1";
+ visible = "always";
+ items = {
+ topicbarstart = { priority = "100"; };
+ topic = { };
+ topic_empty = { };
+ topicbarend = { priority = "100"; alignment = "right"; };
+ };
+ };
+ };
+};
+
+
+windows = {
+ 1 = { immortal = "yes"; name = "(status)"; level = "ALL"; };
+ 2 = {
+ items = (
+ {
+ type = "CHANNEL";
+ chat_type = "IRC";
+ name = "#codegram";
+ tag = "codegram";
+ }
+ );
+ };
+ 3 = {
+ items = (
+ {
+ type = "CHANNEL";
+ chat_type = "IRC";
+ name = "#rubinius";
+ tag = "freenode";
+ }
+ );
+ };
+ 4 = { name = "hilight"; sticky = "yes"; };
+};
+mainwindows = {
+ 2 = { first_line = "8"; lines = "37"; };
+ 4 = { first_line = "1"; lines = "7"; };
+};
View
297 irssi/fear2.theme
@@ -0,0 +1,297 @@
+# 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";
+
+# 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 = "%g-%W!%g-%n ";
+
+ # 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 = "%G$*%n";
+ chanhost_hilight = "{nickhost %g$*%n}";
+
+ # nick/host is printed (parts, quits, etc.)
+ channick = "%g$*%n";
+ chanhost = "{nickhost $*}";
+
+ # highlighted channel name is printed
+ channelhilight = "%g$*%n";
+
+ # ban/ban exception/invite list mask is printed
+ ban = "%g$*%n";
+
+ ##
+ ## messages
+ ##
+
+ # the basic styling of how to print message, $0 = nick mode, $1 = nick
+ msgnick = "%W<%n%g$0%n$1-%W>%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-}";
+ ownnick = "%W$*%n";
+
+ # public message in channel, $0 = nick mode, $1 = nick
+ pubmsgnick = "{msgnick $0 $1-}";
+ pubnick = "%N$*%n";
+
+ # public message in channel meant for me, $0 = nick mode, $1 = nick
+ pubmsgmenick = "{msgnick $0 $1-}";
+ menick = "%G$*%n";
+
+ # public highlighted message in channel
+ # $0 = highlight color, $1 = nick mode, $2 = nick
+ pubmsghinick = "{msgnick $1 $0$2-%n}";
+
+ # channel name is printed with message
+ msgchannel = "%K:%g$*%n";
+
+ # private message, $0 = nick, $1 = host
+ privmsg = "[%R$0%K(%r$1-%K)%n] ";
+
+ # 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 = "%W$*%n";
+
+ # private message in query
+ privmsgnick = "{msgnick %R$*%n}";
+
+ ##
+ ## Actions (/ME stuff)
+ ##
+
+ # used internally by this theme
+ action_core = "%W * $*%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:%g$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 = "%g$*%n";
+
+ # wallops
+ wallop = "%W$*%n: ";
+ wallop_nick = "%n$*";
+ wallop_action = "%W * $*%n ";
+
+ # netsplits
+ netsplit = "%R$*%n";
+ netjoin = "%G$*%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
+ dcc = "%g$*%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:%g$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 = "%4%w";
+ sb_background = "%w";
+
+ # default backround for "default" statusbar group
+ sb_default_bg = "%K%w";
+
+ # 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 = "%n";
+
+ # text at the beginning of statusbars. sb-item already puts
+ # space there,so we don't use anything by default.
+ sbstart = "%W>>%n";
+ # text at the end of statusbars. Use space so that it's never
+ # used for anything.
+ sbend = " ";
+
+ topicsbstart = "{sbstart}";
+ topicsbend = "";
+
+ prompt = "%g[%n$*%g]%n ";
+
+ sb = " %g(%n$*%g)%n";
+ sbmode = "[%g+%n$*]";
+ sbaway = "[%9away%n]";
+ sbservertag = ":$0";
+
+ # activity in statusbar
+
+ # ',' separator
+ sb_act_sep = "%g$*";
+ # normal text
+ sb_act_text = "%g$*";
+ # public message
+ sb_act_msg = "%W$*";
+ # hilight
+ sb_act_hilight = "%M$*";
+ # hilight with specified color, $0 = color, $1 = text
+ sb_act_hilight_color = "$0$1-%n";
+};
View
36 irssi/scripts/autorun/hilightwin.pl
@@ -0,0 +1,36 @@
+# Print hilighted messages & private messages to window named "hilight"
+# for irssi 0.7.99 by Timo Sirainen
+use Irssi;
+use vars qw($VERSION %IRSSI);
+$VERSION = "0.01";
+%IRSSI = (
+ authors => "Timo \'cras\' Sirainen",
+ contact => "tss\@iki.fi",
+ name => "hilightwin",
+ description => "Print hilighted messages & private messages to window named \"hilight\"",
+ license => "Public Domain",
+ url => "http://irssi.org/",
+ changed => "2002-03-04T22:47+0100"
+);
+
+sub sig_printtext {
+ my ($dest, $text, $stripped) = @_;
+
+ # change to (MSGLEVEL_HILIGHT|MSGLEVEL_MSGS) to work for
+ # all privmsgs too
+ if (($dest->{level} & (MSGLEVEL_HILIGHT)) &&
+ ($dest->{level} & MSGLEVEL_NOHILIGHT) == 0) {
+ $window = Irssi::window_find_name('hilight');
+
+ if ($dest->{level} & MSGLEVEL_PUBLIC) {
+ $text = $dest->{target}.": ".$text;
+ }
+ $text =~ s/%/%%/g;
+ $window->print($text, MSGLEVEL_CLIENTCRAP) if ($window);
+ }
+}
+
+$window = Irssi::window_find_name('hilight');
+Irssi::print("Create a window named 'hilight'") if (!$window);
+
+Irssi::signal_add('print text', 'sig_printtext');
Please sign in to comment.
Something went wrong with that request. Please try again.