summaryrefslogtreecommitdiffstats
path: root/scripts/my_beep.pl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--scripts/my_beep.pl61
1 files changed, 61 insertions, 0 deletions
diff --git a/scripts/my_beep.pl b/scripts/my_beep.pl
new file mode 100644
index 0000000..7723e75
--- /dev/null
+++ b/scripts/my_beep.pl
@@ -0,0 +1,61 @@
+#!/usr/bin/irssi
+#
+# irssi beep with-command-script
+# (C) 2003 Remco den Breeje
+# inspired by Georg Lukas
+
+# howtoinstall:
+# copy this file to ~/.irssi/scripts/
+# in irssi:
+# $/script load my_beep.pl
+# change the settings
+# $/set beep_msg_level HILIGHT
+# $/set beep_cmd beep
+
+use strict;
+use vars qw($VERSION %IRSSI);
+$VERSION = "0.10";
+%IRSSI = (
+ authors => "Remco den Breeje",
+ contact => "stacium or stek (most of the time) @ quakenet.org",
+ name => "my_beep",
+ description => "runs arbitrary command instead of system beep, includes flood protection",
+ license => "Public Domain",
+ url => "http://www.xs4all.nl/~stacium/irssi/my_beep.html",
+);
+
+use Irssi;
+
+my $can_I_beep = 1;
+my ($timeout_tag);
+
+sub beep_overflow_timeout() {
+ $can_I_beep = 1;
+}
+
+sub my_beep() {
+ my $beep_cmd = Irssi::settings_get_str("beep_cmd");
+ if ($beep_cmd) {
+ my $beep_flood = Irssi::settings_get_int('beep_flood');
+ # check on given beep_flood
+ if($beep_flood < 0) {
+ Irssi::print("Warning! Wrong value for beep_flood (time in milisecs)");
+ Irssi::signal_stop();
+ return;
+ }
+ if (defined $timeout_tag) {
+ Irssi::timeout_remove($timeout_tag);
+ $timeout_tag= undef;
+ }
+ $timeout_tag = Irssi::timeout_add_once($beep_flood, 'beep_overflow_timeout', undef);
+ if ($can_I_beep) {
+ $can_I_beep = 0;
+ system($beep_cmd);
+ }
+ Irssi::signal_stop();
+ }
+}
+
+Irssi::settings_add_str("lookandfeel", "beep_cmd", "echo INeedToBeSet > /dev/null");
+Irssi::settings_add_int("lookandfeel", "beep_flood", 2000);
+Irssi::signal_add("beep", "my_beep");