summaryrefslogtreecommitdiffstats
path: root/scripts/act.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/act.pl')
-rw-r--r--scripts/act.pl54
1 files changed, 54 insertions, 0 deletions
diff --git a/scripts/act.pl b/scripts/act.pl
new file mode 100644
index 0000000..21cbbbb
--- /dev/null
+++ b/scripts/act.pl
@@ -0,0 +1,54 @@
+#!/usr/bin/perl
+# resets window activity status
+# by c0ffee
+# - http://www.penguin-breeder.org/irssi/
+
+#<scriptinfo>
+use strict;
+use vars qw($VERSION %IRSSI);
+
+use Irssi 20020120;
+$VERSION = "0.15";
+%IRSSI = (
+ authors => "c0ffee",
+ contact => "c0ffee\@penguin-breeder.org",
+ name => "Reset window activity status",
+ description => "Reset window activity status. defines command /act",
+ license => "Public Domain",
+ url => "http://www.penguin-breeder.org/irssi/",
+ changed => "Thu Apr 16 15:55:05 BST 2015",
+);
+#</scriptinfo>
+
+#
+# /ACT [PUBLIC|ALL]
+#
+# /ACT without parameters marks windows as non-active where no
+# public talk occured.
+#
+# /ACT PUBLIC also removes those where no nick hilight was triggered
+#
+# /ACT ALL sets all windows as non-active
+
+Irssi::command_bind 'act' => sub {
+ my ( $data, $server, $item ) = @_;
+ $data =~ s/\s+$//g;
+ if ($data) {
+ Irssi::command_runsub('act', $data, $server, $item);
+ }
+ else {
+ _act(1);
+ }
+};
+
+Irssi::command_bind('act public', sub { _act(2); });
+Irssi::command_bind('act all', sub { _act(3); });
+
+sub _act {
+ my($level) = @_;
+ for (Irssi::windows()) {
+ if ($_->{data_level} <= $level) {
+ Irssi::signal_emit("window dehilight", $_);
+ }
+ }
+}