annotate weechat/perl/buffers.pl @ 259:726728f13152

More Weechat plugins and config.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 21 Jan 2015 16:45:26 -0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
259
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 #
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 # Copyright (C) 2008-2014 Sebastien Helleu <flashcode@flashtux.org>
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 # Copyright (C) 2011-2013 Nils G <weechatter@arcor.de>
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 #
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 # This program is free software; you can redistribute it and/or modify
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 # it under the terms of the GNU General Public License as published by
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7 # the Free Software Foundation; either version 3 of the License, or
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 # (at your option) any later version.
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 #
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 # This program is distributed in the hope that it will be useful,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 # GNU General Public License for more details.
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 #
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 # You should have received a copy of the GNU General Public License
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 #
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 #
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
19 # Display sidebar with list of buffers.
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 #
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 # History:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 #
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23 # 2014-12-12
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24 # v5.0: fix cropping non-latin buffer names
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25 # 2014-08-29, Patrick Steinhardt <ps@pks.im>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26 # v4.9: add support for specifying custom buffer names
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 # 2014-07-19, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 # v4.8: add support of ctrl + mouse wheel to jump to previous/next buffer,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 # new option "mouse_wheel"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30 # 2014-06-22, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 # v4.7: fix typos in options
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32 # 2014-04-05, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33 # v4.6: add support of hidden buffers (WeeChat >= 0.4.4)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 # 2014-01-01, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 # v4.5: add option "mouse_move_buffer"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36 # 2013-12-11, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37 # v4.4: fix buffer number on drag to the end of list when option
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 # weechat.look.buffer_auto_renumber is off
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39 # 2013-12-10, nils_2@freenode.#weechat:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40 # v4.3: add options "prefix_bufname" and "suffix_bufname (idea by silverd)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
41 # : fix hook_timer() for show_lag wasn't disabled
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
42 # : improved signal handling (less updating of buffers list)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43 # 2013-11-07, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
44 # v4.2: use default filling "columns_vertical" when bar position is top/bottom
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
45 # 2013-10-31, nils_2@freenode.#weechat:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
46 # v4.1: add option "detach_buffer_immediately" (idea by farn)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
47 # 2013-10-20, nils_2@freenode.#weechat:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
48 # v4.0: add options "detach_displayed_buffers", "detach_display_window_number"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
49 # 2013-09-27, nils_2@freenode.#weechat:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
50 # v3.9: add option "toggle_bar" and option "show_prefix_query" (idea by IvarB)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
51 # : fix problem with linefeed at end of list of buffers (reported by grawity)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
52 # 2012-10-18, nils_2@freenode.#weechat:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
53 # v3.8: add option "mark_inactive", to mark buffers you are not in (idea by xrdodrx)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
54 # : add wildcard "*" for immune_detach_buffers (idea by StarWeaver)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
55 # : add new options "detach_query" and "detach_free_content" (idea by StarWeaver)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
56 # 2012-10-06, Nei <anti.teamidiot.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
57 # v3.7: call menu on right mouse if menu script is loaded.
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
58 # 2012-10-06, nils_2 <weechatter@arcor.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
59 # v3.6: add new option "hotlist_counter" (idea by torque).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
60 # 2012-06-02, nils_2 <weechatter@arcor.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
61 # v3.5: add values "server|channel|private|all|keepserver|none" to option "hide_merged_buffers" (suggested by dominikh).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
62 # 2012-05-25, nils_2 <weechatter@arcor.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
63 # v3.4: add new option "show_lag".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
64 # 2012-04-07, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
65 # v3.3: fix truncation of wide chars in buffer name (option name_size_max) (bug #36034)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
66 # 2012-03-15, nils_2 <weechatter@arcor.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
67 # v3.2: add new option "detach"(weechat >= 0.3.8)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
68 # add new option "immune_detach_buffers" (requested by Mkaysi)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
69 # add new function buffers_whitelist add|del|reset (suggested by FiXato)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
70 # add new function buffers_detach add|del|reset
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
71 # 2012-03-09, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
72 # v3.1: fix reload of config file
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
73 # 2012-01-29, nils_2 <weechatter@arcor.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
74 # v3.0: fix: buffers did not update directly during window_switch (reported by FiXato)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
75 # 2012-01-29, nils_2 <weechatter@arcor.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
76 # v2.9: add options "name_size_max" and "name_crop_suffix"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
77 # 2012-01-08, nils_2 <weechatter@arcor.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
78 # v2.8: fix indenting for option "show_number off"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
79 # fix unset of buffer activity in hotlist when buffer was moved with mouse
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
80 # add buffer with free content and core buffer sorted first (suggested by nyuszika7h)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
81 # add options queries_default_fg/bg and queries_message_fg/bg (suggested by FiXato)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
82 # add clicking with left button on current buffer will do a jump_previously_visited_buffer (suggested by FiXato)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
83 # add clicking with right button on current buffer will do a jump_next_visited_buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
84 # add additional informations in help texts
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
85 # add default_fg and default_bg for whitelist channels
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
86 # internal changes (script is now 3Kb smaller)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
87 # 2012-01-04, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
88 # v2.7: fix regex lookup in whitelist buffers list
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
89 # 2011-12-04, nils_2 <weechatter@arcor.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
90 # v2.6: add own config file (buffers.conf)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
91 # add new behavior for indenting (under_name)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
92 # add new option to set different color for server buffers and buffers with free content
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
93 # 2011-10-30, nils_2 <weechatter@arcor.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
94 # v2.5: add new options "show_number_char" and "color_number_char",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
95 # add help-description for options
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
96 # 2011-08-24, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
97 # v2.4: add mouse support
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
98 # 2011-06-06, nils_2 <weechatter@arcor.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
99 # v2.3: added: missed option "color_whitelist_default"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
100 # 2011-03-23, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
101 # v2.2: fix color of nick prefix with WeeChat >= 0.3.5
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
102 # 2011-02-13, nils_2 <weechatter@arcor.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
103 # v2.1: add options "color_whitelist_*"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
104 # 2010-10-05, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
105 # v2.0: add options "sort" and "show_number"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
106 # 2010-04-12, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
107 # v1.9: replace call to log() by length() to align buffer numbers
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
108 # 2010-04-02, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
109 # v1.8: fix bug with background color and option indenting_number
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
110 # 2010-04-02, Helios <helios@efemes.de>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
111 # v1.7: add indenting_number option
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
112 # 2010-02-25, m4v <lambdae2@gmail.com>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
113 # v1.6: add option to hide empty prefixes
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
114 # 2010-02-12, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
115 # v1.5: add optional nick prefix for buffers like IRC channels
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
116 # 2009-09-30, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
117 # v1.4: remove spaces for indenting when bar position is top/bottom
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
118 # 2009-06-14, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
119 # v1.3: add option "hide_merged_buffers"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
120 # 2009-06-14, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
121 # v1.2: improve display with merged buffers
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
122 # 2009-05-02, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
123 # v1.1: sync with last API changes
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
124 # 2009-02-21, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
125 # v1.0: remove timer used to update bar item first time (not needed any more)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
126 # 2009-02-17, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
127 # v0.9: fix bug with indenting of private buffers
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
128 # 2009-01-04, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
129 # v0.8: update syntax for command /set (comments)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
130 # 2008-10-20, Jiri Golembiovsky <golemj@gmail.com>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
131 # v0.7: add indenting option
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
132 # 2008-10-01, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
133 # v0.6: add default color for buffers, and color for current active buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
134 # 2008-09-18, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
135 # v0.5: fix color for "low" level entry in hotlist
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
136 # 2008-09-18, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
137 # v0.4: rename option "show_category" to "short_names",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
138 # remove option "color_slash"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
139 # 2008-09-15, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
140 # v0.3: fix bug with priority in hotlist (var not defined)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
141 # 2008-09-02, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
142 # v0.2: add color for buffers with activity and config options for
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
143 # colors, add config option to display/hide categories
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
144 # 2008-03-15, Sebastien Helleu <flashcode@flashtux.org>:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
145 # v0.1: script creation
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
146 #
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
147 # Help about settings:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
148 # display all settings for script (or use iset.pl script to change settings):
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
149 # /set buffers*
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
150 # show help text for option buffers.look.whitelist_buffers:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
151 # /help buffers.look.whitelist_buffers
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
152 #
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
153 # Mouse-support (standard key bindings):
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
154 # left mouse-button:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
155 # - click on a buffer to switch to selected buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
156 # - click on current buffer will do action jump_previously_visited_buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
157 # - drag a buffer and drop it on another position will move the buffer to position
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
158 # right mouse-button:
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
159 # - click on current buffer will do action jump_next_visited_buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
160 # - moving buffer to the left/right will close buffer.
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
161 #
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
162
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
163 use strict;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
164 use Encode qw( decode encode );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
165 # -----------------------------[ internal ]-------------------------------------
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
166 my $SCRIPT_NAME = "buffers";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
167 my $SCRIPT_VERSION = "5.0";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
168
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
169 my $BUFFERS_CONFIG_FILE_NAME = "buffers";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
170 my $buffers_config_file;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
171 my $cmd_buffers_whitelist= "buffers_whitelist";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
172 my $cmd_buffers_detach = "buffers_detach";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
173
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
174 my %mouse_keys = ("\@item(buffers):button1*" => "hsignal:buffers_mouse",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
175 "\@item(buffers):button2*" => "hsignal:buffers_mouse",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
176 "\@bar(buffers):ctrl-wheelup" => "hsignal:buffers_mouse",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
177 "\@bar(buffers):ctrl-wheeldown" => "hsignal:buffers_mouse");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
178 my %options;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
179 my %hotlist_level = (0 => "low", 1 => "message", 2 => "private", 3 => "highlight");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
180 my @whitelist_buffers = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
181 my @immune_detach_buffers= ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
182 my @detach_buffer_immediately= ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
183 my @buffers_focus = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
184 my %buffers_timer = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
185 my %Hooks = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
186
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
187 # --------------------------------[ init ]--------------------------------------
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
188 weechat::register($SCRIPT_NAME, "Sebastien Helleu <flashcode\@flashtux.org>",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
189 $SCRIPT_VERSION, "GPL3",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
190 "Sidebar with list of buffers", "shutdown_cb", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
191 my $weechat_version = weechat::info_get("version_number", "") || 0;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
192
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
193 buffers_config_init();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
194 buffers_config_read();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
195
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
196 weechat::bar_item_new($SCRIPT_NAME, "build_buffers", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
197 weechat::bar_new($SCRIPT_NAME, "0", "0", "root", "", "left", "columns_vertical",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
198 "vertical", "0", "0", "default", "default", "default", "1",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
199 $SCRIPT_NAME);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
200
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
201 if ( check_bar_item() == 0 )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
202 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
203 weechat::command("", "/bar show " . $SCRIPT_NAME) if ( weechat::config_boolean($options{"toggle_bar"}) eq 1 );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
204 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
205
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
206 weechat::hook_signal("buffer_opened", "buffers_signal_buffer", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
207 weechat::hook_signal("buffer_closed", "buffers_signal_buffer", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
208 weechat::hook_signal("buffer_merged", "buffers_signal_buffer", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
209 weechat::hook_signal("buffer_unmerged", "buffers_signal_buffer", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
210 weechat::hook_signal("buffer_moved", "buffers_signal_buffer", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
211 weechat::hook_signal("buffer_renamed", "buffers_signal_buffer", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
212 weechat::hook_signal("buffer_switch", "buffers_signal_buffer", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
213 weechat::hook_signal("buffer_hidden", "buffers_signal_buffer", ""); # WeeChat >= 0.4.4
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
214 weechat::hook_signal("buffer_unhidden", "buffers_signal_buffer", ""); # WeeChat >= 0.4.4
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
215 weechat::hook_signal("buffer_localvar_added", "buffers_signal_buffer", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
216 weechat::hook_signal("buffer_localvar_changed", "buffers_signal_buffer", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
217
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
218 weechat::hook_signal("window_switch", "buffers_signal_buffer", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
219 weechat::hook_signal("hotlist_changed", "buffers_signal_hotlist", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
220 #weechat::hook_command_run("/input switch_active_*", "buffers_signal_buffer", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
221 weechat::bar_item_update($SCRIPT_NAME);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
222
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
223
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
224 if ($weechat_version >= 0x00030600)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
225 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
226 weechat::hook_focus($SCRIPT_NAME, "buffers_focus_buffers", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
227 weechat::hook_hsignal("buffers_mouse", "buffers_hsignal_mouse", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
228 weechat::key_bind("mouse", \%mouse_keys);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
229 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
230
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
231 weechat::hook_command($cmd_buffers_whitelist,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
232 "add/del current buffer to/from buffers whitelist",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
233 "[add] || [del] || [reset]",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
234 " add: add current buffer in configuration file\n".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
235 " del: delete current buffer from configuration file\n".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
236 "reset: reset all buffers from configuration file ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
237 "(no confirmation!)\n\n".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
238 "Examples:\n".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
239 "/$cmd_buffers_whitelist add\n",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
240 "add %-||".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
241 "del %-||".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
242 "reset %-",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
243 "buffers_cmd_whitelist", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
244 weechat::hook_command($cmd_buffers_detach,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
245 "add/del current buffer to/from buffers detach",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
246 "[add] || [del] || [reset]",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
247 " add: add current buffer in configuration file\n".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
248 " del: delete current buffer from configuration file\n".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
249 "reset: reset all buffers from configuration file ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
250 "(no confirmation!)\n\n".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
251 "Examples:\n".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
252 "/$cmd_buffers_detach add\n",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
253 "add %-||".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
254 "del %-||".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
255 "reset %-",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
256 "buffers_cmd_detach", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
257
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
258 if ($weechat_version >= 0x00030800)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
259 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
260 weechat::hook_config("buffers.look.detach", "hook_timer_detach", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
261 if (weechat::config_integer($options{"detach"}) > 0)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
262 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
263 $Hooks{timer_detach} = weechat::hook_timer(weechat::config_integer($options{"detach"}) * 1000,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
264 60, 0, "buffers_signal_hotlist", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
265 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
266 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
267
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
268 weechat::hook_config("buffers.look.show_lag", "hook_timer_lag", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
269
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
270 if (weechat::config_boolean($options{"show_lag"}))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
271 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
272 $Hooks{timer_lag} = weechat::hook_timer(
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
273 weechat::config_integer(weechat::config_get("irc.network.lag_refresh_interval")) * 1000,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
274 0, 0, "buffers_signal_hotlist", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
275 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
276
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
277 # -------------------------------- [ command ] --------------------------------
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
278 sub buffers_cmd_whitelist
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
279 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
280 my ( $data, $buffer, $args ) = @_;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
281 $args = lc($args);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
282 my $buffers_whitelist = weechat::config_string( weechat::config_get("buffers.look.whitelist_buffers") );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
283 return weechat::WEECHAT_RC_OK if ( $buffers_whitelist eq "" and $args eq "del" or $buffers_whitelist eq "" and $args eq "reset" );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
284 my @buffers_list = split( /,/, $buffers_whitelist );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
285 # get buffers name
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
286 my $infolist = weechat::infolist_get("buffer", weechat::current_buffer(), "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
287 weechat::infolist_next($infolist);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
288 my $buffers_name = weechat::infolist_string($infolist, "name");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
289 weechat::infolist_free($infolist);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
290 return weechat::WEECHAT_RC_OK if ( $buffers_name eq "" ); # should never happen
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
291
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
292 if ( $args eq "add" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
293 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
294 return weechat::WEECHAT_RC_OK if ( grep /^$buffers_name$/, @buffers_list ); # check if buffer already in list
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
295 push @buffers_list, ( $buffers_name );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
296 my $buffers_list = &create_whitelist(\@buffers_list);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
297 weechat::config_option_set( weechat::config_get("buffers.look.whitelist_buffers"), $buffers_list, 1);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
298 weechat::print(weechat::current_buffer(), "buffer \"$buffers_name\" added to buffers whitelist");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
299 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
300 elsif ( $args eq "del" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
301 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
302 return weechat::WEECHAT_RC_OK unless ( grep /^$buffers_name$/, @buffers_list ); # check if buffer is in list
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
303 @buffers_list = grep {$_ ne $buffers_name} @buffers_list; # delete entry
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
304 my $buffers_list = &create_whitelist(\@buffers_list);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
305 weechat::config_option_set( weechat::config_get("buffers.look.whitelist_buffers"), $buffers_list, 1);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
306 weechat::print(weechat::current_buffer(), "buffer \"$buffers_name\" deleted from buffers whitelist");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
307 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
308 elsif ( $args eq "reset" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
309 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
310 return weechat::WEECHAT_RC_OK if ( $buffers_whitelist eq "" );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
311 weechat::config_option_set( weechat::config_get("buffers.look.whitelist_buffers"), "", 1);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
312 weechat::print(weechat::current_buffer(), "buffers whitelist is empty, now...");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
313 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
314 return weechat::WEECHAT_RC_OK;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
315 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
316 sub buffers_cmd_detach
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
317 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
318 my ( $data, $buffer, $args ) = @_;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
319 $args = lc($args);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
320 my $immune_detach_buffers = weechat::config_string( weechat::config_get("buffers.look.immune_detach_buffers") );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
321 return weechat::WEECHAT_RC_OK if ( $immune_detach_buffers eq "" and $args eq "del" or $immune_detach_buffers eq "" and $args eq "reset" );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
322
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
323 my @buffers_list = split( /,/, $immune_detach_buffers );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
324 # get buffers name
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
325 my $infolist = weechat::infolist_get("buffer", weechat::current_buffer(), "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
326 weechat::infolist_next($infolist);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
327 my $buffers_name = weechat::infolist_string($infolist, "name");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
328 weechat::infolist_free($infolist);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
329 return weechat::WEECHAT_RC_OK if ( $buffers_name eq "" ); # should never happen
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
330
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
331 if ( $args eq "add" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
332 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
333 return weechat::WEECHAT_RC_OK if ( grep /^$buffers_name$/, @buffers_list ); # check if buffer already in list
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
334 push @buffers_list, ( $buffers_name );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
335 my $buffers_list = &create_whitelist(\@buffers_list);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
336 weechat::config_option_set( weechat::config_get("buffers.look.immune_detach_buffers"), $buffers_list, 1);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
337 weechat::print(weechat::current_buffer(), "buffer \"$buffers_name\" added to immune detach buffers");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
338 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
339 elsif ( $args eq "del" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
340 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
341 return weechat::WEECHAT_RC_OK unless ( grep /^$buffers_name$/, @buffers_list ); # check if buffer is in list
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
342 @buffers_list = grep {$_ ne $buffers_name} @buffers_list; # delete entry
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
343 my $buffers_list = &create_whitelist(\@buffers_list);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
344 weechat::config_option_set( weechat::config_get("buffers.look.immune_detach_buffers"), $buffers_list, 1);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
345 weechat::print(weechat::current_buffer(), "buffer \"$buffers_name\" deleted from immune detach buffers");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
346 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
347 elsif ( $args eq "reset" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
348 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
349 return weechat::WEECHAT_RC_OK if ( $immune_detach_buffers eq "" );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
350 weechat::config_option_set( weechat::config_get("buffers.look.immune_detach_buffers"), "", 1);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
351 weechat::print(weechat::current_buffer(), "immune detach buffers is empty, now...");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
352 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
353 return weechat::WEECHAT_RC_OK;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
354 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
355
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
356 sub create_whitelist
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
357 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
358 my @buffers_list = @{$_[0]};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
359 my $buffers_list = "";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
360 foreach (@buffers_list)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
361 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
362 $buffers_list .= $_ .",";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
363 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
364 # remove last ","
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
365 chop $buffers_list;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
366 return $buffers_list;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
367 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
368
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
369 # -------------------------------- [ config ] --------------------------------
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
370 sub hook_timer_detach
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
371 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
372 my $detach = $_[2];
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
373 if ( $detach eq 0 )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
374 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
375 weechat::unhook($Hooks{timer_detach}) if $Hooks{timer_detach};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
376 $Hooks{timer_detach} = "";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
377 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
378 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
379 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
380 weechat::unhook($Hooks{timer_detach}) if $Hooks{timer_detach};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
381 $Hooks{timer_detach} = weechat::hook_timer( weechat::config_integer( $options{"detach"}) * 1000, 60, 0, "buffers_signal_hotlist", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
382 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
383 weechat::bar_item_update($SCRIPT_NAME);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
384 return weechat::WEECHAT_RC_OK;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
385 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
386
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
387 sub hook_timer_lag
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
388 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
389 my $lag = $_[2];
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
390 if ( $lag eq "off" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
391 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
392 weechat::unhook($Hooks{timer_lag}) if $Hooks{timer_lag};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
393 $Hooks{timer_lag} = "";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
394 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
395 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
396 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
397 weechat::unhook($Hooks{timer_lag}) if $Hooks{timer_lag};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
398 $Hooks{timer_lag} = weechat::hook_timer( weechat::config_integer(weechat::config_get("irc.network.lag_refresh_interval")) * 1000, 0, 0, "buffers_signal_hotlist", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
399 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
400 weechat::bar_item_update($SCRIPT_NAME);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
401 return weechat::WEECHAT_RC_OK;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
402 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
403
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
404 sub buffers_config_read
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
405 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
406 return weechat::config_read($buffers_config_file) if ($buffers_config_file ne "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
407 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
408 sub buffers_config_write
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
409 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
410 return weechat::config_write($buffers_config_file) if ($buffers_config_file ne "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
411 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
412 sub buffers_config_reload_cb
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
413 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
414 my ($data, $config_file) = ($_[0], $_[1]);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
415 return weechat::config_reload($config_file)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
416 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
417 sub buffers_config_init
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
418 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
419 $buffers_config_file = weechat::config_new($BUFFERS_CONFIG_FILE_NAME,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
420 "buffers_config_reload_cb", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
421 return if ($buffers_config_file eq "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
422
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
423 my %default_options_color =
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
424 ("color_current_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
425 "current_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
426 "foreground color for current buffer",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
427 "", 0, 0, "lightcyan", "lightcyan", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
428 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
429 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
430 "color_current_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
431 "current_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
432 "background color for current buffer",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
433 "", 0, 0, "red", "red", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
434 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
435 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
436 "color_default_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
437 "default_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
438 "default foreground color for buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
439 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
440 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
441 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
442 "color_default_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
443 "default_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
444 "default background color for buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
445 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
446 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
447 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
448 "color_hotlist_highlight_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
449 "hotlist_highlight_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
450 "change foreground color of buffer name if a highlight messaged received",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
451 "", 0, 0, "magenta", "magenta", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
452 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
453 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
454 "color_hotlist_highlight_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
455 "hotlist_highlight_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
456 "change background color of buffer name if a highlight messaged received",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
457 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
458 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
459 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
460 "color_hotlist_low_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
461 "hotlist_low_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
462 "change foreground color of buffer name if a low message received",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
463 "", 0, 0, "white", "white", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
464 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
465 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
466 "color_hotlist_low_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
467 "hotlist_low_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
468 "change background color of buffer name if a low message received",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
469 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
470 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
471 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
472 "color_hotlist_message_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
473 "hotlist_message_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
474 "change foreground color of buffer name if a normal message received",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
475 "", 0, 0, "yellow", "yellow", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
476 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
477 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
478 "color_hotlist_message_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
479 "hotlist_message_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
480 "change background color of buffer name if a normal message received",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
481 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
482 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
483 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
484 "color_hotlist_private_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
485 "hotlist_private_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
486 "change foreground color of buffer name if a private message received",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
487 "", 0, 0, "lightgreen", "lightgreen", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
488 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
489 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
490 "color_hotlist_private_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
491 "hotlist_private_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
492 "change background color of buffer name if a private message received",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
493 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
494 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
495 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
496 "color_number" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
497 "number", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
498 "color for buffer number",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
499 "", 0, 0, "lightgreen", "lightgreen", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
500 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
501 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
502 "color_number_char" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
503 "number_char", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
504 "color for buffer number char",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
505 "", 0, 0, "lightgreen", "lightgreen", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
506 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
507 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
508 "color_whitelist_default_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
509 "whitelist_default_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
510 "default foreground color for whitelist buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
511 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
512 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
513 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
514 "color_whitelist_default_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
515 "whitelist_default_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
516 "default background color for whitelist buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
517 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
518 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
519 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
520 "color_whitelist_low_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
521 "whitelist_low_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
522 "low color of whitelist buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
523 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
524 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
525 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
526 "color_whitelist_low_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
527 "whitelist_low_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
528 "low color of whitelist buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
529 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
530 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
531 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
532 "color_whitelist_message_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
533 "whitelist_message_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
534 "message color of whitelist buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
535 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
536 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
537 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
538 "color_whitelist_message_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
539 "whitelist_message_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
540 "message color of whitelist buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
541 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
542 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
543 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
544 "color_whitelist_private_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
545 "whitelist_private_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
546 "private color of whitelist buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
547 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
548 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
549 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
550 "color_whitelist_private_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
551 "whitelist_private_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
552 "private color of whitelist buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
553 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
554 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
555 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
556 "color_whitelist_highlight_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
557 "whitelist_highlight_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
558 "highlight color of whitelist buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
559 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
560 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
561 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
562 "color_whitelist_highlight_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
563 "whitelist_highlight_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
564 "highlight color of whitelist buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
565 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
566 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
567 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
568 "color_none_channel_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
569 "none_channel_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
570 "foreground color for none channel buffer (e.g.: core/server/plugin ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
571 "buffer)",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
572 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
573 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
574 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
575 "color_none_channel_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
576 "none_channel_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
577 "background color for none channel buffer (e.g.: core/server/plugin ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
578 "buffer)",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
579 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
580 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
581 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
582 "queries_default_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
583 "queries_default_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
584 "foreground color for query buffer without message",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
585 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
586 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
587 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
588 "queries_default_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
589 "queries_default_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
590 "background color for query buffer without message",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
591 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
592 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
593 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
594 "queries_message_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
595 "queries_message_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
596 "foreground color for query buffer with unread message",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
597 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
598 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
599 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
600 "queries_message_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
601 "queries_message_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
602 "background color for query buffer with unread message",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
603 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
604 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
605 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
606 "queries_highlight_fg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
607 "queries_highlight_fg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
608 "foreground color for query buffer with unread highlight",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
609 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
610 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
611 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
612 "queries_highlight_bg" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
613 "queries_highlight_bg", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
614 "background color for query buffer with unread highlight",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
615 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
616 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
617 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
618 "color_prefix_bufname" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
619 "prefix_bufname", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
620 "color for prefix of buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
621 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
622 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
623 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
624 "color_suffix_bufname" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
625 "suffix_bufname", "color",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
626 "color for suffix of buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
627 "", 0, 0, "default", "default", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
628 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
629 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
630 );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
631
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
632 my %default_options_look =
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
633 (
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
634 "hotlist_counter" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
635 "hotlist_counter", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
636 "show number of message for the buffer (this option needs WeeChat >= ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
637 "0.3.5). The relevant option for notification is \"weechat.look.".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
638 "buffer_notify_default\"",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
639 "", 0, 0, "off", "off", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
640 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
641 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
642 "show_lag" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
643 "show_lag", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
644 "show lag behind server name. This option is using \"irc.color.".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
645 "item_lag_finished\", ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
646 "\"irc.network.lag_min_show\" and \"irc.network.lag_refresh_interval\"",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
647 "", 0, 0, "off", "off", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
648 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
649 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
650 "look_whitelist_buffers" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
651 "whitelist_buffers", "string",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
652 "comma separated list of buffers for using a different color scheme ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
653 "(for example: freenode.#weechat,freenode.#weechat-fr)",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
654 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
655 "", "", "buffers_signal_config_whitelist", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
656 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
657 "hide_merged_buffers" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
658 "hide_merged_buffers", "integer",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
659 "hide merged buffers. The value determines which merged buffers should ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
660 "be hidden, keepserver meaning 'all except server buffers'. Other values ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
661 "correspondent to the buffer type.",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
662 "server|channel|private|keepserver|all|none", 0, 0, "none", "none", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
663 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
664 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
665 "indenting" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
666 "indenting", "integer", "use indenting for channel and query buffers. ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
667 "This option only takes effect if bar is left/right positioned",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
668 "off|on|under_name", 0, 0, "off", "off", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
669 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
670 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
671 "indenting_number" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
672 "indenting_number", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
673 "use indenting for numbers. This option only takes effect if bar is ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
674 "left/right positioned",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
675 "", 0, 0, "on", "on", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
676 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
677 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
678 "short_names" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
679 "short_names", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
680 "display short names (remove text before first \".\" in buffer name)",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
681 "", 0, 0, "on", "on", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
682 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
683 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
684 "show_number" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
685 "show_number", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
686 "display buffer number in front of buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
687 "", 0, 0, "on", "on", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
688 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
689 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
690 "show_number_char" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
691 "number_char", "string",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
692 "display a char behind buffer number",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
693 "", 0, 0, ".", ".", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
694 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
695 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
696 "show_prefix_bufname" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
697 "prefix_bufname", "string",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
698 "prefix displayed in front of buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
699 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
700 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
701 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
702 "show_suffix_bufname" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
703 "suffix_bufname", "string",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
704 "suffix displayed at end of buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
705 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
706 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
707 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
708 "show_prefix" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
709 "prefix", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
710 "displays your prefix for channel in front of buffer name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
711 "", 0, 0, "off", "off", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
712 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
713 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
714 "show_prefix_empty" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
715 "prefix_empty", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
716 "use a placeholder for channels without prefix",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
717 "", 0, 0, "on", "on", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
718 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
719 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
720 "show_prefix_query" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
721 "prefix_for_query", "string",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
722 "prefix displayed in front of query buffer",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
723 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
724 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
725 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
726 "sort" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
727 "sort", "integer",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
728 "sort buffer-list by \"number\" or \"name\"",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
729 "number|name", 0, 0, "number", "number", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
730 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
731 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
732 "core_to_front" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
733 "core_to_front", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
734 "core buffer and buffers with free content will be listed first. ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
735 "Take only effect if buffer sort is by name",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
736 "", 0, 0, "off", "off", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
737 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
738 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
739 "jump_prev_next_visited_buffer" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
740 "jump_prev_next_visited_buffer", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
741 "jump to previously or next visited buffer if you click with ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
742 "left/right mouse button on currently visiting buffer",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
743 "", 0, 0, "off", "off", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
744 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
745 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
746 "name_size_max" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
747 "name_size_max", "integer",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
748 "maximum size of buffer name. 0 means no limitation",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
749 "", 0, 256, 0, 0, 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
750 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
751 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
752 "name_crop_suffix" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
753 "name_crop_suffix", "string",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
754 "contains an optional char(s) that is appended when buffer name is ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
755 "shortened",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
756 "", 0, 0, "+", "+", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
757 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
758 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
759 "detach" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
760 "detach", "integer",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
761 "detach buffer from buffers list after a specific period of time ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
762 "(in seconds) without action (weechat ≥ 0.3.8 required) (0 means \"off\")",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
763 "", 0, 31536000, 0, "number", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
764 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
765 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
766 "immune_detach_buffers" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
767 "immune_detach_buffers", "string",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
768 "comma separated list of buffers to NOT automatically detach. ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
769 "Allows \"*\" wildcard. Ex: \"BitlBee,freenode.*\"",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
770 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
771 "", "", "buffers_signal_config_immune_detach_buffers", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
772 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
773 "detach_query" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
774 "detach_query", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
775 "query buffer will be detached",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
776 "", 0, 0, "off", "off", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
777 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
778 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
779 "detach_buffer_immediately" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
780 "detach_buffer_immediately", "string",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
781 "comma separated list of buffers to detach immediately. A query and ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
782 "highlight message will attach buffer again. Allows \"*\" wildcard. ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
783 "Ex: \"BitlBee,freenode.*\"",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
784 "", 0, 0, "", "", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
785 "", "", "buffers_signal_config_detach_buffer_immediately", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
786 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
787 "detach_free_content" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
788 "detach_free_content", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
789 "buffers with free content will be detached (Ex: iset, chanmon)",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
790 "", 0, 0, "off", "off", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
791 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
792 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
793 "detach_displayed_buffers" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
794 "detach_displayed_buffers", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
795 "buffers displayed in a (split) window will be detached",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
796 "", 0, 0, "on", "on", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
797 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
798 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
799 "detach_display_window_number" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
800 "detach_display_window_number", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
801 "window number will be add, behind buffer name (this option takes only ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
802 "effect with \"detach_displayed_buffers\" option)",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
803 "", 0, 0, "off", "off", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
804 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
805 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
806 "mark_inactive" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
807 "mark_inactive", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
808 "if option is \"on\", inactive buffers (those you are not in) will have ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
809 "parentheses around them. An inactive buffer will not be detached.",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
810 "", 0, 0, "off", "off", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
811 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
812 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
813 "toggle_bar" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
814 "toggle_bar", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
815 "if option is \"on\", buffers bar will hide/show when script is ".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
816 "(un)loaded.",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
817 "", 0, 0, "on", "on", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
818 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
819 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
820 "mouse_move_buffer" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
821 "mouse_move_buffer", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
822 "if option is \"on\", mouse gestures (drag & drop) can move buffers in list.",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
823 "", 0, 0, "on", "on", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
824 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
825 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
826 "mouse_wheel" => [
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
827 "mouse_wheel", "boolean",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
828 "if option is \"on\", mouse wheel jumps to previous/next buffer in list.",
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
829 "", 0, 0, "on", "on", 0,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
830 "", "", "buffers_signal_config", "", "", ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
831 ],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
832 );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
833 # section "color"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
834 my $section_color = weechat::config_new_section(
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
835 $buffers_config_file,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
836 "color", 0, 0, "", "", "", "", "", "", "", "", "", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
837 if ($section_color eq "")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
838 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
839 weechat::config_free($buffers_config_file);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
840 return;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
841 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
842 foreach my $option (keys %default_options_color)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
843 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
844 $options{$option} = weechat::config_new_option(
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
845 $buffers_config_file,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
846 $section_color,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
847 $default_options_color{$option}[0],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
848 $default_options_color{$option}[1],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
849 $default_options_color{$option}[2],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
850 $default_options_color{$option}[3],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
851 $default_options_color{$option}[4],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
852 $default_options_color{$option}[5],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
853 $default_options_color{$option}[6],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
854 $default_options_color{$option}[7],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
855 $default_options_color{$option}[8],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
856 $default_options_color{$option}[9],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
857 $default_options_color{$option}[10],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
858 $default_options_color{$option}[11],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
859 $default_options_color{$option}[12],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
860 $default_options_color{$option}[13],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
861 $default_options_color{$option}[14]);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
862 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
863
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
864 # section "look"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
865 my $section_look = weechat::config_new_section(
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
866 $buffers_config_file,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
867 "look", 0, 0, "", "", "", "", "", "", "", "", "", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
868 if ($section_look eq "")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
869 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
870 weechat::config_free($buffers_config_file);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
871 return;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
872 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
873 foreach my $option (keys %default_options_look)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
874 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
875 $options{$option} = weechat::config_new_option(
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
876 $buffers_config_file,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
877 $section_look,
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
878 $default_options_look{$option}[0],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
879 $default_options_look{$option}[1],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
880 $default_options_look{$option}[2],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
881 $default_options_look{$option}[3],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
882 $default_options_look{$option}[4],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
883 $default_options_look{$option}[5],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
884 $default_options_look{$option}[6],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
885 $default_options_look{$option}[7],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
886 $default_options_look{$option}[8],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
887 $default_options_look{$option}[9],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
888 $default_options_look{$option}[10],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
889 $default_options_look{$option}[11],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
890 $default_options_look{$option}[12],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
891 $default_options_look{$option}[13],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
892 $default_options_look{$option}[14],
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
893 $default_options_look{$option}[15]);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
894 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
895 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
896
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
897 sub build_buffers
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
898 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
899 my $str = "";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
900
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
901 # get bar position (left/right/top/bottom)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
902 my $position = "left";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
903 my $option_position = weechat::config_get("weechat.bar.buffers.position");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
904 if ($option_position ne "")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
905 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
906 $position = weechat::config_string($option_position);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
907 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
908
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
909 # read hotlist
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
910 my %hotlist;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
911 my $infolist = weechat::infolist_get("hotlist", "", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
912 while (weechat::infolist_next($infolist))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
913 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
914 $hotlist{weechat::infolist_pointer($infolist, "buffer_pointer")} =
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
915 weechat::infolist_integer($infolist, "priority");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
916 if ( weechat::config_boolean( $options{"hotlist_counter"} ) eq 1 and $weechat_version >= 0x00030500)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
917 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
918 $hotlist{weechat::infolist_pointer($infolist, "buffer_pointer")."_count_00"} =
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
919 weechat::infolist_integer($infolist, "count_00"); # low message
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
920 $hotlist{weechat::infolist_pointer($infolist, "buffer_pointer")."_count_01"} =
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
921 weechat::infolist_integer($infolist, "count_01"); # channel message
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
922 $hotlist{weechat::infolist_pointer($infolist, "buffer_pointer")."_count_02"} =
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
923 weechat::infolist_integer($infolist, "count_02"); # private message
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
924 $hotlist{weechat::infolist_pointer($infolist, "buffer_pointer")."_count_03"} =
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
925 weechat::infolist_integer($infolist, "count_03"); # highlight message
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
926 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
927 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
928 weechat::infolist_free($infolist);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
929
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
930 # read buffers list
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
931 @buffers_focus = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
932 my @buffers;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
933 my @current1 = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
934 my @current2 = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
935 my $old_number = -1;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
936 my $max_number = 0;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
937 my $max_number_digits = 0;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
938 my $active_seen = 0;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
939 $infolist = weechat::infolist_get("buffer", "", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
940 while (weechat::infolist_next($infolist))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
941 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
942 # ignore hidden buffers (WeeChat >= 0.4.4)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
943 if ($weechat_version >= 0x00040400)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
944 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
945 next if (weechat::infolist_integer($infolist, "hidden"));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
946 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
947 my $buffer;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
948 my $number = weechat::infolist_integer($infolist, "number");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
949 if ($number ne $old_number)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
950 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
951 @buffers = (@buffers, @current2, @current1);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
952 @current1 = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
953 @current2 = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
954 $active_seen = 0;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
955 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
956 if ($number > $max_number)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
957 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
958 $max_number = $number;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
959 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
960 $old_number = $number;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
961 my $active = weechat::infolist_integer($infolist, "active");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
962 if ($active)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
963 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
964 $active_seen = 1;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
965 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
966 $buffer->{"pointer"} = weechat::infolist_pointer($infolist, "pointer");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
967 $buffer->{"number"} = $number;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
968 $buffer->{"active"} = $active;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
969 $buffer->{"current_buffer"} = weechat::infolist_integer($infolist, "current_buffer");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
970 $buffer->{"num_displayed"} = weechat::infolist_integer($infolist, "num_displayed");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
971 $buffer->{"plugin_name"} = weechat::infolist_string($infolist, "plugin_name");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
972 $buffer->{"name"} = weechat::infolist_string($infolist, "name");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
973 $buffer->{"short_name"} = weechat::infolist_string($infolist, "short_name");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
974 $buffer->{"full_name"} = $buffer->{"plugin_name"}.".".$buffer->{"name"};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
975 $buffer->{"type"} = weechat::buffer_get_string($buffer->{"pointer"}, "localvar_type");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
976 #weechat::print("", $buffer->{"type"});
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
977
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
978 # check if buffer is active (or maybe a /part, /kick channel)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
979 if ($buffer->{"type"} eq "channel" and weechat::config_boolean( $options{"mark_inactive"} ) eq 1)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
980 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
981 my $server = weechat::buffer_get_string($buffer->{"pointer"}, "localvar_server");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
982 my $channel = weechat::buffer_get_string($buffer->{"pointer"}, "localvar_channel");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
983 my $infolist_channel = weechat::infolist_get("irc_channel", "", $server.",".$channel);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
984 if ($infolist_channel)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
985 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
986 weechat::infolist_next($infolist_channel);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
987 $buffer->{"nicks_count"} = weechat::infolist_integer($infolist_channel, "nicks_count");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
988 }else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
989 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
990 $buffer->{"nicks_count"} = 0;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
991 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
992 weechat::infolist_free($infolist_channel);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
993 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
994
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
995 my $result = check_immune_detached_buffers($buffer->{"name"}); # checking for wildcard
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
996
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
997 next if ( check_detach_buffer_immediately($buffer->{"name"}) eq 1
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
998 and $buffer->{"current_buffer"} eq 0
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
999 and ( not exists $hotlist{$buffer->{"pointer"}} or $hotlist{$buffer->{"pointer"}} < 2) ); # checking for buffer to immediately detach
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1000
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1001 unless ($result)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1002 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1003 my $detach_time = weechat::config_integer( $options{"detach"});
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1004 my $current_time = time();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1005 # set timer for buffers with no hotlist action
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1006 $buffers_timer{$buffer->{"pointer"}} = $current_time
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1007 if ( not exists $hotlist{$buffer->{"pointer"}}
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1008 and $buffer->{"type"} eq "channel"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1009 and not exists $buffers_timer{$buffer->{"pointer"}}
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1010 and $detach_time > 0);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1011
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1012 $buffers_timer{$buffer->{"pointer"}} = $current_time
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1013 if (weechat::config_boolean($options{"detach_query"}) eq 1
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1014 and not exists $hotlist{$buffer->{"pointer"}}
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1015 and $buffer->{"type"} eq "private"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1016 and not exists $buffers_timer{$buffer->{"pointer"}}
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1017 and $detach_time > 0);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1018
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1019 $detach_time = 0
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1020 if (weechat::config_boolean($options{"detach_query"}) eq 0
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1021 and $buffer->{"type"} eq "private");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1022
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1023 # free content buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1024 $buffers_timer{$buffer->{"pointer"}} = $current_time
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1025 if (weechat::config_boolean($options{"detach_free_content"}) eq 1
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1026 and not exists $hotlist{$buffer->{"pointer"}}
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1027 and $buffer->{"type"} eq ""
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1028 and not exists $buffers_timer{$buffer->{"pointer"}}
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1029 and $detach_time > 0);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1030 $detach_time = 0
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1031 if (weechat::config_boolean($options{"detach_free_content"}) eq 0
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1032 and $buffer->{"type"} eq "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1033
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1034 $detach_time = 0 if (weechat::config_boolean($options{"mark_inactive"}) eq 1 and defined $buffer->{"nicks_count"} and $buffer->{"nicks_count"} == 0);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1035
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1036 # check for detach
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1037 unless ( $buffer->{"current_buffer"} eq 0
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1038 and not exists $hotlist{$buffer->{"pointer"}}
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1039 # and $buffer->{"type"} eq "channel"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1040 and exists $buffers_timer{$buffer->{"pointer"}}
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1041 and $detach_time > 0
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1042 and $weechat_version >= 0x00030800
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1043 and $current_time - $buffers_timer{$buffer->{"pointer"}} >= $detach_time)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1044 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1045 if ($active_seen)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1046 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1047 push(@current2, $buffer);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1048 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1049 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1050 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1051 push(@current1, $buffer);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1052 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1053 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1054 elsif ( $buffer->{"current_buffer"} eq 0
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1055 and not exists $hotlist{$buffer->{"pointer"}}
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1056 # and $buffer->{"type"} eq "channel"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1057 and exists $buffers_timer{$buffer->{"pointer"}}
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1058 and $detach_time > 0
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1059 and $weechat_version >= 0x00030800
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1060 and $current_time - $buffers_timer{$buffer->{"pointer"}} >= $detach_time)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1061 { # check for option detach_displayed_buffers and if buffer is displayed in a split window
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1062 if ( $buffer->{"num_displayed"} eq 1
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1063 and weechat::config_boolean($options{"detach_displayed_buffers"}) eq 0 )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1064 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1065 my $infolist_window = weechat::infolist_get("window", "", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1066 while (weechat::infolist_next($infolist_window))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1067 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1068 my $buffer_ptr = weechat::infolist_pointer($infolist_window, "buffer");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1069 if ($buffer_ptr eq $buffer->{"pointer"})
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1070 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1071 $buffer->{"window"} = weechat::infolist_integer($infolist_window, "number");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1072 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1073 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1074 weechat::infolist_free($infolist_window);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1075
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1076 push(@current2, $buffer);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1077 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1078 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1079 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1080 else # buffer in "immune_detach_buffers"
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1081 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1082 if ($active_seen)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1083 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1084 push(@current2, $buffer);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1085 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1086 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1087 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1088 push(@current1, $buffer);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1089 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1090 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1091 } # while end
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1092
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1093
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1094 if ($max_number >= 1)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1095 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1096 $max_number_digits = length(int($max_number));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1097 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1098 @buffers = (@buffers, @current2, @current1);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1099 weechat::infolist_free($infolist);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1100
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1101 # sort buffers by number, name or shortname
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1102 my %sorted_buffers;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1103 if (1)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1104 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1105 my $number = 0;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1106 for my $buffer (@buffers)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1107 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1108 my $key;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1109 if (weechat::config_integer( $options{"sort"} ) eq 1) # number = 0; name = 1
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1110 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1111 my $name = weechat::buffer_get_string($buffer->{"pointer"}, "localvar_custom_name");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1112 if (not defined $name or $name eq "") {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1113 if (weechat::config_boolean( $options{"short_names"} ) eq 1) {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1114 $name = $buffer->{"short_name"};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1115 } else {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1116 $name = $buffer->{"name"};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1117 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1118 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1119 if (weechat::config_integer($options{"name_size_max"}) >= 1){
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1120 $name = encode("UTF-8", substr(decode("UTF-8", $name), 0, weechat::config_integer($options{"name_size_max"})));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1121 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1122 if ( weechat::config_boolean($options{"core_to_front"}) eq 1)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1123 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1124 if ( (weechat::buffer_get_string($buffer->{"pointer"}, "localvar_type") ne "channel" ) and ( weechat::buffer_get_string($buffer->{"pointer"}, "localvar_type") ne "private") )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1125 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1126 my $type = weechat::buffer_get_string($buffer->{"pointer"}, "localvar_type");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1127 if ( $type eq "" and $name ne "weechat")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1128 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1129 $name = " " . $name
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1130 }else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1131 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1132 $name = " " . $name;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1133 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1134 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1135 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1136 $key = sprintf("%s%08d", lc($name), $buffer->{"number"});
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1137 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1138 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1139 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1140 $key = sprintf("%08d", $number);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1141 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1142 $sorted_buffers{$key} = $buffer;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1143 $number++;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1144 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1145 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1146
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1147 # build string with buffers
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1148 $old_number = -1;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1149 foreach my $key (sort keys %sorted_buffers)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1150 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1151 my $buffer = $sorted_buffers{$key};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1152
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1153 if ( weechat::config_string($options{"hide_merged_buffers"}) eq "server" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1154 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1155 # buffer type "server" or merged with core?
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1156 if ( ($buffer->{"type"} eq "server" or $buffer->{"plugin_name"} eq "core") && (! $buffer->{"active"}) )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1157 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1158 next;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1159 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1160 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1161 if ( weechat::config_string($options{"hide_merged_buffers"}) eq "channel" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1162 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1163 # buffer type "channel" or merged with core?
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1164 if ( ($buffer->{"type"} eq "channel" or $buffer->{"plugin_name"} eq "core") && (! $buffer->{"active"}) )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1165 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1166 next;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1167 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1168 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1169 if ( weechat::config_string($options{"hide_merged_buffers"}) eq "private" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1170 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1171 # buffer type "private" or merged with core?
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1172 if ( ($buffer->{"type"} eq "private" or $buffer->{"plugin_name"} eq "core") && (! $buffer->{"active"}) )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1173 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1174 next;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1175 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1176 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1177 if ( weechat::config_string($options{"hide_merged_buffers"}) eq "keepserver" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1178 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1179 if ( ($buffer->{"type"} ne "server" or $buffer->{"plugin_name"} eq "core") && (! $buffer->{"active"}) )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1180 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1181 next;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1182 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1183 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1184 if ( weechat::config_string($options{"hide_merged_buffers"}) eq "all" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1185 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1186 if ( ! $buffer->{"active"} )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1187 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1188 next;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1189 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1190 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1191
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1192 push(@buffers_focus, $buffer); # buffer > buffers_focus, for mouse support
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1193 my $color = "";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1194 my $bg = "";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1195
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1196 $color = weechat::config_color( $options{"color_default_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1197 $bg = weechat::config_color( $options{"color_default_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1198
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1199 if ( weechat::buffer_get_string($buffer->{"pointer"}, "localvar_type") eq "private" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1200 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1201 if ( (weechat::config_color($options{"queries_default_bg"})) ne "default" || (weechat::config_color($options{"queries_default_fg"})) ne "default" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1202 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1203 $bg = weechat::config_color( $options{"queries_default_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1204 $color = weechat::config_color( $options{"queries_default_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1205 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1206 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1207 # check for core and buffer with free content
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1208 if ( (weechat::buffer_get_string($buffer->{"pointer"}, "localvar_type") ne "channel" ) and ( weechat::buffer_get_string($buffer->{"pointer"}, "localvar_type") ne "private") )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1209 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1210 $color = weechat::config_color( $options{"color_none_channel_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1211 $bg = weechat::config_color( $options{"color_none_channel_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1212 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1213 # default whitelist buffer?
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1214 if (grep {$_ eq $buffer->{"name"}} @whitelist_buffers)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1215 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1216 $color = weechat::config_color( $options{"color_whitelist_default_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1217 $bg = weechat::config_color( $options{"color_whitelist_default_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1218 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1219
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1220 $color = "default" if ($color eq "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1221
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1222 # color for channel and query buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1223 if (exists $hotlist{$buffer->{"pointer"}})
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1224 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1225 delete $buffers_timer{$buffer->{"pointer"}};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1226 # check if buffer is in whitelist buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1227 if (grep {$_ eq $buffer->{"name"}} @whitelist_buffers)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1228 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1229 $bg = weechat::config_color( $options{"color_whitelist_".$hotlist_level{$hotlist{$buffer->{"pointer"}}}."_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1230 $color = weechat::config_color( $options{"color_whitelist_".$hotlist_level{$hotlist{$buffer->{"pointer"}}}."_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1231 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1232 elsif ( weechat::buffer_get_string($buffer->{"pointer"}, "localvar_type") eq "private" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1233 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1234 # queries_default_fg/bg and buffers.color.queries_message_fg/bg
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1235 if ( (weechat::config_color($options{"queries_highlight_fg"})) ne "default" ||
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1236 (weechat::config_color($options{"queries_highlight_bg"})) ne "default" ||
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1237 (weechat::config_color($options{"queries_message_fg"})) ne "default" ||
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1238 (weechat::config_color($options{"queries_message_bg"})) ne "default" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1239 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1240 if ( ($hotlist{$buffer->{"pointer"}}) == 2 )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1241 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1242 $bg = weechat::config_color( $options{"queries_message_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1243 $color = weechat::config_color( $options{"queries_message_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1244 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1245
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1246 elsif ( ($hotlist{$buffer->{"pointer"}}) == 3 )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1247 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1248 $bg = weechat::config_color( $options{"queries_highlight_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1249 $color = weechat::config_color( $options{"queries_highlight_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1250 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1251 }else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1252 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1253 $bg = weechat::config_color( $options{"color_hotlist_".$hotlist_level{$hotlist{$buffer->{"pointer"}}}."_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1254 $color = weechat::config_color( $options{"color_hotlist_".$hotlist_level{$hotlist{$buffer->{"pointer"}}}."_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1255 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1256 }else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1257 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1258 $bg = weechat::config_color( $options{"color_hotlist_".$hotlist_level{$hotlist{$buffer->{"pointer"}}}."_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1259 $color = weechat::config_color( $options{"color_hotlist_".$hotlist_level{$hotlist{$buffer->{"pointer"}}}."_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1260 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1261 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1262
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1263 if ($buffer->{"current_buffer"})
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1264 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1265 $color = weechat::config_color( $options{"color_current_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1266 $bg = weechat::config_color( $options{"color_current_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1267 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1268 my $color_bg = "";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1269 $color_bg = weechat::color(",".$bg) if ($bg ne "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1270
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1271 # create channel number for output
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1272 if ( weechat::config_string( $options{"show_prefix_bufname"} ) ne "" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1273 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1274 $str .= $color_bg .
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1275 weechat::color( weechat::config_color( $options{"color_prefix_bufname"} ) ).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1276 weechat::config_string( $options{"show_prefix_bufname"} ).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1277 weechat::color("default");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1278 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1279
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1280 if ( weechat::config_boolean( $options{"show_number"} ) eq 1 ) # on
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1281 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1282 if (( weechat::config_boolean( $options{"indenting_number"} ) eq 1)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1283 && (($position eq "left") || ($position eq "right")))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1284 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1285 $str .= weechat::color("default").$color_bg
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1286 .(" " x ($max_number_digits - length(int($buffer->{"number"}))));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1287 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1288 if ($old_number ne $buffer->{"number"})
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1289 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1290 $str .= weechat::color( weechat::config_color( $options{"color_number"} ) )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1291 .$color_bg
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1292 .$buffer->{"number"}
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1293 .weechat::color("default")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1294 .$color_bg
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1295 .weechat::color( weechat::config_color( $options{"color_number_char"} ) )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1296 .weechat::config_string( $options{"show_number_char"} )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1297 .$color_bg;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1298 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1299 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1300 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1301 my $indent = "";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1302 $indent = ((" " x length($buffer->{"number"}))." ") if (($position eq "left") || ($position eq "right"));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1303 $str .= weechat::color("default")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1304 .$color_bg
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1305 .$indent;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1306 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1307 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1308
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1309 if (( weechat::config_integer( $options{"indenting"} ) ne 0 ) # indenting NOT off
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1310 && (($position eq "left") || ($position eq "right")))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1311 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1312 my $type = weechat::buffer_get_string($buffer->{"pointer"}, "localvar_type");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1313 if (($type eq "channel") || ($type eq "private"))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1314 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1315 if ( weechat::config_integer( $options{"indenting"} ) eq 1 )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1316 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1317 $str .= " ";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1318 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1319 elsif ( (weechat::config_integer($options{"indenting"}) eq 2) and (weechat::config_integer($options{"indenting_number"}) eq 0) ) #under_name
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1320 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1321 if ( weechat::config_boolean( $options{"show_number"} ) eq 0 )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1322 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1323 $str .= " ";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1324 }else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1325 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1326 $str .= ( (" " x ( $max_number_digits - length($buffer->{"number"}) ))." " );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1327 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1328 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1329 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1330 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1331
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1332 $str .= weechat::config_string( $options{"show_prefix_query"}) if (weechat::config_string( $options{"show_prefix_query"} ) ne "" and $buffer->{"type"} eq "private");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1333
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1334 if (weechat::config_boolean( $options{"show_prefix"} ) eq 1)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1335 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1336 my $nickname = weechat::buffer_get_string($buffer->{"pointer"}, "localvar_nick");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1337 if ($nickname ne "")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1338 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1339 # with version >= 0.3.2, this infolist will return only nick
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1340 # with older versions, whole nicklist is returned for buffer, and this can be very slow
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1341 my $infolist_nick = weechat::infolist_get("nicklist", $buffer->{"pointer"}, "nick_".$nickname);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1342 if ($infolist_nick ne "")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1343 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1344 while (weechat::infolist_next($infolist_nick))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1345 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1346 if ((weechat::infolist_string($infolist_nick, "type") eq "nick")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1347 && (weechat::infolist_string($infolist_nick, "name") eq $nickname))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1348 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1349 my $prefix = weechat::infolist_string($infolist_nick, "prefix");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1350 if (($prefix ne " ") or (weechat::config_boolean( $options{"show_prefix_empty"} ) eq 1))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1351 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1352 # with version >= 0.3.5, it is now a color name (for older versions: option name with color)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1353 if (int($weechat_version) >= 0x00030500)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1354 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1355 $str .= weechat::color(weechat::infolist_string($infolist_nick, "prefix_color"));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1356 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1357 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1358 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1359 $str .= weechat::color(weechat::config_color(
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1360 weechat::config_get(
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1361 weechat::infolist_string($infolist_nick, "prefix_color"))));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1362 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1363 $str .= $prefix;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1364 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1365 last;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1366 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1367 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1368 weechat::infolist_free($infolist_nick);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1369 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1370 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1371 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1372 if ($buffer->{"type"} eq "channel" and weechat::config_boolean( $options{"mark_inactive"} ) eq 1 and $buffer->{"nicks_count"} == 0)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1373 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1374 $str .= "(";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1375 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1376
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1377 $str .= weechat::color($color) . weechat::color(",".$bg);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1378
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1379 my $name = weechat::buffer_get_string($buffer->{"pointer"}, "localvar_custom_name");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1380 if (not defined $name or $name eq "")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1381 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1382 if (weechat::config_boolean( $options{"short_names"} ) eq 1) {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1383 $name = $buffer->{"short_name"};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1384 } else {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1385 $name = $buffer->{"name"};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1386 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1387 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1388
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1389 if (weechat::config_integer($options{"name_size_max"}) >= 1) # check max_size of buffer name
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1390 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1391 $name = decode("UTF-8", $name);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1392 $str .= encode("UTF-8", substr($name, 0, weechat::config_integer($options{"name_size_max"})));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1393 $str .= weechat::color(weechat::config_color( $options{"color_number_char"})).weechat::config_string($options{"name_crop_suffix"}) if (length($name) > weechat::config_integer($options{"name_size_max"}));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1394 $str .= add_inactive_parentless($buffer->{"type"}, $buffer->{"nicks_count"});
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1395 $str .= add_hotlist_count($buffer->{"pointer"}, %hotlist);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1396 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1397 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1398 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1399 $str .= $name;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1400 $str .= add_inactive_parentless($buffer->{"type"}, $buffer->{"nicks_count"});
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1401 $str .= add_hotlist_count($buffer->{"pointer"}, %hotlist);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1402 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1403
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1404 if ( weechat::buffer_get_string($buffer->{"pointer"}, "localvar_type") eq "server" and weechat::config_boolean($options{"show_lag"}) eq 1)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1405 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1406 my $color_lag = weechat::config_color(weechat::config_get("irc.color.item_lag_finished"));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1407 my $min_lag = weechat::config_integer(weechat::config_get("irc.network.lag_min_show"));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1408 my $infolist_server = weechat::infolist_get("irc_server", "", $buffer->{"short_name"});
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1409 weechat::infolist_next($infolist_server);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1410 my $lag = (weechat::infolist_integer($infolist_server, "lag"));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1411 weechat::infolist_free($infolist_server);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1412 if ( int($lag) > int($min_lag) )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1413 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1414 $lag = $lag / 1000;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1415 $str .= weechat::color("default") . " (" . weechat::color($color_lag) . $lag . weechat::color("default") . ")";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1416 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1417 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1418 if (weechat::config_boolean($options{"detach_displayed_buffers"}) eq 0
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1419 and weechat::config_boolean($options{"detach_display_window_number"}) eq 1)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1420 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1421 if ($buffer->{"window"})
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1422 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1423 $str .= weechat::color("default") . " (" . weechat::color(weechat::config_color( $options{"color_number"})) . $buffer->{"window"} . weechat::color("default") . ")";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1424 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1425 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1426 $str .= weechat::color("default");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1427
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1428 if ( weechat::config_string( $options{"show_suffix_bufname"} ) ne "" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1429 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1430 $str .= weechat::color( weechat::config_color( $options{"color_suffix_bufname"} ) ).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1431 weechat::config_string( $options{"show_suffix_bufname"} ).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1432 weechat::color("default");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1433 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1434
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1435 $str .= "\n";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1436 $old_number = $buffer->{"number"};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1437 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1438
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1439 # remove spaces and/or linefeed at the end
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1440 $str =~ s/\s+$//;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1441 chomp($str);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1442 return $str;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1443 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1444
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1445 sub add_inactive_parentless
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1446 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1447 my ($buf_type, $buf_nicks_count) = @_;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1448 my $str = "";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1449 if ($buf_type eq "channel" and weechat::config_boolean( $options{"mark_inactive"} ) eq 1 and $buf_nicks_count == 0)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1450 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1451 $str .= weechat::color(weechat::config_color( $options{"color_number_char"}));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1452 $str .= ")";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1453 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1454 return $str;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1455 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1456
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1457 sub add_hotlist_count
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1458 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1459 my ($bufpointer, %hotlist) = @_;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1460
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1461 return "" if ( weechat::config_boolean( $options{"hotlist_counter"} ) eq 0 or ($weechat_version < 0x00030500)); # off
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1462 my $col_number_char = weechat::color(weechat::config_color( $options{"color_number_char"}) );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1463 my $str = " ".$col_number_char."(";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1464
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1465 # 0 = low level
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1466 if (defined $hotlist{$bufpointer."_count_00"})
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1467 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1468 my $bg = weechat::config_color( $options{"color_hotlist_low_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1469 my $color = weechat::config_color( $options{"color_hotlist_low_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1470 $str .= weechat::color($bg).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1471 weechat::color($color).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1472 $hotlist{$bufpointer."_count_00"} if ($hotlist{$bufpointer."_count_00"} ne "0");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1473 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1474
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1475 # 1 = message
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1476 if (defined $hotlist{$bufpointer."_count_01"})
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1477 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1478 my $bg = weechat::config_color( $options{"color_hotlist_message_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1479 my $color = weechat::config_color( $options{"color_hotlist_message_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1480 if ($str =~ /[0-9]$/)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1481 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1482 $str .= ",".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1483 weechat::color($bg).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1484 weechat::color($color).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1485 $hotlist{$bufpointer."_count_01"} if ($hotlist{$bufpointer."_count_01"} ne "0");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1486 }else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1487 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1488 $str .= weechat::color($bg).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1489 weechat::color($color).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1490 $hotlist{$bufpointer."_count_01"} if ($hotlist{$bufpointer."_count_01"} ne "0");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1491 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1492 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1493 # 2 = private
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1494 if (defined $hotlist{$bufpointer."_count_02"})
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1495 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1496 my $bg = weechat::config_color( $options{"color_hotlist_private_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1497 my $color = weechat::config_color( $options{"color_hotlist_private_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1498 if ($str =~ /[0-9]$/)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1499 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1500 $str .= ",".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1501 weechat::color($bg).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1502 weechat::color($color).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1503 $hotlist{$bufpointer."_count_02"} if ($hotlist{$bufpointer."_count_02"} ne "0");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1504 }else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1505 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1506 $str .= weechat::color($bg).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1507 weechat::color($color).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1508 $hotlist{$bufpointer."_count_02"} if ($hotlist{$bufpointer."_count_02"} ne "0");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1509 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1510 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1511 # 3 = highlight
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1512 if (defined $hotlist{$bufpointer."_count_03"})
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1513 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1514 my $bg = weechat::config_color( $options{"color_hotlist_highlight_bg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1515 my $color = weechat::config_color( $options{"color_hotlist_highlight_fg"} );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1516 if ($str =~ /[0-9]$/)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1517 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1518 $str .= ",".
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1519 weechat::color($bg).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1520 weechat::color($color).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1521 $hotlist{$bufpointer."_count_03"} if ($hotlist{$bufpointer."_count_03"} ne "0");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1522 }else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1523 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1524 $str .= weechat::color($bg).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1525 weechat::color($color).
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1526 $hotlist{$bufpointer."_count_03"} if ($hotlist{$bufpointer."_count_03"} ne "0");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1527 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1528 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1529 $str .= $col_number_char. ")";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1530
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1531 $str = "" if (weechat::string_remove_color($str, "") eq " ()"); # remove color and check for buffer with no messages
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1532 return $str;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1533 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1534
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1535 sub buffers_signal_buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1536 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1537 my ($data, $signal, $signal_data) = @_;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1538
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1539 # check for buffer_switch and set or remove detach time
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1540 if ($weechat_version >= 0x00030800)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1541 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1542 if ($signal eq "buffer_switch")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1543 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1544 my $pointer = weechat::hdata_get_list (weechat::hdata_get("buffer"), "gui_buffer_last_displayed"); # get switched buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1545 my $current_time = time();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1546 if ( weechat::buffer_get_string($pointer, "localvar_type") eq "channel")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1547 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1548 $buffers_timer{$pointer} = $current_time;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1549 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1550 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1551 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1552 delete $buffers_timer{$pointer};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1553 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1554 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1555 if ($signal eq "buffer_opened")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1556 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1557 my $current_time = time();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1558 $buffers_timer{$signal_data} = $current_time;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1559 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1560 if ($signal eq "buffer_closing")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1561 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1562 delete $buffers_timer{$signal_data};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1563 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1564 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1565 weechat::bar_item_update($SCRIPT_NAME);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1566 return weechat::WEECHAT_RC_OK;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1567 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1568
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1569 sub buffers_signal_hotlist
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1570 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1571 weechat::bar_item_update($SCRIPT_NAME);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1572 return weechat::WEECHAT_RC_OK;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1573 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1574
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1575
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1576 sub buffers_signal_config_whitelist
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1577 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1578 @whitelist_buffers = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1579 @whitelist_buffers = split( /,/, weechat::config_string( $options{"look_whitelist_buffers"} ) );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1580 weechat::bar_item_update($SCRIPT_NAME);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1581 return weechat::WEECHAT_RC_OK;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1582 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1583
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1584 sub buffers_signal_config_immune_detach_buffers
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1585 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1586 @immune_detach_buffers = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1587 @immune_detach_buffers = split( /,/, weechat::config_string( $options{"immune_detach_buffers"} ) );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1588 weechat::bar_item_update($SCRIPT_NAME);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1589 return weechat::WEECHAT_RC_OK;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1590 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1591
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1592 sub buffers_signal_config_detach_buffer_immediately
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1593 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1594 @detach_buffer_immediately = ();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1595 @detach_buffer_immediately = split( /,/, weechat::config_string( $options{"detach_buffer_immediately"} ) );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1596 weechat::bar_item_update($SCRIPT_NAME);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1597 return weechat::WEECHAT_RC_OK;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1598 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1599
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1600 sub buffers_signal_config
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1601 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1602 weechat::bar_item_update($SCRIPT_NAME);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1603 return weechat::WEECHAT_RC_OK;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1604 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1605
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1606 # called when mouse click occured in buffers item: this callback returns buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1607 # hash according to line of item where click occured
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1608 sub buffers_focus_buffers
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1609 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1610 my %info = %{$_[1]};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1611 my $item_line = int($info{"_bar_item_line"});
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1612 undef my $hash;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1613 if (($info{"_bar_item_name"} eq $SCRIPT_NAME) && ($item_line >= 0) && ($item_line <= $#buffers_focus))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1614 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1615 $hash = $buffers_focus[$item_line];
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1616 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1617 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1618 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1619 $hash = {};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1620 my $hash_focus = $buffers_focus[0];
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1621 foreach my $key (keys %$hash_focus)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1622 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1623 $hash->{$key} = "?";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1624 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1625 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1626 return $hash;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1627 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1628
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1629 # called when a mouse action is done on buffers item, to execute action
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1630 # possible actions: jump to a buffer or move buffer in list (drag & drop of buffer)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1631 sub buffers_hsignal_mouse
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1632 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1633 my ($data, $signal, %hash) = ($_[0], $_[1], %{$_[2]});
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1634 my $current_buffer = weechat::buffer_get_integer(weechat::current_buffer(), "number"); # get current buffer number
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1635
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1636 if ( $hash{"_key"} eq "button1" )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1637 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1638 # left mouse button
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1639 if ($hash{"number"} eq $hash{"number2"})
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1640 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1641 if ( weechat::config_boolean($options{"jump_prev_next_visited_buffer"}) )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1642 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1643 if ( $current_buffer eq $hash{"number"} )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1644 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1645 weechat::command("", "/input jump_previously_visited_buffer");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1646 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1647 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1648 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1649 weechat::command("", "/buffer ".$hash{"full_name"});
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1650 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1651 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1652 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1653 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1654 weechat::command("", "/buffer ".$hash{"full_name"});
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1655 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1656 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1657 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1658 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1659 move_buffer(%hash) if (weechat::config_boolean($options{"mouse_move_buffer"}));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1660 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1661 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1662 elsif ( ($hash{"_key"} eq "button2") && (weechat::config_boolean($options{"jump_prev_next_visited_buffer"})) )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1663 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1664 # right mouse button
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1665 if ( $current_buffer eq $hash{"number2"} )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1666 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1667 weechat::command("", "/input jump_next_visited_buffer");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1668 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1669 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1670 elsif ( $hash{"_key"} =~ /wheelup$/ )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1671 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1672 # wheel up
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1673 if (weechat::config_boolean($options{"mouse_wheel"}))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1674 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1675 weechat::command("", "/buffer -1");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1676 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1677 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1678 elsif ( $hash{"_key"} =~ /wheeldown$/ )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1679 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1680 # wheel down
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1681 if (weechat::config_boolean($options{"mouse_wheel"}))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1682 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1683 weechat::command("", "/buffer +1");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1684 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1685 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1686 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1687 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1688 my $infolist = weechat::infolist_get("hook", "", "command,menu");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1689 my $has_menu_command = weechat::infolist_next($infolist);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1690 weechat::infolist_free($infolist);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1691
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1692 if ( $has_menu_command && $hash{"_key"} =~ /button2/ )
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1693 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1694 if ($hash{"number"} eq $hash{"number2"})
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1695 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1696 weechat::command($hash{"pointer"}, "/menu buffer1 $hash{short_name} $hash{number}");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1697 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1698 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1699 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1700 weechat::command($hash{"pointer"}, "/menu buffer2 $hash{short_name}/$hash{short_name2} $hash{number} $hash{number2}")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1701 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1702 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1703 else
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1704 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1705 move_buffer(%hash) if (weechat::config_boolean($options{"mouse_move_buffer"}));
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1706 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1707 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1708 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1709
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1710 sub move_buffer
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1711 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1712 my %hash = @_;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1713 my $number2 = $hash{"number2"};
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1714 if ($number2 eq "?")
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1715 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1716 # if number 2 is not known (end of gesture outside buffers list), then set it
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1717 # according to mouse gesture
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1718 $number2 = "1";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1719 if (($hash{"_key"} =~ /gesture-right/) || ($hash{"_key"} =~ /gesture-down/))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1720 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1721 $number2 = "999999";
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1722 if ($weechat_version >= 0x00030600)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1723 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1724 my $hdata_buffer = weechat::hdata_get("buffer");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1725 my $last_gui_buffer = weechat::hdata_get_list($hdata_buffer, "last_gui_buffer");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1726 if ($last_gui_buffer)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1727 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1728 $number2 = weechat::hdata_integer($hdata_buffer, $last_gui_buffer, "number") + 1;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1729 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1730 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1731 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1732 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1733 my $ptrbuf = weechat::current_buffer();
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1734 weechat::command($hash{"pointer"}, "/buffer move ".$number2);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1735 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1736
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1737 sub check_immune_detached_buffers
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1738 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1739 my ($buffername) = @_;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1740 foreach ( @immune_detach_buffers ){
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1741 my $immune_buffer = weechat::string_mask_to_regex($_);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1742 if ($buffername =~ /^$immune_buffer$/i)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1743 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1744 return 1;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1745 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1746 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1747 return 0;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1748 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1749
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1750 sub check_detach_buffer_immediately
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1751 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1752 my ($buffername) = @_;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1753 foreach ( @detach_buffer_immediately ){
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1754 my $detach_buffer = weechat::string_mask_to_regex($_);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1755 if ($buffername =~ /^$detach_buffer$/i)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1756 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1757 return 1;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1758 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1759 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1760 return 0;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1761 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1762
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1763 sub shutdown_cb
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1764 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1765 weechat::command("", "/bar hide " . $SCRIPT_NAME) if ( weechat::config_boolean($options{"toggle_bar"}) eq 1 );
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1766 return weechat::WEECHAT_RC_OK
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1767 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1768
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1769 sub check_bar_item
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1770 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1771 my $item = 0;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1772 my $infolist = weechat::infolist_get("bar", "", "");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1773 while (weechat::infolist_next($infolist))
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1774 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1775 my $bar_items = weechat::infolist_string($infolist, "items");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1776 if (index($bar_items, $SCRIPT_NAME) != -1)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1777 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1778 my $name = weechat::infolist_string($infolist, "name");
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1779 if ($name ne $SCRIPT_NAME)
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1780 {
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1781 $item = 1;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1782 last;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1783 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1784 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1785 }
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1786 weechat::infolist_free($infolist);
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1787 return $item;
726728f13152 More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1788 }