diff options
Diffstat (limited to 'scripts/ctrlact.pl')
| -rw-r--r-- | scripts/ctrlact.pl | 20 | 
1 files changed, 14 insertions, 6 deletions
| diff --git a/scripts/ctrlact.pl b/scripts/ctrlact.pl index 5bc807e..0e471d0 100644 --- a/scripts/ctrlact.pl +++ b/scripts/ctrlact.pl @@ -77,7 +77,7 @@  # You can use the Irssi settings activity_msg_level and activity_hilight_level  # to specify which IRC levels will be considered messages and hilights. Note  # that if an activity indication is inhibited, then there also won't be -# a beep (cf. beep_msg_level). +# a beep (cf. beep_msg_level), unless you toggle ctrlmap_inhibit_beep.  #  ### Settings:  # @@ -89,6 +89,10 @@  #   queries, and windows respectively, if no applicable mapping could be  #   found.  # +# /set ctrlact_inhibit_beep [on] +#   If an activity wouldn't be indicated, also inhibit the beep/bell. Turn +#   this off if you want the bell anyway. +#  # /set ctrlact_debug [off]  #   Turns on debug output. Not that this may itself be buggy, so please don't  #   use it unless you really need it. @@ -98,7 +102,6 @@  # - figure out interplay with activity_hide_level  # - /ctrlact add/delete/move and /ctrlact save, maybe  # - ability to add a server tag to an item name to make matches more specific -# - make beep inhibition configurable  # - completion for commands  #  use strict; @@ -124,12 +127,14 @@ my $map_file = Irssi::get_irssi_dir()."/ctrlact";  my $fallback_channel_threshold = 1;  my $fallback_query_threshold = 1;  my $fallback_window_threshold = 1; +my $inhibit_beep = 1;  Irssi::settings_add_str('ctrlact', 'ctrlact_map_file', $map_file);  Irssi::settings_add_bool('ctrlact', 'ctrlact_debug', $debug);  Irssi::settings_add_int('ctrlact', 'ctrlact_fallback_channel_threshold', $fallback_channel_threshold);  Irssi::settings_add_int('ctrlact', 'ctrlact_fallback_query_threshold', $fallback_query_threshold);  Irssi::settings_add_int('ctrlact', 'ctrlact_fallback_window_threshold', $fallback_window_threshold); +Irssi::settings_add_bool('ctrlact', 'ctrlact_inhibit_beep', $inhibit_beep);  sub sig_setup_changed {  	$debug = Irssi::settings_get_bool('ctrlact_debug'); @@ -137,6 +142,7 @@ sub sig_setup_changed {  	$fallback_channel_threshold = Irssi::settings_get_int('ctrlact_fallback_channel_threshold');  	$fallback_query_threshold = Irssi::settings_get_int('ctrlact_fallback_query_threshold');  	$fallback_window_threshold = Irssi::settings_get_int('ctrlact_fallback_window_threshold'); +	$inhibit_beep = Irssi::settings_get_bool('ctrlact_inhibit_beep');  }  Irssi::signal_add('setup changed', \&sig_setup_changed);  sig_setup_changed(); @@ -261,7 +267,7 @@ sub print_levels_for_all {  ### HILIGHT SIGNAL HANDLERS #################################################### -my $_inhibit_bell = 0; +my $_inhibit_beep = 0;  my $_inhibit_window = 0;  sub maybe_inhibit_witem_hilight { @@ -272,7 +278,7 @@ sub maybe_inhibit_witem_hilight {  	return if ($newlevel <= $oldlevel);  	$_inhibit_window = 0; -	$_inhibit_bell = 0; +	$_inhibit_beep = 0;  	my $wichattype = $witem->{'chat_type'};  	my $witype = $witem->{'type'};  	my $winame = $witem->{'name'}; @@ -281,7 +287,9 @@ sub maybe_inhibit_witem_hilight {  	debugprint("$winame: witem $wichattype:$witype:\"$winame\" $oldlevel → $newlevel (".($inhibit ? "< $threshold, inhibit" : ">= $threshold, pass").')');  	if ($inhibit) {  		Irssi::signal_stop(); -		$_inhibit_bell = 1; +		# the rhval comes from config, so if the user doesn't want the +		# bell inhibited, this is effectively a noop. +		$_inhibit_beep = $inhibit_beep;  		$_inhibit_window = $witem->window();  	}  } @@ -317,7 +325,7 @@ sub maybe_inhibit_win_hilight {  Irssi::signal_add_first('window hilight', \&maybe_inhibit_win_hilight);  sub maybe_inhibit_beep { -	Irssi::signal_stop() if $_inhibit_bell; +	Irssi::signal_stop() if $_inhibit_beep;  }  Irssi::signal_add_first('beep', \&maybe_inhibit_beep); | 
