annotate irssi/scripts/trackbar.pl @ 148:4e92ca6c779a

add irssi conf
author zegervdv <zegervdv@me.com>
date Sat, 18 Oct 2014 10:06:58 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
148
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
1 # trackbar.pl
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
2 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
3 # This little script will do just one thing: it will draw a line each time you
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
4 # switch away from a window. This way, you always know just upto where you've
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
5 # been reading that window :) It also removes the previous drawn line, so you
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
6 # don't see double lines.
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
7 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
8 # Usage:
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
9 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
10 # The script works right out of the box, but if you want you can change
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
11 # the working by /set'ing the following variables:
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
12 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
13 # trackbar_string The characters to repeat to draw the bar
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
14 # trackbar_style The style for the bar, %r is red for example
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
15 # See formats.txt that came with irssi
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
16 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
17 # /mark is a command that will redraw the line at the bottom. However! This
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
18 # requires irssi version after 20021228. otherwise you'll get the error
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
19 # redraw: unknown command, and your screen is all goofed up :)
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
20 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
21 # /upgrade & buf.pl notice: This version tries to remove the trackbars before
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
22 # the upgrade is done, so buf.pl does not restore them, as they are not removeable
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
23 # afterwards by trackbar. Unfortiounatly, to make this work, trackbar and buf.pl
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
24 # need to be loaded in a specific order. Please experiment to see which order works
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
25 # for you (strangely, it differs from configuration to configuration, something I will
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
26 # try to fix in a next version)
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
27 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
28 # Authors:
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
29 # - Main maintainer & author: Peter 'kinlo' Leurs
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
30 # - Many thanks to Timo 'cras' Sirainen for placing me on my way
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
31 # - on-upgrade-remove-line patch by Uwe Dudenhoeffer
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
32 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
33 # Version history:
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
34 # 1.4: - Changed our's by my's so the irssi script header is valid
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
35 # - Removed utf-8 support. In theory, the script should work w/o any
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
36 # problems for utf-8, just set trackbar_string to a valid utf-8 character
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
37 # and everything *should* work. However, this script is being plagued by
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
38 # irssi internal bugs. The function Irssi::settings_get_str does NOT handle
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
39 # unicode strings properly, hence you will notice problems when setting the bar
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
40 # to a unicode char. For changing your bar to utf-8 symbols, read the line sub.
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
41 # 1.3: - Upgrade now removes the trackbars.
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
42 # - Some code cleanups, other defaults
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
43 # - /mark sets the line to the bottom
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
44 # 1.2: - Support for utf-8
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
45 # - How the bar looks can now be configured with trackbar_string
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
46 # and trackbar_style
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
47 # 1.1: - Fixed bug when closing window
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
48 # 1.0: - Initial release
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
49 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
50 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
51 # Call for help!
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
52 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
53 # There is a trackbar version 2.0 that properly handles resizes and immediate config change
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
54 # activation. However, there is/are some bug(s) in irssi's main buffer/window code that causes
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
55 # irssi to 'forget' lines, which is ofcourse completly unaccepteable. I haven't found the time
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
56 # nor do I know the irssi's internals enough to find and fix this bug, if you want to help, please
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
57 # contact me, I'll give you a copy of the 2.0 version that will immediatly show you the problems.
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
58 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
59 # Known bugs:
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
60 # - if you /clear a window, it will be uncleared when returning to the window
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
61 # - UTF-8 characters in the trackbar_string doesnt work. This is an irssi bug.
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
62 # - if you resize your irssi (in xterm or so) the bar is not resized
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
63 # - changing the trackbar style is only visible after returning to a window
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
64 # however, changing style/resize takes in effect after you left the window.
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
65 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
66 # Whishlist/todo:
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
67 # - instead of drawing a line, just invert timestamp or something,
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
68 # to save a line (but I don't think this is possible with current irssi)
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
69 # - some pageup keybinding possibility, to scroll up upto the trackbar
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
70 # - <@coekie> kinlo: if i switch to another window, in another split window, i
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
71 # want the trackbar to go down in the previouswindow in that splitwindow :)
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
72 # - < bob_2> anyway to clear the line once the window is read?
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
73 # - < elho> kinlo: wishlist item: a string that gets prepended to the repeating pattern
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
74 # - < elho> an option to still have the timestamp in front of the bar
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
75 # - < elho> oh and an option to not draw it in the status window :P
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
76 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
77 # BTW: when you have feature requests, mailing a patch that works is the fastest way
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
78 # to get it added :p
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
79
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
80 use strict;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
81 use 5.6.1;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
82 use Irssi;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
83 use Irssi::TextUI;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
84
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
85 my $VERSION = "1.4";
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
86
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
87 my %IRSSI = (
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
88 authors => "Peter 'kinlo' Leurs",
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
89 contact => "peter\@pfoe.be",
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
90 name => "trackbar",
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
91 description => "Shows a bar where you've last read a window",
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
92 license => "GPLv2",
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
93 url => "http://www.pfoe.be/~peter/trackbar/",
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
94 changed => "Thu Feb 20 16:18:08 2003",
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
95 );
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
96
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
97 my %config;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
98
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
99 Irssi::settings_add_str('trackbar', 'trackbar_string' => '-');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
100 $config{'trackbar_string'} = Irssi::settings_get_str('trackbar_string');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
101
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
102 Irssi::settings_add_str('trackbar', 'trackbar_style' => '%K');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
103 $config{'trackbar_style'} = Irssi::settings_get_str('trackbar_style');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
104
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
105 Irssi::signal_add(
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
106 'setup changed' => sub {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
107 $config{'trackbar_string'} = Irssi::settings_get_str('trackbar_string');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
108 $config{'trackbar_style'} = Irssi::settings_get_str('trackbar_style');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
109 if ($config{'trackbar_style'} =~ /(?<!%)[^%]|%%|%$/) {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
110 Irssi::print(
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
111 "trackbar: %RWarning!%n 'trackbar_style' seems to contain "
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
112 . "printable characters. Only use format codes (read "
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
113 . "formats.txt).", MSGLEVEL_CLIENTERROR);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
114 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
115 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
116 );
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
117
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
118 Irssi::signal_add(
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
119 'window changed' => sub {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
120 my (undef, $oldwindow) = @_;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
121
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
122 if ($oldwindow) {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
123 my $line = $oldwindow->view()->get_bookmark('trackbar');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
124 $oldwindow->view()->remove_line($line) if defined $line;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
125 $oldwindow->print(line($oldwindow->{'width'}), MSGLEVEL_NEVER);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
126 $oldwindow->view()->set_bookmark_bottom('trackbar');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
127 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
128 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
129 );
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
130
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
131 sub line {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
132 my $width = shift;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
133 my $string = $config{'trackbar_string'};
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
134 $string = '-' unless defined $string;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
135
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
136 # There is a bug in irssi's utf-8 handling on config file settings, as you
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
137 # can reproduce/see yourself by the following code sniplet:
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
138 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
139 # my $quake = pack 'U*', 8364; # EUR symbol
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
140 # Irssi::settings_add_str 'temp', 'temp_foo' => $quake;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
141 # Irssi::print length $quake;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
142 # # prints 1
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
143 # Irssi::print length Irssi::settings_get_str 'temp_foo';
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
144 # # prints 3
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
145 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
146 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
147 # Trackbar used to have a workaround, but on recent versions of perl/irssi
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
148 # it does no longer work. Therefore, if you want your trackbar to contain
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
149 # unicode characters, uncomment the line below for a nice full line, or set
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
150 # the string to whatever char you want.
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
151
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
152 # $string = pack('U*', 0x2500);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
153
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
154
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
155 my $length = length $string;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
156
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
157 if ($length == 0) {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
158 $string = '-';
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
159 $length = 1;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
160 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
161
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
162 my $times = $width / $length;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
163 $times = int(1 + $times) if $times != int($times);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
164 $string =~ s/%/%%/g;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
165 return $config{'trackbar_style'} . substr($string x $times, 0, $width);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
166 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
167
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
168 # Remove trackbars on upgrade - but this doesn't really work if the scripts are not loaded in the correct order... watch out!
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
169
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
170 Irssi::signal_add_first( 'session save' => sub {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
171 for my $window (Irssi::windows) {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
172 next unless defined $window;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
173 my $line = $window->view()->get_bookmark('trackbar');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
174 $window->view()->remove_line($line) if defined $line;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
175 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
176 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
177 );
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
178
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
179 sub cmd_mark {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
180 my $window = Irssi::active_win();
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
181 # return unless defined $window;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
182 my $line = $window->view()->get_bookmark('trackbar');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
183 $window->view()->remove_line($line) if defined $line;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
184 $window->print(line($window->{'width'}), MSGLEVEL_NEVER);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
185 $window->view()->set_bookmark_bottom('trackbar');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
186 Irssi::command("redraw");
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
187 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
188
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
189 Irssi::command_bind('mark', 'cmd_mark');