Skip to content

Instantly share code, notes, and snippets.

@ndreas
Created February 28, 2012 10:03
Show Gist options
  • Save ndreas/1931684 to your computer and use it in GitHub Desktop.
Save ndreas/1931684 to your computer and use it in GitHub Desktop.
Growling from irssi in iTerm2
use Irssi;
use Irssi::Irc;
use IO::Handle;
use Env qw(TMUX);
$VERSION = "0.1";
%IRSSI = (
authors => 'Andreas Johansson',
contact => 'andreas@stdin.se',
name => 'iterm_growl',
description => 'Triggers a Growl escape sequence for iTerm 2 upon message and mention',
license => 'GNU GPLv2',
url => 'http://stdin.se/',
);
use strict;
sub private_message {
my ($server, $message, $nick, $address, $target) = @_;
growl($nick . ": " . $message);
}
sub highlight {
my($dest, $text, $stripped) = @_;
if ($dest->{level} & MSGLEVEL_HILIGHT) {
growl($dest->{target} . ": " . $stripped);
}
}
sub growl {
my ($text) = @_;
if (defined $TMUX) {
print STDERR "\ePtmux;\e\e]9;$text\007\e\\";
} else {
print STDERR "\e]9;$text\007";
}
}
Irssi::signal_add_last("message private", "private_message");
Irssi::signal_add_last("print text", "highlight");
@kiwiholmberg
Copy link

Hej!
Provade att lägga in scriptet i ~/.irssi/scripts och sen ladda det i irssi, i screen, i iterm2. Får det inte att funka. Är det något mer man måste göra?

Mvh
Kiwi

@ndreas
Copy link
Author

ndreas commented Mar 31, 2012

Screen, precis som tmux, äter upp escape-sekvensen (rad 35). Eftersom jag själv använder tmux så har jag ett specialcase för det, men det funkar inte för screen. Jag googlade lite och hittade att det ska vara följande för screen:

print STDERR "\eP\e]9;$text\007\e\\"

Du kan modda scriptet så att den kollar om irssi kör i en screen, och använder den printen istället. Vill du testa om det funkar utan att behöva ladda om skriptet, så öppna en terminal i screen och kör echo -ne "\eP\e]9;zomg\007\e\\" så ska du få ett Growlmeddelande.

Du måste även konfigurera Growl att skriva ut meddelandena från iTerm. Customized Message är notifikationstypen som måste vara aktiverad i Growls inställningar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment