]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
[adv_windowlist] update to 1.10
authorAilin Nemui <redacted>
Tue, 4 Jan 2022 07:49:42 +0000 (08:49 +0100)
committerAilin Nemui <redacted>
Tue, 4 Jan 2022 07:49:42 +0000 (08:49 +0100)
- add /set awl_custom_key_re, to display custom keys in the $Q expando

scripts/adv_windowlist.pl

index 92a4c6ccb8e7e376f819ad0cf7cb390960c4ceed..8f3667eb04c07f1b54a759b54f7bd37e77f3b66a 100644 (file)
@@ -1,7 +1,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '1.9.1'; # fcc63b8a943723b
+our $VERSION = '1.10'; # a643fc45f8a0037
 our %IRSSI = (
     authors     => 'Nei',
     contact     => 'Nei @ anti@conference.jabber.teamidiot.de',
@@ -97,6 +97,9 @@ our %IRSSI = (
 #           1 to hide visible windows without items (negative exempt
 #           active window)
 #
+# /set awl_custom_key_re <regex>
+# * regex : which symbolic key names to show in $Q (for example F-keys)
+#
 # /set awl_detach <list>
 # * list of windows that should be hidden from the window list. you
 #   can also use /awl detach and /awl attach to manage this
@@ -345,6 +348,7 @@ my %S; # settings
 my $settings_str = '1';
 my $window_sort_func;
 my $custom_xform;
+my $custom_key_re = qr/(?!)/;
 my ($sb_base_width, $sb_base_width_pre, $sb_base_width_post);
 my $print_text_activity;
 my $shade_line_timer;
@@ -511,6 +515,9 @@ sub get_keymap {
            while ($combo =~ s/(?:-|^)$one_meta_or_ctrl_key$//) {
                my ($level, $ctl, $key, $nkey) = ($1, $2, $3, $4);
                my $numlevel = ($level =~ y/-//);
+               if (not defined $key and $nkey =~ /^($custom_key_re)$/) {
+                   $key = $nkey;
+               }
                $ctl = '' if !$ctl || $ctl ne '^';
                $map = ('-' x ($numlevel%2)) . ('+' x ($numlevel/2)) .
                    $ctl . (defined $key ? $key : "\01$nkey\01") . $map;
@@ -1333,6 +1340,7 @@ sub reset_awl {
     my $was_xform = $S{xform} // '';
     my $was_shared = $S{shared_sbar};
     my $was_no_hint = $S{no_mode_hint};
+    my $was_custom_key = $S{custom_key_re} // '';
     %S = (
        sort          => Irssi::settings_get_str( set 'sort'),
        fancy_abbrev  => Irssi::settings_get_str('fancy_abbrev'),
@@ -1343,6 +1351,7 @@ sub reset_awl {
        hide_data     => Irssi::settings_get_int( set 'hide_data'),
        hide_name     => Irssi::settings_get_int( set 'hide_name_data'),
        hide_empty    => Irssi::settings_get_int( set 'hide_empty'),
+       custom_key_re => Irssi::settings_get_str( set 'custom_key_re'),
        detach        => Irssi::settings_get_str( set 'detach'),
        detach_data   => Irssi::settings_get_int( set 'detach_data'),
        detach_aht    => Irssi::settings_get_bool(set 'detach_aht'),
@@ -1433,6 +1442,20 @@ return sub {
            }
        }
     }
+    if ($was_custom_key ne $S{custom_key_re}) {
+       my $custom_key = $S{custom_key_re};
+       my $was_custom_key_re = $custom_key_re;
+       local $@;
+       eval { $custom_key_re = qr/(?i)$custom_key/; 1 }
+           or do {
+               print '%_'.(set 'custom_key_re').'%_ did not compile: '
+                   . do { $@ =~ /(.*) at / && $1 };
+               $custom_key_re = qr/(?!)/;
+           };
+       if ($was_custom_key_re ne $custom_key_re) {
+           update_keymap();
+       }
+    }
 
     my $new_settings = join "\n", $VIEWER_MODE
         ? ("\\", $S{block}, $S{height_adjust}, $S{maxlines}, $S{maxcolumns}, $S{true_colour})
@@ -1961,6 +1984,7 @@ Irssi::settings_add_str( setc, set 'shared_sbar',    'OFF'); #
 Irssi::settings_add_bool(setc, set 'mouse',          0); #
 Irssi::settings_add_str( setc, set 'path', Irssi::get_irssi_dir . '/_windowlist'); #
 Irssi::settings_add_str( setc, set 'custom_xform',   ''); #
+Irssi::settings_add_str( setc, set 'custom_key_re',  'f\d+'); #
 Irssi::settings_add_time(setc, set 'last_line_shade', '0'); #
 Irssi::settings_add_int( setc, set 'mouse_offset',   1); #
 Irssi::settings_add_int( setc, 'mouse_scroll',       3); #
@@ -2811,6 +2835,10 @@ UNITCHECK
 
 # Changelog
 # =========
+# 1.10
+# - add /set awl_custom_key_re, to display custom keys in the $Q
+#   expando. requested by madduck
+#
 # 1.9.1
 # - fix crash on mouse click
 #
git clone https://git.99rst.org/PROJECT