diff options
Diffstat (limited to '.weechat-tutorial')
| -rwxr-xr-x | .weechat-tutorial/alias.conf | 41 | ||||
| -rwxr-xr-x | .weechat-tutorial/aspell.conf | 20 | ||||
| -rwxr-xr-x | .weechat-tutorial/charset.conf | 11 | ||||
| -rwxr-xr-x | .weechat-tutorial/exec.conf | 11 | ||||
| -rwxr-xr-x | .weechat-tutorial/irc.conf | 182 | ||||
| -rwxr-xr-x | .weechat-tutorial/iset.conf | 31 | ||||
| -rwxr-xr-x | .weechat-tutorial/logger.conf | 26 | ||||
| -rwxr-xr-x | .weechat-tutorial/logs/core.weechat.weechatlog | 673 | ||||
| l--------- | .weechat-tutorial/perl/autoload/iset.pl | 1 | ||||
| -rwxr-xr-x | .weechat-tutorial/perl/iset.pl | 1634 | ||||
| -rwxr-xr-x | .weechat-tutorial/plugins.conf | 12 | ||||
| -rwxr-xr-x | .weechat-tutorial/relay.conf | 40 | ||||
| -rwxr-xr-x | .weechat-tutorial/script.conf | 50 | ||||
| -rwxr-xr-x | .weechat-tutorial/script/plugins.xml.gz | bin | 0 -> 111380 bytes | |||
| -rwxr-xr-x | .weechat-tutorial/sec.conf | 11 | ||||
| -rwxr-xr-x | .weechat-tutorial/trigger.conf | 47 | ||||
| -rwxr-xr-x | .weechat-tutorial/weechat.conf | 613 | ||||
| -rwxr-xr-x | .weechat-tutorial/weechat.log | 29 | ||||
| -rwxr-xr-x | .weechat-tutorial/xfer.conf | 39 |
19 files changed, 3471 insertions, 0 deletions
diff --git a/.weechat-tutorial/alias.conf b/.weechat-tutorial/alias.conf new file mode 100755 index 0000000..069fc02 --- /dev/null +++ b/.weechat-tutorial/alias.conf @@ -0,0 +1,41 @@ +# +# weechat -- alias.conf +# + +[cmd] +AAWAY = "allserv /away" +AME = "allchan /me" +AMSG = "allchan /msg *" +ANICK = "allserv /nick" +BEEP = "print -beep" +BYE = "quit" +C = "buffer clear" +CHAT = "dcc chat" +CL = "buffer clear" +CLOSE = "buffer close" +EXIT = "quit" +IG = "ignore" +J = "join" +K = "kick" +KB = "kickban" +LEAVE = "part" +M = "msg" +MSGBUF = "command -buffer $1 * /input send $2-" +MUB = "unban *" +N = "names" +Q = "query" +REDRAW = "window refresh" +SAY = "msg *" +SIGNOFF = "quit" +T = "topic" +UB = "unban" +UMODE = "mode $nick" +V = "command core version" +W = "who" +WC = "window merge" +WI = "whois" +WII = "whois $1 $1" +WW = "whowas" + +[completion] +MSGBUF = "%(buffers_plugins_names)" diff --git a/.weechat-tutorial/aspell.conf b/.weechat-tutorial/aspell.conf new file mode 100755 index 0000000..c3d12dc --- /dev/null +++ b/.weechat-tutorial/aspell.conf @@ -0,0 +1,20 @@ +# +# weechat -- aspell.conf +# + +[color] +misspelled = lightred +suggestions = default + +[check] +commands = "ame,amsg,away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic" +default_dict = "" +during_search = off +enabled = off +real_time = off +suggestions = -1 +word_min_length = 2 + +[dict] + +[option] diff --git a/.weechat-tutorial/charset.conf b/.weechat-tutorial/charset.conf new file mode 100755 index 0000000..99a90d5 --- /dev/null +++ b/.weechat-tutorial/charset.conf @@ -0,0 +1,11 @@ +# +# weechat -- charset.conf +# + +[default] +decode = "iso-8859-1" +encode = "" + +[decode] + +[encode] diff --git a/.weechat-tutorial/exec.conf b/.weechat-tutorial/exec.conf new file mode 100755 index 0000000..39f1929 --- /dev/null +++ b/.weechat-tutorial/exec.conf @@ -0,0 +1,11 @@ +# +# weechat -- exec.conf +# + +[command] +default_options = "" +purge_delay = 0 + +[color] +flag_finished = lightred +flag_running = lightgreen diff --git a/.weechat-tutorial/irc.conf b/.weechat-tutorial/irc.conf new file mode 100755 index 0000000..901382b --- /dev/null +++ b/.weechat-tutorial/irc.conf @@ -0,0 +1,182 @@ +# +# weechat -- irc.conf +# + +[look] +buffer_open_before_autojoin = on +buffer_open_before_join = off +buffer_switch_autojoin = on +buffer_switch_join = on +color_nicks_in_names = off +color_nicks_in_nicklist = off +color_nicks_in_server_messages = on +color_pv_nick_like_channel = on +ctcp_time_format = "%a, %d %b %Y %T %z" +display_away = local +display_ctcp_blocked = on +display_ctcp_reply = on +display_ctcp_unknown = on +display_host_join = on +display_host_join_local = on +display_host_quit = on +display_join_message = "329,332,333,366" +display_old_topic = on +display_pv_away_once = on +display_pv_back = on +highlight_channel = "$nick" +highlight_pv = "$nick" +highlight_server = "$nick" +highlight_tags_restrict = "irc_privmsg,irc_notice" +item_channel_modes_hide_args = "k" +item_display_server = buffer_plugin +item_nick_modes = on +item_nick_prefix = on +join_auto_add_chantype = off +msgbuffer_fallback = current +new_channel_position = none +new_pv_position = none +nick_completion_smart = speakers +nick_mode = prefix +nick_mode_empty = off +nicks_hide_password = "nickserv" +notice_as_pv = auto +notice_welcome_redirect = on +notice_welcome_tags = "" +notify_tags_ison = "notify_message" +notify_tags_whois = "notify_message" +part_closes_buffer = off +pv_buffer = independent +pv_tags = "notify_private" +raw_messages = 256 +server_buffer = merge_with_core +smart_filter = on +smart_filter_delay = 5 +smart_filter_join = on +smart_filter_join_unmask = 30 +smart_filter_mode = "+" +smart_filter_nick = on +smart_filter_quit = on +temporary_servers = off +topic_strip_colors = off + +[color] +input_nick = lightcyan +item_channel_modes = default +item_lag_counting = default +item_lag_finished = yellow +item_nick_modes = default +message_join = green +message_quit = red +mirc_remap = "1,-1:darkgray" +nick_prefixes = "y:lightred;q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue" +notice = green +reason_quit = default +topic_current = default +topic_new = white +topic_old = default + +[network] +autoreconnect_delay_growing = 2 +autoreconnect_delay_max = 600 +ban_mask_default = "*!$ident@$host" +channel_encode = off +colors_receive = on +colors_send = on +lag_check = 60 +lag_max = 1800 +lag_min_show = 500 +lag_reconnect = 0 +lag_refresh_interval = 1 +notify_check_ison = 1 +notify_check_whois = 5 +sasl_fail_unavailable = on +send_unknown_commands = off +whois_double_nick = off + +[msgbuffer] + +[ctcp] + +[ignore] + +[server_default] +addresses = "" +anti_flood_prio_high = 2 +anti_flood_prio_low = 2 +autoconnect = off +autojoin = "" +autoreconnect = on +autoreconnect_delay = 10 +autorejoin = off +autorejoin_delay = 30 +away_check = 0 +away_check_max_nicks = 25 +capabilities = "" +command = "" +command_delay = 0 +connection_timeout = 60 +default_msg_kick = "" +default_msg_part = "WeeChat %v" +default_msg_quit = "WeeChat %v" +ipv6 = on +local_hostname = "" +nicks = "vgg,vgg1,vgg2,vgg3,vgg4" +nicks_alternate = on +notify = "" +password = "" +proxy = "" +realname = "" +sasl_fail = continue +sasl_key = "" +sasl_mechanism = plain +sasl_password = "" +sasl_timeout = 15 +sasl_username = "" +ssl = off +ssl_cert = "" +ssl_dhkey_size = 2048 +ssl_fingerprint = "" +ssl_priorities = "NORMAL:-VERS-SSL3.0" +ssl_verify = on +username = "vgg" + +[server] +freenode.addresses = "chat.freenode.net" +freenode.proxy +freenode.ipv6 +freenode.ssl +freenode.ssl_cert +freenode.ssl_priorities +freenode.ssl_dhkey_size +freenode.ssl_fingerprint +freenode.ssl_verify +freenode.password +freenode.capabilities +freenode.sasl_mechanism +freenode.sasl_username +freenode.sasl_password +freenode.sasl_key +freenode.sasl_timeout +freenode.sasl_fail +freenode.autoconnect +freenode.autoreconnect +freenode.autoreconnect_delay +freenode.nicks +freenode.nicks_alternate +freenode.username +freenode.realname +freenode.local_hostname +freenode.command +freenode.command_delay +freenode.autojoin +freenode.autorejoin +freenode.autorejoin_delay +freenode.connection_timeout +freenode.anti_flood_prio_high +freenode.anti_flood_prio_low +freenode.away_check +freenode.away_check_max_nicks +freenode.default_msg_kick +freenode.default_msg_part +freenode.default_msg_quit +freenode.notify diff --git a/.weechat-tutorial/iset.conf b/.weechat-tutorial/iset.conf new file mode 100755 index 0000000..1235f3e --- /dev/null +++ b/.weechat-tutorial/iset.conf @@ -0,0 +1,31 @@ +# +# weechat -- iset.conf +# + +[color] +bg_selected = red +help_default_value = green +help_option_name = white +help_text = default +option = default +option_selected = white +type = brown +type_selected = yellow +value = cyan +value_diff = magenta +value_diff_selected = lightmagenta +value_selected = lightcyan +value_undef = green +value_undef_selected = lightgreen + +[help] +show_help_bar = on +show_help_extra_info = on +show_plugin_description = off + +[look] +scroll_horiz = 10 +show_current_line = on +use_color = off +use_mute = off +value_search_char = "=" diff --git a/.weechat-tutorial/logger.conf b/.weechat-tutorial/logger.conf new file mode 100755 index 0000000..89fed53 --- /dev/null +++ b/.weechat-tutorial/logger.conf @@ -0,0 +1,26 @@ +# +# weechat -- logger.conf +# + +[look] +backlog = 20 + +[color] +backlog_end = default +backlog_line = default + +[file] +auto_log = on +flush_delay = 120 +info_lines = off +mask = "$plugin.$name.weechatlog" +name_lower_case = on +nick_prefix = "" +nick_suffix = "" +path = "%h/logs/" +replacement_char = "_" +time_format = "%Y-%m-%d %H:%M:%S" + +[level] + +[mask] diff --git a/.weechat-tutorial/logs/core.weechat.weechatlog b/.weechat-tutorial/logs/core.weechat.weechatlog new file mode 100755 index 0000000..59f1d7f --- /dev/null +++ b/.weechat-tutorial/logs/core.weechat.weechatlog @@ -0,0 +1,673 @@ +2018-01-19 18:42:18 Plugins loaded: alias, aspell, charset, exec, fifo, irc, logger, lua, perl, python, relay, ruby, script, trigger, xfer +2018-01-19 18:43:08 Plugins loaded: alias, aspell, charset, exec, fifo, irc, logger, lua, perl, python, relay, ruby, script, trigger, xfer +2018-01-19 18:44:33 Plugins loaded: alias, aspell, charset, exec, fifo, irc, logger, lua, perl, python, relay, ruby, script, trigger, xfer +2018-01-19 18:45:47 All bars have been deleted +2018-01-19 18:45:47 Bar "input" created +2018-01-19 18:45:50 Bar "title" created +2018-01-19 18:45:50 Bar "status" created +2018-01-19 18:45:50 Bar "nicklist" created +2018-01-19 18:46:38 [color] (weechat.conf) +2018-01-19 18:46:38 weechat.color.nicklist_away = cyan +2018-01-19 18:46:38 weechat.color.nicklist_group = green +2018-01-19 18:46:38 weechat.color.status_nicklist_count = default +2018-01-19 18:46:38 [bar] (weechat.conf) +2018-01-19 18:46:38 weechat.bar.nicklist.color_bg = default +2018-01-19 18:46:38 weechat.bar.nicklist.color_delim = cyan +2018-01-19 18:46:38 weechat.bar.nicklist.color_fg = default +2018-01-19 18:46:38 weechat.bar.nicklist.conditions = "${nicklist}" +2018-01-19 18:46:38 weechat.bar.nicklist.filling_left_right = vertical +2018-01-19 18:46:38 weechat.bar.nicklist.filling_top_bottom = columns_vertical +2018-01-19 18:46:38 weechat.bar.nicklist.hidden = off +2018-01-19 18:46:38 weechat.bar.nicklist.items = "buffer_nicklist" +2018-01-19 18:46:38 weechat.bar.nicklist.position = right +2018-01-19 18:46:38 weechat.bar.nicklist.priority = 200 +2018-01-19 18:46:38 weechat.bar.nicklist.separator = on +2018-01-19 18:46:38 weechat.bar.nicklist.size = 0 +2018-01-19 18:46:38 weechat.bar.nicklist.size_max = 0 +2018-01-19 18:46:38 weechat.bar.nicklist.type = window +2018-01-19 18:46:38 [look] (irc.conf) +2018-01-19 18:46:38 irc.look.color_nicks_in_nicklist = off +2018-01-19 18:46:38 18 options (matching with "*nicklist*") +2018-01-19 18:47:55 [bar] (weechat.conf) +2018-01-19 18:47:55 weechat.bar.nicklist.color_bg = default +2018-01-19 18:47:55 weechat.bar.nicklist.color_delim = cyan +2018-01-19 18:47:55 weechat.bar.nicklist.color_fg = default +2018-01-19 18:47:55 weechat.bar.nicklist.conditions = "${nicklist}" +2018-01-19 18:47:55 weechat.bar.nicklist.filling_left_right = vertical +2018-01-19 18:47:55 weechat.bar.nicklist.filling_top_bottom = columns_vertical +2018-01-19 18:47:55 weechat.bar.nicklist.hidden = off +2018-01-19 18:47:55 weechat.bar.nicklist.items = "buffer_nicklist" +2018-01-19 18:47:55 weechat.bar.nicklist.position = right +2018-01-19 18:47:55 weechat.bar.nicklist.priority = 200 +2018-01-19 18:47:55 weechat.bar.nicklist.separator = on +2018-01-19 18:47:55 weechat.bar.nicklist.size = 0 +2018-01-19 18:47:55 weechat.bar.nicklist.size_max = 0 +2018-01-19 18:47:55 weechat.bar.nicklist.type = window +2018-01-19 18:47:55 14 options (matching with "weechat.bar.nicklist*") +2018-01-19 18:48:30 =!= Error: failed to set option "weechat.bar.status.color_bg" +2018-01-19 18:48:42 =!= Error: failed to set option "weechat.bar.status.color_bg" +2018-01-19 18:49:02 =!= Error: failed to set option "weechat.bar.status.color_bg" +2018-01-19 18:49:22 [bar] (weechat.conf) +2018-01-19 18:49:22 weechat.bar.status.color_bg = blue +2018-01-19 18:49:22 weechat.bar.status.color_delim = cyan +2018-01-19 18:49:22 weechat.bar.status.color_fg = default +2018-01-19 18:49:22 weechat.bar.status.conditions = "" +2018-01-19 18:49:22 weechat.bar.status.filling_left_right = vertical +2018-01-19 18:49:22 weechat.bar.status.filling_top_bottom = horizontal +2018-01-19 18:49:22 weechat.bar.status.hidden = off +2018-01-19 18:49:22 weechat.bar.status.items = "[time],[buffer_last_number],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_zoom+buffer_filter,scroll,[lag],[hotlist],completion" +2018-01-19 18:49:22 weechat.bar.status.position = bottom +2018-01-19 18:49:22 weechat.bar.status.priority = 500 +2018-01-19 18:49:22 weechat.bar.status.separator = off +2018-01-19 18:49:22 weechat.bar.status.size = 1 +2018-01-19 18:49:22 weechat.bar.status.size_max = 0 +2018-01-19 18:49:22 weechat.bar.status.type = window +2018-01-19 18:49:22 14 options (matching with "weechat.bar.status.*") +2018-01-19 18:49:31 =!= Error: failed to set option "weechat.bar.status.color_bg" +2018-01-19 18:49:37 =!= Error: failed to set option "weechat.bar.status.color_bg" +2018-01-19 18:49:40 =!= Error: failed to set option "weechat.bar.status.color_bg" +2018-01-19 18:49:51 Option changed: weechat.bar.status.color_bg = red (default: blue) +2018-01-19 18:49:56 Option changed: weechat.bar.status.color_bg = blue +2018-01-19 18:50:00 Option changed: weechat.bar.status.color_bg = green (default: blue) +2018-01-19 18:50:07 =!= Error: failed to set option "weechat.bar.status.color_bg" +2018-01-19 18:50:10 Option changed: weechat.bar.status.color_bg = gray (default: blue) +2018-01-19 18:50:14 Option changed: weechat.bar.status.color_bg = darkgray (default: blue) +2018-01-19 18:51:06 [core] +2018-01-19 18:51:06 away buffer command debug filter history key mouse plugin proxy reload save set upgrade version window +2018-01-19 18:51:06 bar color cursor eval help input layout mute print quit repeat secure unset uptime wait +2018-01-19 18:51:06 [python] +2018-01-19 18:51:06 python +2018-01-19 18:51:06 [aspell] +2018-01-19 18:51:06 aspell +2018-01-19 18:51:06 [relay] +2018-01-19 18:51:06 relay +2018-01-19 18:51:06 [alias] +2018-01-19 18:51:06 AAWAY AME ANICK BYE CHAT CLOSE IG K LEAVE MSGBUF N REDRAW SIGNOFF UB V WC WII +2018-01-19 18:51:06 alias AMSG BEEP C CL EXIT J KB M MUB Q SAY T UMODE W WI WW +2018-01-19 18:51:06 [charset] +2018-01-19 18:51:06 charset +2018-01-19 18:51:06 [xfer] +2018-01-19 18:51:06 me xfer +2018-01-19 18:51:06 [trigger] +2018-01-19 18:51:06 trigger +2018-01-19 18:51:06 [ruby] +2018-01-19 18:51:06 ruby +2018-01-19 18:51:06 [lua] +2018-01-19 18:51:06 lua +2018-01-19 18:51:06 [fifo] +2018-01-19 18:51:06 fifo +2018-01-19 18:51:06 [irc] +2018-01-19 18:51:06 admin connect devoice invite links motd op quiet sajoin service time users whois +2018-01-19 18:51:06 allchan ctcp die ison list msg oper quote samode servlist topic version whowas +2018-01-19 18:51:06 allpv cycle disconnect join lusers names part reconnect sanick squery trace voice +2018-01-19 18:51:06 allserv dcc halfop kick map nick ping rehash sapart squit unban wallchops +2018-01-19 18:51:06 ban dehalfop ignore kickban me notice pong remove saquit stats unquiet wallops +2018-01-19 18:51:06 cap deop info kill mode notify query restart server summon userhost who +2018-01-19 18:51:06 [exec] +2018-01-19 18:51:06 exec +2018-01-19 18:51:06 [script] +2018-01-19 18:51:06 script +2018-01-19 18:51:06 [logger] +2018-01-19 18:51:06 logger +2018-01-19 18:51:06 [perl] +2018-01-19 18:51:06 perl +2018-01-19 18:51:10 [core] +2018-01-19 18:51:10 away buffer command debug filter history key mouse plugin proxy reload save set upgrade version window +2018-01-19 18:51:10 bar color cursor eval help input layout mute print quit repeat secure unset uptime wait +2018-01-19 18:51:10 [python] +2018-01-19 18:51:10 python +2018-01-19 18:51:10 [aspell] +2018-01-19 18:51:10 aspell +2018-01-19 18:51:10 [relay] +2018-01-19 18:51:10 relay +2018-01-19 18:51:10 [alias] +2018-01-19 18:51:10 AAWAY AME ANICK BYE CHAT CLOSE IG K LEAVE MSGBUF N REDRAW SIGNOFF UB V WC WII +2018-01-19 18:51:10 alias AMSG BEEP C CL EXIT J KB M MUB Q SAY T UMODE W WI WW +2018-01-19 18:51:10 [charset] +2018-01-19 18:51:10 charset +2018-01-19 18:51:10 [xfer] +2018-01-19 18:51:10 me xfer +2018-01-19 18:51:10 [trigger] +2018-01-19 18:51:10 trigger +2018-01-19 18:51:10 [ruby] +2018-01-19 18:51:10 ruby +2018-01-19 18:51:10 [lua] +2018-01-19 18:51:10 lua +2018-01-19 18:51:10 [fifo] +2018-01-19 18:51:10 fifo +2018-01-19 18:51:10 [irc] +2018-01-19 18:51:10 admin connect devoice invite links motd op quiet sajoin service time users whois +2018-01-19 18:51:10 allchan ctcp die ison list msg oper quote samode servlist topic version whowas +2018-01-19 18:51:10 allpv cycle disconnect join lusers names part reconnect sanick squery trace voice +2018-01-19 18:51:10 allserv dcc halfop kick map nick ping rehash sapart squit unban wallchops +2018-01-19 18:51:10 ban dehalfop ignore kickban me notice pong remove saquit stats unquiet wallops +2018-01-19 18:51:10 cap deop info kill mode notify query restart server summon userhost who +2018-01-19 18:51:10 [exec] +2018-01-19 18:51:10 exec +2018-01-19 18:51:10 [script] +2018-01-19 18:51:10 script +2018-01-19 18:51:10 [logger] +2018-01-19 18:51:10 logger +2018-01-19 18:51:10 [perl] +2018-01-19 18:51:10 perl +2018-01-19 18:51:38 [core] +2018-01-19 18:51:38 away - set or remove away status +2018-01-19 18:51:38 bar - manage bars +2018-01-19 18:51:38 buffer - manage buffers +2018-01-19 18:51:38 color - define color aliases and display palette of colors +2018-01-19 18:51:38 command - launch explicit WeeChat or plugin command +2018-01-19 18:51:38 cursor - free movement of cursor on screen to execute actions on specific areas of screen +2018-01-19 18:51:38 debug - control debug for core/plugins +2018-01-19 18:51:38 eval - evaluate expression +2018-01-19 18:51:38 filter - filter messages in buffers, to hide/show them according to tags or regex +2018-01-19 18:51:38 help - display help about commands and options +2018-01-19 18:51:38 history - show buffer command history +2018-01-19 18:51:38 input - functions for command line +2018-01-19 18:51:38 key - bind/unbind keys +2018-01-19 18:51:38 layout - manage buffers/windows layouts +2018-01-19 18:51:38 mouse - mouse control +2018-01-19 18:51:38 mute - execute a command silently +2018-01-19 18:51:38 plugin - list/load/unload plugins +2018-01-19 18:51:38 print - display text on a buffer +2018-01-19 18:51:38 proxy - manage proxies +2018-01-19 18:51:38 quit - quit WeeChat +2018-01-19 18:51:38 reload - reload configuration files from disk +2018-01-19 18:51:38 repeat - execute a command several times +2018-01-19 18:51:38 save - save configuration files to disk +2018-01-19 18:51:38 secure - manage secured data (passwords or private data encrypted in file sec.conf) +2018-01-19 18:51:38 set - set config options and environment variables +2018-01-19 18:51:38 unset - unset/reset config options +2018-01-19 18:51:38 upgrade - upgrade WeeChat without disconnecting from servers +2018-01-19 18:51:38 uptime - show WeeChat uptime +2018-01-19 18:51:38 version - show WeeChat version and compilation date +2018-01-19 18:51:38 wait - schedule a command execution in future +2018-01-19 18:51:38 window - manage windows +2018-01-19 18:51:38 [python] +2018-01-19 18:51:38 python - list/load/unload scripts +2018-01-19 18:51:38 [aspell] +2018-01-19 18:51:38 aspell - aspell plugin configuration +2018-01-19 18:51:38 [relay] +2018-01-19 18:51:38 relay - relay control +2018-01-19 18:51:38 [alias] +2018-01-19 18:51:38 AAWAY - allserv /away +2018-01-19 18:51:38 alias - list, add or remove command aliases +2018-01-19 18:51:38 AME - allchan /me +2018-01-19 18:51:38 AMSG - allchan /msg * +2018-01-19 18:51:38 ANICK - allserv /nick +2018-01-19 18:51:38 BEEP - print -beep +2018-01-19 18:51:38 BYE - quit +2018-01-19 18:51:38 C - buffer clear +2018-01-19 18:51:38 CHAT - dcc chat +2018-01-19 18:51:38 CL - buffer clear +2018-01-19 18:51:38 CLOSE - buffer close +2018-01-19 18:51:38 EXIT - quit +2018-01-19 18:51:38 IG - ignore +2018-01-19 18:51:38 J - join +2018-01-19 18:51:38 K - kick +2018-01-19 18:51:38 KB - kickban +2018-01-19 18:51:38 LEAVE - part +2018-01-19 18:51:38 M - msg +2018-01-19 18:51:38 MSGBUF - command -buffer $1 * /input send $2- +2018-01-19 18:51:38 MUB - unban * +2018-01-19 18:51:38 N - names +2018-01-19 18:51:38 Q - query +2018-01-19 18:51:38 REDRAW - window refresh +2018-01-19 18:51:38 SAY - msg * +2018-01-19 18:51:38 SIGNOFF - quit +2018-01-19 18:51:38 T - topic +2018-01-19 18:51:38 UB - unban +2018-01-19 18:51:38 UMODE - mode $nick +2018-01-19 18:51:38 V - command core version +2018-01-19 18:51:38 W - who +2018-01-19 18:51:38 WC - window merge +2018-01-19 18:51:38 WI - whois +2018-01-19 18:51:38 WII - whois $1 $1 +2018-01-19 18:51:38 WW - whowas +2018-01-19 18:51:38 [charset] +2018-01-19 18:51:38 charset - change charset for current buffer +2018-01-19 18:51:38 [xfer] +2018-01-19 18:51:38 me - send a CTCP action to remote host +2018-01-19 18:51:38 xfer - xfer control +2018-01-19 18:51:38 [trigger] +2018-01-19 18:51:38 trigger - manage triggers, the Swiss Army knife for WeeChat +2018-01-19 18:51:38 [ruby] +2018-01-19 18:51:38 ruby - list/load/unload scripts +2018-01-19 18:51:38 [lua] +2018-01-19 18:51:38 lua - list/load/unload scripts +2018-01-19 18:51:38 [fifo] +2018-01-19 18:51:38 fifo - fifo plugin configuration +2018-01-19 18:51:38 [irc] +2018-01-19 18:51:38 admin - find information about the administrator of the server +2018-01-19 18:51:38 allchan - execute a command on all channels of all connected servers +2018-01-19 18:51:38 allpv - execute a command on all private buffers of all connected servers +2018-01-19 18:51:38 allserv - execute a command on all connected servers +2018-01-19 18:51:38 ban - ban nicks or hosts +2018-01-19 18:51:38 cap - client capability negotiation +2018-01-19 18:51:38 connect - connect to IRC server(s) +2018-01-19 18:51:38 ctcp - send a CTCP message (Client-To-Client Protocol) +2018-01-19 18:51:38 cycle - leave and rejoin a channel +2018-01-19 18:51:38 dcc - start a DCC (file transfer or direct chat) +2018-01-19 18:51:38 dehalfop - remove channel half-operator status from nick(s) +2018-01-19 18:51:38 deop - remove channel operator status from nick(s) +2018-01-19 18:51:38 devoice - remove voice from nick(s) +2018-01-19 18:51:38 die - shutdown the server +2018-01-19 18:51:38 disconnect - disconnect from one or all IRC servers +2018-01-19 18:51:38 halfop - give channel half-operator status to nick(s) +2018-01-19 18:51:38 ignore - ignore nicks/hosts from servers or channels +2018-01-19 18:51:38 info - get information describing the server +2018-01-19 18:51:38 invite - invite a nick on a channel +2018-01-19 18:51:38 ison - check if a nick is currently on IRC +2018-01-19 18:51:38 join - join a channel +2018-01-19 18:51:38 kick - kick a user out of a channel +2018-01-19 18:51:38 kickban - kick a user out of a channel and ban the host +2018-01-19 18:51:38 kill - close client-server connection +2018-01-19 18:51:38 links - list all servernames which are known by the server answering the query +2018-01-19 18:51:38 list - list channels and their topic +2018-01-19 18:51:38 lusers - get statistics about the size of the IRC network +2018-01-19 18:51:38 map - show a graphical map of the IRC network +2018-01-19 18:51:38 me - send a CTCP action to the current channel +2018-01-19 18:51:38 mode - change channel or user mode +2018-01-19 18:51:38 motd - get the "Message Of The Day" +2018-01-19 18:51:38 msg - send message to a nick or channel +2018-01-19 18:51:38 names - list nicks on channels +2018-01-19 18:51:38 nick - change current nick +2018-01-19 18:51:38 notice - send notice message to user +2018-01-19 18:51:38 notify - add a notification for presence or away status of nicks on servers +2018-01-19 18:51:38 op - give channel operator status to nick(s) +2018-01-19 18:51:38 oper - get operator privileges +2018-01-19 18:51:38 part - leave a channel +2018-01-19 18:51:38 ping - send a ping to server +2018-01-19 18:51:38 pong - answer to a ping message +2018-01-19 18:51:38 query - send a private message to a nick +2018-01-19 18:51:38 quiet - quiet nicks or hosts +2018-01-19 18:51:38 quote - send raw data to server without parsing +2018-01-19 18:51:38 reconnect - reconnect to server(s) +2018-01-19 18:51:38 rehash - tell the server to reload its config file +2018-01-19 18:51:38 remove - force a user to leave a channel +2018-01-19 18:51:38 restart - tell the server to restart itself +2018-01-19 18:51:38 sajoin - force a user to join channel(s) +2018-01-19 18:51:38 samode - change mode on channel, without having operator status +2018-01-19 18:51:38 sanick - force a user to use another nick +2018-01-19 18:51:38 sapart - force a user to leave channel(s) +2018-01-19 18:51:38 saquit - force a user to quit server with a reason +2018-01-19 18:51:38 server - list, add or remove IRC servers +2018-01-19 18:51:38 service - register a new service +2018-01-19 18:51:38 servlist - list services currently connected to the network +2018-01-19 18:51:38 squery - deliver a message to a service +2018-01-19 18:51:38 squit - disconnect server links +2018-01-19 18:51:38 stats - query statistics about server +2018-01-19 18:51:38 summon - give users who are on a host running an IRC server a message asking them to please join IRC +2018-01-19 18:51:38 time - query local time from server +2018-01-19 18:51:38 topic - get/set channel topic +2018-01-19 18:51:38 trace - find the route to specific server +2018-01-19 18:51:38 unban - unban nicks or hosts +2018-01-19 18:51:38 unquiet - unquiet nicks or hosts +2018-01-19 18:51:38 userhost - return a list of information about nicks +2018-01-19 18:51:38 users - list of users logged into the server +2018-01-19 18:51:38 version - give the version info of nick or server (current or specified) +2018-01-19 18:51:38 voice - give voice to nick(s) +2018-01-19 18:51:38 wallchops - send a notice to channel ops +2018-01-19 18:51:38 wallops - send a message to all currently connected users who have set the 'w' user mode for themselves +2018-01-19 18:51:38 who - generate a query which returns a list of information +2018-01-19 18:51:38 whois - query information about user(s) +2018-01-19 18:51:38 whowas - ask for information about a nick which no longer exists +2018-01-19 18:51:38 [exec] +2018-01-19 18:51:38 exec - execute external commands +2018-01-19 18:51:38 [script] +2018-01-19 18:51:38 script - WeeChat scripts manager +2018-01-19 18:51:38 [logger] +2018-01-19 18:51:38 logger - logger plugin configuration +2018-01-19 18:51:38 [perl] +2018-01-19 18:51:38 perl - list/load/unload scripts +2018-01-19 18:56:04 [completion] (weechat.conf) +2018-01-19 18:56:04 weechat.completion.base_word_until_cursor = on +2018-01-19 18:56:04 weechat.completion.command_inline = on +2018-01-19 18:56:04 weechat.completion.default_template = "%(nicks)|%(irc_channels)" +2018-01-19 18:56:04 weechat.completion.nick_add_space = on +2018-01-19 18:56:04 weechat.completion.nick_completer = ":" +2018-01-19 18:56:04 weechat.completion.nick_first_only = off +2018-01-19 18:56:04 weechat.completion.nick_ignore_chars = "[]`_-^" +2018-01-19 18:56:04 weechat.completion.partial_completion_alert = on +2018-01-19 18:56:04 weechat.completion.partial_completion_command = off +2018-01-19 18:56:04 weechat.completion.partial_completion_command_arg = off +2018-01-19 18:56:04 weechat.completion.partial_completion_count = on +2018-01-19 18:56:04 weechat.completion.partial_completion_other = off +2018-01-19 18:56:04 12 options (matching with "weechat.completion.*") +2018-01-19 18:56:43 Option changed: weechat.completion.partial_completion_command = on (default: off) +2018-01-19 18:56:53 Option changed: weechat.completion.partial_completion_command_arg = on (default: off) +2018-01-19 18:57:05 Option changed: weechat.completion.partial_completion_other = on (default: off) +2018-01-19 19:03:12 script: downloading list of scripts... +2018-01-19 19:03:14 script: 351 scripts for WeeChat 1.5 +2018-01-19 19:06:47 Option "script.look.sort": +2018-01-19 19:06:47 description: default sort keys for scripts: comma-separated list of identifiers: a=author, A=autoloaded, d=date added, e=extension, i=installed, l=language, n=name, o=obsolete, p=popularity, r=running, u=date updated; char "-" can be used before identifier to reverse order; example: "i,u": installed scripts first, sorted by update date +2018-01-19 19:06:47 type: string +2018-01-19 19:06:47 values: any string +2018-01-19 19:06:47 default value: "p,n" +2018-01-19 19:06:47 current value: "p,n" +2018-01-19 19:08:04 [script] /script list [-o|-i] +2018-01-19 19:08:04 search <text> +2018-01-19 19:08:04 show <script> +2018-01-19 19:08:04 load|unload|reload <script> [<script>...] +2018-01-19 19:08:04 autoload|noautoload|toggleautoload <script> [<script>...] +2018-01-19 19:08:04 install|remove|installremove|hold [-q] <script> [<script>...] +2018-01-19 19:08:04 upgrade +2018-01-19 19:08:04 update +2018-01-19 19:08:04 WeeChat scripts manager +2018-01-19 19:08:04 list: list loaded scripts (all languages) +2018-01-19 19:08:04 -o: send list of loaded scripts to buffer +2018-01-19 19:08:04 -i: copy list of loaded scripts in command line (for sending to buffer) +2018-01-19 19:08:04 search: search scripts by tags, language (python, perl, ...), filename extension (py, pl, ...) or text; result is displayed on scripts buffer +2018-01-19 19:08:04 show: show detailed info about a script +2018-01-19 19:08:04 load: load script(s) +2018-01-19 19:08:04 unload: unload script(s) +2018-01-19 19:08:04 reload: reload script(s) +2018-01-19 19:08:04 autoload: autoload the script +2018-01-19 19:08:04 noautoload: do not autoload the script +2018-01-19 19:08:04 toggleautoload: toggle autoload +2018-01-19 19:08:04 install: install/upgrade script(s) +2018-01-19 19:08:04 remove: remove script(s) +2018-01-19 19:08:04 installremove: install or remove script(s), depending on current state +2018-01-19 19:08:04 hold: hold/unhold script(s) (a script held will not be upgraded any more and cannot be removed) +2018-01-19 19:08:04 -q: quiet mode: do not display messages +2018-01-19 19:08:04 upgrade: upgrade all installed scripts which are obsolete (new version available) +2018-01-19 19:08:04 update: update local scripts cache +2018-01-19 19:08:04 Without argument, this command opens a buffer with list of scripts. +2018-01-19 19:08:04 On script buffer, the possible status for each script are: +2018-01-19 19:08:04 * i a H r N +2018-01-19 19:08:04 | | | | | | +2018-01-19 19:08:04 | | | | | obsolete (new version available) +2018-01-19 19:08:04 | | | | running (loaded) +2018-01-19 19:08:04 | | | held +2018-01-19 19:08:04 | | autoloaded +2018-01-19 19:08:04 | installed +2018-01-19 19:08:04 popular script +2018-01-19 19:08:04 Keys on script buffer: +2018-01-19 19:08:04 alt+i install script +2018-01-19 19:08:04 alt+r remove script +2018-01-19 19:08:04 alt+l load script +2018-01-19 19:08:04 alt+L reload script +2018-01-19 19:08:04 alt+u unload script +2018-01-19 19:08:04 alt+A autoload script +2018-01-19 19:08:04 alt+h (un)hold script +2018-01-19 19:08:04 alt+v view script +2018-01-19 19:08:04 Input allowed on script buffer: +2018-01-19 19:08:04 i/r/l/L/u/h action on script (same as keys above) +2018-01-19 19:08:04 q close buffer +2018-01-19 19:08:04 $ refresh buffer +2018-01-19 19:08:04 s:x,y sort buffer using keys x and y (see /help script.look.sort) +2018-01-19 19:08:04 s: reset sort (use default sort) +2018-01-19 19:08:04 word(s) filter scripts: search word(s) in scripts (description, tags, ...) +2018-01-19 19:08:04 * remove filter +2018-01-19 19:08:04 Mouse actions on script buffer: +2018-01-19 19:08:04 wheel scroll list +2018-01-19 19:08:04 left button select script +2018-01-19 19:08:04 right button install/remove script +2018-01-19 19:08:04 Examples: +2018-01-19 19:08:04 /script search url +2018-01-19 19:08:04 /script install iset.pl buffers.pl +2018-01-19 19:08:04 /script remove iset.pl +2018-01-19 19:08:04 /script hold urlserver.py +2018-01-19 19:08:04 /script reload urlserver +2018-01-19 19:08:04 /script upgrade +2018-01-19 19:08:14 =!= No help available, "script.look" is not a command or an option +2018-01-19 19:08:31 =!= No help available, "script.look" is not a command or an option +2018-01-19 19:14:36 New key binding (context "mouse"): @chat(perl.iset):button1 => hsignal:iset_mouse +2018-01-19 19:14:36 New key binding (context "mouse"): @chat(perl.iset):button2* => hsignal:iset_mouse +2018-01-19 19:14:36 New key binding (context "mouse"): @chat(perl.iset):wheeldown => /repeat 5 /iset **down +2018-01-19 19:14:36 New key binding (context "mouse"): @chat(perl.iset):wheelup => /repeat 5 /iset **up +2018-01-19 19:16:47 script: script "iset.pl" is already installed and up-to-date +2018-01-19 19:16:50 script: script "iset.pl" is already installed and up-to-date +2018-01-19 19:16:56 script: script "iset.pl" is already installed and up-to-date +2018-01-19 19:17:06 =!= perl: unable to register script "iset" (another script already exists with this name) +2018-01-19 19:17:06 =!= perl: unable to call function "info_get", script is not initialized (script: -) +2018-01-19 19:17:06 =!= perl: unable to call function "config_new", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value $iset_config_file in string eq at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1409. +2018-01-19 19:17:06 perl warning: Use of uninitialized value $iset_config_file in string ne at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1532. +2018-01-19 19:17:06 =!= perl: unable to call function "config_string", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value in concatenation (.) or string at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1570. +2018-01-19 19:17:06 =!= perl: unable to call function "config_string", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value in concatenation (.) or string at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1570. +2018-01-19 19:17:06 =!= perl: unable to call function "config_string", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value in concatenation (.) or string at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1570. +2018-01-19 19:17:06 =!= perl: unable to call function "config_string", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value in concatenation (.) or string at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1570. +2018-01-19 19:17:06 =!= perl: unable to call function "config_string", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value in concatenation (.) or string at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1570. +2018-01-19 19:17:06 =!= perl: unable to call function "config_string", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value in concatenation (.) or string at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1570. +2018-01-19 19:17:06 =!= perl: unable to call function "config_string", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value in concatenation (.) or string at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1570. +2018-01-19 19:17:06 =!= perl: unable to call function "config_string", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value in concatenation (.) or string at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1570. +2018-01-19 19:17:06 =!= perl: unable to call function "config_string", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value in concatenation (.) or string at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1570. +2018-01-19 19:17:06 =!= perl: unable to call function "config_string", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value in concatenation (.) or string at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1570. +2018-01-19 19:17:06 =!= perl: unable to call function "hook_command", script is not initialized (script: -) +2018-01-19 19:17:06 =!= perl: unable to call function "hook_signal", script is not initialized (script: -) +2018-01-19 19:17:06 =!= perl: unable to call function "hook_signal", script is not initialized (script: -) +2018-01-19 19:17:06 =!= perl: unable to call function "hook_signal", script is not initialized (script: -) +2018-01-19 19:17:06 =!= perl: unable to call function "bar_item_new", script is not initialized (script: -) +2018-01-19 19:17:06 =!= perl: unable to call function "bar_new", script is not initialized (script: -) +2018-01-19 19:17:06 =!= perl: unable to call function "hook_modifier", script is not initialized (script: -) +2018-01-19 19:17:06 =!= perl: unable to call function "hook_config", script is not initialized (script: -) +2018-01-19 19:17:06 =!= perl: unable to call function "buffer_search", script is not initialized (script: -) +2018-01-19 19:17:06 perl warning: Use of uninitialized value $iset_buffer in string ne at /home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl line 1627. +2018-01-19 19:17:06 =!= perl: function "register" not found (or failed) in file "/home/opensuse/vgg/.weechat-tutorial/perl/autoload/iset.pl" +2018-01-19 19:45:35 [irc] /server list|listfull [<server>] +2018-01-19 19:45:35 add <server> <hostname>[/<port>] [-temp] [-<option>[=<value>]] [-no<option>] +2018-01-19 19:45:35 copy|rename <server> <new_name> +2018-01-19 19:45:35 reorder <server> [<server>...] +2018-01-19 19:45:35 del|keep <server> +2018-01-19 19:45:35 deloutq|jump|raw +2018-01-19 19:45:35 list, add or remove IRC servers +2018-01-19 19:45:35 list: list servers (without argument, this list is displayed) +2018-01-19 19:45:35 listfull: list servers with detailed info for each server +2018-01-19 19:45:35 add: add a new server +2018-01-19 19:45:35 server: server name, for internal and display use +2018-01-19 19:45:35 hostname: name or IP address of server, with optional port (default: 6667), many addresses can be separated by a comma +2018-01-19 19:45:35 temp: add a temporary server (not saved) +2018-01-19 19:45:35 option: set option for server (for boolean option, value can be omitted) +2018-01-19 19:45:35 nooption: set boolean option to 'off' (for example: -nossl) +2018-01-19 19:45:35 copy: duplicate a server +2018-01-19 19:45:35 rename: rename a server +2018-01-19 19:45:35 reorder: reorder list of servers +2018-01-19 19:45:35 keep: keep server in config file (for temporary servers only) +2018-01-19 19:45:35 del: delete a server +2018-01-19 19:45:35 deloutq: delete messages out queue for all servers (all messages WeeChat is currently sending) +2018-01-19 19:45:35 jump: jump to server buffer +2018-01-19 19:45:35 raw: open buffer with raw IRC data +2018-01-19 19:45:35 Examples: +2018-01-19 19:45:35 /server listfull +2018-01-19 19:45:35 /server add freenode chat.freenode.net +2018-01-19 19:45:35 /server add freenode chat.freenode.net/6697 -ssl -autoconnect +2018-01-19 19:45:35 /server add chatspike irc.chatspike.net/6667,irc.duckspike.net/6667 +2018-01-19 19:45:35 /server copy freenode freenode-test +2018-01-19 19:45:35 /server rename freenode-test freenode2 +2018-01-19 19:45:35 /server reorder freenode2 freenode +2018-01-19 19:45:35 /server del freenode +2018-01-19 19:45:35 /server deloutq +2018-01-19 19:53:02 perl: scripts unloaded +2018-01-19 19:53:04 perl scripts loaded: iset +2018-01-19 19:53:04 script: 351 scripts for WeeChat 1.5 +2018-01-19 19:53:04 Plugins loaded: alias, aspell, charset, exec, fifo, irc, logger, lua, perl, python, relay, ruby, script, trigger, xfer +2018-01-19 19:53:14 [irc] /server list|listfull [<server>] +2018-01-19 19:53:14 add <server> <hostname>[/<port>] [-temp] [-<option>[=<value>]] [-no<option>] +2018-01-19 19:53:14 copy|rename <server> <new_name> +2018-01-19 19:53:14 reorder <server> [<server>...] +2018-01-19 19:53:14 del|keep <server> +2018-01-19 19:53:14 deloutq|jump|raw +2018-01-19 19:53:14 list, add or remove IRC servers +2018-01-19 19:53:14 list: list servers (without argument, this list is displayed) +2018-01-19 19:53:14 listfull: list servers with detailed info for each server +2018-01-19 19:53:14 add: add a new server +2018-01-19 19:53:14 server: server name, for internal and display use +2018-01-19 19:53:14 hostname: name or IP address of server, with optional port (default: 6667), many addresses can be separated by a comma +2018-01-19 19:53:14 temp: add a temporary server (not saved) +2018-01-19 19:53:14 option: set option for server (for boolean option, value can be omitted) +2018-01-19 19:53:14 nooption: set boolean option to 'off' (for example: -nossl) +2018-01-19 19:53:14 copy: duplicate a server +2018-01-19 19:53:14 rename: rename a server +2018-01-19 19:53:14 reorder: reorder list of servers +2018-01-19 19:53:14 keep: keep server in config file (for temporary servers only) +2018-01-19 19:53:14 del: delete a server +2018-01-19 19:53:14 deloutq: delete messages out queue for all servers (all messages WeeChat is currently sending) +2018-01-19 19:53:14 jump: jump to server buffer +2018-01-19 19:53:14 raw: open buffer with raw IRC data +2018-01-19 19:53:14 Examples: +2018-01-19 19:53:14 /server listfull +2018-01-19 19:53:14 /server add freenode chat.freenode.net +2018-01-19 19:53:14 /server add freenode chat.freenode.net/6697 -ssl -autoconnect +2018-01-19 19:53:14 /server add chatspike irc.chatspike.net/6667,irc.duckspike.net/6667 +2018-01-19 19:53:14 /server copy freenode freenode-test +2018-01-19 19:53:14 /server rename freenode-test freenode2 +2018-01-19 19:53:14 /server reorder freenode2 freenode +2018-01-19 19:53:14 /server del freenode +2018-01-19 19:53:14 /server deloutq +2018-01-19 19:53:25 =!= Option "*freenode*" not found (tip: you can use wildcard "*" in option to see a sublist) +2018-01-19 19:54:26 No server +2018-01-19 19:54:42 No server +2018-01-19 19:55:21 Plugins loaded: +2018-01-19 19:55:21 python: Support of python scripts +2018-01-19 19:55:21 aspell: Spell checker for input (with Aspell) +2018-01-19 19:55:21 relay: Relay WeeChat data to remote application (irc/weechat protocols) +2018-01-19 19:55:21 alias: Alias commands +2018-01-19 19:55:21 charset: Charset conversions +2018-01-19 19:55:21 xfer: DCC file transfer and direct chat +2018-01-19 19:55:21 trigger: Text replacement and command execution on events triggered by WeeChat/plugins +2018-01-19 19:55:21 ruby: Support of ruby scripts +2018-01-19 19:55:21 lua: Support of lua scripts +2018-01-19 19:55:21 fifo: FIFO pipe for remote control +2018-01-19 19:55:21 irc: IRC (Internet Relay Chat) protocol +2018-01-19 19:55:21 exec: Execution of external commands in WeeChat +2018-01-19 19:55:21 script: Scripts manager +2018-01-19 19:55:21 logger: Log buffers to files +2018-01-19 19:55:21 perl: Support of perl scripts +2018-01-19 19:55:44 =!= Too few arguments for command "/server add" (help on command: /help server) +2018-01-19 19:55:57 [irc] /server list|listfull [<server>] +2018-01-19 19:55:57 add <server> <hostname>[/<port>] [-temp] [-<option>[=<value>]] [-no<option>] +2018-01-19 19:55:57 copy|rename <server> <new_name> +2018-01-19 19:55:57 reorder <server> [<server>...] +2018-01-19 19:55:57 del|keep <server> +2018-01-19 19:55:57 deloutq|jump|raw +2018-01-19 19:55:57 list, add or remove IRC servers +2018-01-19 19:55:57 list: list servers (without argument, this list is displayed) +2018-01-19 19:55:57 listfull: list servers with detailed info for each server +2018-01-19 19:55:57 add: add a new server +2018-01-19 19:55:57 server: server name, for internal and display use +2018-01-19 19:55:57 hostname: name or IP address of server, with optional port (default: 6667), many addresses can be separated by a comma +2018-01-19 19:55:57 temp: add a temporary server (not saved) +2018-01-19 19:55:57 option: set option for server (for boolean option, value can be omitted) +2018-01-19 19:55:57 nooption: set boolean option to 'off' (for example: -nossl) +2018-01-19 19:55:57 copy: duplicate a server +2018-01-19 19:55:57 rename: rename a server +2018-01-19 19:55:57 reorder: reorder list of servers +2018-01-19 19:55:57 keep: keep server in config file (for temporary servers only) +2018-01-19 19:55:57 del: delete a server +2018-01-19 19:55:57 deloutq: delete messages out queue for all servers (all messages WeeChat is currently sending) +2018-01-19 19:55:57 jump: jump to server buffer +2018-01-19 19:55:57 raw: open buffer with raw IRC data +2018-01-19 19:55:57 Examples: +2018-01-19 19:55:57 /server listfull +2018-01-19 19:55:57 /server add freenode chat.freenode.net +2018-01-19 19:55:57 /server add freenode chat.freenode.net/6697 -ssl -autoconnect +2018-01-19 19:55:57 /server add chatspike irc.chatspike.net/6667,irc.duckspike.net/6667 +2018-01-19 19:55:57 /server copy freenode freenode-test +2018-01-19 19:55:57 /server rename freenode-test freenode2 +2018-01-19 19:55:57 /server reorder freenode2 freenode +2018-01-19 19:55:57 /server del freenode +2018-01-19 19:55:57 /server deloutq +2018-01-19 19:56:37 No server found with "freenode" +2018-01-19 19:56:52 irc: server freenode added +2018-01-19 19:57:04 Servers with "freenode": +2018-01-19 19:57:04 freenode +2018-01-19 19:57:54 [server] (irc.conf) +2018-01-19 19:57:54 irc.server.freenode.addresses = "chat.freenode.net" (default if null: "") +2018-01-19 19:57:54 irc.server.freenode.anti_flood_prio_high = null -> 2 +2018-01-19 19:57:54 irc.server.freenode.anti_flood_prio_low = null -> 2 +2018-01-19 19:57:54 irc.server.freenode.autoconnect = null -> off +2018-01-19 19:57:54 irc.server.freenode.autojoin = null -> "" +2018-01-19 19:57:54 irc.server.freenode.autoreconnect = null -> on +2018-01-19 19:57:54 irc.server.freenode.autoreconnect_delay = null -> 10 +2018-01-19 19:57:54 irc.server.freenode.autorejoin = null -> off +2018-01-19 19:57:54 irc.server.freenode.autorejoin_delay = null -> 30 +2018-01-19 19:57:54 irc.server.freenode.away_check = null -> 0 +2018-01-19 19:57:54 irc.server.freenode.away_check_max_nicks = null -> 25 +2018-01-19 19:57:54 irc.server.freenode.capabilities = null -> "" +2018-01-19 19:57:54 irc.server.freenode.command = null -> "" +2018-01-19 19:57:54 irc.server.freenode.command_delay = null -> 0 +2018-01-19 19:57:54 irc.server.freenode.connection_timeout = null -> 60 +2018-01-19 19:57:54 irc.server.freenode.default_msg_kick = null -> "" +2018-01-19 19:57:54 irc.server.freenode.default_msg_part = null -> "WeeChat %v" +2018-01-19 19:57:54 irc.server.freenode.default_msg_quit = null -> "WeeChat %v" +2018-01-19 19:57:54 irc.server.freenode.ipv6 = null -> on +2018-01-19 19:57:54 irc.server.freenode.local_hostname = null -> "" +2018-01-19 19:57:54 irc.server.freenode.nicks = null -> "vgg,vgg1,vgg2,vgg3,vgg4" +2018-01-19 19:57:54 irc.server.freenode.nicks_alternate = null -> on +2018-01-19 19:57:54 irc.server.freenode.notify = null -> "" +2018-01-19 19:57:54 irc.server.freenode.password = null -> "" +2018-01-19 19:57:54 irc.server.freenode.proxy = null -> "" +2018-01-19 19:57:54 irc.server.freenode.realname = null -> "" +2018-01-19 19:57:54 irc.server.freenode.sasl_fail = null -> continue +2018-01-19 19:57:54 irc.server.freenode.sasl_key = null -> "" +2018-01-19 19:57:54 irc.server.freenode.sasl_mechanism = null -> plain +2018-01-19 19:57:54 irc.server.freenode.sasl_password = null -> "" +2018-01-19 19:57:54 irc.server.freenode.sasl_timeout = null -> 15 +2018-01-19 19:57:54 irc.server.freenode.sasl_username = null -> "" +2018-01-19 19:57:54 irc.server.freenode.ssl = null -> off +2018-01-19 19:57:54 irc.server.freenode.ssl_cert = null -> "" +2018-01-19 19:57:54 irc.server.freenode.ssl_dhkey_size = null -> 2048 +2018-01-19 19:57:54 irc.server.freenode.ssl_fingerprint = null -> "" +2018-01-19 19:57:54 irc.server.freenode.ssl_priorities = null -> "NORMAL:-VERS-SSL3.0" +2018-01-19 19:57:54 irc.server.freenode.ssl_verify = null -> on +2018-01-19 19:57:54 irc.server.freenode.username = null -> "vgg" +2018-01-19 19:57:54 39 options (matching with "*freenode*") +2018-01-19 20:18:03 =!= No help available, "keybndings" is not a command or an option +2018-01-19 20:18:09 =!= No help available, "keys" is not a command or an option +2018-01-19 20:18:20 [core] /key list|listdefault|listdiff [<context>] +2018-01-19 20:18:20 bind <key> [<command> [<args>]] +2018-01-19 20:18:20 bindctxt <context> <key> [<command> [<args>]] +2018-01-19 20:18:20 unbind <key> +2018-01-19 20:18:20 unbindctxt <context> <key> +2018-01-19 20:18:20 reset <key> +2018-01-19 20:18:20 resetctxt <context> <key> +2018-01-19 20:18:20 resetall -yes [<context>] +2018-01-19 20:18:20 missing [<context>] +2018-01-19 20:18:20 bind/unbind keys +2018-01-19 20:18:20 list: list all current keys (without argument, this list is displayed) +2018-01-19 20:18:20 listdefault: list default keys +2018-01-19 20:18:20 listdiff: list differences between current and default keys (keys added, redefined or deleted) +2018-01-19 20:18:20 context: name of context ("default" or "search") +2018-01-19 20:18:20 bind: bind a command to a key or display command bound to key (for context "default") +2018-01-19 20:18:20 bindctxt: bind a command to a key or display command bound to key, for given context +2018-01-19 20:18:20 command: command (many commands can be separated by semicolons) +2018-01-19 20:18:20 unbind: remove a key binding (for context "default") +2018-01-19 20:18:20 unbindctxt: remove a key binding for given context +2018-01-19 20:18:20 reset: reset a key to default binding (for context "default") +2018-01-19 20:18:20 resetctxt: reset a key to default binding, for given context +2018-01-19 20:18:20 resetall: restore bindings to the default values and delete ALL personal bindings (use carefully!) +2018-01-19 20:18:20 missing: add missing keys (using default bindings), useful after installing new WeeChat version +2018-01-19 20:18:20 When binding a command to a key, it is recommended to use key alt+k (or Esc then k), and then press the key to bind: this will insert key code in command line. +2018-01-19 20:18:20 For context "mouse" (possible in context "cursor" too), key has format: "@area:key" or "@area1>area2:key" where area can be: +2018-01-19 20:18:20 *: any area on screen +2018-01-19 20:18:20 chat: chat area (any buffer) +2018-01-19 20:18:20 chat(xxx): char area for buffer with name "xxx" (full name including plugin) +2018-01-19 20:18:20 bar(*): any bar +2018-01-19 20:18:20 bar(xxx): bar "xxx" +2018-01-19 20:18:20 item(*): any bar item +2018-01-19 20:18:20 item(xxx): bar item "xxx" +2018-01-19 20:18:20 Wildcard "*" is allowed in key to match many mouse events. +2018-01-19 20:18:20 A special value for command with format "hsignal:name" can be used for context mouse, this will send the hsignal "name" with the focus hashtable as argument. +2018-01-19 20:18:20 Another special value "-" can be used to disable key (it will be ignored when looking for keys). +2018-01-19 20:18:20 Examples: +2018-01-19 20:18:20 key alt-t to toggle nicklist bar: +2018-01-19 20:18:20 /key bind meta-t /bar toggle nicklist +2018-01-19 20:18:20 key alt-r to jump to #weechat IRC channel: +2018-01-19 20:18:20 /key bind meta-r /buffer #weechat +2018-01-19 20:18:20 restore default binding for key alt-r: +2018-01-19 20:18:20 /key reset meta-r +2018-01-19 20:18:20 key "tab" to stop search in buffer: +2018-01-19 20:18:20 /key bindctxt search ctrl-I /input search_stop +2018-01-19 20:18:20 middle button of mouse on a nick to retrieve info on nick: +2018-01-19 20:18:20 /key bindctxt mouse @item(buffer_nicklist):button3 /msg nickserv info ${nick} +2018-01-19 20:26:40 perl: scripts unloaded diff --git a/.weechat-tutorial/perl/autoload/iset.pl b/.weechat-tutorial/perl/autoload/iset.pl new file mode 120000 index 0000000..2746e0d --- /dev/null +++ b/.weechat-tutorial/perl/autoload/iset.pl @@ -0,0 +1 @@ +../iset.pl
\ No newline at end of file diff --git a/.weechat-tutorial/perl/iset.pl b/.weechat-tutorial/perl/iset.pl new file mode 100755 index 0000000..d6c9364 --- /dev/null +++ b/.weechat-tutorial/perl/iset.pl @@ -0,0 +1,1634 @@ +# +# Copyright (C) 2008-2017 Sebastien Helleu <flashcode@flashtux.org> +# Copyright (C) 2010-2017 Nils Görs <weechatter@arcor.de> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# Set WeeChat and plugins options interactively. +# +# History: +# +# 2017-04-14, nils_2 <freenode.#weechat> +# version 4.3: add option "use_color" (https://github.com/weechat/scripts/issues/93) +# 2016-07-08, nils_2 <weechatter@arcor.de> +# version 4.2: add diff function +# 2016-02-06, Sebastien Helleu <flashcode@flashtux.org>: +# version 4.1: remove debug print +# 2015-12-24, Sebastien Helleu <flashcode@flashtux.org>: +# version 4.0: add support of parent options (inherited values in irc servers) +# with WeeChat >= 1.4 +# 2015-05-16, Sebastien Helleu <flashcode@flashtux.org>: +# version 3.9: fix cursor position when editing an option with WeeChat >= 1.2 +# 2015-05-02, arza <arza@arza.us>: +# version 3.8: don't append "null" to /set when setting an undefined setting +# 2015-05-01, nils_2 <weechatter@arcor.de>: +# version 3.7: fix two perl warnings (reported by t3chguy) +# 2014-09-30, arza <arza@arza.us>: +# version 3.6: fix current line counter when options aren't found +# 2014-06-03, nils_2 <weechatter@arcor.de>: +# version 3.5: add new option "use_mute" +# 2014-01-30, stfn <stfnmd@gmail.com>: +# version 3.4: add new options "color_value_diff" and "color_value_diff_selected" +# 2014-01-16, luz <ne.tetewi@gmail.com>: +# version 3.3: fix bug with column alignment in iset buffer when option +# name contains unicode characters +# 2013-08-03, Sebastien Helleu <flashcode@flashtux.org>: +# version 3.2: allow "q" as input in iset buffer to close it +# 2013-07-14, Sebastien Helleu <flashcode@flashtux.org>: +# version 3.1: remove unneeded calls to iset_refresh() in mouse callback +# (faster mouse actions when lot of options are displayed), +# fix bug when clicking on a line after the last option displayed +# 2013-04-30, arza <arza@arza.us>: +# version 3.0: simpler title, fix refresh on unset +# 2012-12-16, nils_2 <weechatter@arcor.de>: +# version 2.9: fix focus window with iset buffer on mouse click +# 2012-08-25, nils_2 <weechatter@arcor.de>: +# version 2.8: most important key and mouse bindings for iset buffer added to title-bar (idea The-Compiler) +# 2012-07-31, nils_2 <weechatter@arcor.de>: +# version 2.7: add combined option and value search (see /help iset) +# : add exact value search (see /help iset) +# : fix problem with metacharacter in value search +# : fix use of uninitialized value for unset option and reset value of option +# 2012-07-25, nils_2 <weechatter@arcor.de>: +# version 2.6: switch to iset buffer (if existing) when command /iset is called with arguments +# 2012-03-17, Sebastien Helleu <flashcode@flashtux.org>: +# version 2.5: fix check of sections when creating config file +# 2012-03-09, Sebastien Helleu <flashcode@flashtux.org>: +# version 2.4: fix reload of config file +# 2012-02-02, nils_2 <weechatter@arcor.de>: +# version 2.3: fixed: refresh problem with new search results and cursor was outside window. +# : add: new option "current_line" in title bar +# version 2.2: fixed: refresh error when toggling plugins description +# 2011-11-05, nils_2 <weechatter@arcor.de>: +# version 2.1: use own config file (iset.conf), fix own help color (used immediately) +# 2011-10-16, nils_2 <weechatter@arcor.de>: +# version 2.0: add support for left-mouse-button and more sensitive mouse gesture (for integer/color options) +# add help text for mouse support +# 2011-09-20, Sebastien Helleu <flashcode@flashtux.org>: +# version 1.9: add mouse support, fix iset buffer, fix errors on first load under FreeBSD +# 2011-07-21, nils_2 <weechatter@arcor.de>: +# version 1.8: added: option "show_plugin_description" (alt+p) +# fixed: typos in /help iset (lower case for alt+'x' keys) +# 2011-05-29, nils_2 <weechatter@arcor.de>: +# version 1.7: added: version check for future needs +# added: new option (scroll_horiz) and usage of scroll_horiz function (weechat >= 0.3.6 required) +# fixed: help_bar did not pop up immediately using key-shortcut +# 2011-02-19, nils_2 <weechatter@arcor.de>: +# version 1.6: added: display of all possible values in help bar (show_help_extra_info) +# fixed: external user options never loaded when starting iset first time +# 2011-02-13, Sebastien Helleu <flashcode@flashtux.org>: +# version 1.5: use new help format for command arguments +# 2011-02-03, nils_2 <weechatter@arcor.de>: +# version 1.4: fixed: restore value filter after /upgrade using buffer local variable. +# 2011-01-14, nils_2 <weechatter@arcor.de>: +# version 1.3: added function to search for values (option value_search_char). +# code optimization. +# 2010-12-26, Sebastien Helleu <flashcode@flashtux.org>: +# version 1.2: improve speed of /upgrade when iset buffer is open, +# restore filter used after /upgrade using buffer local variable, +# use /iset filter argument if buffer is open. +# 2010-11-21, drubin <drubin+weechat@smartcube.co.za>: +# version 1.1.1: fix bugs with cursor position +# 2010-11-20, nils_2 <weechatter@arcor.de>: +# version 1.1: cursor position set to value +# 2010-08-03, Sebastien Helleu <flashcode@flashtux.org>: +# version 1.0: move misplaced call to infolist_free() +# 2010-02-02, rettub <rettub@gmx.net>: +# version 0.9: turn all the help stuff off if option 'show_help_bar' is 'off', +# new key binding <alt>-<v> to toggle help_bar and help stuff on/off +# 2010-01-30, nils_2 <weechatter@arcor.de>: +# version 0.8: fix error when option does not exist +# 2010-01-24, Sebastien Helleu <flashcode@flashtux.org>: +# version 0.7: display iset bar only on iset buffer +# 2010-01-22, nils_2 <weechatter@arcor.de> and drubin: +# version 0.6: add description in a bar, fix singular/plural bug in title bar, +# fix selected line when switching buffer +# 2009-06-21, Sebastien Helleu <flashcode@flashtux.org>: +# version 0.5: fix bug with iset buffer after /upgrade +# 2009-05-02, Sebastien Helleu <flashcode@flashtux.org>: +# version 0.4: sync with last API changes +# 2009-01-04, Sebastien Helleu <flashcode@flashtux.org>: +# version 0.3: open iset buffer when /iset command is executed +# 2009-01-04, Sebastien Helleu <flashcode@flashtux.org>: +# version 0.2: use null values for options, add colors, fix refresh bugs, +# use new keys to reset/unset options, sort options by name, +# display number of options in buffer's title +# 2008-11-05, Sebastien Helleu <flashcode@flashtux.org>: +# version 0.1: first official version +# 2008-04-19, Sebastien Helleu <flashcode@flashtux.org>: +# script creation + +use strict; + +my $PRGNAME = "iset"; +my $VERSION = "4.3"; +my $DESCR = "Interactive Set for configuration options"; +my $AUTHOR = "Sebastien Helleu <flashcode\@flashtux.org>"; +my $LICENSE = "GPL3"; +my $LANG = "perl"; +my $ISET_CONFIG_FILE_NAME = "iset"; + +my $iset_config_file; +my $iset_buffer = ""; +my $wee_version_number = 0; +my @iset_focus = (); +my @options_names = (); +my @options_parent_names = (); +my @options_types = (); +my @options_values = (); +my @options_default_values = (); +my @options_parent_values = (); +my @options_is_null = (); +my $option_max_length = 0; +my $current_line = 0; +my $filter = "*"; +my $description = ""; +my $options_name_copy = ""; +my $iset_filter_title = ""; +# search modes: 0 = index() on value, 1 = grep() on value, 2 = grep() on option, 3 = grep on option & value, 4 = diff all, 5 = diff parts +my $search_mode = 2; +my $search_value = ""; +my $help_text_keys = "alt + space: toggle, +/-: increase/decrease, enter: change, ir: reset, iu: unset, v: toggle help bar"; +my $help_text_mouse = "Mouse: left: select, right: toggle/set, right + drag left/right: increase/decrease"; +my %options_iset; + +my %mouse_keys = ("\@chat(perl.$PRGNAME):button1" => "hsignal:iset_mouse", + "\@chat(perl.$PRGNAME):button2*" => "hsignal:iset_mouse", + "\@chat(perl.$PRGNAME):wheelup" => "/repeat 5 /iset **up", + "\@chat(perl.$PRGNAME):wheeldown" => "/repeat 5 /iset **down"); + + +sub iset_title +{ + if ($iset_buffer ne "") + { + my $current_line_counter = ""; + if (weechat::config_boolean($options_iset{"show_current_line"}) == 1) + { + if (@options_names eq 0) + { + $current_line_counter = "0/"; + } + else + { + $current_line_counter = ($current_line + 1) . "/"; + } + } + my $show_filter = ""; + if ($search_mode eq 0) + { + $iset_filter_title = "(value) "; + $show_filter = $search_value; + if ( substr($show_filter,0,1) eq weechat::config_string($options_iset{"value_search_char"}) ) + { + $show_filter = substr($show_filter,1,length($show_filter)); + } + } + elsif ($search_mode eq 1) + { + $iset_filter_title = "(value) "; + $show_filter = "*".$search_value."*"; + } + elsif ($search_mode eq 2) + { + $iset_filter_title = ""; + $filter = "*" if ($filter eq ""); + $show_filter = $filter; + } + elsif ($search_mode == 4 or $search_mode == 5) + { + $iset_filter_title = "diff: "; + $show_filter = "all"; + $show_filter = $search_value if $search_mode == 5; + } + elsif ($search_mode eq 3) + { + $iset_filter_title = "(option) "; + $show_filter = $filter + .weechat::color("default") + ." / (value) " + .weechat::color("yellow") + ."*".$search_value."*"; + } + weechat::buffer_set($iset_buffer, "title", + $iset_filter_title + .weechat::color("yellow") + .$show_filter + .weechat::color("default")." | " + .$current_line_counter + .@options_names + ." | " + .$help_text_keys + ." | " + .$help_text_mouse); + } +} + +sub iset_create_filter +{ + $filter = $_[0]; + if ( $search_mode == 3 ) + { + my @cmd_array = split(/ /,$filter); + my $array_count = @cmd_array; + $filter = $cmd_array[0]; + $filter = $cmd_array[0] . " " . $cmd_array[1] if ( $array_count >2 ); + } + $filter = "$1.*" if ($filter =~ /f (.*)/); # search file + $filter = "*.$1.*" if ($filter =~ /s (.*)/); # search section + if ((substr($filter, 0, 1) ne "*") && (substr($filter, -1, 1) ne "*")) + { + $filter = "*".$filter."*"; + } + if ($iset_buffer ne "") + { + weechat::buffer_set($iset_buffer, "localvar_set_iset_filter", $filter); + } +} + +sub iset_buffer_input +{ + my ($data, $buffer, $string) = ($_[0], $_[1], $_[2]); + + # string begins with space? + return weechat::WEECHAT_RC_OK if (substr($string, 0, 1 ) eq " "); + + if ($string eq "q") + { + weechat::buffer_close($buffer); + return weechat::WEECHAT_RC_OK; + } + $search_value = ""; + my @cmd_array = split(/ /,$string); + my $array_count = @cmd_array; + my $string2 = substr($string, 0, 1); + if ($string2 eq weechat::config_string($options_iset{"value_search_char"}) + or (defined $cmd_array[0] and $cmd_array[0] eq weechat::config_string($options_iset{"value_search_char"}).weechat::config_string($options_iset{"value_search_char"})) ) + { + $search_mode = 1; + $search_value = substr($string, 1); + iset_get_values($search_value); + if ($iset_buffer ne "") + { + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_value", $search_value); + } + } + # show all diff values + elsif ($string eq "d") + { + $search_mode = 4; +# iset_title(); + iset_create_filter("*"); + iset_get_options("*"); + } + elsif ( $array_count >= 2 and $cmd_array[0] eq "d") + { + $search_mode = 5; + $search_value = substr($cmd_array[1], 0); # cut value_search_char + $search_value = substr($cmd_array[2], 0) if ( $array_count > 2); # cut value_search_char + iset_create_filter($search_value); + iset_get_options($search_value); + + } + else + { + $search_mode = 2; + if ( $array_count >= 2 and $cmd_array[0] ne "f" or $cmd_array[0] ne "s" ) + { + if ( defined $cmd_array[1] and substr($cmd_array[1], 0, 1) eq weechat::config_string($options_iset{"value_search_char"}) + or defined $cmd_array[2] and substr($cmd_array[2], 0, 1) eq weechat::config_string($options_iset{"value_search_char"}) ) + { + $search_mode = 3; + $search_value = substr($cmd_array[1], 1); # cut value_search_char + $search_value = substr($cmd_array[2], 1) if ( $array_count > 2); # cut value_search_char + } + } + if ( $search_mode == 3) + { + iset_create_filter($string); + iset_get_options($search_value); + } + else + { + iset_create_filter($string); + iset_get_options(""); + } + } + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_mode", $search_mode); + weechat::buffer_clear($buffer); + $current_line = 0; + iset_refresh(); + return weechat::WEECHAT_RC_OK; +} + +sub iset_buffer_close +{ + $iset_buffer = ""; + + return weechat::WEECHAT_RC_OK; +} + +sub iset_init +{ + $current_line = 0; + $iset_buffer = weechat::buffer_search($LANG, $PRGNAME); + if ($iset_buffer eq "") + { + $iset_buffer = weechat::buffer_new($PRGNAME, "iset_buffer_input", "", "iset_buffer_close", ""); + } + else + { + my $new_filter = weechat::buffer_get_string($iset_buffer, "localvar_iset_filter"); + $search_mode = weechat::buffer_get_string($iset_buffer, "localvar_iset_search_mode"); + $search_value = weechat::buffer_get_string($iset_buffer, "localvar_iset_search_value"); + $filter = $new_filter if ($new_filter ne ""); + } + if ($iset_buffer ne "") + { + weechat::buffer_set($iset_buffer, "type", "free"); + iset_title(); + weechat::buffer_set($iset_buffer, "key_bind_ctrl-L", "/iset **refresh"); + weechat::buffer_set($iset_buffer, "key_bind_meta2-A", "/iset **up"); + weechat::buffer_set($iset_buffer, "key_bind_meta2-B", "/iset **down"); + weechat::buffer_set($iset_buffer, "key_bind_meta2-23~", "/iset **left"); + weechat::buffer_set($iset_buffer, "key_bind_meta2-24~" , "/iset **right"); + weechat::buffer_set($iset_buffer, "key_bind_meta- ", "/iset **toggle"); + weechat::buffer_set($iset_buffer, "key_bind_meta-+", "/iset **incr"); + weechat::buffer_set($iset_buffer, "key_bind_meta--", "/iset **decr"); + weechat::buffer_set($iset_buffer, "key_bind_meta-imeta-r", "/iset **reset"); + weechat::buffer_set($iset_buffer, "key_bind_meta-imeta-u", "/iset **unset"); + weechat::buffer_set($iset_buffer, "key_bind_meta-ctrl-J", "/iset **set"); + weechat::buffer_set($iset_buffer, "key_bind_meta-ctrl-M", "/iset **set"); + weechat::buffer_set($iset_buffer, "key_bind_meta-meta2-1~", "/iset **scroll_top"); + weechat::buffer_set($iset_buffer, "key_bind_meta-meta2-4~", "/iset **scroll_bottom"); + weechat::buffer_set($iset_buffer, "key_bind_meta-v", "/iset **toggle_help"); + weechat::buffer_set($iset_buffer, "key_bind_meta-p", "/iset **toggle_show_plugin_desc"); + weechat::buffer_set($iset_buffer, "localvar_set_iset_filter", $filter); + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_mode", $search_mode); + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_value", $search_value); + } +} + +sub iset_get_options +{ + my $var_value = $_[0]; + $var_value = "" if (not defined $var_value); + $var_value = lc($var_value); + $search_value = $var_value; + @iset_focus = (); + @options_names = (); + @options_parent_names = (); + @options_types = (); + @options_values = (); + @options_default_values = (); + @options_parent_values = (); + @options_is_null = (); + $option_max_length = 0; + my %options_internal = (); + my $i = 0; + my $key; + my $iset_struct; + my %iset_struct; + + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_value", $var_value) if ($search_mode == 3); + + my $infolist = weechat::infolist_get("option", "", $filter); + while (weechat::infolist_next($infolist)) + { + $key = sprintf("%08d", $i); + my $name = weechat::infolist_string($infolist, "full_name"); + my $parent_name = weechat::infolist_string($infolist, "parent_name"); + next if (weechat::config_boolean($options_iset{"show_plugin_description"}) == 0 and index ($name, "plugins.desc.") != -1); + my $type = weechat::infolist_string($infolist, "type"); + my $value = weechat::infolist_string($infolist, "value"); + my $default_value = weechat::infolist_string($infolist, "default_value"); + my $parent_value; + if ($parent_name && (($wee_version_number < 0x00040300) || (weechat::infolist_search_var($infolist, "parent_value")))) + { + $parent_value = weechat::infolist_string($infolist, "parent_value"); + } + my $is_null = weechat::infolist_integer($infolist, "value_is_null"); + + if ($search_mode == 3) + { + my $value = weechat::infolist_string($infolist, "value"); + if ( grep /\Q$var_value/,lc($value) ) + { + $options_internal{$name}{"parent_name"} = $parent_name; + $options_internal{$name}{"type"} = $type; + $options_internal{$name}{"value"} = $value; + $options_internal{$name}{"default_value"} = $default_value; + $options_internal{$name}{"parent_value"} = $parent_value; + $options_internal{$name}{"is_null"} = $is_null; + $option_max_length = length($name) if (length($name) > $option_max_length); + $iset_struct{$key} = $options_internal{$name}; + push(@iset_focus, $iset_struct{$key}); + } + } + # search for diff? + elsif ( $search_mode == 4 or $search_mode == 5) + { + if ($value ne $default_value ) + { + $options_internal{$name}{"parent_name"} = $parent_name; + $options_internal{$name}{"type"} = $type; + $options_internal{$name}{"value"} = $value; + $options_internal{$name}{"default_value"} = $default_value; + $options_internal{$name}{"parent_value"} = $parent_value; + $options_internal{$name}{"is_null"} = $is_null; + $option_max_length = length($name) if (length($name) > $option_max_length); + $iset_struct{$key} = $options_internal{$name}; + push(@iset_focus, $iset_struct{$key}); + } + } + else + { + $options_internal{$name}{"parent_name"} = $parent_name; + $options_internal{$name}{"type"} = $type; + $options_internal{$name}{"value"} = $value; + $options_internal{$name}{"default_value"} = $default_value; + $options_internal{$name}{"parent_value"} = $parent_value; + $options_internal{$name}{"is_null"} = $is_null; + $option_max_length = length($name) if (length($name) > $option_max_length); + $iset_struct{$key} = $options_internal{$name}; + push(@iset_focus, $iset_struct{$key}); + } + $i++; + } + weechat::infolist_free($infolist); + + foreach my $name (sort keys %options_internal) + { + push(@options_names, $name); + push(@options_parent_names, $options_internal{$name}{"parent_name"}); + push(@options_types, $options_internal{$name}{"type"}); + push(@options_values, $options_internal{$name}{"value"}); + push(@options_default_values, $options_internal{$name}{"default_value"}); + push(@options_parent_values, $options_internal{$name}{"parent_value"}); + push(@options_is_null, $options_internal{$name}{"is_null"}); + } +} + +sub iset_get_values +{ + my $var_value = $_[0]; + $var_value = lc($var_value); + if (substr($var_value,0,1) eq weechat::config_string($options_iset{"value_search_char"}) and $var_value ne weechat::config_string($options_iset{"value_search_char"})) + { + $var_value = substr($var_value,1,length($var_value)); + $search_mode = 0; + } + iset_search_values($var_value,$search_mode); + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_mode", $search_mode); + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_value", $var_value); + $search_value = $var_value; +} +sub iset_search_values +{ + my ($var_value,$search_mode) = ($_[0],$_[1]); + @options_names = (); + @options_parent_names = (); + @options_types = (); + @options_values = (); + @options_default_values = (); + @options_parent_values = (); + @options_is_null = (); + $option_max_length = 0; + my %options_internal = (); + my $i = 0; + my $infolist = weechat::infolist_get("option", "", "*"); + while (weechat::infolist_next($infolist)) + { + my $name = weechat::infolist_string($infolist, "full_name"); + my $parent_name = weechat::infolist_string($infolist, "parent_name"); + next if (weechat::config_boolean($options_iset{"show_plugin_description"}) == 0 and index ($name, "plugins.desc.") != -1); + my $type = weechat::infolist_string($infolist, "type"); + my $is_null = weechat::infolist_integer($infolist, "value_is_null"); + my $value = weechat::infolist_string($infolist, "value"); + my $default_value = weechat::infolist_string($infolist, "default_value"); + my $parent_value; + if ($parent_name && (($wee_version_number < 0x00040300) || (weechat::infolist_search_var($infolist, "parent_value")))) + { + $parent_value = weechat::infolist_string($infolist, "parent_value"); + } + if ($search_mode) + { + if ( grep /\Q$var_value/,lc($value) ) + { + $options_internal{$name}{"parent_name"} = $parent_name; + $options_internal{$name}{"type"} = $type; + $options_internal{$name}{"value"} = $value; + $options_internal{$name}{"default_value"} = $default_value; + $options_internal{$name}{"parent_value"} = $parent_value; + $options_internal{$name}{"is_null"} = $is_null; + $option_max_length = length($name) if (length($name) > $option_max_length); + } + } + else + { +# if ($value =~ /\Q$var_value/si) + if (lc($value) eq $var_value) + { + $options_internal{$name}{"parent_name"} = $parent_name; + $options_internal{$name}{"type"} = $type; + $options_internal{$name}{"value"} = $value; + $options_internal{$name}{"default_value"} = $default_value; + $options_internal{$name}{"parent_value"} = $parent_value; + $options_internal{$name}{"is_null"} = $is_null; + $option_max_length = length($name) if (length($name) > $option_max_length); + } + } + $i++; + } + weechat::infolist_free($infolist); + foreach my $name (sort keys %options_internal) + { + push(@options_names, $name); + push(@options_parent_names, $options_internal{$name}{"parent_name"}); + push(@options_types, $options_internal{$name}{"type"}); + push(@options_values, $options_internal{$name}{"value"}); + push(@options_default_values, $options_internal{$name}{"default_value"}); + push(@options_parent_values, $options_internal{$name}{"parent_value"}); + push(@options_is_null, $options_internal{$name}{"is_null"}); + } +} + +sub iset_refresh_line +{ + if ($iset_buffer ne "") + { + my $y = $_[0]; + if ($y <= $#options_names) + { + return if (! defined($options_types[$y])); + my $format = sprintf("%%s%%s%%s %%s %%-7s %%s %%s%%s%%s"); + my $padding; + if ($wee_version_number >= 0x00040200) + { + $padding = " " x ($option_max_length - weechat::strlen_screen($options_names[$y])); + } + else + { + $padding = " " x ($option_max_length - length($options_names[$y])); + } + my $around = ""; + $around = "\"" if ((!$options_is_null[$y]) && ($options_types[$y] eq "string")); + + my $color1 = weechat::color(weechat::config_color($options_iset{"color_option"})); + my $color2 = weechat::color(weechat::config_color($options_iset{"color_type"})); + my $color3 = ""; + my $color4 = ""; + if ($options_is_null[$y]) + { + $color3 = weechat::color(weechat::config_color($options_iset{"color_value_undef"})); + $color4 = weechat::color(weechat::config_color($options_iset{"color_value"})); + } + elsif ($options_values[$y] ne $options_default_values[$y]) + { + $color3 = weechat::color(weechat::config_color($options_iset{"color_value_diff"})); + } + else + { + $color3 = weechat::color(weechat::config_color($options_iset{"color_value"})); + } + if ($y == $current_line) + { + $color1 = weechat::color(weechat::config_color($options_iset{"color_option_selected"}).",".weechat::config_color($options_iset{"color_bg_selected"})); + $color2 = weechat::color(weechat::config_color($options_iset{"color_type_selected"}).",".weechat::config_color($options_iset{"color_bg_selected"})); + if ($options_is_null[$y]) + { + $color3 = weechat::color(weechat::config_color($options_iset{"color_value_undef_selected"}).",".weechat::config_color($options_iset{"color_bg_selected"})); + $color4 = weechat::color(weechat::config_color($options_iset{"color_value_selected"}).",".weechat::config_color($options_iset{"color_bg_selected"})); + } + elsif ($options_values[$y] ne $options_default_values[$y]) + { + $color3 = weechat::color(weechat::config_color($options_iset{"color_value_diff_selected"}).",".weechat::config_color($options_iset{"color_bg_selected"})); + } + else + { + $color3 = weechat::color(weechat::config_color($options_iset{"color_value_selected"}).",".weechat::config_color($options_iset{"color_bg_selected"})); + } + } + my $value = $options_values[$y]; + if (weechat::config_boolean($options_iset{"use_color"}) == 1 and $options_types[$y] eq "color") + { + $value = weechat::color($options_values[$y]) . $options_values[$y]; + } + if ($options_is_null[$y]) + { + $value = "null"; + if ($options_parent_names[$y]) + { + if (defined $options_parent_values[$y]) + { + my $around_parent = ""; + $around_parent = "\"" if ($options_types[$y] eq "string"); + $value .= $color1." -> ".$color4.$around_parent.$options_parent_values[$y].$around_parent; + } + else + { + $value .= $color1." -> ".$color3."null"; + } + } + } + my $strline = sprintf($format, + $color1, $options_names[$y], $padding, + $color2, $options_types[$y], + $color3, $around, $value, $around); + weechat::print_y($iset_buffer, $y, $strline); + } + } +} + +sub iset_refresh +{ + iset_title(); + if (($iset_buffer ne "") && ($#options_names >= 0)) + { + foreach my $y (0 .. $#options_names) + { + iset_refresh_line($y); + } + } + + weechat::bar_item_update("isetbar_help") if (weechat::config_boolean($options_iset{"show_help_bar"}) == 1); +} + +sub iset_full_refresh +{ + $iset_buffer = weechat::buffer_search($LANG, $PRGNAME); + if ($iset_buffer ne "") + { + weechat::buffer_clear($iset_buffer) unless defined $_[0]; # iset_full_refresh(1) does a full refresh without clearing buffer + # search for "*" in $filter. + if ($filter =~ m/\*/ and $search_mode == 2) + { + iset_get_options(""); + } + else + { + if ($search_mode == 0) + { + $search_value = "=" . $search_value; + iset_get_values($search_value); + } + elsif ($search_mode == 1) + { + iset_get_values($search_value); + } + elsif ($search_mode == 3) + { + iset_create_filter($filter); + iset_get_options($search_value); + } + } + if (weechat::config_boolean($options_iset{"show_plugin_description"}) == 1) + { + iset_set_current_line($current_line); + }else + { + $current_line = $#options_names if ($current_line > $#options_names); + } + iset_refresh(); + weechat::command($iset_buffer, "/window refresh"); + } +} + +sub iset_set_current_line +{ + my $new_current_line = $_[0]; + if ($new_current_line >= 0) + { + my $old_current_line = $current_line; + $current_line = $new_current_line; + $current_line = $#options_names if ($current_line > $#options_names); + if ($old_current_line != $current_line) + { + iset_refresh_line($old_current_line); + iset_refresh_line($current_line); + weechat::bar_item_update("isetbar_help") if (weechat::config_boolean($options_iset{"show_help_bar"}) == 1); + } + } +} + +sub iset_signal_window_scrolled_cb +{ + my ($data, $signal, $signal_data) = ($_[0], $_[1], $_[2]); + if ($iset_buffer ne "") + { + my $infolist = weechat::infolist_get("window", $signal_data, ""); + if (weechat::infolist_next($infolist)) + { + if (weechat::infolist_pointer($infolist, "buffer") eq $iset_buffer) + { + my $old_current_line = $current_line; + my $new_current_line = $current_line; + my $start_line_y = weechat::infolist_integer($infolist, "start_line_y"); + my $chat_height = weechat::infolist_integer($infolist, "chat_height"); + $new_current_line += $chat_height if ($new_current_line < $start_line_y); + $new_current_line -= $chat_height if ($new_current_line >= $start_line_y + $chat_height); + $new_current_line = $start_line_y if ($new_current_line < $start_line_y); + $new_current_line = $start_line_y + $chat_height - 1 if ($new_current_line >= $start_line_y + $chat_height); + iset_set_current_line($new_current_line); + } + } + weechat::infolist_free($infolist); + } + + return weechat::WEECHAT_RC_OK; +} + +sub iset_get_window_number +{ + if ($iset_buffer ne "") + { + my $window = weechat::window_search_with_buffer($iset_buffer); + return "-window ".weechat::window_get_integer ($window, "number")." " if ($window ne ""); + } + return ""; +} + +sub iset_check_line_outside_window +{ + if ($iset_buffer ne "") + { + undef my $infolist; + if ($wee_version_number >= 0x00030500) + { + my $window = weechat::window_search_with_buffer($iset_buffer); + $infolist = weechat::infolist_get("window", $window, "") if $window; + } + else + { + $infolist = weechat::infolist_get("window", "", "current"); + } + if ($infolist) + { + if (weechat::infolist_next($infolist)) + { + my $start_line_y = weechat::infolist_integer($infolist, "start_line_y"); + my $chat_height = weechat::infolist_integer($infolist, "chat_height"); + my $window_number = ""; + if ($wee_version_number >= 0x00030500) + { + $window_number = "-window ".weechat::infolist_integer($infolist, "number")." "; + } + if ($start_line_y > $current_line) + { + weechat::command($iset_buffer, "/window scroll ".$window_number."-".($start_line_y - $current_line)); + } + else + { + if ($start_line_y <= $current_line - $chat_height) + { + weechat::command($iset_buffer, "/window scroll ".$window_number."+".($current_line - $start_line_y - $chat_height + 1)); + + } + } + } + weechat::infolist_free($infolist); + } + } +} + +sub iset_get_option_name_index +{ + my $option_name = $_[0]; + my $index = 0; + while ($index <= $#options_names) + { + return -1 if ($options_names[$index] gt $option_name); + return $index if ($options_names[$index] eq $option_name); + $index++; + } + return -1; +} + +sub iset_refresh_option +{ + my $option_name = $_[0]; + my $index = $_[1]; + my $infolist = weechat::infolist_get("option", "", $option_name); + if ($infolist) + { + weechat::infolist_next($infolist); + if (weechat::infolist_fields($infolist)) + { + $options_parent_names[$index] = weechat::infolist_string($infolist, "parent_name"); + $options_types[$index] = weechat::infolist_string($infolist, "type"); + $options_values[$index] = weechat::infolist_string($infolist, "value"); + $options_default_values[$index] = weechat::infolist_string($infolist, "default_value"); + $options_is_null[$index] = weechat::infolist_integer($infolist, "value_is_null"); + $options_parent_values[$index] = undef; + if ($options_parent_names[$index] + && (($wee_version_number < 0x00040300) || (weechat::infolist_search_var($infolist, "parent_value")))) + { + $options_parent_values[$index] = weechat::infolist_string($infolist, "parent_value"); + } + iset_refresh_line($index); + iset_title() if ($option_name eq "iset.look.show_current_line"); + } + else + { + iset_full_refresh(1); # if not found, refresh fully without clearing buffer + weechat::print_y($iset_buffer, $#options_names + 1, ""); + } + weechat::infolist_free($infolist); + } +} + +sub iset_config_cb +{ + my ($data, $option_name, $value) = ($_[0], $_[1], $_[2]); + + if ($iset_buffer ne "") + { + return weechat::WEECHAT_RC_OK if (weechat::info_get("weechat_upgrading", "") eq "1"); + + my $index = iset_get_option_name_index($option_name); + if ($index >= 0) + { + # refresh info about changed option + iset_refresh_option($option_name, $index); + # refresh any other option having this changed option as parent + foreach my $i (0 .. $#options_names) + { + if ($options_parent_names[$i] eq $option_name) + { + iset_refresh_option($options_names[$i], $i); + } + } + } + else + { + iset_full_refresh() if ($option_name ne "weechat.bar.isetbar.hidden"); + } + } + + return weechat::WEECHAT_RC_OK; +} + +sub iset_set_option +{ + my ($option, $value) = ($_[0],$_[1]); + if (defined $option and defined $value) + { + $option = weechat::config_get($option); + weechat::config_option_set($option, $value, 1) if ($option ne ""); + } +} + +sub iset_reset_option +{ + my $option = $_[0]; + if (defined $option) + { + $option = weechat::config_get($option); + weechat::config_option_reset($option, 1) if ($option ne ""); + } +} + +sub iset_unset_option +{ + my $option = $_[0]; + if (defined $option) + { + $option = weechat::config_get($option); + weechat::config_option_unset($option) if ($option ne ""); + } +} + + +sub iset_cmd_cb +{ + my ($data, $buffer, $args) = ($_[0], $_[1], $_[2]); + my $filter_set = 0; +# $search_value = ""; + if (($args ne "") && (substr($args, 0, 2) ne "**")) + { + my @cmd_array = split(/ /,$args); + my $array_count = @cmd_array; + if (substr($args, 0, 1) eq weechat::config_string($options_iset{"value_search_char"}) + or (defined $cmd_array[0] and $cmd_array[0] eq weechat::config_string($options_iset{"value_search_char"}).weechat::config_string($options_iset{"value_search_char"})) ) + { + $search_mode = 1; + my $search_value = substr($args, 1); # cut value_search_char + if ($iset_buffer ne "") + { + weechat::buffer_clear($iset_buffer); + weechat::command($iset_buffer, "/window refresh"); + } + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_mode", $search_mode); + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_value", $search_value); + iset_init(); + iset_get_values($search_value); + iset_refresh(); + weechat::buffer_set($iset_buffer, "display", "1"); +# $filter = $var_value; + return weechat::WEECHAT_RC_OK; + } + else + { + # f/s option =value + # option =value + $search_mode = 2; # grep on option + if ( $array_count >= 2 and $cmd_array[0] ne "f" or $cmd_array[0] ne "s") + { + if ( defined $cmd_array[1] and substr($cmd_array[1], 0, 1) eq weechat::config_string($options_iset{"value_search_char"}) + or defined $cmd_array[2] and substr($cmd_array[2], 0, 1) eq weechat::config_string($options_iset{"value_search_char"}) ) + { + $search_mode = 3; # grep on option and value + $search_value = substr($cmd_array[1], 1); # cut value_search_char + $search_value = substr($cmd_array[2], 1) if ( $array_count > 2); # cut value_search_char + } + } + + # show all diff values + if ( $args eq "d") + { + $search_mode = 4; + $search_value = "*"; + $args = $search_value; + } + if ( $array_count >= 2 and $cmd_array[0] eq "d") + { + $search_mode = 5; + $search_value = substr($cmd_array[1], 0); # cut value_search_char + $search_value = substr($cmd_array[2], 0) if ( $array_count > 2); # cut value_search_char + $args = $search_value; + } + + iset_create_filter($args); + $filter_set = 1; + my $ptrbuf = weechat::buffer_search($LANG, $PRGNAME); + + if ($ptrbuf eq "") + { + iset_init(); + iset_get_options($search_value); + iset_full_refresh(); + weechat::buffer_set(weechat::buffer_search($LANG, $PRGNAME), "display", "1"); + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_value", $search_value); + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_mode", $search_mode); + return weechat::WEECHAT_RC_OK; + } + else + { + iset_get_options($search_value); + iset_full_refresh(); + weechat::buffer_set($ptrbuf, "display", "1"); + } + } + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_mode", $search_mode); + weechat::buffer_set($iset_buffer, "localvar_set_iset_search_value", $search_value); + } + if ($iset_buffer eq "") + { + iset_init(); + iset_get_options(""); + iset_refresh(); + } + else + { +# iset_get_options($search_value); + iset_full_refresh() if ($filter_set); + } + + if ($args eq "") + { + weechat::buffer_set($iset_buffer, "display", "1"); + } + else + { + if ($args eq "**refresh") + { + iset_full_refresh(); + } + if ($args eq "**up") + { + if ($current_line > 0) + { + $current_line--; + iset_refresh_line($current_line + 1); + iset_refresh_line($current_line); + iset_check_line_outside_window(); + } + } + if ($args eq "**down") + { + if ($current_line < $#options_names) + { + $current_line++; + iset_refresh_line($current_line - 1); + iset_refresh_line($current_line); + iset_check_line_outside_window(); + } + } + if ($args eq "**left" && $wee_version_number >= 0x00030600) + { + weechat::command($iset_buffer, "/window scroll_horiz ".iset_get_window_number()."-".weechat::config_integer($options_iset{"scroll_horiz"})."%"); + } + if ($args eq "**right" && $wee_version_number >= 0x00030600) + { + weechat::command($iset_buffer, "/window scroll_horiz ".iset_get_window_number().weechat::config_integer($options_iset{"scroll_horiz"})."%"); + } + if ($args eq "**scroll_top") + { + my $old_current_line = $current_line; + $current_line = 0; + iset_refresh_line ($old_current_line); + iset_refresh_line ($current_line); + iset_title(); + weechat::command($iset_buffer, "/window scroll_top ".iset_get_window_number()); + } + if ($args eq "**scroll_bottom") + { + my $old_current_line = $current_line; + $current_line = $#options_names; + iset_refresh_line ($old_current_line); + iset_refresh_line ($current_line); + iset_title(); + weechat::command($iset_buffer, "/window scroll_bottom ".iset_get_window_number()); + } + if ($args eq "**toggle") + { + if ($options_types[$current_line] eq "boolean") + { + iset_set_option($options_names[$current_line], "toggle"); + } + } + if ($args eq "**incr") + { + if (($options_types[$current_line] eq "integer") + || ($options_types[$current_line] eq "color")) + { + iset_set_option($options_names[$current_line], "++1"); + } + } + if ($args eq "**decr") + { + if (($options_types[$current_line] eq "integer") + || ($options_types[$current_line] eq "color")) + { + iset_set_option($options_names[$current_line], "--1"); + } + } + if ($args eq "**reset") + { + iset_reset_option($options_names[$current_line]); + } + if ($args eq "**unset") + { + iset_unset_option($options_names[$current_line]); + } + if ($args eq "**toggle_help") + { + if (weechat::config_boolean($options_iset{"show_help_bar"}) == 1) + { + weechat::config_option_set($options_iset{"show_help_bar"},0,1); + iset_show_bar(0); + } + else + { + weechat::config_option_set($options_iset{"show_help_bar"},1,1); + iset_show_bar(1); + } + } + if ($args eq "**toggle_show_plugin_desc") + { + if (weechat::config_boolean($options_iset{"show_plugin_description"}) == 1) + { + weechat::config_option_set($options_iset{"show_plugin_description"},0,1); + iset_full_refresh(); + iset_check_line_outside_window(); + iset_title(); + } + else + { + weechat::config_option_set($options_iset{"show_plugin_description"},1,1); + iset_full_refresh(); + iset_check_line_outside_window(); + iset_title(); + } + } + if ($args eq "**set") + { + my $quote = ""; + my $value = $options_values[$current_line]; + if ($options_is_null[$current_line]) + { + $value = ""; + } + else + { + $quote = "\"" if ($options_types[$current_line] eq "string"); + } + $value = " ".$quote.$value.$quote if ($value ne "" or $quote ne ""); + + my $set_command = "/set"; + my $start_index = 5; + if (weechat::config_boolean($options_iset{"use_mute"}) == 1) + { + $set_command = "/mute ".$set_command; + $start_index += 11; + } + $set_command = $set_command." ".$options_names[$current_line].$value; + my $pos_space = index($set_command, " ", $start_index); + if ($pos_space < 0) + { + $pos_space = 9999; + } + else + { + $pos_space = $pos_space + 1; + $pos_space = $pos_space + 1 if ($quote ne ""); + } + weechat::buffer_set($iset_buffer, "input", $set_command); + weechat::buffer_set($iset_buffer, "input_pos", "".$pos_space); + } + } + weechat::bar_item_update("isetbar_help") if (weechat::config_boolean($options_iset{"show_help_bar"}) == 1); + return weechat::WEECHAT_RC_OK; +} + +sub iset_get_help +{ + my ($redraw) = ($_[0]); + + return '' if (weechat::config_boolean($options_iset{"show_help_bar"}) == 0); + + if (not defined $options_names[$current_line]) + { + return "No option selected. Set a new filter using command line (use '*' to see all options)"; + } + if ($options_name_copy eq $options_names[$current_line] and not defined $redraw) + { + return $description; + } + $options_name_copy = $options_names[$current_line]; + my $optionlist =""; + $optionlist = weechat::infolist_get("option", "", $options_names[$current_line]); + weechat::infolist_next($optionlist); + my $full_name = weechat::infolist_string($optionlist,"full_name"); + my $option_desc = ""; + my $option_default_value = ""; + my $option_range = ""; + my $possible_values = ""; + my $re = qq(\Q$full_name); + if (grep (/^$re$/,$options_names[$current_line])) + { + $option_desc = weechat::infolist_string($optionlist, "description_nls"); + $option_desc = weechat::infolist_string($optionlist, "description") if ($option_desc eq ""); + $option_desc = "No help found" if ($option_desc eq ""); + $option_default_value = weechat::infolist_string($optionlist, "default_value"); + $possible_values = weechat::infolist_string($optionlist, "string_values") if (weechat::infolist_string($optionlist, "string_values") ne ""); + if ((weechat::infolist_string($optionlist, "type") eq "integer") && ($possible_values eq "")) + { + $option_range = weechat::infolist_integer($optionlist, "min") + ." .. ".weechat::infolist_integer($optionlist, "max"); + } + } + weechat::infolist_free($optionlist); + iset_title(); + + $description = weechat::color(weechat::config_color($options_iset{"color_help_option_name"})).$options_names[$current_line] + .weechat::color("bar_fg").": " + .weechat::color(weechat::config_color($options_iset{"color_help_text"})).$option_desc; + + # show additional infos like default value and possible values + + if (weechat::config_boolean($options_iset{"show_help_extra_info"}) == 1) + { + $description .= + weechat::color("bar_delim")." [" + .weechat::color("bar_fg")."default: " + .weechat::color("bar_delim")."\"" + .weechat::color(weechat::config_color($options_iset{"color_help_default_value"})).$option_default_value + .weechat::color("bar_delim")."\""; + if ($option_range ne "") + { + $description .= weechat::color("bar_fg").", values: ".$option_range; + } + if ($possible_values ne "") + { + $possible_values =~ s/\|/", "/g; # replace '|' to '", "' + $description .= weechat::color("bar_fg").", values: ". "\"" . $possible_values . "\""; + + } + $description .= weechat::color("bar_delim")."]"; + } + return $description; +} + +sub iset_check_condition_isetbar_cb +{ + my ($data, $modifier, $modifier_data, $string) = ($_[0], $_[1], $_[2], $_[3]); + my $buffer = weechat::window_get_pointer($modifier_data, "buffer"); + if ($buffer ne "") + { + if ((weechat::buffer_get_string($buffer, "plugin") eq $LANG) + && (weechat::buffer_get_string($buffer, "name") eq $PRGNAME)) + { + return "1"; + } + } + return "0"; +} + +sub iset_show_bar +{ + my $show = $_[0]; + my $barhidden = weechat::config_get("weechat.bar.isetbar.hidden"); + if ($barhidden) + { + if ($show) + { + if (weechat::config_boolean($options_iset{"show_help_bar"}) == 1) + { + if (weechat::config_boolean($barhidden)) + { + weechat::config_option_set($barhidden, 0, 1); + } + } + } + else + { + if (!weechat::config_boolean($barhidden)) + { + weechat::config_option_set($barhidden, 1, 1); + } + } + } +} + +sub iset_signal_buffer_switch_cb +{ + my $buffer_pointer = $_[2]; + my $show_bar = 0; + $show_bar = 1 if (weechat::buffer_get_integer($iset_buffer, "num_displayed") > 0); + iset_show_bar($show_bar); + iset_check_line_outside_window() if ($buffer_pointer eq $iset_buffer); + return weechat::WEECHAT_RC_OK; +} + +sub iset_item_cb +{ + return iset_get_help(); +} + +sub iset_upgrade_ended +{ + iset_full_refresh(); +} + +sub iset_end +{ + # when script is unloaded, we hide bar + iset_show_bar(0); +} + +# -------------------------------[ mouse support ]------------------------------------- + +sub hook_focus_iset_cb +{ + my %info = %{$_[1]}; + my $bar_item_line = int($info{"_bar_item_line"}); + undef my $hash; + if (($info{"_buffer_name"} eq $PRGNAME) && $info{"_buffer_plugin"} eq $LANG && ($bar_item_line >= 0) && ($bar_item_line <= $#iset_focus)) + { + $hash = $iset_focus[$bar_item_line]; + } + else + { + $hash = {}; + my $hash_focus = $iset_focus[0]; + foreach my $key (keys %$hash_focus) + { + $hash->{$key} = "?"; + } + } + return $hash; +} + +# _chat_line_y contains selected line +sub iset_hsignal_mouse_cb +{ + my ($data, $signal, %hash) = ($_[0], $_[1], %{$_[2]}); + + return weechat::WEECHAT_RC_OK unless (@options_types); + + if ($hash{"_buffer_name"} eq $PRGNAME && ($hash{"_buffer_plugin"} eq $LANG)) + { + if ($hash{"_key"} eq "button1") + { + iset_set_current_line($hash{"_chat_line_y"}); + } + elsif ($hash{"_key"} eq "button2") + { + if ($options_types[$hash{"_chat_line_y"}] eq "boolean") + { + iset_set_option($options_names[$hash{"_chat_line_y"}], "toggle"); + iset_set_current_line($hash{"_chat_line_y"}); + } + elsif ($options_types[$hash{"_chat_line_y"}] eq "string") + { + iset_set_current_line($hash{"_chat_line_y"}); + weechat::command("", "/$PRGNAME **set"); + } + } + elsif ($hash{"_key"} eq "button2-gesture-left" or $hash{"_key"} eq "button2-gesture-left-long") + { + if ($options_types[$hash{"_chat_line_y"}] eq "integer" or ($options_types[$hash{"_chat_line_y"}] eq "color")) + { + iset_set_current_line($hash{"_chat_line_y"}); + my $distance = distance($hash{"_chat_line_x"},$hash{"_chat_line_x2"}); + weechat::command("", "/repeat $distance /$PRGNAME **decr"); + } + } + elsif ($hash{"_key"} eq "button2-gesture-right" or $hash{"_key"} eq "button2-gesture-right-long") + { + if ($options_types[$hash{"_chat_line_y"}] eq "integer" or ($options_types[$hash{"_chat_line_y"}] eq "color")) + { + iset_set_current_line($hash{"_chat_line_y"}); + my $distance = distance($hash{"_chat_line_x"},$hash{"_chat_line_x2"}); + weechat::command("", "/repeat $distance /$PRGNAME **incr"); + } + } + } + window_switch(); +} + +sub window_switch +{ + my $current_window = weechat::current_window(); + my $dest_window = weechat::window_search_with_buffer(weechat::buffer_search("perl","iset")); + return 0 if ($dest_window eq "" or $current_window eq $dest_window); + + my $infolist = weechat::infolist_get("window", $dest_window, ""); + weechat::infolist_next($infolist); + my $number = weechat::infolist_integer($infolist, "number"); + weechat::infolist_free($infolist); + weechat::command("","/window " . $number); +} + +sub distance +{ + my ($x1,$x2) = ($_[0], $_[1]); + my $distance; + $distance = $x1 - $x2; + $distance = abs($distance); + if ($distance > 0) + { + use integer; + $distance = $distance / 3; + $distance = 1 if ($distance == 0); + } + elsif ($distance == 0) + { + $distance = 1; + } + return $distance; +} + +# -----------------------------------[ config ]--------------------------------------- + +sub iset_config_init +{ + $iset_config_file = weechat::config_new($ISET_CONFIG_FILE_NAME,"iset_config_reload_cb",""); + return if ($iset_config_file eq ""); + + # section "color" + my $section_color = weechat::config_new_section($iset_config_file,"color", 0, 0, "", "", "", "", "", "", "", "", "", ""); + if ($section_color eq "") + { + weechat::config_free($iset_config_file); + return; + } + $options_iset{"color_option"} = weechat::config_new_option( + $iset_config_file, $section_color, + "option", "color", "Color for option name in iset buffer", "", 0, 0, + "default", "default", 0, "", "", "full_refresh_cb", "", "", ""); + $options_iset{"color_option_selected"} = weechat::config_new_option( + $iset_config_file, $section_color, + "option_selected", "color", "Color for selected option name in iset buffer", "", 0, 0, + "white", "white", 0, "", "", "full_refresh_cb", "", "", ""); + $options_iset{"color_type"} = weechat::config_new_option( + $iset_config_file, $section_color, + "type", "color", "Color for option type (integer, boolean, string)", "", 0, 0, + "brown", "brown", 0, "", "", "full_refresh_cb", "", "", ""); + $options_iset{"color_type_selected"} = weechat::config_new_option( + $iset_config_file, $section_color, + "type_selected", "color", "Color for selected option type (integer, boolean, string)", "", 0, 0, + "yellow", "yellow", 0, "", "", "full_refresh_cb", "", "", ""); + $options_iset{"color_value"} = weechat::config_new_option( + $iset_config_file, $section_color, + "value", "color", "Color for option value", "", 0, 0, + "cyan", "cyan", 0, "", "", "full_refresh_cb", "", "", ""); + $options_iset{"color_value_selected"} = weechat::config_new_option( + $iset_config_file, $section_color, + "value_selected", "color", "Color for selected option value", "", 0, 0, + "lightcyan", "lightcyan", 0, "", "", "full_refresh_cb", "", "", ""); + $options_iset{"color_value_diff"} = weechat::config_new_option( + $iset_config_file, $section_color, + "value_diff", "color", "Color for option value different from default", "", 0, 0, + "magenta", "magenta", 0, "", "", "full_refresh_cb", "", "", ""); + $options_iset{"color_value_diff_selected"} = weechat::config_new_option( + $iset_config_file, $section_color, + "value_diff_selected", "color", "Color for selected option value different from default", "", 0, 0, + "lightmagenta", "lightmagenta", 0, "", "", "full_refresh_cb", "", "", ""); + $options_iset{"color_value_undef"} = weechat::config_new_option( + $iset_config_file, $section_color, + "value_undef", "color", "Color for option value undef", "", 0, 0, + "green", "green", 0, "", "", "full_refresh_cb", "", "", ""); + $options_iset{"color_value_undef_selected"} = weechat::config_new_option( + $iset_config_file, $section_color, + "value_undef_selected", "color", "Color for selected option value undef", "", 0, 0, + "lightgreen", "lightgreen", 0, "", "", "full_refresh_cb", "", "", ""); + $options_iset{"color_bg_selected"} = weechat::config_new_option( + $iset_config_file, $section_color, + "bg_selected", "color", "Background color for current selected option", "", 0, 0, + "red", "red", 0, "", "", "full_refresh_cb", "", "", ""); + $options_iset{"color_help_option_name"} = weechat::config_new_option( + $iset_config_file, $section_color, + "help_option_name", "color", "Color for option name in help-bar", "", 0, 0, + "white", "white", 0, "", "", "bar_refresh", "", "", ""); + $options_iset{"color_help_text"} = weechat::config_new_option( + $iset_config_file, $section_color, + "help_text", "color", "Color for option description in help-bar", "", 0, 0, + "default", "default", 0, "", "", "bar_refresh", "", "", ""); + $options_iset{"color_help_default_value"} = weechat::config_new_option( + $iset_config_file, $section_color, + "help_default_value", "color", "Color for default option value in help-bar", "", 0, 0, + "green", "green", 0, "", "", "bar_refresh", "", "", ""); + + # section "help" + my $section_help = weechat::config_new_section($iset_config_file,"help", 0, 0, "", "", "", "", "", "", "", "", "", ""); + if ($section_help eq "") + { + weechat::config_free($iset_config_file); + return; + } + $options_iset{"show_help_bar"} = weechat::config_new_option( + $iset_config_file, $section_help, + "show_help_bar", "boolean", "Show help bar", "", 0, 0, + "on", "on", 0, "", "", "toggle_help_cb", "", "", ""); + $options_iset{"show_help_extra_info"} = weechat::config_new_option( + $iset_config_file, $section_help, + "show_help_extra_info", "boolean", "Show additional information in help bar (default value, max./min. value) ", "", 0, 0, + "on", "on", 0, "", "", "", "", "", ""); + $options_iset{"show_plugin_description"} = weechat::config_new_option( + $iset_config_file, $section_help, + "show_plugin_description", "boolean", "Show plugin description in iset buffer", "", 0, 0, + "off", "off", 0, "", "", "full_refresh_cb", "", "", ""); + + # section "look" + my $section_look = weechat::config_new_section($iset_config_file, "look", 0, 0, "", "", "", "", "", "", "", "", "", ""); + if ($section_look eq "") + { + weechat::config_free($iset_config_file); + return; + } + $options_iset{"value_search_char"} = weechat::config_new_option( + $iset_config_file, $section_look, + "value_search_char", "string", "Trigger char to tell iset to search for value instead of option (for example: =red)", "", 0, 0, + "=", "=", 0, "", "", "", "", "", ""); + $options_iset{"scroll_horiz"} = weechat::config_new_option( + $iset_config_file, $section_look, + "scroll_horiz", "integer", "scroll content of iset buffer n%", "", 1, 100, + "10", "10", 0, "", "", "", "", "", ""); + $options_iset{"show_current_line"} = weechat::config_new_option( + $iset_config_file, $section_look, + "show_current_line", "boolean", "show current line in title bar.", "", 0, 0, + "on", "on", 0, "", "", "", "", "", ""); + $options_iset{"use_mute"} = weechat::config_new_option( + $iset_config_file, $section_look, + "use_mute", "boolean", "/mute command will be used in input bar", "", 0, 0, + "off", "off", 0, "", "", "", "", "", ""); + $options_iset{"use_color"} = weechat::config_new_option( + $iset_config_file, $section_look, + "use_color", "boolean", "display the color value in the corresponding color", "", 0, 0, + "off", "off", 0, "", "", "full_refresh_cb", "", "", ""); +} + +sub iset_config_reload_cb +{ + my ($data,$config_file) = ($_[0], $_[1]); + return weechat::config_reload($config_file) +} + +sub iset_config_read +{ + return weechat::config_read($iset_config_file) if ($iset_config_file ne ""); +} + +sub iset_config_write +{ + return weechat::config_write($iset_config_file) if ($iset_config_file ne ""); +} + +sub full_refresh_cb +{ + iset_full_refresh(); + return weechat::WEECHAT_RC_OK; +} + +sub bar_refresh +{ + iset_get_help(1); + weechat::bar_item_update("isetbar_help") if (weechat::config_boolean($options_iset{"show_help_bar"}) == 1); + return weechat::WEECHAT_RC_OK; +} + +sub toggle_help_cb +{ + my $value = weechat::config_boolean($options_iset{"show_help_bar"}); + iset_show_bar($value); + return weechat::WEECHAT_RC_OK; +} + +# -----------------------------------[ main ]----------------------------------------- + +weechat::register($PRGNAME, $AUTHOR, $VERSION, $LICENSE, + $DESCR, "iset_end", ""); + +$wee_version_number = weechat::info_get("version_number", "") || 0; + +iset_config_init(); +iset_config_read(); + +weechat::hook_command($PRGNAME, "Interactive set", "d <text> || f <file> || s <section> || [=][=]<text>", + "d <text> : show only changed options\n". + "f file : show options for a file\n". + "s section: show options for a section\n". + "text : show options with 'text' in name\n". + weechat::config_string($options_iset{"value_search_char"})."text : show options with 'text' in value\n". + weechat::config_string($options_iset{"value_search_char"}).weechat::config_string($options_iset{"value_search_char"})."text : show options with exact 'text' in value\n\n". + "Keys for iset buffer:\n". + "f11,f12 : move iset content left/right\n". + "up,down : move one option up/down\n". + "pgup,pdwn : move one page up/down\n". + "home,end : move to first/last option\n". + "ctrl+'L' : refresh options and screen\n". + "alt+space : toggle boolean on/off\n". + "alt+'+' : increase value (for integer or color)\n". + "alt+'-' : decrease value (for integer or color)\n". + "alt+'i',alt+'r': reset value of option\n". + "alt+'i',alt+'u': unset option\n". + "alt+enter : set new value for option (edit it with command line)\n". + "text,enter : set a new filter using command line (use '*' to see all options)\n". + "alt+'v' : toggle help bar on/off\n". + "alt+'p' : toggle option \"show_plugin_description\" on/off\n". + "q : as input in iset buffer to close it\n". + "\n". + "Mouse actions:\n". + "wheel up/down : move cursor up/down\n". + "left button : select an option from list\n". + "right button : toggle boolean (on/off) or set a new value for option (edit it with command line)\n". + "right button + drag left/right: increase/decrease value (for integer or color)\n". + "\n". + "Examples:\n". + " show changed options in 'aspell' plugin\n". + " /iset d aspell\n". + " show options for file 'irc'\n". + " /iset f irc\n". + " show options for section 'look'\n". + " /iset s look\n". + " show all options with text 'nicklist' in name\n". + " /iset nicklist\n". + " show all values which contain 'red'. ('" . weechat::config_string($options_iset{"value_search_char"}) . "' is a trigger char).\n". + " /iset ". weechat::config_string($options_iset{"value_search_char"}) ."red\n". + " show all values which hit 'off'. ('" . weechat::config_string($options_iset{"value_search_char"}) . weechat::config_string($options_iset{"value_search_char"}) . "' is a trigger char).\n". + " /iset ". weechat::config_string($options_iset{"value_search_char"}) . weechat::config_string($options_iset{"value_search_char"}) ."off\n". + " show options for file 'weechat' which contains value 'off'\n". + " /iset f weechat ".weechat::config_string($options_iset{"value_search_char"})."off\n". + "", + "", "iset_cmd_cb", ""); +weechat::hook_signal("upgrade_ended", "iset_upgrade_ended", ""); +weechat::hook_signal("window_scrolled", "iset_signal_window_scrolled_cb", ""); +weechat::hook_signal("buffer_switch", "iset_signal_buffer_switch_cb",""); +weechat::bar_item_new("isetbar_help", "iset_item_cb", ""); +weechat::bar_new("isetbar", "on", "0", "window", "", "top", "horizontal", + "vertical", "3", "3", "default", "cyan", "default", "1", + "isetbar_help"); +weechat::hook_modifier("bar_condition_isetbar", "iset_check_condition_isetbar_cb", ""); +weechat::hook_config("*", "iset_config_cb", ""); +$iset_buffer = weechat::buffer_search($LANG, $PRGNAME); +iset_init() if ($iset_buffer ne ""); + +if ($wee_version_number >= 0x00030600) +{ + weechat::hook_focus("chat", "hook_focus_iset_cb", ""); + weechat::hook_hsignal($PRGNAME."_mouse", "iset_hsignal_mouse_cb", ""); + weechat::key_bind("mouse", \%mouse_keys); +} diff --git a/.weechat-tutorial/plugins.conf b/.weechat-tutorial/plugins.conf new file mode 100755 index 0000000..5e36ed4 --- /dev/null +++ b/.weechat-tutorial/plugins.conf @@ -0,0 +1,12 @@ +# +# weechat -- plugins.conf +# + +[var] +fifo.fifo = "on" +lua.check_license = "off" +perl.check_license = "off" +python.check_license = "off" +ruby.check_license = "off" + +[desc] diff --git a/.weechat-tutorial/relay.conf b/.weechat-tutorial/relay.conf new file mode 100755 index 0000000..2795023 --- /dev/null +++ b/.weechat-tutorial/relay.conf @@ -0,0 +1,40 @@ +# +# weechat -- relay.conf +# + +[look] +auto_open_buffer = on +raw_messages = 256 + +[color] +client = cyan +status_active = lightblue +status_auth_failed = lightred +status_connecting = yellow +status_disconnected = lightred +status_waiting_auth = brown +text = default +text_bg = default +text_selected = white + +[network] +allowed_ips = "" +bind_address = "" +clients_purge_delay = 0 +compression_level = 6 +ipv6 = on +max_clients = 5 +password = "" +ssl_cert_key = "%h/ssl/relay.pem" +ssl_priorities = "NORMAL:-VERS-SSL3.0" +websocket_allowed_origins = "" + +[irc] +backlog_max_minutes = 1440 +backlog_max_number = 256 +backlog_since_last_disconnect = on +backlog_since_last_message = off +backlog_tags = "irc_privmsg" +backlog_time_format = "[%H:%M] " + +[port] diff --git a/.weechat-tutorial/script.conf b/.weechat-tutorial/script.conf new file mode 100755 index 0000000..e1577d4 --- /dev/null +++ b/.weechat-tutorial/script.conf @@ -0,0 +1,50 @@ +# +# weechat -- script.conf +# + +[look] +columns = "%s %n %V %v %u | %d | %t" +diff_color = on +diff_command = "auto" +display_source = on +quiet_actions = on +sort = "p,n" +translate_description = on +use_keys = on + +[color] +status_autoloaded = cyan +status_held = white +status_installed = lightcyan +status_obsolete = lightmagenta +status_popular = yellow +status_running = lightgreen +status_unknown = lightred +text = default +text_bg = default +text_bg_selected = red +text_date = default +text_date_selected = white +text_delimiters = default +text_description = default +text_description_selected = white +text_extension = default +text_extension_selected = white +text_name = cyan +text_name_selected = lightcyan +text_selected = white +text_tags = brown +text_tags_selected = yellow +text_version = magenta +text_version_loaded = default +text_version_loaded_selected = white +text_version_selected = lightmagenta + +[scripts] +autoload = on +cache_expire = 1440 +download_timeout = 30 +hold = "" +path = "%h/script" +url = "http://weechat.org/files/plugins.xml.gz" +url_force_https = on diff --git a/.weechat-tutorial/script/plugins.xml.gz b/.weechat-tutorial/script/plugins.xml.gz Binary files differnew file mode 100755 index 0000000..68aeb7f --- /dev/null +++ b/.weechat-tutorial/script/plugins.xml.gz diff --git a/.weechat-tutorial/sec.conf b/.weechat-tutorial/sec.conf new file mode 100755 index 0000000..3672aa7 --- /dev/null +++ b/.weechat-tutorial/sec.conf @@ -0,0 +1,11 @@ +# +# weechat -- sec.conf +# + +[crypt] +cipher = aes256 +hash_algo = sha256 +passphrase_file = "" +salt = on + +[data] diff --git a/.weechat-tutorial/trigger.conf b/.weechat-tutorial/trigger.conf new file mode 100755 index 0000000..8925a8b --- /dev/null +++ b/.weechat-tutorial/trigger.conf @@ -0,0 +1,47 @@ +# +# weechat -- trigger.conf +# + +[look] +enabled = on +monitor_strip_colors = off + +[color] +flag_command = lightgreen +flag_conditions = yellow +flag_regex = lightcyan +flag_return_code = lightmagenta +regex = white +replace = cyan +trigger = green +trigger_disabled = red + +[trigger] +beep.arguments = "" +beep.command = "/print -beep" +beep.conditions = "${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})" +beep.enabled = on +beep.hook = print +beep.regex = "" +beep.return_code = ok +cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth" +cmd_pass.command = "" +cmd_pass.conditions = "" +cmd_pass.enabled = on +cmd_pass.hook = modifier +cmd_pass.regex = "==^((/(msg|m|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+|recover +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" +cmd_pass.return_code = ok +msg_auth.arguments = "5000|irc_message_auth" +msg_auth.command = "" +msg_auth.conditions = "" +msg_auth.enabled = on +msg_auth.hook = modifier +msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+|recover +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" +msg_auth.return_code = ok +server_pass.arguments = "5000|input_text_display;5000|history_add" +server_pass.command = "" +server_pass.conditions = "" +server_pass.enabled = on +server_pass.hook = modifier +server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}" +server_pass.return_code = ok diff --git a/.weechat-tutorial/weechat.conf b/.weechat-tutorial/weechat.conf new file mode 100755 index 0000000..4d7e3f7 --- /dev/null +++ b/.weechat-tutorial/weechat.conf @@ -0,0 +1,613 @@ +# +# weechat -- weechat.conf +# + +[debug] + +[startup] +command_after_plugins = "" +command_before_plugins = "" +display_logo = on +display_version = on +sys_rlimit = "" + +[look] +align_end_of_lines = message +bar_more_down = "++" +bar_more_left = "<<" +bar_more_right = ">>" +bar_more_up = "--" +bare_display_exit_on_input = on +bare_display_time_format = "%H:%M" +buffer_auto_renumber = on +buffer_notify_default = all +buffer_position = end +buffer_search_case_sensitive = off +buffer_search_force_default = off +buffer_search_regex = off +buffer_search_where = prefix_message +buffer_time_format = "%H:%M:%S" +color_basic_force_bold = off +color_inactive_buffer = on +color_inactive_message = on +color_inactive_prefix = on +color_inactive_prefix_buffer = on +color_inactive_time = off +color_inactive_window = on +color_nick_offline = off +color_pairs_auto_reset = 5 +color_real_white = off +command_chars = "" +command_incomplete = off +confirm_quit = off +confirm_upgrade = off +day_change = on +day_change_message_1date = "-- %a, %d %b %Y --" +day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --" +eat_newline_glitch = off +emphasized_attributes = "" +highlight = "" +highlight_regex = "" +highlight_tags = "" +hotlist_add_conditions = "${away} || ${buffer.num_displayed} == 0" +hotlist_buffer_separator = ", " +hotlist_count_max = 2 +hotlist_count_min_msg = 2 +hotlist_names_count = 3 +hotlist_names_length = 0 +hotlist_names_level = 12 +hotlist_names_merged_buffers = off +hotlist_prefix = "H: " +hotlist_remove = merged +hotlist_short_names = on +hotlist_sort = group_time_asc +hotlist_suffix = "" +hotlist_unique_numbers = on +input_cursor_scroll = 20 +input_share = none +input_share_overwrite = off +input_undo_max = 32 +item_away_message = on +item_buffer_filter = "*" +item_buffer_zoom = "!" +item_mouse_status = "M" +item_time_format = "%H:%M" +jump_current_to_previous_buffer = on +jump_previous_buffer_when_closing = on +jump_smart_back_to_buffer = on +key_bind_safe = on +key_grab_delay = 800 +mouse = off +mouse_timer_delay = 100 +nick_color_force = "" +nick_color_hash = djb2 +nick_color_stop_chars = "_|[" +nick_prefix = "" +nick_suffix = "" +paste_auto_add_newline = on +paste_bracketed = on +paste_bracketed_timer_delay = 10 +paste_max_lines = 1 +prefix_action = " *" +prefix_align = right +prefix_align_max = 0 +prefix_align_min = 0 +prefix_align_more = "+" +prefix_align_more_after = on +prefix_buffer_align = right +prefix_buffer_align_max = 0 +prefix_buffer_align_more = "+" +prefix_buffer_align_more_after = on +prefix_error = "=!=" +prefix_join = "-->" +prefix_network = "--" +prefix_quit = "<--" +prefix_same_nick = "" +prefix_suffix = "|" +quote_nick_prefix = "<" +quote_nick_suffix = ">" +quote_time_format = "%H:%M:%S" +read_marker = line +read_marker_always_show = off +read_marker_string = "- " +save_config_on_exit = on +save_layout_on_exit = none +scroll_amount = 3 +scroll_bottom_after_switch = off +scroll_page_percent = 100 +search_text_not_found_alert = on +separator_horizontal = "-" +separator_vertical = "" +tab_width = 1 +time_format = "%a, %d %b %Y %T" +window_auto_zoom = off +window_separator_horizontal = on +window_separator_vertical = on +window_title = "WeeChat ${info:version}" +word_chars_highlight = "!\u00A0,-,_,|,alnum" +word_chars_input = "!\u00A0,-,_,|,alnum" + +[palette] + +[color] +bar_more = lightmagenta +chat = default +chat_bg = default +chat_buffer = white +chat_channel = white +chat_day_change = cyan +chat_delimiters = green +chat_highlight = yellow +chat_highlight_bg = magenta +chat_host = cyan +chat_inactive_buffer = default +chat_inactive_window = default +chat_nick = lightcyan +chat_nick_colors = "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue" +chat_nick_offline = default +chat_nick_offline_highlight = default +chat_nick_offline_highlight_bg = blue +chat_nick_other = cyan +chat_nick_prefix = green +chat_nick_self = white +chat_nick_suffix = green +chat_prefix_action = white +chat_prefix_buffer = brown +chat_prefix_buffer_inactive_buffer = default +chat_prefix_error = yellow +chat_prefix_join = lightgreen +chat_prefix_more = lightmagenta +chat_prefix_network = magenta +chat_prefix_quit = lightred +chat_prefix_suffix = green +chat_read_marker = magenta +chat_read_marker_bg = default +chat_server = brown +chat_tags = red +chat_text_found = yellow +chat_text_found_bg = lightmagenta +chat_time = default +chat_time_delimiters = brown +chat_value = cyan +chat_value_null = blue +emphasized = yellow +emphasized_bg = magenta +input_actions = lightgreen +input_text_not_found = red +item_away = yellow +nicklist_away = cyan +nicklist_group = green +separator = blue +status_count_highlight = magenta +status_count_msg = brown +status_count_other = default +status_count_private = green +status_data_highlight = lightmagenta +status_data_msg = yellow +status_data_other = default +status_data_private = lightgreen +status_filter = green +status_more = yellow +status_mouse = green +status_name = white +status_name_ssl = lightgreen +status_nicklist_count = default +status_number = yellow +status_time = default + +[completion] +base_word_until_cursor = on +command_inline = on +default_template = "%(nicks)|%(irc_channels)" +nick_add_space = on +nick_completer = ":" +nick_first_only = off +nick_ignore_chars = "[]`_-^" +partial_completion_alert = on +partial_completion_command = on +partial_completion_command_arg = on +partial_completion_count = on +partial_completion_other = on + +[history] +display_default = 5 +max_buffer_lines_minutes = 0 +max_buffer_lines_number = 4096 +max_commands = 100 +max_visited_buffers = 50 + +[proxy] + +[network] +connection_timeout = 60 +gnutls_ca_file = "/etc/ssl/ca-bundle.pem" +gnutls_handshake_timeout = 30 +proxy_curl = "" + +[plugin] +autoload = "*" +debug = off +extension = ".so,.dll" +path = "%h/plugins" +save_config_on_unload = on + +[bar] +input.color_bg = default +input.color_delim = cyan +input.color_fg = default +input.conditions = "" +input.filling_left_right = vertical +input.filling_top_bottom = horizontal +input.hidden = off +input.items = "[input_prompt]+(away),[input_search],[input_paste],input_text" +input.position = bottom +input.priority = 1000 +input.separator = off +input.size = 1 +input.size_max = 0 +input.type = window +isetbar.color_bg = default +isetbar.color_delim = cyan +isetbar.color_fg = default +isetbar.conditions = "" +isetbar.filling_left_right = vertical +isetbar.filling_top_bottom = horizontal +isetbar.hidden = on +isetbar.items = "isetbar_help" +isetbar.position = top +isetbar.priority = 0 +isetbar.separator = on +isetbar.size = 3 +isetbar.size_max = 3 +isetbar.type = window +nicklist.color_bg = default +nicklist.color_delim = cyan +nicklist.color_fg = default +nicklist.conditions = "${nicklist}" +nicklist.filling_left_right = vertical +nicklist.filling_top_bottom = columns_vertical +nicklist.hidden = off +nicklist.items = "buffer_nicklist" +nicklist.position = right +nicklist.priority = 200 +nicklist.separator = on +nicklist.size = 0 +nicklist.size_max = 0 +nicklist.type = window +status.color_bg = darkgray +status.color_delim = cyan +status.color_fg = default +status.conditions = "" +status.filling_left_right = vertical +status.filling_top_bottom = horizontal +status.hidden = off +status.items = "[time],[buffer_last_number],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_zoom+buffer_filter,scroll,[lag],[hotlist],completion" +status.position = bottom +status.priority = 500 +status.separator = off +status.size = 1 +status.size_max = 0 +status.type = window +title.color_bg = blue +title.color_delim = cyan +title.color_fg = default +title.conditions = "" +title.filling_left_right = vertical +title.filling_top_bottom = horizontal +title.hidden = off +title.items = "buffer_title" +title.position = top +title.priority = 500 +title.separator = off +title.size = 1 +title.size_max = 0 +title.type = window + +[layout] + +[notify] + +[filter] + +[key] +ctrl-? = "/input delete_previous_char" +ctrl-A = "/input move_beginning_of_line" +ctrl-B = "/input move_previous_char" +ctrl-C_ = "/input insert \x1F" +ctrl-Cb = "/input insert \x02" +ctrl-Cc = "/input insert \x03" +ctrl-Ci = "/input insert \x1D" +ctrl-Co = "/input insert \x0F" +ctrl-Cv = "/input insert \x16" +ctrl-D = "/input delete_next_char" +ctrl-E = "/input move_end_of_line" +ctrl-F = "/input move_next_char" +ctrl-H = "/input delete_previous_char" +ctrl-I = "/input complete_next" +ctrl-J = "/input return" +ctrl-K = "/input delete_end_of_line" +ctrl-L = "/window refresh" +ctrl-M = "/input return" +ctrl-N = "/buffer +1" +ctrl-P = "/buffer -1" +ctrl-R = "/input search_text_here" +ctrl-Sctrl-U = "/input set_unread" +ctrl-T = "/input transpose_chars" +ctrl-U = "/input delete_beginning_of_line" +ctrl-W = "/input delete_previous_word" +ctrl-X = "/input switch_active_buffer" +ctrl-Y = "/input clipboard_paste" +meta-meta2-1~ = "/window scroll_top" +meta-meta2-23~ = "/bar scroll nicklist * b" +meta-meta2-24~ = "/bar scroll nicklist * e" +meta-meta2-4~ = "/window scroll_bottom" +meta-meta2-5~ = "/window scroll_up" +meta-meta2-6~ = "/window scroll_down" +meta-meta2-7~ = "/window scroll_top" +meta-meta2-8~ = "/window scroll_bottom" +meta-meta2-A = "/buffer -1" +meta-meta2-B = "/buffer +1" +meta-meta2-C = "/buffer +1" +meta-meta2-D = "/buffer -1" +meta-- = "/filter toggle @" +meta-/ = "/input jump_last_buffer_displayed" +meta-0 = "/buffer *10" +meta-1 = "/buffer *1" +meta-2 = "/buffer *2" +meta-3 = "/buffer *3" +meta-4 = "/buffer *4" +meta-5 = "/buffer *5" +meta-6 = "/buffer *6" +meta-7 = "/buffer *7" +meta-8 = "/buffer *8" +meta-9 = "/buffer *9" +meta-< = "/input jump_previously_visited_buffer" +meta-= = "/filter toggle" +meta-> = "/input jump_next_visited_buffer" +meta-OA = "/input history_global_previous" +meta-OB = "/input history_global_next" +meta-OC = "/input move_next_word" +meta-OD = "/input move_previous_word" +meta-OF = "/input move_end_of_line" +meta-OH = "/input move_beginning_of_line" +meta-Oa = "/input history_global_previous" +meta-Ob = "/input history_global_next" +meta-Oc = "/input move_next_word" +meta-Od = "/input move_previous_word" +meta2-15~ = "/buffer -1" +meta2-17~ = "/buffer +1" +meta2-18~ = "/window -1" +meta2-19~ = "/window +1" +meta2-1;3A = "/buffer -1" +meta2-1;3B = "/buffer +1" +meta2-1;3C = "/buffer +1" +meta2-1;3D = "/buffer -1" +meta2-1;3F = "/window scroll_bottom" +meta2-1;3H = "/window scroll_top" +meta2-1;5A = "/input history_global_previous" +meta2-1;5B = "/input history_global_next" +meta2-1;5C = "/input move_next_word" +meta2-1;5D = "/input move_previous_word" +meta2-1~ = "/input move_beginning_of_line" +meta2-200~ = "/input paste_start" +meta2-201~ = "/input paste_stop" +meta2-20~ = "/bar scroll title * -30%" +meta2-21~ = "/bar scroll title * +30%" +meta2-23;3~ = "/bar scroll nicklist * b" +meta2-23~ = "/bar scroll nicklist * -100%" +meta2-24;3~ = "/bar scroll nicklist * e" +meta2-24~ = "/bar scroll nicklist * +100%" +meta2-3~ = "/input delete_next_char" +meta2-4~ = "/input move_end_of_line" +meta2-5;3~ = "/window scroll_up" +meta2-5~ = "/window page_up" +meta2-6;3~ = "/window scroll_down" +meta2-6~ = "/window page_down" +meta2-7~ = "/input move_beginning_of_line" +meta2-8~ = "/input move_end_of_line" +meta2-A = "/input history_previous" +meta2-B = "/input history_next" +meta2-C = "/input move_next_char" +meta2-D = "/input move_previous_char" +meta2-F = "/input move_end_of_line" +meta2-G = "/window page_down" +meta2-H = "/input move_beginning_of_line" +meta2-I = "/window page_up" +meta2-Z = "/input complete_previous" +meta2-[E = "/buffer -1" +meta-_ = "/input redo" +meta-a = "/input jump_smart" +meta-b = "/input move_previous_word" +meta-d = "/input delete_next_word" +meta-f = "/input move_next_word" +meta-h = "/input hotlist_clear" +meta-jmeta-f = "/buffer -" +meta-jmeta-l = "/buffer +" +meta-jmeta-r = "/server raw" +meta-jmeta-s = "/server jump" +meta-j01 = "/buffer *1" +meta-j02 = "/buffer *2" +meta-j03 = "/buffer *3" +meta-j04 = "/buffer *4" +meta-j05 = "/buffer *5" +meta-j06 = "/buffer *6" +meta-j07 = "/buffer *7" +meta-j08 = "/buffer *8" +meta-j09 = "/buffer *9" +meta-j10 = "/buffer *10" +meta-j11 = "/buffer *11" +meta-j12 = "/buffer *12" +meta-j13 = "/buffer *13" +meta-j14 = "/buffer *14" +meta-j15 = "/buffer *15" +meta-j16 = "/buffer *16" +meta-j17 = "/buffer *17" +meta-j18 = "/buffer *18" +meta-j19 = "/buffer *19" +meta-j20 = "/buffer *20" +meta-j21 = "/buffer *21" +meta-j22 = "/buffer *22" +meta-j23 = "/buffer *23" +meta-j24 = "/buffer *24" +meta-j25 = "/buffer *25" +meta-j26 = "/buffer *26" +meta-j27 = "/buffer *27" +meta-j28 = "/buffer *28" +meta-j29 = "/buffer *29" +meta-j30 = "/buffer *30" +meta-j31 = "/buffer *31" +meta-j32 = "/buffer *32" +meta-j33 = "/buffer *33" +meta-j34 = "/buffer *34" +meta-j35 = "/buffer *35" +meta-j36 = "/buffer *36" +meta-j37 = "/buffer *37" +meta-j38 = "/buffer *38" +meta-j39 = "/buffer *39" +meta-j40 = "/buffer *40" +meta-j41 = "/buffer *41" +meta-j42 = "/buffer *42" +meta-j43 = "/buffer *43" +meta-j44 = "/buffer *44" +meta-j45 = "/buffer *45" +meta-j46 = "/buffer *46" +meta-j47 = "/buffer *47" +meta-j48 = "/buffer *48" +meta-j49 = "/buffer *49" +meta-j50 = "/buffer *50" +meta-j51 = "/buffer *51" +meta-j52 = "/buffer *52" +meta-j53 = "/buffer *53" +meta-j54 = "/buffer *54" +meta-j55 = "/buffer *55" +meta-j56 = "/buffer *56" +meta-j57 = "/buffer *57" +meta-j58 = "/buffer *58" +meta-j59 = "/buffer *59" +meta-j60 = "/buffer *60" +meta-j61 = "/buffer *61" +meta-j62 = "/buffer *62" +meta-j63 = "/buffer *63" +meta-j64 = "/buffer *64" +meta-j65 = "/buffer *65" +meta-j66 = "/buffer *66" +meta-j67 = "/buffer *67" +meta-j68 = "/buffer *68" +meta-j69 = "/buffer *69" +meta-j70 = "/buffer *70" +meta-j71 = "/buffer *71" +meta-j72 = "/buffer *72" +meta-j73 = "/buffer *73" +meta-j74 = "/buffer *74" +meta-j75 = "/buffer *75" +meta-j76 = "/buffer *76" +meta-j77 = "/buffer *77" +meta-j78 = "/buffer *78" +meta-j79 = "/buffer *79" +meta-j80 = "/buffer *80" +meta-j81 = "/buffer *81" +meta-j82 = "/buffer *82" +meta-j83 = "/buffer *83" +meta-j84 = "/buffer *84" +meta-j85 = "/buffer *85" +meta-j86 = "/buffer *86" +meta-j87 = "/buffer *87" +meta-j88 = "/buffer *88" +meta-j89 = "/buffer *89" +meta-j90 = "/buffer *90" +meta-j91 = "/buffer *91" +meta-j92 = "/buffer *92" +meta-j93 = "/buffer *93" +meta-j94 = "/buffer *94" +meta-j95 = "/buffer *95" +meta-j96 = "/buffer *96" +meta-j97 = "/buffer *97" +meta-j98 = "/buffer *98" +meta-j99 = "/buffer *99" +meta-k = "/input grab_key_command" +meta-l = "/window bare" +meta-m = "/mute mouse toggle" +meta-n = "/window scroll_next_highlight" +meta-p = "/window scroll_previous_highlight" +meta-r = "/input delete_line" +meta-s = "/mute aspell toggle" +meta-u = "/window scroll_unread" +meta-wmeta-meta2-A = "/window up" +meta-wmeta-meta2-B = "/window down" +meta-wmeta-meta2-C = "/window right" +meta-wmeta-meta2-D = "/window left" +meta-wmeta2-1;3A = "/window up" +meta-wmeta2-1;3B = "/window down" +meta-wmeta2-1;3C = "/window right" +meta-wmeta2-1;3D = "/window left" +meta-wmeta-b = "/window balance" +meta-wmeta-s = "/window swap" +meta-x = "/input zoom_merged_buffer" +meta-z = "/window zoom" +ctrl-_ = "/input undo" + +[key_search] +ctrl-I = "/input search_switch_where" +ctrl-J = "/input search_stop_here" +ctrl-M = "/input search_stop_here" +ctrl-Q = "/input search_stop" +ctrl-R = "/input search_switch_regex" +meta2-A = "/input search_previous" +meta2-B = "/input search_next" +meta-c = "/input search_switch_case" + +[key_cursor] +ctrl-J = "/cursor stop" +ctrl-M = "/cursor stop" +meta-meta2-A = "/cursor move area_up" +meta-meta2-B = "/cursor move area_down" +meta-meta2-C = "/cursor move area_right" +meta-meta2-D = "/cursor move area_left" +meta2-1;3A = "/cursor move area_up" +meta2-1;3B = "/cursor move area_down" +meta2-1;3C = "/cursor move area_right" +meta2-1;3D = "/cursor move area_left" +meta2-A = "/cursor move up" +meta2-B = "/cursor move down" +meta2-C = "/cursor move right" +meta2-D = "/cursor move left" +@item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}" +@item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}" +@item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}" +@item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop" +@item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}" +@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop" +@chat:m = "hsignal:chat_quote_message;/cursor stop" +@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop" + +[key_mouse] +@bar(input):button2 = "/input grab_mouse_area" +@bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%" +@bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e" +@bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%" +@bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b" +@chat(perl.iset):button1 = "hsignal:iset_mouse" +@chat(perl.iset):button2* = "hsignal:iset_mouse" +@chat(perl.iset):wheeldown = "/repeat 5 /iset **down" +@chat(perl.iset):wheelup = "/repeat 5 /iset **up" +@chat(script.scripts):button1 = "/window ${_window_number};/script go ${_chat_line_y}" +@chat(script.scripts):button2 = "/window ${_window_number};/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}" +@chat(script.scripts):wheeldown = "/script down 5" +@chat(script.scripts):wheelup = "/script up 5" +@item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}" +@item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}" +@item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}" +@item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}" +@item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}" +@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%" +@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%" +@chat:button1 = "/window ${_window_number}" +@chat:button1-gesture-left = "/window ${_window_number};/buffer -1" +@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1" +@chat:button1-gesture-right = "/window ${_window_number};/buffer +1" +@chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer" +@chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%" +@chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%" +@chat:wheeldown = "/window scroll_down -window ${_window_number}" +@chat:wheelup = "/window scroll_up -window ${_window_number}" +@*:button3 = "/cursor go ${_x},${_y}" diff --git a/.weechat-tutorial/weechat.log b/.weechat-tutorial/weechat.log new file mode 100755 index 0000000..a1606df --- /dev/null +++ b/.weechat-tutorial/weechat.log @@ -0,0 +1,29 @@ +[2018-01-19 19:53:04] WeeChat 1.5 (compiled on Sep 25 2017 08:04) +[2018-01-19 19:53:04] Reading configuration file sec.conf +[2018-01-19 19:53:04] Reading configuration file weechat.conf +[2018-01-19 19:53:04] Reading configuration file plugins.conf +[2018-01-19 19:53:04] Reading configuration file charset.conf +[2018-01-19 19:53:04] Reading configuration file logger.conf +[2018-01-19 19:53:04] Reading configuration file exec.conf +[2018-01-19 19:53:04] Reading configuration file trigger.conf +[2018-01-19 19:53:04] Reading configuration file aspell.conf +[2018-01-19 19:53:04] Reading configuration file alias.conf +[2018-01-19 19:53:04] Reading configuration file xfer.conf +[2018-01-19 19:53:04] Reading configuration file irc.conf +[2018-01-19 19:53:04] Reading configuration file relay.conf +[2018-01-19 19:53:04] Reading configuration file iset.conf +[2018-01-19 19:53:04] Reading configuration file script.conf +[2018-01-19 20:26:40] Writing configuration file plugins.conf +[2018-01-19 20:26:40] Writing configuration file iset.conf +[2018-01-19 20:26:40] Writing configuration file logger.conf +[2018-01-19 20:26:40] Writing configuration file script.conf +[2018-01-19 20:26:40] Writing configuration file exec.conf +[2018-01-19 20:26:40] Writing configuration file irc.conf +[2018-01-19 20:26:40] Writing configuration file trigger.conf +[2018-01-19 20:26:40] Writing configuration file xfer.conf +[2018-01-19 20:26:40] Writing configuration file charset.conf +[2018-01-19 20:26:40] Writing configuration file alias.conf +[2018-01-19 20:26:40] Writing configuration file relay.conf +[2018-01-19 20:26:40] Writing configuration file aspell.conf +[2018-01-19 20:26:40] Writing configuration file weechat.conf +[2018-01-19 20:26:40] Writing configuration file sec.conf diff --git a/.weechat-tutorial/xfer.conf b/.weechat-tutorial/xfer.conf new file mode 100755 index 0000000..39ac5bd --- /dev/null +++ b/.weechat-tutorial/xfer.conf @@ -0,0 +1,39 @@ +# +# weechat -- xfer.conf +# + +[look] +auto_open_buffer = on +progress_bar_size = 20 +pv_tags = "notify_private" + +[color] +status_aborted = lightred +status_active = lightblue +status_connecting = yellow +status_done = lightgreen +status_failed = lightred +status_waiting = lightcyan +text = default +text_bg = default +text_selected = white + +[network] +blocksize = 65536 +fast_send = on +own_ip = "" +port_range = "" +speed_limit = 0 +timeout = 300 + +[file] +auto_accept_chats = off +auto_accept_files = off +auto_accept_nicks = "" +auto_check_crc32 = off +auto_rename = on +auto_resume = on +convert_spaces = on +download_path = "%h/xfer" +upload_path = "~" +use_nick_in_filename = on |
