diff --git a/weechat/.weechat/alias.conf b/weechat/.weechat/alias.conf index 3d1626a..ee1e0f2 100644 --- a/weechat/.weechat/alias.conf +++ b/weechat/.weechat/alias.conf @@ -6,49 +6,50 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # +config_version = 2 + [cmd] alis = "/msg alis list $*" bc = "/exec -sh -o echo "$*" | bc" -BEEP = "print -beep" -BYE = "quit" -C = "buffer close" -CHAT = "dcc chat" -CL = "buffer clear" -CLOSE = "buffer close" +beep = "print -beep" +bye = "quit" +c = "buffer close" +chat = "dcc chat" +cl = "buffer clear" +close = "buffer close" cso = "cs op $channel" emoji = "exec -o python3 -c "print(__import__(\"emoji\").emojize(\"$*\", use_aliases=True))"" factor = "/exec -sh -o factor $1 | cut -d" " -f 2,3 | tr " " ","" -IG = "ignore" -J = "join" -K = "kick" -KB = "kickban" -LEAVE = "part" -lenny = "/msg $channel ( ͡° ͜ʖ ͡°)" -M = "msg" -MSGBUF = "command -buffer $1 * /input send $2-" -MUB = "unban *" -N = "names" +ig = "ignore" +j = "join" +k = "kick" +kb = "kickban" +leave = "part" +m = "msg" +msgbuf = "command -buffer $1 * /input send $2-" +mub = "unban *" +n = "names" ni = "/ns info =$1;/buffer server.libera" pbcmd = "/exec -o -sh $* | pb" py = "/exec -o python3 -c "print($*)"" -Q = "query" +q = "query" rainbow = "/exec -o toilet --irc --gay -f term -- $*" -REDRAW = "window refresh" -SAY = "msg *" -SLAP = "me slaps $1 around a bit with a large trout" -T = "topic" -UB = "unban" -UMODE = "mode $nick" +redraw = "window refresh" +say = "msg *" +slap = "me slaps $1 around a bit with a large trout" +t = "topic" +ub = "unban" +umode = "mode $nick" unscramble = "/exec -sh -o curl -s "http://anagramica.com/best/$*" | jq -r '.best[0]'" -V = "command core version" -W = "who" -WC = "window merge" -WI = "whois" -WII = "whois $1 $1" -WW = "whowas" +v = "command core version" +w = "who" +wc = "window merge" +wi = "whois" +wii = "whois $1 $1" +ww = "whowas" [completion] -MSGBUF = "%(buffers_plugins_names)" +msgbuf = "%(buffers_plugins_names)" diff --git a/weechat/.weechat/autosort.conf b/weechat/.weechat/autosort.conf index 32da340..85abbe2 100644 --- a/weechat/.weechat/autosort.conf +++ b/weechat/.weechat/autosort.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [sorting] diff --git a/weechat/.weechat/buffer_autoset.conf b/weechat/.weechat/buffer_autoset.conf index 62739a6..f00b61c 100644 --- a/weechat/.weechat/buffer_autoset.conf +++ b/weechat/.weechat/buffer_autoset.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] diff --git a/weechat/.weechat/buflist.conf b/weechat/.weechat/buflist.conf index 5707640..a1a83f9 100644 --- a/weechat/.weechat/buflist.conf +++ b/weechat/.weechat/buflist.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] diff --git a/weechat/.weechat/charset.conf b/weechat/.weechat/charset.conf index f9c9d46..0cf83fa 100644 --- a/weechat/.weechat/charset.conf +++ b/weechat/.weechat/charset.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [default] diff --git a/weechat/.weechat/colorize_nicks.conf b/weechat/.weechat/colorize_nicks.conf index 6216125..60e27da 100644 --- a/weechat/.weechat/colorize_nicks.conf +++ b/weechat/.weechat/colorize_nicks.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] diff --git a/weechat/.weechat/exec.conf b/weechat/.weechat/exec.conf index 5d44149..9e387c1 100644 --- a/weechat/.weechat/exec.conf +++ b/weechat/.weechat/exec.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [command] diff --git a/weechat/.weechat/fifo.conf b/weechat/.weechat/fifo.conf index ee18e2f..c88a1ef 100644 --- a/weechat/.weechat/fifo.conf +++ b/weechat/.weechat/fifo.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [file] diff --git a/weechat/.weechat/fset.conf b/weechat/.weechat/fset.conf index 1b52d85..682eef1 100644 --- a/weechat/.weechat/fset.conf +++ b/weechat/.weechat/fset.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] @@ -20,7 +20,7 @@ scroll_horizontal = 10 show_plugins_desc = off sort = "~name" unmarked_string = " " -use_color_value = off +use_color_value = on use_keys = on use_mute = off @@ -32,10 +32,14 @@ option1 = "" option2 = "${marked} ${name} ${type} ${value2}${newline} ${empty_name} ${_default_value}${color:darkgray} -- ${min}..${max}${newline} ${empty_name} ${description}" [color] +allowed_values = default +allowed_values_selected = white +color_name = 246 +color_name_selected = default default_value = default default_value_selected = white -description = default -description_selected = white +description = 242 +description_selected = default file = default file_changed = brown file_changed_selected = yellow @@ -47,10 +51,10 @@ help_quotes = darkgray help_values = default index = cyan index_selected = lightcyan -line_marked_bg1 = default -line_marked_bg2 = default -line_selected_bg1 = blue -line_selected_bg2 = red +line_marked_bg1 = 17 +line_marked_bg2 = 17 +line_selected_bg1 = 24 +line_selected_bg2 = 24 marked = brown marked_selected = yellow max = default @@ -58,7 +62,7 @@ max_selected = white min = default min_selected = white name = default -name_changed = brown +name_changed = 185 name_changed_selected = yellow name_selected = white option = default @@ -84,13 +88,13 @@ title_current_option = lightcyan title_filter = yellow title_marked_options = lightgreen title_sort = white -type = green -type_selected = lightgreen +type = 138 +type_selected = 216 unmarked = default unmarked_selected = white -value = cyan -value_changed = brown +value = 38 +value_changed = 185 value_changed_selected = yellow -value_selected = lightcyan +value_selected = 159 value_undef = magenta value_undef_selected = lightmagenta diff --git a/weechat/.weechat/irc.conf b/weechat/.weechat/irc.conf index ba4b372..47d2428 100644 --- a/weechat/.weechat/irc.conf +++ b/weechat/.weechat/irc.conf @@ -6,9 +6,11 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # +config_version = 5 + [look] buffer_open_before_autojoin = on buffer_open_before_join = off @@ -27,23 +29,33 @@ display_ctcp_unknown = on display_extended_join = on display_host_join = on display_host_join_local = on +display_host_notice = on display_host_quit = on +display_host_wallops = on display_join_message = "329,332,333,366" display_old_topic = on display_pv_away_once = on display_pv_back = on +display_pv_nick_change = on display_pv_warning_address = off highlight_channel = "$nick" highlight_pv = "$nick" highlight_server = "$nick" highlight_tags_restrict = "irc_privmsg,irc_notice" +ignore_tag_messages = off item_channel_modes_hide_args = "k" item_display_server = buffer_plugin item_nick_modes = on item_nick_prefix = on join_auto_add_chantype = off +list_buffer = on +list_buffer_format_export = "${name} (${users}): "${topic}"" +list_buffer_scroll_horizontal = 10 +list_buffer_sort = "~name2" +list_buffer_topic_strip_colors = on msgbuffer_fallback = current new_channel_position = none +new_list_position = none new_pv_position = none nick_completion_smart = speakers nick_mode = both @@ -54,6 +66,7 @@ notice_welcome_redirect = on notice_welcome_tags = "" notify_tags_ison = "notify_message" notify_tags_whois = "notify_message" +open_pv_buffer_echo_msg = on part_closes_buffer = off pv_buffer = independent pv_tags = "notify_private" @@ -68,6 +81,7 @@ smart_filter_join_unmask = 30 smart_filter_mode = "+" smart_filter_nick = on smart_filter_quit = on +smart_filter_setname = on temporary_servers = off topic_strip_colors = off typing_status_nicks = on @@ -75,26 +89,29 @@ typing_status_self = off [color] input_nick = lightcyan -item_channel_modes = lightcyan item_lag_counting = default item_lag_finished = 130 item_nick_modes = lightgreen item_tls_version_deprecated = yellow item_tls_version_insecure = red item_tls_version_ok = green +list_buffer_line_selected = white +list_buffer_line_selected_bg = 24 message_account = cyan message_chghost = brown message_join = green message_kick = red message_quit = red +message_setname = brown mirc_remap = "1,-1:darkgray" -nick_prefixes = "q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue" +nick_prefixes = "y:lightred;q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue" notice = green reason_kick = default -reason_quit = default +reason_quit = 244 +term_remap = "0,-1:darkgray" topic_current = default -topic_new = white -topic_old = default +topic_new = 36 +topic_old = 244 [network] autoreconnect_delay_growing = 2 @@ -105,7 +122,7 @@ colors_send = on lag_check = 60 lag_max = 1800 lag_min_show = 500 -lag_reconnect = 0 +lag_reconnect = 300 lag_refresh_interval = 1 notify_check_ison = 1 notify_check_whois = 5 @@ -120,13 +137,15 @@ whois = current pronouns = "he/him" [ignore] +ignore = libera;*;^saslserv$ +ignore = libera;#libera-audit;^operserv$ [server_default] addresses = "" -anti_flood_prio_high = 2 -anti_flood_prio_low = 2 +anti_flood = 2000 autoconnect = on autojoin = "" +autojoin_delay = 0 autojoin_dynamic = on autoreconnect = on autoreconnect_delay = 10 @@ -140,7 +159,7 @@ command = "" command_delay = 0 connection_timeout = 60 default_chantypes = "#&" -ipv6 = off +ipv6 = disable local_hostname = "" msg_kick = "" msg_part = "ping me anyways i guess" @@ -151,6 +170,7 @@ notify = "" password = "" proxy = "" realname = "ben" +registered_mode = "r" sasl_fail = continue sasl_key = "" sasl_mechanism = plain @@ -158,13 +178,13 @@ sasl_password = "" sasl_timeout = 15 sasl_username = "" split_msg_max_length = 512 -ssl = off -ssl_cert = "%h/ssl/benharri.pem" -ssl_dhkey_size = 2048 -ssl_fingerprint = "" -ssl_password = "" -ssl_priorities = "NORMAL" -ssl_verify = on +tls = off +tls_cert = "%h/ssl/benharri.pem" +tls_dhkey_size = 2048 +tls_fingerprint = "" +tls_password = "" +tls_priorities = "NORMAL" +tls_verify = on usermode = "" username = "${env:USER}" @@ -172,13 +192,13 @@ username = "${env:USER}" tilde.addresses = "tilde.chat/6697" tilde.proxy tilde.ipv6 -tilde.ssl = on -tilde.ssl_cert -tilde.ssl_password -tilde.ssl_priorities -tilde.ssl_dhkey_size -tilde.ssl_fingerprint -tilde.ssl_verify +tilde.tls = on +tilde.tls_cert +tilde.tls_password +tilde.tls_priorities +tilde.tls_dhkey_size +tilde.tls_fingerprint +tilde.tls_verify tilde.password tilde.capabilities tilde.sasl_mechanism @@ -196,15 +216,15 @@ tilde.username tilde.realname tilde.local_hostname tilde.usermode +tilde.command_delay tilde.command = "/msg idlerpg_bot login wowbagger ${sec.data.idlerpgpass}" -tilde.command_delay = 25 -tilde.autojoin = "#.tilde,#adventofcode,#allhandsactive,#anelki,#ascii.town,#aussie,#binary-counting,#bots,#club,#cosmic,#counting,#covid19,#ctrl-c,#dotnet,#earthward,#espanol,#fr,#gemini,#gopher,#helpdesk,#idlerpg,#linux,#logarion,#math,#meta,#midgard,#minecraft,#netnews,#nsfw,#opers,#rw.rs,#secret-sudoers,#selfhosting,#southlondon,#team,#thunix,#tilde.zone-admin,#tildebot,#tildenet,#tilderadio,#tilderadio-djs,#tildetel,#topm,#town,#vim,#wiki,#xinu,#ZfA,#tilde.green,#tildeverse,#nl" +tilde.autojoin_delay +tilde.autojoin = "#opers,#.tilde,#adventofcode,#anelki,#ascii.town,#aussie,#binary-counting,#bots,#club,#cosmic,#counting,#covid19,#fr,#gemini,#gopher,#helpdesk,#idlerpg,#linux,#meta,#midgard,#netnews,#nsfw,#rw.rs,#secret-sudoers,#selfhosting,#team,#tilde.zone-admin,#tildebot,#tilderadio,#tilderadio-djs,#tildetel,#topm,#town,#vim,#wiki,#tilde.green,#tildeverse,#pink,#politics,#tilde.zone,#institute,#ctrl-c,#music,#zine" tilde.autojoin_dynamic tilde.autorejoin tilde.autorejoin_delay tilde.connection_timeout -tilde.anti_flood_prio_high -tilde.anti_flood_prio_low +tilde.anti_flood tilde.away_check tilde.away_check_max_nicks tilde.msg_kick @@ -214,16 +234,17 @@ tilde.notify tilde.split_msg_max_length tilde.charset_message tilde.default_chantypes +tilde.registered_mode hashbang.addresses = "irc.hashbang.sh/6697" hashbang.proxy hashbang.ipv6 -hashbang.ssl = on -hashbang.ssl_cert -hashbang.ssl_password -hashbang.ssl_priorities -hashbang.ssl_dhkey_size -hashbang.ssl_fingerprint -hashbang.ssl_verify +hashbang.tls = on +hashbang.tls_cert +hashbang.tls_password +hashbang.tls_priorities +hashbang.tls_dhkey_size +hashbang.tls_fingerprint +hashbang.tls_verify hashbang.password hashbang.capabilities hashbang.sasl_mechanism = external @@ -241,15 +262,15 @@ hashbang.username hashbang.realname hashbang.local_hostname hashbang.usermode -hashbang.command hashbang.command_delay +hashbang.command +hashbang.autojoin_delay hashbang.autojoin = "#!,#!opers,#!social" hashbang.autojoin_dynamic hashbang.autorejoin hashbang.autorejoin_delay hashbang.connection_timeout -hashbang.anti_flood_prio_high -hashbang.anti_flood_prio_low +hashbang.anti_flood hashbang.away_check hashbang.away_check_max_nicks hashbang.msg_kick @@ -259,16 +280,17 @@ hashbang.notify hashbang.split_msg_max_length hashbang.charset_message hashbang.default_chantypes +hashbang.registered_mode town.addresses = "localhost/2345" town.proxy town.ipv6 -town.ssl -town.ssl_cert -town.ssl_password -town.ssl_priorities -town.ssl_dhkey_size -town.ssl_fingerprint -town.ssl_verify +town.tls +town.tls_cert +town.tls_password +town.tls_priorities +town.tls_dhkey_size +town.tls_fingerprint +town.tls_verify town.password town.capabilities town.sasl_mechanism @@ -286,15 +308,15 @@ town.username = "benharri" town.realname town.local_hostname town.usermode -town.command town.command_delay -town.autojoin = "#admins,#adventofcode,#announcements,#bots,#counting,#tildetown" +town.command +town.autojoin_delay +town.autojoin = "#announcements,#bots,#counting,#tildetown" town.autojoin_dynamic town.autorejoin town.autorejoin_delay town.connection_timeout -town.anti_flood_prio_high -town.anti_flood_prio_low +town.anti_flood town.away_check town.away_check_max_nicks town.msg_kick @@ -304,16 +326,17 @@ town.notify town.split_msg_max_length town.charset_message town.default_chantypes +town.registered_mode esper.addresses = "irc.esper.net/6697" esper.proxy esper.ipv6 -esper.ssl = on -esper.ssl_cert -esper.ssl_password -esper.ssl_priorities -esper.ssl_dhkey_size -esper.ssl_fingerprint -esper.ssl_verify +esper.tls = on +esper.tls_cert +esper.tls_password +esper.tls_priorities +esper.tls_dhkey_size +esper.tls_fingerprint +esper.tls_verify esper.password esper.capabilities esper.sasl_mechanism @@ -331,15 +354,15 @@ esper.username = "benharri" esper.realname esper.local_hostname esper.usermode -esper.command esper.command_delay +esper.command +esper.autojoin_delay esper.autojoin = "#factorio,#lobby" esper.autojoin_dynamic esper.autorejoin esper.autorejoin_delay esper.connection_timeout -esper.anti_flood_prio_high -esper.anti_flood_prio_low +esper.anti_flood esper.away_check esper.away_check_max_nicks esper.msg_kick @@ -349,61 +372,17 @@ esper.notify esper.split_msg_max_length esper.charset_message esper.default_chantypes -sdf.addresses = "localhost/2346" -sdf.proxy -sdf.ipv6 -sdf.ssl -sdf.ssl_cert -sdf.ssl_password -sdf.ssl_priorities -sdf.ssl_dhkey_size -sdf.ssl_fingerprint -sdf.ssl_verify -sdf.password -sdf.capabilities -sdf.sasl_mechanism -sdf.sasl_username -sdf.sasl_password -sdf.sasl_key -sdf.sasl_timeout -sdf.sasl_fail -sdf.autoconnect = on -sdf.autoreconnect -sdf.autoreconnect_delay -sdf.nicks = "benharri" -sdf.nicks_alternate -sdf.username = "benharri" -sdf.realname -sdf.local_hostname -sdf.usermode -sdf.command -sdf.command_delay -sdf.autojoin = "#sdf,#spanish" -sdf.autojoin_dynamic -sdf.autorejoin -sdf.autorejoin_delay -sdf.connection_timeout -sdf.anti_flood_prio_high -sdf.anti_flood_prio_low -sdf.away_check -sdf.away_check_max_nicks -sdf.msg_kick -sdf.msg_part -sdf.msg_quit -sdf.notify -sdf.split_msg_max_length -sdf.charset_message -sdf.default_chantypes +esper.registered_mode darwin.addresses = "irc.darwin.network/6698" darwin.proxy darwin.ipv6 -darwin.ssl = on -darwin.ssl_cert -darwin.ssl_password -darwin.ssl_priorities -darwin.ssl_dhkey_size -darwin.ssl_fingerprint -darwin.ssl_verify +darwin.tls = on +darwin.tls_cert +darwin.tls_password +darwin.tls_priorities +darwin.tls_dhkey_size +darwin.tls_fingerprint +darwin.tls_verify darwin.password darwin.capabilities darwin.sasl_mechanism = external @@ -421,15 +400,15 @@ darwin.username darwin.realname darwin.local_hostname darwin.usermode -darwin.command darwin.command_delay +darwin.command +darwin.autojoin_delay darwin.autojoin = "#darwin" darwin.autojoin_dynamic darwin.autorejoin = on darwin.autorejoin_delay darwin.connection_timeout -darwin.anti_flood_prio_high -darwin.anti_flood_prio_low +darwin.anti_flood darwin.away_check darwin.away_check_max_nicks darwin.msg_kick @@ -439,16 +418,17 @@ darwin.notify darwin.split_msg_max_length darwin.charset_message darwin.default_chantypes +darwin.registered_mode oftc.addresses = "irc4.oftc.net/6697" oftc.proxy oftc.ipv6 -oftc.ssl = on -oftc.ssl_cert -oftc.ssl_password -oftc.ssl_priorities -oftc.ssl_dhkey_size -oftc.ssl_fingerprint -oftc.ssl_verify +oftc.tls = on +oftc.tls_cert +oftc.tls_password +oftc.tls_priorities +oftc.tls_dhkey_size +oftc.tls_fingerprint +oftc.tls_verify oftc.password oftc.capabilities oftc.sasl_mechanism @@ -466,15 +446,15 @@ oftc.username oftc.realname oftc.local_hostname oftc.usermode -oftc.command oftc.command_delay -oftc.autojoin = "#bitlbee,#debian-devel,#debian-www,#fish,#salsa,#tilde.team" +oftc.command +oftc.autojoin_delay +oftc.autojoin = "#bitlbee,#debian-devel,#fish,#salsa,#tilde.team" oftc.autojoin_dynamic oftc.autorejoin oftc.autorejoin_delay oftc.connection_timeout -oftc.anti_flood_prio_high -oftc.anti_flood_prio_low +oftc.anti_flood oftc.away_check oftc.away_check_max_nicks oftc.msg_kick @@ -484,16 +464,17 @@ oftc.notify oftc.split_msg_max_length oftc.charset_message oftc.default_chantypes +oftc.registered_mode blinkenshell.addresses = "irc.blinkenshell.org/6697" blinkenshell.proxy blinkenshell.ipv6 -blinkenshell.ssl = on -blinkenshell.ssl_cert -blinkenshell.ssl_password -blinkenshell.ssl_priorities -blinkenshell.ssl_dhkey_size -blinkenshell.ssl_fingerprint -blinkenshell.ssl_verify +blinkenshell.tls = on +blinkenshell.tls_cert +blinkenshell.tls_password +blinkenshell.tls_priorities +blinkenshell.tls_dhkey_size +blinkenshell.tls_fingerprint +blinkenshell.tls_verify blinkenshell.password blinkenshell.capabilities blinkenshell.sasl_mechanism @@ -511,15 +492,15 @@ blinkenshell.username blinkenshell.realname blinkenshell.local_hostname blinkenshell.usermode -blinkenshell.command blinkenshell.command_delay +blinkenshell.command +blinkenshell.autojoin_delay blinkenshell.autojoin = "#blinkenshell" blinkenshell.autojoin_dynamic blinkenshell.autorejoin blinkenshell.autorejoin_delay blinkenshell.connection_timeout -blinkenshell.anti_flood_prio_high -blinkenshell.anti_flood_prio_low +blinkenshell.anti_flood blinkenshell.away_check blinkenshell.away_check_max_nicks blinkenshell.msg_kick @@ -529,16 +510,17 @@ blinkenshell.notify blinkenshell.split_msg_max_length blinkenshell.charset_message blinkenshell.default_chantypes +blinkenshell.registered_mode inspircd.addresses = "irc.inspircd.org" inspircd.proxy inspircd.ipv6 -inspircd.ssl -inspircd.ssl_cert -inspircd.ssl_password -inspircd.ssl_priorities -inspircd.ssl_dhkey_size -inspircd.ssl_fingerprint -inspircd.ssl_verify +inspircd.tls +inspircd.tls_cert +inspircd.tls_password +inspircd.tls_priorities +inspircd.tls_dhkey_size +inspircd.tls_fingerprint +inspircd.tls_verify inspircd.password inspircd.capabilities inspircd.sasl_mechanism @@ -556,15 +538,15 @@ inspircd.username inspircd.realname inspircd.local_hostname inspircd.usermode -inspircd.command inspircd.command_delay +inspircd.command +inspircd.autojoin_delay inspircd.autojoin = "#inspircd" inspircd.autojoin_dynamic inspircd.autorejoin inspircd.autorejoin_delay inspircd.connection_timeout -inspircd.anti_flood_prio_high -inspircd.anti_flood_prio_low +inspircd.anti_flood inspircd.away_check inspircd.away_check_max_nicks inspircd.msg_kick @@ -574,16 +556,17 @@ inspircd.notify inspircd.split_msg_max_length inspircd.charset_message inspircd.default_chantypes +inspircd.registered_mode slashnet.addresses = "us.slashnet.org" slashnet.proxy slashnet.ipv6 -slashnet.ssl -slashnet.ssl_cert -slashnet.ssl_password -slashnet.ssl_priorities -slashnet.ssl_dhkey_size -slashnet.ssl_fingerprint -slashnet.ssl_verify +slashnet.tls +slashnet.tls_cert +slashnet.tls_password +slashnet.tls_priorities +slashnet.tls_dhkey_size +slashnet.tls_fingerprint +slashnet.tls_verify slashnet.password slashnet.capabilities slashnet.sasl_mechanism @@ -601,15 +584,15 @@ slashnet.username slashnet.realname slashnet.local_hostname slashnet.usermode -slashnet.command = "/ns identify ${sec.data.slashnetpass}" slashnet.command_delay +slashnet.command = "/ns identify ${sec.data.slashnetpass}" +slashnet.autojoin_delay slashnet.autojoin = "#gtlug" slashnet.autojoin_dynamic slashnet.autorejoin slashnet.autorejoin_delay slashnet.connection_timeout -slashnet.anti_flood_prio_high -slashnet.anti_flood_prio_low +slashnet.anti_flood slashnet.away_check slashnet.away_check_max_nicks slashnet.msg_kick @@ -619,21 +602,22 @@ slashnet.notify slashnet.split_msg_max_length slashnet.charset_message slashnet.default_chantypes +slashnet.registered_mode bitlbee.addresses = "localhost" bitlbee.proxy bitlbee.ipv6 -bitlbee.ssl -bitlbee.ssl_cert -bitlbee.ssl_password -bitlbee.ssl_priorities -bitlbee.ssl_dhkey_size -bitlbee.ssl_fingerprint -bitlbee.ssl_verify +bitlbee.tls +bitlbee.tls_cert +bitlbee.tls_password +bitlbee.tls_priorities +bitlbee.tls_dhkey_size +bitlbee.tls_fingerprint +bitlbee.tls_verify bitlbee.password bitlbee.capabilities bitlbee.sasl_mechanism -bitlbee.sasl_username = "ben" -bitlbee.sasl_password = "${sec.data.pass}" +bitlbee.sasl_username +bitlbee.sasl_password bitlbee.sasl_key bitlbee.sasl_timeout bitlbee.sasl_fail @@ -646,15 +630,15 @@ bitlbee.username bitlbee.realname bitlbee.local_hostname bitlbee.usermode -bitlbee.command bitlbee.command_delay +bitlbee.command = "/msg &bitlbee identify ${sec.data.bitlbeepass}" +bitlbee.autojoin_delay bitlbee.autojoin bitlbee.autojoin_dynamic = off bitlbee.autorejoin bitlbee.autorejoin_delay bitlbee.connection_timeout -bitlbee.anti_flood_prio_high -bitlbee.anti_flood_prio_low +bitlbee.anti_flood bitlbee.away_check bitlbee.away_check_max_nicks bitlbee.msg_kick @@ -664,16 +648,17 @@ bitlbee.notify bitlbee.split_msg_max_length bitlbee.charset_message bitlbee.default_chantypes +bitlbee.registered_mode libera.addresses = "irc.us.libera.chat/6697" libera.proxy libera.ipv6 -libera.ssl = on -libera.ssl_cert -libera.ssl_password -libera.ssl_priorities -libera.ssl_dhkey_size -libera.ssl_fingerprint -libera.ssl_verify +libera.tls = on +libera.tls_cert +libera.tls_password +libera.tls_priorities +libera.tls_dhkey_size +libera.tls_fingerprint +libera.tls_verify libera.password = "ben:${sec.data.liberapass}" libera.capabilities libera.sasl_mechanism @@ -690,15 +675,13 @@ libera.nicks_alternate libera.username libera.realname libera.local_hostname -libera.usermode = "+w" -libera.command = "/challenge ${server} ben ${sec.data.challengepass}" +libera.usermode = "+ws +FZbcdfksuxy" libera.command_delay libera.autojoin = "#!,##Ben,##crustaceans,##ircv3-chat,##oodnet,##proxmox,#among-sus,#bitbot,#ergo.chat,#fosshost,#fosshost-volunteers,#gitea,#gopher,#gophernicus,#hetzner,#ircpuzzles,#irctokens,#libera-communities,#libera-dev,#lobsters,#mastodon,#ovh,#sr.ht,#sr.ht.watercooler,#tilde.team,#tildeverse,#weechat,#weechat-android" libera.autorejoin libera.autorejoin_delay libera.connection_timeout -libera.anti_flood_prio_high = 0 -libera.anti_flood_prio_low = 0 +libera.anti_flood libera.away_check libera.away_check_max_nicks libera.msg_kick @@ -708,16 +691,17 @@ libera.notify libera.split_msg_max_length libera.charset_message libera.default_chantypes +libera.registered_mode ergo.addresses = "irc.ergo.chat/6697" ergo.proxy ergo.ipv6 -ergo.ssl = on -ergo.ssl_cert -ergo.ssl_password -ergo.ssl_priorities -ergo.ssl_dhkey_size -ergo.ssl_fingerprint -ergo.ssl_verify +ergo.tls = on +ergo.tls_cert +ergo.tls_password +ergo.tls_priorities +ergo.tls_dhkey_size +ergo.tls_fingerprint +ergo.tls_verify ergo.password ergo.capabilities ergo.sasl_mechanism = external @@ -735,15 +719,15 @@ ergo.username ergo.realname ergo.local_hostname ergo.usermode -ergo.command ergo.command_delay +ergo.command +ergo.autojoin_delay ergo.autojoin = "#ergo" ergo.autojoin_dynamic ergo.autorejoin ergo.autorejoin_delay ergo.connection_timeout -ergo.anti_flood_prio_high -ergo.anti_flood_prio_low +ergo.anti_flood ergo.away_check ergo.away_check_max_nicks ergo.msg_kick @@ -753,61 +737,17 @@ ergo.notify ergo.split_msg_max_length ergo.charset_message ergo.default_chantypes -pisslocal.addresses = "localhost/6668" -pisslocal.proxy -pisslocal.ipv6 -pisslocal.ssl -pisslocal.ssl_cert -pisslocal.ssl_password -pisslocal.ssl_priorities -pisslocal.ssl_dhkey_size -pisslocal.ssl_fingerprint -pisslocal.ssl_verify -pisslocal.password -pisslocal.capabilities -pisslocal.sasl_mechanism -pisslocal.sasl_username -pisslocal.sasl_password -pisslocal.sasl_key -pisslocal.sasl_timeout -pisslocal.sasl_fail -pisslocal.autoconnect -pisslocal.autoreconnect -pisslocal.autoreconnect_delay -pisslocal.nicks -pisslocal.nicks_alternate -pisslocal.username -pisslocal.realname -pisslocal.local_hostname -pisslocal.usermode -pisslocal.command = "/oper ben ${sec.data.pissnetoper}" -pisslocal.command_delay -pisslocal.autojoin = "#opers,#pissnet,#services" -pisslocal.autojoin_dynamic -pisslocal.autorejoin -pisslocal.autorejoin_delay -pisslocal.connection_timeout -pisslocal.anti_flood_prio_high -pisslocal.anti_flood_prio_low -pisslocal.away_check -pisslocal.away_check_max_nicks -pisslocal.msg_kick -pisslocal.msg_part -pisslocal.msg_quit -pisslocal.notify -pisslocal.split_msg_max_length -pisslocal.charset_message -pisslocal.default_chantypes +ergo.registered_mode snoonet.addresses = "irc.snoonet.org/6697" snoonet.proxy snoonet.ipv6 -snoonet.ssl = on -snoonet.ssl_cert -snoonet.ssl_password -snoonet.ssl_priorities -snoonet.ssl_dhkey_size -snoonet.ssl_fingerprint -snoonet.ssl_verify +snoonet.tls = on +snoonet.tls_cert +snoonet.tls_password +snoonet.tls_priorities +snoonet.tls_dhkey_size +snoonet.tls_fingerprint +snoonet.tls_verify snoonet.password snoonet.capabilities snoonet.sasl_mechanism @@ -825,15 +765,15 @@ snoonet.username snoonet.realname snoonet.local_hostname snoonet.usermode -snoonet.command snoonet.command_delay -snoonet.autojoin = "#help,#personalfinance,#snoonet" +snoonet.command +snoonet.autojoin_delay +snoonet.autojoin = "#personalfinance" snoonet.autojoin_dynamic snoonet.autorejoin snoonet.autorejoin_delay snoonet.connection_timeout -snoonet.anti_flood_prio_high -snoonet.anti_flood_prio_low +snoonet.anti_flood snoonet.away_check snoonet.away_check_max_nicks snoonet.msg_kick @@ -843,61 +783,17 @@ snoonet.notify snoonet.split_msg_max_length snoonet.charset_message snoonet.default_chantypes -liberta.casa.addresses = "irc.liberta.casa/6697" -liberta.casa.proxy -liberta.casa.ipv6 -liberta.casa.ssl = on -liberta.casa.ssl_cert -liberta.casa.ssl_password -liberta.casa.ssl_priorities -liberta.casa.ssl_dhkey_size -liberta.casa.ssl_fingerprint -liberta.casa.ssl_verify -liberta.casa.password -liberta.casa.capabilities -liberta.casa.sasl_mechanism -liberta.casa.sasl_username = "ben" -liberta.casa.sasl_password = "${sec.data.libertacasapass}" -liberta.casa.sasl_key -liberta.casa.sasl_timeout -liberta.casa.sasl_fail -liberta.casa.autoconnect -liberta.casa.autoreconnect -liberta.casa.autoreconnect_delay -liberta.casa.nicks -liberta.casa.nicks_alternate -liberta.casa.username -liberta.casa.realname -liberta.casa.local_hostname -liberta.casa.usermode -liberta.casa.command -liberta.casa.command_delay -liberta.casa.autojoin = "#libcasa.info,#mods" -liberta.casa.autojoin_dynamic -liberta.casa.autorejoin -liberta.casa.autorejoin_delay -liberta.casa.connection_timeout -liberta.casa.anti_flood_prio_high -liberta.casa.anti_flood_prio_low -liberta.casa.away_check -liberta.casa.away_check_max_nicks -liberta.casa.msg_kick -liberta.casa.msg_part -liberta.casa.msg_quit -liberta.casa.notify -liberta.casa.split_msg_max_length -liberta.casa.charset_message -liberta.casa.default_chantypes +snoonet.registered_mode m455.addresses = "m455.casa/6697" m455.proxy m455.ipv6 -m455.ssl = on -m455.ssl_cert -m455.ssl_password -m455.ssl_priorities -m455.ssl_dhkey_size -m455.ssl_fingerprint -m455.ssl_verify +m455.tls = on +m455.tls_cert +m455.tls_password +m455.tls_priorities +m455.tls_dhkey_size +m455.tls_fingerprint +m455.tls_verify m455.password m455.capabilities m455.sasl_mechanism = external @@ -915,15 +811,15 @@ m455.username m455.realname m455.local_hostname m455.usermode -m455.command m455.command_delay -m455.autojoin = "#basement,#serverroom,#siliconpals,#tildebot" +m455.command +m455.autojoin_delay +m455.autojoin = "#basement,#serverroom,#siliconpals" m455.autojoin_dynamic m455.autorejoin m455.autorejoin_delay m455.connection_timeout -m455.anti_flood_prio_high -m455.anti_flood_prio_low +m455.anti_flood m455.away_check m455.away_check_max_nicks m455.msg_kick @@ -933,3 +829,142 @@ m455.notify m455.split_msg_max_length m455.charset_message m455.default_chantypes +m455.registered_mode +hackint.addresses = "irc.hackint.org/6697" +hackint.proxy +hackint.ipv6 +hackint.tls = on +hackint.tls_cert +hackint.tls_password +hackint.tls_priorities +hackint.tls_dhkey_size +hackint.tls_fingerprint +hackint.tls_verify +hackint.password +hackint.capabilities +hackint.sasl_mechanism +hackint.sasl_username = "ben" +hackint.sasl_password = "${sec.data.hackintpass}" +hackint.sasl_key +hackint.sasl_timeout +hackint.sasl_fail +hackint.autoconnect +hackint.autoreconnect +hackint.autoreconnect_delay +hackint.nicks +hackint.nicks_alternate +hackint.username +hackint.realname +hackint.local_hostname +hackint.usermode +hackint.command_delay +hackint.command +hackint.autojoin_delay +hackint.autojoin = "" +hackint.autojoin_dynamic +hackint.autorejoin +hackint.autorejoin_delay +hackint.connection_timeout +hackint.anti_flood +hackint.away_check +hackint.away_check_max_nicks +hackint.msg_kick +hackint.msg_part +hackint.msg_quit +hackint.notify +hackint.split_msg_max_length +hackint.charset_message +hackint.default_chantypes +hackint.registered_mode +syn.addresses = "irc.us.synirc.net/6697" +syn.proxy +syn.ipv6 +syn.tls = on +syn.tls_cert +syn.tls_password +syn.tls_priorities +syn.tls_dhkey_size +syn.tls_fingerprint +syn.tls_verify +syn.password +syn.capabilities +syn.sasl_mechanism +syn.sasl_username = "ben" +syn.sasl_password = "${sec.data.synpass}" +syn.sasl_key +syn.sasl_timeout +syn.sasl_fail +syn.autoconnect +syn.autoreconnect +syn.autoreconnect_delay +syn.nicks +syn.nicks_alternate +syn.username +syn.realname +syn.local_hostname +syn.usermode +syn.command_delay +syn.command +syn.autojoin_delay +syn.autojoin = "#nzbfinder" +syn.autojoin_dynamic +syn.autorejoin +syn.autorejoin_delay +syn.connection_timeout +syn.anti_flood +syn.away_check +syn.away_check_max_nicks +syn.msg_kick +syn.msg_part +syn.msg_quit +syn.notify +syn.split_msg_max_length +syn.charset_message +syn.default_chantypes +syn.registered_mode +efnet.addresses = "irc.efnet.org" +efnet.proxy +efnet.ipv6 +efnet.tls +efnet.tls_cert +efnet.tls_password +efnet.tls_priorities +efnet.tls_dhkey_size +efnet.tls_fingerprint +efnet.tls_verify +efnet.password +efnet.capabilities +efnet.sasl_mechanism +efnet.sasl_username +efnet.sasl_password +efnet.sasl_key +efnet.sasl_timeout +efnet.sasl_fail +efnet.autoconnect +efnet.autoreconnect +efnet.autoreconnect_delay +efnet.nicks +efnet.nicks_alternate +efnet.username +efnet.realname +efnet.local_hostname +efnet.usermode +efnet.command_delay +efnet.command +efnet.autojoin_delay +efnet.autojoin = "#pinball,#StarCitizen" +efnet.autojoin_dynamic +efnet.autorejoin +efnet.autorejoin_delay +efnet.connection_timeout +efnet.anti_flood +efnet.away_check +efnet.away_check_max_nicks +efnet.msg_kick +efnet.msg_part +efnet.msg_quit +efnet.notify +efnet.split_msg_max_length +efnet.charset_message +efnet.default_chantypes +efnet.registered_mode diff --git a/weechat/.weechat/logger.conf b/weechat/.weechat/logger.conf index 9e04953..0c54514 100644 --- a/weechat/.weechat/logger.conf +++ b/weechat/.weechat/logger.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] @@ -14,8 +14,8 @@ backlog = 2000 backlog_conditions = "" [color] -backlog_end = default -backlog_line = default +backlog_end = 246 +backlog_line = 246 [file] auto_log = on @@ -23,17 +23,20 @@ color_lines = off flush_delay = 120 fsync = off info_lines = off +log_conditions = "" mask = "$plugin.$name.weechatlog" name_lower_case = on nick_prefix = "" nick_suffix = "" path = "%h/logs/" replacement_char = "_" +rotation_compression_level = 20 +rotation_compression_type = none +rotation_size_max = "0" time_format = "%Y-%m-%d %H:%M:%S" [level] -core.weechat = 0 +core.weechat = 1 irc = 3 -irc.server.pisslocal = 0 [mask] diff --git a/weechat/.weechat/perl.conf b/weechat/.weechat/perl.conf index d19ceec..e9d81e8 100644 --- a/weechat/.weechat/perl.conf +++ b/weechat/.weechat/perl.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] diff --git a/weechat/.weechat/perl/colorize_lines.pl b/weechat/.weechat/perl/colorize_lines.pl index c03ff4f..cee053c 100644 --- a/weechat/.weechat/perl/colorize_lines.pl +++ b/weechat/.weechat/perl/colorize_lines.pl @@ -19,6 +19,7 @@ # along with this program. If not, see . # history: +# 4.0.1: fix display of multiline messages # 4.0: add compatibility with XDG directories (WeeChat >= 3.2) # 3.9: add compatibility with new weechat_print modifier data (WeeChat >= 2.9) # 3.8: new option custom_action_text (https://github.com/weechat/scripts/issues/313) (idea by 3v1n0) @@ -88,7 +89,7 @@ use strict; my $PRGNAME = "colorize_lines"; -my $VERSION = "4.0"; +my $VERSION = "4.0.1"; my $AUTHOR = "Nils Görs "; my $LICENCE = "GPL3"; my $DESCR = "Colorize users' text in chat area with their nick color, including highlights"; @@ -172,7 +173,7 @@ sub colorize_cb my $servername = weechat::buffer_get_string($buf_ptr, "localvar_server"); # find stuff between \t - $string =~ m/^([^\t]*)\t(.*)/; + $string =~ m/^([^\t]*)\t(.*)/s; my $left = $1; my $right = $2; diff --git a/weechat/.weechat/plugins.conf b/weechat/.weechat/plugins.conf index 254c70e..95f67b0 100644 --- a/weechat/.weechat/plugins.conf +++ b/weechat/.weechat/plugins.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [var] @@ -61,8 +61,9 @@ python.autosavekey.add = "on" python.autosavekey.mute = "off" python.autosavekey.secure = "on" python.buffer_autoclose.age_limit = "30" -python.buffer_autoclose.ignore = "bitlbee.maddie" +python.buffer_autoclose.ignore = "bitlbee.marley" python.buffer_autoclose.interval = "1" +python.buffer_autoclose.prefer = "" python.check_license = "off" python.completion.replace_values = "shrug=>¯\_(ツ)_/¯;;wiki=>https://tilde.team/wiki/;;sword=>o()xxxx[{::::::::::::::::::::::::::::::::::>;;lenny=>( ͡° ͜ʖ ͡°);;byobu=>https://superuser.com/a/423397/866501;;fg=>(☞゚ヮ゚)☞;;huh=>(-_-)ゞ゛;;tablefix=>┬─┬ノ( º _ ºノ);;weedoc=>https://weechat.org/files/doc/stable/weechat_user.en.html;;weekeys=>https://weechat.org/files/doc/stable/weechat_user.en.html#key_bindings;;denko=>(´・ω・`);;yuno=>ლ(́ಠ◞益◟ಠ‵ლ);;tf=>(ノಥ益ಥ)ノ彡┻━┻;;tb=>┬─┬ノ( º _ ºノ);;ducc=>・゜゜・。。・゜゜\_o< QUACK!;;wat=>https://bhh.sh/wat.jpg;;matrix=>https://www.moparisthebest.com/images/xmpp-vs-matrix.jpg;;servers=>https://tilde.wiki/wiki/User:Ben/Servers;;nft=>https://youtu.be/YQ_xWvX1n9g" python.go.auto_jump = "off" @@ -75,6 +76,7 @@ python.go.color_number = "yellow,magenta" python.go.color_number_selected = "yellow,red" python.go.fuzzy_search = "on" python.go.message = "Go to: " +python.go.min_chars = "0" python.go.short_name = "off" python.go.short_name_server = "off" python.go.sort = "number,beginning" @@ -96,7 +98,7 @@ python.listbuffer.users_min_width = "8" python.screen_away.away_suffix = "" python.screen_away.command_on_attach = "" python.screen_away.command_on_detach = "" -python.screen_away.ignore = "" +python.screen_away.ignore = "thermite" python.screen_away.ignore_relays = "on" python.screen_away.interval = "5" python.screen_away.message = "detached from byobu" @@ -198,6 +200,7 @@ python.go.color_number = "color for buffer number (not selected) (default: "yell python.go.color_number_selected = "color for selected buffer number (default: "yellow,red")" python.go.fuzzy_search = "search buffer matches using approximation (default: "off")" python.go.message = "message to display before list of buffers (default: "Go to: ")" +python.go.min_chars = "Minimum chars to search and display list of matching buffers (default: "0")" python.go.short_name = "display and search in short names instead of buffer name (default: "off")" python.go.short_name_server = "prefix short names with server names for search and display (default: "off")" python.go.sort = "comma-separated list of keys to sort buffers (the order is important, sorts are performed in the given order): name = sort by name (or short name), (default: "number,beginning")" diff --git a/weechat/.weechat/python.conf b/weechat/.weechat/python.conf index 24d67cd..5678693 100644 --- a/weechat/.weechat/python.conf +++ b/weechat/.weechat/python.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] diff --git a/weechat/.weechat/python/aformat.py b/weechat/.weechat/python/aformat.py deleted file mode 100644 index bd8d096..0000000 --- a/weechat/.weechat/python/aformat.py +++ /dev/null @@ -1,121 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (c) 2016 Hairo R. Carela -# -# Everyone is permitted to copy and distribute verbatim or modified -# copies of this license document, and changing it is allowed as long -# as the name is changed. -# -# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE -# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -# -# 0. You just DO WHAT THE FUCK YOU WANT TO. -# -# Alternate way of text formatting, useful for relays without text formatting -# features (Glowingbear, WeechatAndroid, etc) -# -# Usage: -# /aformat *text* for bold text -# /aformat /text/ for italic text -# /aformat _text_ for underlined text -# /aformat |text| for reversed (black on white) text -# -# History: -# 2016-09-24: -# v0.1: Initial release -# 2018-06-19: -# v0.2: py3k-ok -# -# TODO: -# - Colors support - -import sys - -try: - import weechat - from weechat import WEECHAT_RC_OK - import_ok = True -except ImportError: - print("This script must be run under WeeChat.") - print("Get WeeChat now at: http://www.weechat.org/") - import_ok = False - -SCRIPT_NAME = "aformat" -SCRIPT_AUTHOR = "Hairo R. Carela " -SCRIPT_VERSION = "0.2" -SCRIPT_LICENSE = "WTFPL" -SCRIPT_DESC = ("Alternate way of text formatting, see /help for instructions") - -PY3 = sys.version > '3' - -class format: - # Special byte sequences, using weechat.color("stuff") had some unwanted - # results, i'll look into it if needed. Colors are unused for now - BOLD = '\x02' - ITALIC = '\x1D' - UNDERLINE = '\x1F' - REVERSE = '\x16' - END = '\x0F' - -if PY3: - unichr = chr - def send(buf, text): - weechat.command(buf, "/input send {}".format(text)) -else: - def send(buf, text): - weechat.command(buf, "/input send {}".format(text.encode("utf-8"))) - -def cb_aformat_cmd(data, buf, args): - if not PY3: - args = args.decode("utf-8") - - # Get the indexes of the separators (*/_|) in the string - bolds = [i for i, ltr in enumerate(args) if ltr == "*"] - italics = [i for i, ltr in enumerate(args) if ltr == "/"] - underlines = [i for i, ltr in enumerate(args) if ltr == "_"] - reverses = [i for i, ltr in enumerate(args) if ltr == "|"] - - if len(bolds) != 0: - for i, v in enumerate(bolds): - if i%2 == 0: - args = args[:v] + format.BOLD + args[v+1:] - else: - args = args[:v] + format.END + args[v+1:] - - if len(italics) != 0: - for i, v in enumerate(italics): - if i%2 == 0: - args = args[:v] + format.ITALIC + args[v+1:] - else: - args = args[:v] + format.END + args[v+1:] - - if len(underlines) != 0: - for i, v in enumerate(underlines): - if i%2 == 0: - args = args[:v] + format.UNDERLINE + args[v+1:] - else: - args = args[:v] + format.END + args[v+1:] - - if len(reverses) != 0: - for i, v in enumerate(reverses): - if i%2 == 0: - args = args[:v] + format.REVERSE + args[v+1:] - else: - args = args[:v] + format.END + args[v+1:] - - send(buf, args) - return weechat.WEECHAT_RC_OK - - -if import_ok and __name__ == "__main__": - weechat.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, - SCRIPT_LICENSE, SCRIPT_DESC, '', '') - weechat.hook_command("aformat", "Alternate way of text formatting, useful for relays without text formatting features (Glowingbear, WeechatAndroid, etc)", - "text <*/_|> text <*/_|> more text", - " *: bold text\n" - " /: italic text\n" - " _: underlined text\n" - " |: reversed (black on white) text\n\n" - " eg.: typing: /aformat This /must/ be the *work* of an _enemy_ |stand|\n" - " will output: This {0}must{4} be the {1}work{4} of an {2}enemy{4} {3}stand{4}".format(weechat.color("italic"), weechat.color("bold"), weechat.color("underline"), weechat.color("reverse"), weechat.color("reset")), - "", "cb_aformat_cmd", "") diff --git a/weechat/.weechat/python/autoload/aformat.py b/weechat/.weechat/python/autoload/aformat.py deleted file mode 120000 index d7b05c3..0000000 --- a/weechat/.weechat/python/autoload/aformat.py +++ /dev/null @@ -1 +0,0 @@ -../aformat.py \ No newline at end of file diff --git a/weechat/.weechat/python/autoload/bitlbee_completion.py b/weechat/.weechat/python/autoload/bitlbee_completion.py deleted file mode 120000 index 1bc83b6..0000000 --- a/weechat/.weechat/python/autoload/bitlbee_completion.py +++ /dev/null @@ -1 +0,0 @@ -../bitlbee_completion.py \ No newline at end of file diff --git a/weechat/.weechat/python/autoload/fzf.py b/weechat/.weechat/python/autoload/fzf.py deleted file mode 120000 index b723ed3..0000000 --- a/weechat/.weechat/python/autoload/fzf.py +++ /dev/null @@ -1 +0,0 @@ -../fzf.py \ No newline at end of file diff --git a/weechat/.weechat/python/autoload/listbuffer.py b/weechat/.weechat/python/autoload/listbuffer.py deleted file mode 120000 index e7089b2..0000000 --- a/weechat/.weechat/python/autoload/listbuffer.py +++ /dev/null @@ -1 +0,0 @@ -../listbuffer.py \ No newline at end of file diff --git a/weechat/.weechat/python/autoload/wee_slack.py b/weechat/.weechat/python/autoload/wee_slack.py deleted file mode 120000 index a77c3bb..0000000 --- a/weechat/.weechat/python/autoload/wee_slack.py +++ /dev/null @@ -1 +0,0 @@ -../wee_slack.py \ No newline at end of file diff --git a/weechat/.weechat/python/autosort.py b/weechat/.weechat/python/autosort.py index 4312cda..73f27eb 100644 --- a/weechat/.weechat/python/autosort.py +++ b/weechat/.weechat/python/autosort.py @@ -25,6 +25,8 @@ # # Changelog: +# 3.10: +# * Fix exception in `/autosort helpers swap`. # 3.9: # * Remove `buffers.pl` from recommended settings. # 3,8: @@ -87,7 +89,7 @@ import weechat SCRIPT_NAME = 'autosort' SCRIPT_AUTHOR = 'Maarten de Vries ' -SCRIPT_VERSION = '3.9' +SCRIPT_VERSION = '3.10' SCRIPT_LICENSE = 'GPL3' SCRIPT_DESC = 'Flexible automatic (or manual) buffer sorting based on eval expressions.' @@ -616,7 +618,6 @@ def command_helper_swap(buffer, command, args): except KeyError as e: raise HumanReadableError('No such helper: {0}'.format(e.args[0])) - config.helpers.swap(index_a, index_b) config.save_helpers() command_helper_list(buffer, command, '') return weechat.WEECHAT_RC_OK @@ -829,7 +830,7 @@ def on_autosort_command(data, buffer, args): def add_completions(completion, words): for word in words: - weechat.hook_completion_list_add(completion, word, 0, weechat.WEECHAT_LIST_POS_END) + weechat.completion_list_add(completion, word, 0, weechat.WEECHAT_LIST_POS_END) def autosort_complete_rules(words, completion): if len(words) == 0: @@ -1001,14 +1002,14 @@ If you remove all signals you can still sort your buffers manually with the {*white}# Recommended settings For the best visual effect, consider setting the following options: - {*white}/set {cyan}irc.look.server_buffer{reset} {brown}independent{reset} +{*white}/set {cyan}irc.look.server_buffer{reset} {brown}independent{reset} This setting allows server buffers to be sorted independently, which is needed to create a hierarchical tree view of the server and channel buffers. If you are using the {*default}buflist{reset} plugin you can (ab)use Unicode to draw a tree structure with the following setting (modify to suit your need): - {*white}/set {cyan}buflist.format.indent {brown}"${{color:237}}${{if:${{buffer.next_buffer.local_variables.type}}=~^(channel|private)$?├─:└─}}"{reset} +{*white}/set {cyan}buflist.format.indent {brown}"${{color:237}}${{if:${{buffer.next_buffer.local_variables.type}}=~^(channel|private)$?├─:└─}}"{reset} ''' command_completion = '%(plugin_autosort) %(plugin_autosort) %(plugin_autosort) %(plugin_autosort) %(plugin_autosort)' diff --git a/weechat/.weechat/python/bitlbee_completion.py b/weechat/.weechat/python/bitlbee_completion.py deleted file mode 100644 index be6f80e..0000000 --- a/weechat/.weechat/python/bitlbee_completion.py +++ /dev/null @@ -1,114 +0,0 @@ -# -*- coding: utf-8 -*- -# Add tab completion to bitlbee commands -# based on http://scripts.irssi.org/scripts/bitlbee_tab_completion.pl -# -# History: -# -# 2015-11-02, Mickaël Thomas : -# version 0.2: strip color attributes for topic detection -# 2015-03-22, Roger Duran : -# version 0.1: initial version - -import weechat - -SCRIPT_NAME = "bitlbee_completion" -SCRIPT_AUTHOR = "Roger Duran " -SCRIPT_VERSION = "0.2" -SCRIPT_LICENSE = "GPL3" -SCRIPT_DESC = "Add tab completion to bitlbee commands" - -OPTS = { - "server": None, - "channel": None - } - -TOPIC = "Welcome to the control channel. "\ - "Type help for help information." - -commands = [] - - -def request_completion(): - """ - Request the completion to the bitlbee server and wait for response - """ - server = OPTS["server"] - weechat.command(server, "/quote -server %s COMPLETIONS" % server) - - -def modifier_cb(data, modifier, modifier_data, string): - """ - When the server returns the completion, update the commands list - """ - - if ":COMPLETIONS" not in string: - return string - command = string.split(":COMPLETIONS ")[1] - if command not in ("OK", "END"): - commands.append(command) - return "" - - -def bitlbee_completion(data, completion_item, buffer, completion): - """ - Complete bitlbee commands only in the bitlbee buffer - """ - - server = OPTS["server"] - channel = OPTS["channel"] - if not server or not channel: - return weechat.WEECHAT_RC_OK - - buff_name = weechat.buffer_get_string(buffer, "name") - if buff_name == "%s.%s" % (server, channel): - for command in commands: - weechat.hook_completion_list_add(completion, command, 0, - weechat.WEECHAT_LIST_POS_SORT) - return weechat.WEECHAT_RC_OK - - -def find_buffer(): - """ - Find the buffer when the plugin starts - """ - infolist = weechat.infolist_get("buffer", "", "") - while weechat.infolist_next(infolist): - topic = weechat.infolist_string(infolist, "title") - if weechat.string_remove_color(topic, "") == TOPIC: - name = weechat.infolist_string(infolist, "name") - set_options(name) - request_completion() - break - weechat.infolist_free(infolist) - - -def set_options(name): - server, channel = name.split(".") - OPTS["server"] = server - OPTS["channel"] = channel - - -def print_332(data, buffer, time, tags, displayed, highlight, prefix, message): - """ - Find the buffer when a new one is open - """ - if weechat.string_remove_color(message, "") == TOPIC: - name = weechat.buffer_get_string(buffer, "name") - set_options(name) - request_completion() - return weechat.WEECHAT_RC_OK - - -def main(): - weechat.hook_modifier("irc_in_notice", "modifier_cb", "") - weechat.hook_completion("bitlbee", "bitlbee completion", - "bitlbee_completion", "") - - weechat.hook_print('', 'irc_332', '', 1, 'print_332', '') - weechat.hook_print('', 'irc_topic', '', 1, 'print_332', '') - find_buffer() - -if __name__ == "__main__": - if weechat.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, - SCRIPT_LICENSE, SCRIPT_DESC, "", ""): - main() diff --git a/weechat/.weechat/python/buffer_autoclose.py b/weechat/.weechat/python/buffer_autoclose.py index 2dfefd9..a47fae1 100644 --- a/weechat/.weechat/python/buffer_autoclose.py +++ b/weechat/.weechat/python/buffer_autoclose.py @@ -20,6 +20,8 @@ # (this script requires WeeChat 0.3.0 or newer) # # History: +# 2024-05-04, Miklos Vajna +# version 0.6: Allow autoclosing explicitly listed non-private buffers as well # 2018-04-10, Sébastien Helleu # version 0.5: fix infolist_time for WeeChat >= 2.2 (WeeChat returns a long # integer instead of a string) @@ -37,7 +39,7 @@ import time SCRIPT_NAME = "buffer_autoclose" SCRIPT_AUTHOR = "xt " -SCRIPT_VERSION = "0.5" +SCRIPT_VERSION = "0.6" SCRIPT_LICENSE = "GPL3" SCRIPT_DESC = "Automatically close inactive private message buffers" @@ -45,6 +47,7 @@ settings = { 'interval': '1', # How often in minutes to check 'age_limit': '30', # How old in minutes before auto close 'ignore': '', # Buffers to ignore (use full name: server.buffer_name) + 'prefer': '', # Buffers to prefer, even if they are not private (use full name: server.buffer_name) } if w.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, SCRIPT_LICENSE, @@ -64,8 +67,13 @@ def get_all_buffers(): '''Returns list with pointers of all open buffers.''' buffers = [] infolist = w.infolist_get('buffer', '', '') + preferlist = w.config_get_plugin('prefer').split(',') while w.infolist_next(infolist): buffer_type = w.buffer_get_string(w.infolist_pointer(infolist, 'pointer'), 'localvar_type') + name = w.buffer_get_string(w.infolist_pointer(infolist, 'pointer'), 'name') + if name in preferlist: + buffers.append(w.infolist_pointer(infolist, 'pointer')) + continue if buffer_type == 'private': # we only close private message buffers for now buffers.append(w.infolist_pointer(infolist, 'pointer')) w.infolist_free(infolist) diff --git a/weechat/.weechat/python/colorize_nicks.py b/weechat/.weechat/python/colorize_nicks.py index cb95a0d..bab1282 100644 --- a/weechat/.weechat/python/colorize_nicks.py +++ b/weechat/.weechat/python/colorize_nicks.py @@ -21,6 +21,16 @@ # # # History: +# 2023-10-30: Sébastien Helleu +# version 32: revert to info "nick_color" with WeeChat >= 4.1.1 +# 2023-10-16: Sébastien Helleu +# version 31: use info "irc_nick_color" on IRC buffers with WeeChat >= 4.1.0 +# 2022-11-07: mva +# version 30: add ":" and "," to VALID_NICK regexp, +# to don't reset colorization in input_line +# 2022-07-11: ncfavier +# version 29: check nick for exclusion *after* stripping +# decrease minimum min_nick_length to 1 # 2020-11-29: jess # version 28: fix ignore_tags having been broken by weechat 2.9 changes # 2020-05-09: Sébastien Helleu @@ -90,13 +100,13 @@ w = weechat SCRIPT_NAME = "colorize_nicks" SCRIPT_AUTHOR = "xt " -SCRIPT_VERSION = "28" +SCRIPT_VERSION = "32" SCRIPT_LICENSE = "GPL" SCRIPT_DESC = "Use the weechat nick colors in the chat area" # Based on the recommendations in RFC 7613. A valid nick is composed # of anything but " ,*?.!@". -VALID_NICK = r'([@~&!%+-])?([^\s,\*?\.!@]+)' +VALID_NICK = r'([@~&!%+-])?([^\s,\*?\.!@:,]+)' valid_nick_re = re.compile(VALID_NICK) ignore_channels = [] ignore_nicks = [] @@ -138,7 +148,7 @@ def colorize_config_init(): colorize_config_option["min_nick_length"] = weechat.config_new_option( colorize_config_file, section_look, "min_nick_length", "integer", "Minimum length nick to colorize", "", - 2, 20, "", "", 0, "", "", "", "", "", "") + 1, 20, "2", "2", 0, "", "", "", "", "", "") colorize_config_option["colorize_input"] = weechat.config_new_option( colorize_config_file, section_look, "colorize_input", "boolean", "Whether to colorize input", "", 0, @@ -165,12 +175,16 @@ def colorize_config_read(): global colorize_config_file return weechat.config_read(colorize_config_file) -def colorize_nick_color(nick, my_nick): +def colorize_nick_color(buffer, nick, my_nick): ''' Retrieve nick color from weechat. ''' if nick == my_nick: return w.color(w.config_string(w.config_get('weechat.color.chat_nick_self'))) else: - return w.info_get('irc_nick_color', nick) + version = int(w.info_get('version_number', '') or 0) + if w.buffer_get_string(buffer, 'plugin') == 'irc' and version == 0x4010000: + server = w.buffer_get_string(buffer, 'localvar_server') + return w.info_get('irc_nick_color', '%s,%s' % (server, nick)) + return w.info_get('nick_color', nick) def colorize_cb(data, modifier, modifier_data, line): ''' Callback that does the colorizing, and returns new line if changed ''' @@ -206,9 +220,6 @@ def colorize_cb(data, modifier, modifier_data, line): for words in valid_nick_re.findall(line): nick = words[1] - # Check that nick is not ignored and longer than minimum length - if len(nick) < min_length or nick in ignore_nicks: - continue # If the matched word is not a known nick, we try to match the # word without its first or last character (if not a letter). @@ -225,6 +236,10 @@ def colorize_cb(data, modifier, modifier_data, line): if nick[:-1] in colored_nicks[buffer]: nick = nick[:-1] + # Check that nick is not ignored and longer than minimum length + if len(nick) < min_length or nick in ignore_nicks: + continue + # Check that nick is in the dictionary colored_nicks if nick in colored_nicks[buffer]: nick_color = colored_nicks[buffer][nick] @@ -336,7 +351,7 @@ def populate_nicks(*args): continue nick = w.infolist_string(nicklist, 'name') - nick_color = colorize_nick_color(nick, my_nick) + nick_color = colorize_nick_color(buffer_ptr, nick, my_nick) colored_nicks[buffer_ptr][nick] = nick_color @@ -358,7 +373,7 @@ def add_nick(data, signal, type_data): colored_nicks[pointer] = {} my_nick = w.buffer_get_string(pointer, 'localvar_nick') - nick_color = colorize_nick_color(nick, my_nick) + nick_color = colorize_nick_color(pointer, nick, my_nick) colored_nicks[pointer][nick] = nick_color diff --git a/weechat/.weechat/python/go.py b/weechat/.weechat/python/go.py index 77c5774..c4f7f8e 100644 --- a/weechat/.weechat/python/go.py +++ b/weechat/.weechat/python/go.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2009-2014 Sébastien Helleu +# Copyright (C) 2009-2023 Sébastien Helleu # Copyright (C) 2010 m4v # Copyright (C) 2011 stfn # @@ -21,6 +21,15 @@ # # History: # +# 2024-05-30, Sébastien Helleu : +# version 3.0.1: refresh buffer input at the end of search +# 2024-05-30, Sébastien Helleu : +# version 3.0: refresh immediately buffer input when /go command is executed +# (needed for WeeChat >= 4.3.0) +# 2023-06-21, Sébastien Helleu : +# version 2.9: add option "min_chars" +# 2023-01-08, Sébastien Helleu : +# version 2.8: send buffer pointer with signal "input_text_changed" # 2021-05-25, Tomáš Janoušek : # version 2.7: add new option to prefix short names with server names # 2019-07-11, Simmo Saan @@ -96,7 +105,7 @@ from __future__ import print_function SCRIPT_NAME = 'go' SCRIPT_AUTHOR = 'Sébastien Helleu ' -SCRIPT_VERSION = '2.7' +SCRIPT_VERSION = '3.0.1' SCRIPT_LICENSE = 'GPL3' SCRIPT_DESC = 'Quick jump to buffers' @@ -108,13 +117,19 @@ try: import weechat except ImportError: print('This script must be run under WeeChat.') - print('Get WeeChat now at: http://www.weechat.org/') + print('Get WeeChat now at: https://weechat.org/') IMPORT_OK = False import re # script options SETTINGS = { + 'auto_jump': ( + 'off', + 'automatically jump to buffer when it is uniquely selected'), + 'buffer_number': ( + 'on', + 'display buffer number'), 'color_number': ( 'yellow,magenta', 'color for buffer number (not selected)'), @@ -133,9 +148,15 @@ SETTINGS = { 'color_name_highlight_selected': ( 'red,brown', 'color for highlight in a selected buffer name'), + 'fuzzy_search': ( + 'off', + 'search buffer matches using approximation'), 'message': ( 'Go to: ', 'message to display before list of buffers'), + 'min_chars': ( + '0', + 'Minimum chars to search and display list of matching buffers'), 'short_name': ( 'off', 'display and search in short names instead of buffer name'), @@ -154,15 +175,6 @@ SETTINGS = { 'use_core_instead_weechat': ( 'off', 'use name "core" instead of "weechat" for core buffer'), - 'auto_jump': ( - 'off', - 'automatically jump to buffer when it is uniquely selected'), - 'fuzzy_search': ( - 'off', - 'search buffer matches using approximation'), - 'buffer_number': ( - 'on', - 'display buffer number'), } # hooks management @@ -208,6 +220,7 @@ def go_unhook_all(): go_unhook_one('modifier') for hook in HOOK_COMMAND_RUN: go_unhook_one(hook) + weechat.bar_item_update('input_text') def go_hook_all(): @@ -227,6 +240,7 @@ def go_hook_all(): if 'modifier' not in hooks: hooks['modifier'] = weechat.hook_modifier( 'input_text_display_with_cursor', 'go_input_modifier', '') + weechat.bar_item_update('input_text') def go_start(buf): @@ -410,6 +424,11 @@ def go_matching_buffers(strinput): def go_buffers_to_string(listbuf, pos, strinput): """Return string built with list of buffers found (matching user input).""" + try: + if len(strinput) < int(weechat.config_get_plugin('min_chars')): + return '' + except: + pass string = '' strinput = strinput.lower() for i in range(len(listbuf)): @@ -500,7 +519,7 @@ def go_command_run_input(data, buf, command): if buffers_pos >= len(buffers): buffers_pos = 0 weechat.hook_signal_send('input_text_changed', - weechat.WEECHAT_HOOK_SIGNAL_STRING, '') + weechat.WEECHAT_HOOK_SIGNAL_POINTER, buf) return weechat.WEECHAT_RC_OK_EAT elif command == '/input complete_previous': # choose previous buffer in list @@ -508,7 +527,7 @@ def go_command_run_input(data, buf, command): if buffers_pos < 0: buffers_pos = len(buffers) - 1 weechat.hook_signal_send('input_text_changed', - weechat.WEECHAT_HOOK_SIGNAL_STRING, '') + weechat.WEECHAT_HOOK_SIGNAL_POINTER, buf) return weechat.WEECHAT_RC_OK_EAT elif command == '/input return': # switch to selected buffer (if any) diff --git a/weechat/.weechat/python/grep.py b/weechat/.weechat/python/grep.py index 68e067d..b675122 100644 --- a/weechat/.weechat/python/grep.py +++ b/weechat/.weechat/python/grep.py @@ -69,6 +69,9 @@ # # History: # +# 2022-11-11, anonymous2ch +# version 0.8.6: ignore utf-8 decoding errors +# # 2021-05-02, Sébastien Helleu # version 0.8.5: add compatibility with WeeChat >= 3.2 (XDG directories) # @@ -239,7 +242,7 @@ except ImportError: SCRIPT_NAME = "grep" SCRIPT_AUTHOR = "Elián Hanisch " -SCRIPT_VERSION = "0.8.5" +SCRIPT_VERSION = "0.8.6" SCRIPT_LICENSE = "GPL3" SCRIPT_DESC = "Search in buffers and logs" SCRIPT_COMMAND = "grep" @@ -738,7 +741,7 @@ def grep_file(file, head, tail, after_context, before_context, count, regexp, hi check = lambda s: check_string(s, regexp, hilight, exact) try: - file_object = open(file, 'r') + file_object = open(file, 'r', errors='ignore') except IOError: # file doesn't exist return lines diff --git a/weechat/.weechat/python/listbuffer.py b/weechat/.weechat/python/listbuffer.py deleted file mode 100644 index a8843be..0000000 --- a/weechat/.weechat/python/listbuffer.py +++ /dev/null @@ -1,474 +0,0 @@ -# -*- coding: utf-8 -*- -# -# ListBuffer, version 0.8.1 for WeeChat version 0.3 -# Latest development version: https://github.com/FiXato/listbuffer -# -# Show /list results in a common buffer and interact with them. -# -# This script allows you to easily join channels from the /list output. -# It will open a common buffer for the /list result, through which you -# browse with your cursor keys, and join with the meta-enter keys. -# Adjust sorting with meta->, meta-< and meta-/ keybindings. -# -## History: -### 2011-09-08: FiXato: -# -# * version 0.1: initial release. -# * added a common buffer for /list results -# * added highlighting for currently selected line -# * added /join support via enter key -# * added scroll_top and scroll_bottom support -# -# * version 0.2: /list format bugfix -# * added support for /list results without modes -# * some servers don't send 321 (/list start). Taken into account. -# -# * version 0.3: Sorting support -# * Added some basic sorting support. Scroll through sort options -# with meta-> and meta-< (users, channel, topic, modes) -# -### 2011-09-19: FiXato -# -# * version 0.4: -# * Case-insensitive buffer lookup fix. -# * Removed default enter keybind -# -### 2011-12-28: troydm: -# -# * version 0.5: It's an upside-down-world -# * Added inverted sorting support provided by Dmitry "troydm" Geurkov -# Use meta-/ to switch between inverted and regular sorting. -# -### 2012-02-10: FiXato: -# -# * version 0.6: Stop shoving that buffer in my face! -# * The listbuffer should no longer pop up by itself when you load the script. -# It should only pop up now when you actually do a /list query. -# -# * version 0.7: .. but please pop it up in my current window when I ask for it -# * Added setting plugins.var.python.listbuffer.autofocus -# This will autofocus the listbuffer in the current window if another window isn't -# already showing it, and of course only when the user issues /list -# -### 2012-07-10: FiXato: -# -# * version 0.7.1: Forgetful bugfix -# * Made sure lb_curline global variable is defined -# -### 2013-03-19: FiXato: -# -# * version 0.8: Sorted out the sorting -# * Added automatically updating options for sorting: -# * plugins.var.python.listbuffer.sort_inverted -# * plugins.var.python.listbuffer.sort_order -# * version 0.8.1: Pad it baby! -# * Channel modes are equally padded even when there are no channel modes. -# * Added padding options: -# * plugins.var.python.listbuffer.modes_min_width -# * plugins.var.python.listbuffer.channel_min_width -# * plugins.var.python.listbuffer.users_min_width -# -### 2019-07-05: Sébastien Helleu: -# -# * version 0.8.2: Make script compatible with Python 3. -# -## Acknowledgements: -# * Dmitry "troydm" Geurkov, for providing the inverse-sorting patch to the project. -# * Sebastien "Flashcode" Helleu, for developing the kick-ass IRC client WeeChat -# and the iset.pl script which inspired me to this script. -# * Nils "nils_2" Görs, for his contributions to iset.pl which served as -# example code. -# * David "drubin" Rubin, for his urlgrab.py script, which also served -# as example code. -# * ArZa, whose listsort.pl script helped me getting started with -# grabbing the /list results. Parts of his code have been shamelessly -# copied and ported to Python. -# * Khaled Mardam-Bey, for making me yearn for similar /list support in -# WeeChat as mIRC already offered. :P -# * mave_, for pointing out that sort orders weren't remembered. -# -## TODO: -# - Auto-scroll selected line upon window scroll. -# - Add option to hide already joined channels. -# - Improve sorting methods -# - Add auto-join support -# - Detect if channel is already in auto-join -# - Allow automatically switching to the listbuffer -# - Add support for ALIS (/squery alis LIST * -mix 100 (IRCNet) -# - Make colours configurable -# - Limit number of channels to parse -# - Add filter support a la iset -# - Allow selecting multiple channels -# - Add optional command redirection. -# -## Copyright (c) 2011,2012,2013 Filip H.F. "FiXato" Slagter, -# -# http://profile.fixato.org -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# - -from __future__ import print_function - -SCRIPT_NAME = "listbuffer" -SCRIPT_AUTHOR = "Filip H.F. 'FiXato' Slagter " -SCRIPT_VERSION = "0.8.2" -SCRIPT_LICENSE = "MIT" -SCRIPT_DESC = "A common buffer for /list output." -SCRIPT_COMMAND = "listbuffer" - -import_ok = True - -try: - import weechat -except ImportError: - print("This script must be run under WeeChat.") - import_ok = False - -import re - -lb_settings = ( - ("autofocus", "on", "Focus the listbuffer in the current window if it isn't already displayed by a window."), - ("sort_order", "users", "Last used sort order for the channel list."), - ("sort_inverted", "on", "Invert the sort order for the channel list."), - ("modes_min_width", "8", "The minimum width used for modes in the channel list. If a channel has less modes than this amount, the column will be padded with spaces."), - ("channel_min_width", "25", "The minimum width used for the channel name in the channel list. If a channelname is shorter than this amount, the column will be padded with spaces."), - ("users_min_width", "8", "The minimum width used for the usercount in the channel list. If the usercount has less digits than this amount, the column will be padded with spaces."), -) -lb_buffer = None -lb_curline = 0 -lb_channels = [] -lb_network = None -lb_list_started = False -lb_current_sort = None -lb_sort_inverted = False -lb_sort_options = ( - 'channel', - 'users', - 'modes', - 'topic', -) - -# server numeric Nick Chan Users Modes Topic -lb_channel_list_expression = '(:\S+) (\d{3}) (\S+) (\S+) (\d+) :(\[(.*?)\] )?(.*)' - -# Create listbuffer. -def lb_create_buffer(): - global lb_buffer, lb_curline - - if not lb_buffer: - lb_buffer = weechat.buffer_new("listbuffer", "lb_input_cb", \ - "", "lb_close_cb", "") - lb_set_buffer_title() - # Sets notify to 0 as this buffer does not need to be in hotlist. - weechat.buffer_set(lb_buffer, "notify", "0") - weechat.buffer_set(lb_buffer, "nicklist", "0") - weechat.buffer_set(lb_buffer, "type", "free") - weechat.buffer_set(lb_buffer, "key_bind_ctrl-L", "/listbuffer **refresh") - weechat.buffer_set(lb_buffer, "key_bind_meta2-A", "/listbuffer **up") - weechat.buffer_set(lb_buffer, "key_bind_meta2-B", "/listbuffer **down") - weechat.buffer_set(lb_buffer, "key_bind_meta2-1~", "/listbuffer **scroll_top") - weechat.buffer_set(lb_buffer, "key_bind_meta2-4~", "/listbuffer **scroll_bottom") - weechat.buffer_set(lb_buffer, "key_bind_meta-ctrl-J", "/listbuffer **enter") - weechat.buffer_set(lb_buffer, "key_bind_meta-ctrl-M", "/listbuffer **enter") - weechat.buffer_set(lb_buffer, "key_bind_meta->", "/listbuffer **sort_next") - weechat.buffer_set(lb_buffer, "key_bind_meta-<", "/listbuffer **sort_previous") - weechat.buffer_set(lb_buffer, "key_bind_meta-/", "/listbuffer **sort_invert") - lb_curline = 0 - if weechat.config_get_plugin("autofocus") == "on": - if not weechat.window_search_with_buffer(lb_buffer): - weechat.command("", "/buffer " + weechat.buffer_get_string(lb_buffer,"name")) - -def lb_set_buffer_title(): - global lb_buffer, lb_current_sort - ascdesc = '(v)' if lb_sort_inverted else '(^)' - weechat.buffer_set(lb_buffer, "title", lb_line_format({ - 'channel': 'Channel name%s' % (ascdesc if lb_current_sort == 'channel' else ''), - 'users': 'Users%s' % (ascdesc if lb_current_sort == 'users' else ''), - 'modes': 'Modes%s' % (ascdesc if lb_current_sort == 'modes' else ''), - 'topic': 'Topic%s' % (ascdesc if lb_current_sort == 'topic' else ''), - 'nomodes': None, - })) - -def lb_list_start(data, signal, message): - lb_initialise_list - - return weechat.WEECHAT_RC_OK - -def lb_initialise_list(signal): - global lb_channels, lb_network, lb_list_started - - lb_create_buffer() - lb_channels = [] - lb_network = signal.split(',')[0] - lb_list_started = True - return - - -def lb_list_chan(data, signal, message): - global lb_channels, lb_buffer, lb_list_started - - # Work-around for IRCds which don't send 321 Numeric (/List start) - if not lb_list_started: - lb_initialise_list(signal) - - for chan_data in re.findall(lb_channel_list_expression,message): - lb_channels.append({ - 'server': chan_data[0][1:-1], - 'numeric': chan_data[1], - 'nick': chan_data[2], - 'channel': chan_data[3], - 'users': chan_data[4], - 'nomodes': chan_data[5] == '', - 'modes': chan_data[6], - 'topic': weechat.hook_modifier_exec("irc_color_decode", "1", chan_data[7]) - }) - return weechat.WEECHAT_RC_OK - -def lb_list_end(data, signal, message): - global lb_list_started - - # Work-around for IRCds which don't send 321 Numeric (/List start) - if not lb_list_started: - lb_initialise_list(signal) - - lb_list_started = False - if lb_current_sort: - lb_sort() - lb_refresh() - return weechat.WEECHAT_RC_OK - -def keyEvent (data, buffer, args): - global lb_options - lb_options[args]() - -def lb_input_cb(data, buffer, input_data): - global lb_options, lb_curline - lb_options[input_data]() - return weechat.WEECHAT_RC_OK - -def lb_refresh(): - global lb_channels, lb_buffer - weechat.buffer_clear(lb_buffer) - - y = 0 - for list_data in lb_channels: - lb_refresh_line(y) - y += 1 - return - -def lb_refresh_line(y): - global lb_buffer, lb_curline, lb_channels - if y >= 0 and y < len(lb_channels): - formatted_line = lb_line_format(lb_channels[y], y == lb_curline) - weechat.prnt_y(lb_buffer, y, formatted_line) - -def lb_refresh_curline(): - global lb_curline - lb_refresh_line(lb_curline-1) - lb_refresh_line(lb_curline) - lb_refresh_line(lb_curline+1) - return - -def lb_line_format(list_data,curr=False): - str = "" - if (curr): - str += weechat.color("yellow,red") - channel_text = list_data['channel'].ljust(int(weechat.config_get_plugin('channel_min_width'))) - users_text = "(%s)" % list_data['users'] - padded_users_text = users_text.rjust(int(weechat.config_get_plugin('users_min_width')) + 2) - str += "%s%s %s " % (weechat.color("bold"), channel_text, padded_users_text) - if not list_data['nomodes']: - modes = "[%s]" % list_data['modes'] - else: - modes = "[]" - str += "%s: " % modes.rjust(int(weechat.config_get_plugin('modes_min_width')) + 2) - str += "%s" % list_data['topic'] - return str - -def lb_line_up(): - global lb_curline - if lb_curline <= 0: - return - lb_curline -= 1 - lb_refresh_curline() - lb_check_outside_window() - return - -def lb_line_down(): - global lb_curline, lb_channels - if lb_curline+1 >= len(lb_channels): - return - lb_curline += 1 - lb_refresh_curline() - lb_check_outside_window() - return - -def lb_line_run(): - global lb_channels, lb_curline, lb_network - buff = weechat.info_get("irc_buffer", lb_network) - channel = lb_channels[lb_curline]['channel'] - command = "/join %s" % channel - weechat.command(buff, command) - return - -def lb_line_select(): - return - -def lb_scroll_top(): - global lb_curline - old_y = lb_curline - lb_curline = 0 - lb_refresh_curline() - lb_refresh_line(old_y) - weechat.command(lb_buffer, "/window scroll_top") - return - -def lb_scroll_bottom(): - global lb_curline, lb_channels - old_y = lb_curline - lb_curline = len(lb_channels)-1 - lb_refresh_curline() - lb_refresh_line(old_y) - weechat.command(lb_buffer, "/window scroll_bottom") - return - -def lb_check_outside_window(): - global lb_buffer, lb_curline - if (lb_buffer): - infolist = weechat.infolist_get("window", "", "current") - if (weechat.infolist_next(infolist)): - start_line_y = weechat.infolist_integer(infolist, "start_line_y") - chat_height = weechat.infolist_integer(infolist, "chat_height") - if(start_line_y > lb_curline): - weechat.command(lb_buffer, "/window scroll -%i" %(start_line_y - lb_curline)) - elif(start_line_y <= lb_curline - chat_height): - weechat.command(lb_buffer, "/window scroll +%i"%(lb_curline - start_line_y - chat_height + 1)) - weechat.infolist_free(infolist) - -def lb_sort_next(): - global lb_current_sort, lb_sort_options - if lb_current_sort: - new_index = lb_sort_options.index(lb_current_sort) + 1 - else: - new_index = 0 - - if len(lb_sort_options) <= new_index: - new_index = 0 - - lb_set_current_sort_order(lb_sort_options[new_index]) - lb_sort() - -def lb_set_current_sort_order(value): - global lb_current_sort - lb_current_sort = value - weechat.config_set_plugin('sort_order', lb_current_sort) - -def lb_set_invert_sort_order(value): - global lb_sort_inverted - lb_sort_inverted = value - weechat.config_set_plugin('sort_inverted', ('on' if lb_sort_inverted else 'off')) - -def lb_sort_previous(): - global lb_current_sort, lb_sort_options - if lb_current_sort: - new_index = lb_sort_options.index(lb_current_sort) - 1 - else: - new_index = 0 - - if new_index < 0: - new_index = len(lb_sort_options) - 1 - - lb_set_current_sort_order(lb_sort_options[new_index]) - lb_sort() - -def lb_sort(sort_key=None): - global lb_channels, lb_current_sort, lb_sort_inverted - if sort_key: - lb_set_current_sort_order(sort_key) - if lb_current_sort == 'users': - lb_channels = sorted(lb_channels, key=lambda chan_data: int(chan_data[lb_current_sort])) - else: - lb_channels = sorted(lb_channels, key=lambda chan_data: chan_data[lb_current_sort]) - if lb_sort_inverted: - lb_channels.reverse() - lb_set_buffer_title() - lb_refresh() - -def lb_sort_invert(): - global lb_current_sort, lb_sort_inverted - if lb_current_sort: - lb_set_invert_sort_order(not lb_sort_inverted) - lb_sort() - -def lb_close_cb(*kwargs): - """ A callback for buffer closing. """ - global lb_buffer - - lb_buffer = None - return weechat.WEECHAT_RC_OK - -lb_options = { - 'refresh' : lb_refresh, - 'up' : lb_line_up, - 'down' : lb_line_down, - 'enter' : lb_line_run, - 'space' : lb_line_select, - 'scroll_top' : lb_scroll_top, - 'scroll_bottom': lb_scroll_bottom, - 'sort_next' : lb_sort_next, - 'sort_previous': lb_sort_previous, - 'sort_invert': lb_sort_invert -} - -def lb_command_main(data, buffer, args): - if args[0:2] == "**": - keyEvent(data, buffer, args[2:]) - return weechat.WEECHAT_RC_OK - -def lb_set_default_settings(): - global lb_settings - # Set default settings - for option, default_value, description in lb_settings: - if not weechat.config_is_set_plugin(option): - weechat.config_set_plugin(option, default_value) - version = weechat.info_get("version_number", "") or 0 - if int(version) >= 0x00030500: - weechat.config_set_desc_plugin(option, description) - -def lb_reset_stored_sort_order(): - global lb_current_sort, lb_sort_inverted - lb_current_sort = weechat.config_get_plugin('sort_order') - lb_sort_inverted = (True if weechat.config_get_plugin('sort_inverted') == 'on' else False) - -if __name__ == "__main__" and import_ok: - if weechat.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, - SCRIPT_LICENSE, SCRIPT_DESC, "lb_close_cb", ""): - lb_set_default_settings() - lb_reset_stored_sort_order() - lb_buffer = weechat.buffer_search("python", "listbuffer") - - weechat.hook_signal("*,irc_in_321", "lb_list_start", "") - weechat.hook_signal("*,irc_in_322", "lb_list_chan", "") - weechat.hook_signal("*,irc_in_323", "lb_list_end", "") - weechat.hook_command(SCRIPT_COMMAND, - "List Buffer", - "", "", "", - "lb_command_main", "") diff --git a/weechat/.weechat/relay.conf b/weechat/.weechat/relay.conf index db0056f..5dd1ca1 100644 --- a/weechat/.weechat/relay.conf +++ b/weechat/.weechat/relay.conf @@ -6,20 +6,24 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # +config_version = 2 + [look] -auto_open_buffer = on +auto_open_buffer = "on" +display_clients = "irc,weechat" raw_messages = 256 +raw_messages_max_length = 4096 [color] client = cyan -status_active = lightblue -status_auth_failed = lightred -status_connecting = 130 +status_active = green +status_auth_failed = lightmagenta +status_authenticating = yellow +status_connecting = white status_disconnected = lightred -status_waiting_auth = brown text = default text_bg = default text_selected = white @@ -30,6 +34,7 @@ allowed_ips = "" auth_timeout = 60 bind_address = "" clients_purge_delay = 0 +commands = "*,!quit" compression = 20 ipv6 = on max_clients = 5 @@ -37,24 +42,30 @@ nonce_size = 16 password = "${sec.data.relaypass}" password_hash_algo = "*" password_hash_iterations = 100000 -ssl_cert_key = "%h/ssl/relay.pem" -ssl_priorities = "NORMAL:-VERS-SSL3.0" +time_window = 5 +tls_cert_key = "%h/ssl/relay.pem" +tls_priorities = "NORMAL:-VERS-SSL3.0" totp_secret = "" totp_window = 0 websocket_allowed_origins = "" +websocket_permessage_deflate = on [irc] -backlog_max_minutes = 525600 -backlog_max_number = 256 +backlog_max_minutes = 0 +backlog_max_number = 1024 backlog_since_last_disconnect = on backlog_since_last_message = off backlog_tags = "irc_privmsg" backlog_time_format = "[%H:%M] " -[weechat] -commands = "" +[api] +remote_autoreconnect_delay_growing = 2 +remote_autoreconnect_delay_max = 600 +remote_get_lines = 1000 [port] [path] unix.weechat = "%h/relay_socket" + +[remote] diff --git a/weechat/.weechat/ruby.conf b/weechat/.weechat/ruby.conf index 555f48f..c7d00c9 100644 --- a/weechat/.weechat/ruby.conf +++ b/weechat/.weechat/ruby.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] diff --git a/weechat/.weechat/script.conf b/weechat/.weechat/script.conf index 25b9cf1..3a0415f 100644 --- a/weechat/.weechat/script.conf +++ b/weechat/.weechat/script.conf @@ -6,11 +6,11 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] -columns = "%s %n %V %v %u │ %d │ %t" +columns = "%s %n %V %v %u | %d | %t" diff_color = on diff_command = "auto" display_source = on @@ -20,32 +20,32 @@ translate_description = on use_keys = on [color] -status_autoloaded = cyan +status_autoloaded = 39 status_held = white status_installed = lightcyan status_obsolete = lightmagenta -status_popular = 130 +status_popular = yellow status_running = lightgreen status_unknown = lightred text = default text_bg = default -text_bg_selected = 235 -text_date = default -text_date_selected = white -text_delimiters = 130 -text_description = default +text_bg_selected = 24 +text_date = 65 +text_date_selected = 50 +text_delimiters = 240 +text_description = 249 text_description_selected = white -text_extension = default -text_extension_selected = white -text_name = cyan -text_name_selected = lightcyan +text_extension = 242 +text_extension_selected = 248 +text_name = 73 +text_name_selected = 51 text_selected = white text_tags = brown -text_tags_selected = 130 -text_version = magenta -text_version_loaded = default +text_tags_selected = yellow +text_version = 100 +text_version_loaded = 246 text_version_loaded_selected = white -text_version_selected = lightmagenta +text_version_selected = 228 [scripts] autoload = on diff --git a/weechat/.weechat/spell.conf b/weechat/.weechat/spell.conf index 2aa7d85..f509f9d 100644 --- a/weechat/.weechat/spell.conf +++ b/weechat/.weechat/spell.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [color] diff --git a/weechat/.weechat/trigger.conf b/weechat/.weechat/trigger.conf index febbd0d..236dd94 100644 --- a/weechat/.weechat/trigger.conf +++ b/weechat/.weechat/trigger.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] @@ -15,14 +15,13 @@ monitor_strip_colors = off [color] flag_command = lightgreen -flag_conditions = 130 +flag_conditions = yellow flag_post_action = lightblue flag_regex = lightcyan flag_return_code = lightmagenta +identifier = cyan regex = white replace = cyan -trigger = green -trigger_disabled = red [trigger] beep.arguments = "" @@ -39,7 +38,7 @@ cmd_pass.conditions = "" cmd_pass.enabled = on cmd_pass.hook = modifier cmd_pass.post_action = none -cmd_pass.regex = "==^((/(msg|m|quote) +(-server +[^ ]+ +)?nickserv +(id|identify|set +password|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+|recover +[^ ]+|setpass +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" +cmd_pass.regex = "s==^((/(msg|m|quote) +(-server +[^ \n]+ +)?nickserv +(id|identify|set +password|ghost +[^ \n]+|release +[^ \n]+|regain +[^ \n]+|recover +[^ \n]+|setpass +[^ \n]+) +)|/oper +[^ \n]+ +|/quote +pass +|/secure +(passphrase|decrypt|set +[^ \n]+) +)([^\n]*)==${re:1}${hide:*,${re:+}}" cmd_pass.return_code = ok cmd_pass_register.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth" cmd_pass_register.command = "" @@ -47,7 +46,7 @@ cmd_pass_register.conditions = "" cmd_pass_register.enabled = on cmd_pass_register.hook = modifier cmd_pass_register.post_action = none -cmd_pass_register.regex = "==^(/(msg|m|quote) +(-server +[^ ]+ +)?nickserv +register +)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}" +cmd_pass_register.regex = "s==^(/(msg|m|quote) +(-server +[^ \n]+ +)?nickserv +register +)([^ \n]+)([^\n]*)==${re:1}${hide:*,${re:4}}${re:5}" cmd_pass_register.return_code = ok greentext.arguments = "weechat_print" greentext.command = "" @@ -151,7 +150,7 @@ server_pass.conditions = "" server_pass.enabled = on server_pass.hook = modifier server_pass.post_action = none -server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}" +server_pass.regex = "s==^(/(server|connect) [^\n]*-(sasl_)?password=)([^ \n]+)([^\n]*)==${re:1}${hide:*,${re:4}}${re:5}" server_pass.return_code = ok url_color.arguments = "weechat_print" url_color.command = "" diff --git a/weechat/.weechat/typing.conf b/weechat/.weechat/typing.conf index fed8ada..46dc23d 100644 --- a/weechat/.weechat/typing.conf +++ b/weechat/.weechat/typing.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] diff --git a/weechat/.weechat/weechat.conf b/weechat/.weechat/weechat.conf index 83fc31e..7131409 100644 --- a/weechat/.weechat/weechat.conf +++ b/weechat/.weechat/weechat.conf @@ -6,9 +6,11 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # +config_version = 4 + [debug] [startup] @@ -32,22 +34,25 @@ buffer_notify_default = message buffer_position = end buffer_search_case_sensitive = off buffer_search_force_default = off +buffer_search_history = local buffer_search_regex = off buffer_search_where = prefix_message buffer_time_format = "${color:250}%H${color:lightcyan}:${color:245}%M${color:lightcyan}:${color:240}%S" buffer_time_same = "" +chat_space_right = off 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_time = on color_inactive_window = on color_nick_offline = on color_pairs_auto_reset = 5 color_real_white = off command_chars = "" command_incomplete = off +config_permissions = "600" confirm_quit = on confirm_upgrade = off day_change = on @@ -55,7 +60,9 @@ 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 = "ben" +highlight = "(?-i)ben" +highlight_disable_regex = "" +highlight_prefix = on highlight_regex = "" highlight_tags = "" hotlist_add_conditions = "${away} || ${buffer.num_displayed} == 0" @@ -69,11 +76,12 @@ hotlist_names_merged_buffers = off hotlist_prefix = "" hotlist_remove = merged hotlist_short_names = on -hotlist_sort = group_time_asc +hotlist_sort = "-priority,time,time_usec" hotlist_suffix = "" hotlist_unique_numbers = on hotlist_update_on_buffer_switch = on input_cursor_scroll = 20 +input_multiline_lead_linebreak = on input_share = none input_share_overwrite = off input_undo_max = 32 @@ -88,17 +96,15 @@ jump_smart_back_to_buffer = on key_bind_safe = on key_grab_delay = 800 mouse = on -mouse_timer_delay = 100 nick_color_force = "" nick_color_hash = djb2 nick_color_hash_salt = "" 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 +paste_max_lines = 100 prefix_action = " *" prefix_align = right prefix_align_max = 15 @@ -150,15 +156,15 @@ chat_bg = default chat_buffer = white chat_channel = white chat_day_change = cyan -chat_delimiters = green +chat_delimiters = 22 chat_highlight = yellow chat_highlight_bg = darkgray chat_host = cyan chat_inactive_buffer = default -chat_inactive_window = default +chat_inactive_window = 240 chat_nick = lightcyan chat_nick_colors = "cyan,magenta,green,brown,lightblue,lightcyan,lightgreen,blue,22,31,35,38,40,49,63,67,70,87,99,112,119,130,136,138,142,146,148,160,162,167,169,174,176,178,184,186,191,202,206,210,212,215,225,226,247" -chat_nick_offline = blue +chat_nick_offline = 242 chat_nick_offline_highlight = default chat_nick_offline_highlight_bg = blue chat_nick_other = cyan @@ -177,19 +183,22 @@ chat_prefix_suffix = 235 chat_read_marker = magenta chat_read_marker_bg = default chat_server = brown +chat_status_disabled = red +chat_status_enabled = green chat_tags = red -chat_text_found = 130 +chat_text_found = yellow chat_text_found_bg = lightmagenta chat_time = default chat_time_delimiters = brown chat_value = cyan chat_value_null = blue -emphasized = 130 -emphasized_bg = magenta +emphasized = yellow +emphasized_bg = 54 +eval_syntax_colors = "green,lightred,lightblue,lightmagenta,yellow,cyan" input_actions = lightgreen input_text_not_found = red item_away = yellow -nicklist_away = cyan +nicklist_away = 240 nicklist_group = green separator = blue status_count_highlight = magenta @@ -197,22 +206,25 @@ status_count_msg = brown status_count_other = default status_count_private = green status_data_highlight = lightmagenta -status_data_msg = 130 +status_data_msg = yellow status_data_other = default status_data_private = lightgreen status_filter = green +status_modes = default status_more = 130 status_mouse = green status_name = white -status_name_ssl = lightgreen +status_name_insecure = lightmagenta +status_name_tls = white status_nicklist_count = default -status_number = 130 +status_number = yellow status_time = default [completion] base_word_until_cursor = on +case_sensitive = on command_inline = on -default_template = "%(nicks)|%(irc_channels)|%(completion_script)" +default_template = "%(nicks)|%(irc_channels)|%(completion_script)|%(bitlbee_completion)" nick_add_space = on nick_case_sensitive = off nick_completer = ": " @@ -345,9 +357,9 @@ rootstatus.separator = off rootstatus.size = 1 rootstatus.size_max = 0 rootstatus.type = root -title.color_bg = black -title.color_bg_inactive = darkgray -title.color_delim = lightcyan +title.color_bg = 234 +title.color_bg_inactive = 232 +title.color_delim = cyan title.color_fg = default title.conditions = "" title.filling_left_right = vertical @@ -361,73 +373,263 @@ title.size = 0 title.size_max = 0 title.type = window +[custom_bar_item] + [layout] default.buffer = "core;weechat;1" -default.buffer = "perl;highmon;1" -default.window = "1;0;15;1;-;-" -default.window = "2;1;0;0;irc;tilde.#team" -default.window = "3;1;0;0;core;weechat" +default.buffer = "perl;highmon;2" +default.buffer = "python;slack.remotes;3" +default.buffer = "python;slack.remotes.#general;4" +default.buffer = "python;slack.remotes.#irc;5" +default.buffer = "python;slack.remotes.#metodo-miyagi;6" +default.buffer = "python;snote;7" +default.buffer = "python;snote-bots;8" +default.buffer = "python;snote-conn;9" +default.buffer = "python;snote-junk;10" +default.buffer = "python;snote-oper;11" +default.buffer = "relay;relay.list;12" +default.buffer = "irc;server.bitlbee;13" +default.buffer = "irc;bitlbee.&bitlbee;14" +default.buffer = "irc;bitlbee.&grouptext;15" +default.buffer = "irc;bitlbee.&hmm;16" +default.buffer = "irc;bitlbee.&SMS;17" +default.buffer = "irc;bitlbee.˜18" +default.buffer = "irc;bitlbee.#biboumi;19" +default.buffer = "irc;bitlbee.#btlgeneral;20" +default.buffer = "irc;bitlbee.#cifuzofu;21" +default.buffer = "irc;bitlbee.#conversations;22" +default.buffer = "irc;bitlbee.#ejabberd;23" +default.buffer = "irc;bitlbee.#gritty;24" +default.buffer = "irc;bitlbee.#harris;25" +default.buffer = "irc;bitlbee.#hmm;26" +default.buffer = "irc;bitlbee.#pocketdragons;27" +default.buffer = "irc;bitlbee.#soprani.ca;28" +default.buffer = "irc;bitlbee.#texto-plano;29" +default.buffer = "irc;bitlbee.#tilde.team;30" +default.buffer = "irc;bitlbee.#tilde.zone_ben;31" +default.buffer = "irc;bitlbee.#twitter_nebsirrah;32" +default.buffer = "irc;bitlbee.maddie;33" +default.buffer = "irc;bitlbee.philipp;34" +default.buffer = "irc;server.blinkenshell;35" +default.buffer = "irc;blinkenshell.#blinkenshell;36" +default.buffer = "irc;server.darwin;37" +default.buffer = "irc;darwin.#darwin;38" +default.buffer = "irc;server.ergo;39" +default.buffer = "irc;ergo.#ergo;40" +default.buffer = "irc;server.esper;41" +default.buffer = "irc;esper.#coders;42" +default.buffer = "irc;esper.#factorio;43" +default.buffer = "irc;esper.#lobby;44" +default.buffer = "irc;server.hashbang;45" +default.buffer = "irc;hashbang.#!;46" +default.buffer = "irc;hashbang.#!opers;47" +default.buffer = "irc;hashbang.#!social;48" +default.buffer = "irc;server.inspircd;49" +default.buffer = "irc;inspircd.#inspircd;50" +default.buffer = "irc;server.libera;51" +default.buffer = "irc;libera.#adventofcode;52" +default.buffer = "irc;libera.#adventofcode-spoilers;53" +default.buffer = "irc;libera.#ahti.space;54" +default.buffer = "irc;libera.##ben;55" +default.buffer = "irc;libera.#bitbot;56" +default.buffer = "irc;libera.##crime;57" +default.buffer = "irc;libera.##crustaceans;58" +default.buffer = "irc;libera.#csharp;59" +default.buffer = "irc;libera.##digbuild;60" +default.buffer = "irc;libera.#edist.ro;61" +default.buffer = "irc;libera.#fosshost;62" +default.buffer = "irc;libera.#fosshost-volunteers;63" +default.buffer = "irc;libera.#futel;64" +default.buffer = "irc;libera.#gitea;65" +default.buffer = "irc;libera.#glirc;66" +default.buffer = "irc;libera.#gopher;67" +default.buffer = "irc;libera.#ircpuzzles;68" +default.buffer = "irc;libera.#ircpuzzles-chat;69" +default.buffer = "irc;libera.#irctokens;70" +default.buffer = "irc;libera.#libera;71" +default.buffer = "irc;libera.#libera-announcements;72" +default.buffer = "irc;libera.#libera-atl;73" +default.buffer = "irc;libera.#libera-audit;74" +default.buffer = "irc;libera.#libera-beer;75" +default.buffer = "irc;libera.#libera-communities;76" +default.buffer = "irc;libera.#libera-dev;77" +default.buffer = "irc;libera.#libera-docs;78" +default.buffer = "irc;libera.#libera-dragons;79" +default.buffer = "irc;libera.#libera-eng;80" +default.buffer = "irc;libera.#libera-matrix-internal;81" +default.buffer = "irc;libera.#libera-mentoring;82" +default.buffer = "irc;libera.#libera-naughtiness;83" +default.buffer = "irc;libera.#libera-org;84" +default.buffer = "irc;libera.#libera-pac;85" +default.buffer = "irc;libera.#libera-social;86" +default.buffer = "irc;libera.#libera-spam;87" +default.buffer = "irc;libera.#libera-status;88" +default.buffer = "irc;libera.#libera-tas;89" +default.buffer = "irc;libera.#lobsters;90" +default.buffer = "irc;libera.#mastodon;91" +default.buffer = "irc;libera.##oodnet;92" +default.buffer = "irc;libera.#ovh;93" +default.buffer = "irc;libera.#pleroma;94" +default.buffer = "irc;libera.##proxmox;95" +default.buffer = "irc;libera.#snowcone;96" +default.buffer = "irc;libera.#tilde.team;97" +default.buffer = "irc;libera.#tildebot;98" +default.buffer = "irc;libera.#ubuntu-devel;99" +default.buffer = "irc;libera.#weechat;100" +default.buffer = "irc;libera.#weechat-android;101" +default.buffer = "irc;libera.#werewolf;102" +default.buffer = "irc;libera.#xeserv;103" +default.buffer = "irc;server.liberta.casa;104" +default.buffer = "irc;liberta.casa.#libcasa.info;105" +default.buffer = "irc;liberta.casa.#mods;106" +default.buffer = "irc;liberta.casa.#universe;107" +default.buffer = "irc;server.oftc;108" +default.buffer = "irc;oftc.#bitlbee;109" +default.buffer = "irc;oftc.#debian-devel;110" +default.buffer = "irc;oftc.#fish;111" +default.buffer = "irc;server.pisslocal;112" +default.buffer = "irc;pisslocal.#opers;113" +default.buffer = "irc;pisslocal.#pissnet;114" +default.buffer = "irc;pisslocal.#services;115" +default.buffer = "irc;server.sdf;116" +default.buffer = "irc;sdf.#sdf;117" +default.buffer = "irc;sdf.#spanish;118" +default.buffer = "irc;server.slashnet;119" +default.buffer = "irc;slashnet.#gtlug;120" +default.buffer = "irc;server.snoonet;121" +default.buffer = "irc;snoonet.#help;122" +default.buffer = "irc;snoonet.#personalfinance;123" +default.buffer = "irc;snoonet.#snoonet;124" +default.buffer = "irc;server.thermite;125" +default.buffer = "irc;thermite.#armbian;126" +default.buffer = "irc;thermite.#dronebl;127" +default.buffer = "irc;thermite.#lowendtalk;128" +default.buffer = "irc;thermite.#networking;129" +default.buffer = "irc;server.tilde;130" +default.buffer = "irc;tilde.#.tilde;131" +default.buffer = "irc;tilde.#adventofcode;132" +default.buffer = "irc;tilde.#allhandsactive;133" +default.buffer = "irc;tilde.#anelki;134" +default.buffer = "irc;tilde.#ascii.town;135" +default.buffer = "irc;tilde.#aussie;136" +default.buffer = "irc;tilde.#binary-counting;137" +default.buffer = "irc;tilde.#bots;138" +default.buffer = "irc;tilde.#club;139" +default.buffer = "irc;tilde.#cosmic;140" +default.buffer = "irc;tilde.#counting;141" +default.buffer = "irc;tilde.#covid19;142" +default.buffer = "irc;tilde.#ctrl-c;143" +default.buffer = "irc;tilde.#dotnet;144" +default.buffer = "irc;tilde.#earthward;145" +default.buffer = "irc;tilde.#espanol;146" +default.buffer = "irc;tilde.#fr;147" +default.buffer = "irc;tilde.#gemini;148" +default.buffer = "irc;tilde.#gopher;149" +default.buffer = "irc;tilde.#helpdesk;150" +default.buffer = "irc;tilde.#idlerpg;151" +default.buffer = "irc;tilde.#linux;152" +default.buffer = "irc;tilde.#math;153" +default.buffer = "irc;tilde.#meta;154" +default.buffer = "irc;tilde.#minecraft;155" +default.buffer = "irc;tilde.#netnews;156" +default.buffer = "irc;tilde.#nsfw;157" +default.buffer = "irc;tilde.#opers;158" +default.buffer = "irc;tilde.#rw.rs;159" +default.buffer = "irc;tilde.#secret-sudoers;160" +default.buffer = "irc;tilde.#southlondon;161" +default.buffer = "irc;tilde.#team;162" +default.buffer = "irc;tilde.#thunix;163" +default.buffer = "irc;tilde.#tilde.zone-admin;164" +default.buffer = "irc;tilde.#tildebot;165" +default.buffer = "irc;tilde.#tildenet;166" +default.buffer = "irc;tilde.#tilderadio;167" +default.buffer = "irc;tilde.#tilderadio-djs;168" +default.buffer = "irc;tilde.#tildetel;169" +default.buffer = "irc;tilde.#topm;170" +default.buffer = "irc;tilde.#town;171" +default.buffer = "irc;tilde.#vim;172" +default.buffer = "irc;tilde.#wiki;173" +default.buffer = "irc;tilde.#xinu;174" +default.buffer = "irc;tilde.#ZfA;175" +default.buffer = "irc;server.town;176" +default.buffer = "irc;town.#admins;177" +default.buffer = "irc;town.#adventofcode;178" +default.buffer = "irc;town.#announcements;179" +default.buffer = "irc;town.#bots;180" +default.buffer = "irc;town.#counting;181" +default.buffer = "irc;town.#tildetown;182" +default.window = "1;0;20;1;-;-" +default.window = "2;1;0;0;irc;tilde.#topm" +default.window = "3;1;0;0;perl;highmon" default.current = on +[buffer] + [notify] irc.server.liberta.casa = highlight -irc.server.pisslocal = none +irc.server.newnet = highlight irc.server.tilde = highlight perl.highmon = none python.listbuffer = none +python.snote = highlight +python.snote-bots = highlight +python.snote-conn = highlight +python.snote-junk = highlight [filter] irc_smart = on;*;irc_smart_filter;* markov_bitbot = on;irc.tilde.*;irc_privmsg;^,m(\s|arkov)|^\[Markov\] [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-G = "/fzf" -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" -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-ctrl-M = "/input insert \n" -meta-meta-OP = "/bar scroll buflist * b" -meta-meta-OQ = "/bar scroll buflist * e" -meta-meta2-11~ = "/bar scroll buflist * b" -meta-meta2-12~ = "/bar scroll buflist * e" -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" +backspace = "/input delete_previous_char" +ctrl-_ = "/input undo" +ctrl-a = "/input move_beginning_of_line" +ctrl-b = "/input move_previous_char" +ctrl-c,_ = "/input insert \x1F" +ctrl-c,b = "/input insert \x02" +ctrl-c,c = "/input insert \x03" +ctrl-c,i = "/input insert \x1D" +ctrl-c,o = "/input insert \x0F" +ctrl-c,v = "/input insert \x16" +ctrl-d = "/input delete_next_char" +ctrl-down = "/input history_global_next" +ctrl-e = "/input move_end_of_line" +ctrl-f = "/input move_next_char" +ctrl-f1 = "/bar scroll buflist * -100%" +ctrl-f11 = "/bar scroll nicklist * -100%" +ctrl-f12 = "/bar scroll nicklist * +100%" +ctrl-f2 = "/bar scroll buflist * +100%" +ctrl-k = "/input delete_end_of_line" +ctrl-l = "/window refresh" +ctrl-left = "/input move_previous_word" +ctrl-n = "/buffer +1" +ctrl-p = "/buffer -1" +ctrl-r = "/input search_text_here" +ctrl-right = "/input move_next_word" +ctrl-s,ctrl-u = "/allbuf /buffer set unread" +ctrl-t = "/input transpose_chars" +ctrl-u = "/input delete_beginning_of_line" +ctrl-up = "/input history_global_previous" +ctrl-w = "/input delete_previous_word_whitespace" +ctrl-x = "/buffer switch" +ctrl-y = "/input clipboard_paste" +delete = "/input delete_next_char" +down = "/input history_next" +end = "/input move_end_of_line" +f1 = "/bar scroll buflist * -100%" +f10 = "/bar scroll title * +30%" +f11 = "/bar scroll nicklist * -100%" +f12 = "/bar scroll nicklist * +100%" +f2 = "/bar scroll buflist * +100%" +f5 = "/buffer -1" +f6 = "/buffer +1" +f7 = "/window -1" +f8 = "/window +1" +f9 = "/bar scroll title * -30%" +home = "/input move_beginning_of_line" +left = "/input move_previous_char" meta-- = "/filter toggle @" -meta-/ = "/input jump_last_buffer_displayed" +meta-/ = "/buffer jump last_displayed" meta-0 = "/buffer *10" meta-1 = "/buffer *1" meta-2 = "/buffer *2" @@ -438,255 +640,223 @@ meta-6 = "/buffer *6" meta-7 = "/buffer *7" meta-8 = "/buffer *8" meta-9 = "/buffer *9" -meta-< = "/input jump_previously_visited_buffer" +meta-< = "/buffer jump prev_visited" meta-= = "/filter toggle" -meta-> = "/input jump_next_visited_buffer" +meta-> = "/buffer jump next_visited" meta-B = "/buflist toggle" meta-C = "/buffer &SMS" -meta-J = "/buffer server.libera" meta-N = "/bar toggle nicklist" -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-OP = "/bar scroll buflist * -100%" -meta-OQ = "/bar scroll buflist * +100%" -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-11^ = "/bar scroll buflist * -100%" -meta2-11~ = "/bar scroll buflist * -100%" -meta2-12^ = "/bar scroll buflist * +100%" -meta2-12~ = "/bar scroll buflist * +100%" -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;3P = "/bar scroll buflist * b" -meta2-1;3Q = "/bar scroll buflist * e" -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;5P = "/bar scroll buflist * -100%" -meta2-1;5Q = "/bar scroll buflist * +100%" -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;5~ = "/bar scroll nicklist * -100%" -meta2-23^ = "/bar scroll nicklist * -100%" -meta2-23~ = "/bar scroll nicklist * -100%" -meta2-24;3~ = "/bar scroll nicklist * e" -meta2-24;5~ = "/bar scroll nicklist * +100%" -meta2-24^ = "/bar scroll nicklist * +100%" -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-R = "/input delete_input" +meta-T = "/buffer server.libera" meta-_ = "/input redo" -meta-a = "/input jump_smart" +meta-a = "/buffer jump smart" meta-b = "/input move_previous_word" +meta-backspace = "/input delete_previous_word" meta-c = "/buffer &bitlbee" +meta-ctrl-k = "/input delete_end_of_input" +meta-ctrl-u = "/input delete_beginning_of_input" meta-d = "/input delete_next_word" +meta-down = "/buffer +1" +meta-end = "/window scroll_bottom" meta-f = "/input move_next_word" +meta-f1 = "/bar scroll buflist * b" +meta-f11 = "/bar scroll nicklist * b" +meta-f12 = "/bar scroll nicklist * e" +meta-f2 = "/bar scroll buflist * e" meta-g = "/go" -meta-hmeta-R = "/input hotlist_restore_all" -meta-hmeta-c = "/input hotlist_clear" -meta-hmeta-m = "/input hotlist_remove_buffer" -meta-hmeta-r = "/input hotlist_restore_buffer" -meta-j = "/buffer server.tilde" -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-h,meta-R = "/hotlist restore -all" +meta-h,meta-c = "/hotlist clear" +meta-h,meta-m = "/hotlist remove" +meta-h,meta-r = "/hotlist restore" +meta-home = "/window scroll_top" +meta-j,0,1 = "/buffer *1" +meta-j,0,2 = "/buffer *2" +meta-j,0,3 = "/buffer *3" +meta-j,0,4 = "/buffer *4" +meta-j,0,5 = "/buffer *5" +meta-j,0,6 = "/buffer *6" +meta-j,0,7 = "/buffer *7" +meta-j,0,8 = "/buffer *8" +meta-j,0,9 = "/buffer *9" +meta-j,1,0 = "/buffer *10" +meta-j,1,1 = "/buffer *11" +meta-j,1,2 = "/buffer *12" +meta-j,1,3 = "/buffer *13" +meta-j,1,4 = "/buffer *14" +meta-j,1,5 = "/buffer *15" +meta-j,1,6 = "/buffer *16" +meta-j,1,7 = "/buffer *17" +meta-j,1,8 = "/buffer *18" +meta-j,1,9 = "/buffer *19" +meta-j,2,0 = "/buffer *20" +meta-j,2,1 = "/buffer *21" +meta-j,2,2 = "/buffer *22" +meta-j,2,3 = "/buffer *23" +meta-j,2,4 = "/buffer *24" +meta-j,2,5 = "/buffer *25" +meta-j,2,6 = "/buffer *26" +meta-j,2,7 = "/buffer *27" +meta-j,2,8 = "/buffer *28" +meta-j,2,9 = "/buffer *29" +meta-j,3,0 = "/buffer *30" +meta-j,3,1 = "/buffer *31" +meta-j,3,2 = "/buffer *32" +meta-j,3,3 = "/buffer *33" +meta-j,3,4 = "/buffer *34" +meta-j,3,5 = "/buffer *35" +meta-j,3,6 = "/buffer *36" +meta-j,3,7 = "/buffer *37" +meta-j,3,8 = "/buffer *38" +meta-j,3,9 = "/buffer *39" +meta-j,4,0 = "/buffer *40" +meta-j,4,1 = "/buffer *41" +meta-j,4,2 = "/buffer *42" +meta-j,4,3 = "/buffer *43" +meta-j,4,4 = "/buffer *44" +meta-j,4,5 = "/buffer *45" +meta-j,4,6 = "/buffer *46" +meta-j,4,7 = "/buffer *47" +meta-j,4,8 = "/buffer *48" +meta-j,4,9 = "/buffer *49" +meta-j,5,0 = "/buffer *50" +meta-j,5,1 = "/buffer *51" +meta-j,5,2 = "/buffer *52" +meta-j,5,3 = "/buffer *53" +meta-j,5,4 = "/buffer *54" +meta-j,5,5 = "/buffer *55" +meta-j,5,6 = "/buffer *56" +meta-j,5,7 = "/buffer *57" +meta-j,5,8 = "/buffer *58" +meta-j,5,9 = "/buffer *59" +meta-j,6,0 = "/buffer *60" +meta-j,6,1 = "/buffer *61" +meta-j,6,2 = "/buffer *62" +meta-j,6,3 = "/buffer *63" +meta-j,6,4 = "/buffer *64" +meta-j,6,5 = "/buffer *65" +meta-j,6,6 = "/buffer *66" +meta-j,6,7 = "/buffer *67" +meta-j,6,8 = "/buffer *68" +meta-j,6,9 = "/buffer *69" +meta-j,7,0 = "/buffer *70" +meta-j,7,1 = "/buffer *71" +meta-j,7,2 = "/buffer *72" +meta-j,7,3 = "/buffer *73" +meta-j,7,4 = "/buffer *74" +meta-j,7,5 = "/buffer *75" +meta-j,7,6 = "/buffer *76" +meta-j,7,7 = "/buffer *77" +meta-j,7,8 = "/buffer *78" +meta-j,7,9 = "/buffer *79" +meta-j,8,0 = "/buffer *80" +meta-j,8,1 = "/buffer *81" +meta-j,8,2 = "/buffer *82" +meta-j,8,3 = "/buffer *83" +meta-j,8,4 = "/buffer *84" +meta-j,8,5 = "/buffer *85" +meta-j,8,6 = "/buffer *86" +meta-j,8,7 = "/buffer *87" +meta-j,8,8 = "/buffer *88" +meta-j,8,9 = "/buffer *89" +meta-j,9,0 = "/buffer *90" +meta-j,9,1 = "/buffer *91" +meta-j,9,2 = "/buffer *92" +meta-j,9,3 = "/buffer *93" +meta-j,9,4 = "/buffer *94" +meta-j,9,5 = "/buffer *95" +meta-j,9,6 = "/buffer *96" +meta-j,9,7 = "/buffer *97" +meta-j,9,8 = "/buffer *98" +meta-j,9,9 = "/buffer *99" +meta-j,meta-f = "/buffer -" +meta-j,meta-l = "/buffer +" +meta-j,meta-r = "/server raw" +meta-j,meta-s = "/server jump" meta-k = "/input grab_key_command" meta-l = "/window bare" +meta-left = "/buffer -1" meta-m = "/mute mouse toggle" meta-n = "/window scroll_next_highlight" meta-p = "/window scroll_previous_highlight" +meta-pgdn = "/window scroll_down" +meta-pgup = "/window scroll_up" meta-r = "/input delete_line" +meta-return = "/input insert \n" +meta-right = "/buffer +1" meta-s = "/mute spell toggle" +meta-t = "/buffer server.tilde" 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-up = "/buffer -1" +meta-w,meta-b = "/window balance" +meta-w,meta-down = "/window down" +meta-w,meta-left = "/window left" +meta-w,meta-right = "/window right" +meta-w,meta-s = "/window swap" +meta-w,meta-up = "/window up" +meta-x = "/buffer zoom" meta-z = "/window zoom" -ctrl-_ = "/input undo" +pgdn = "/window page_down" +pgup = "/window page_up" +return = "/input return" +right = "/input move_next_char" +shift-down = "/input move_next_line" +shift-end = "/input move_end_of_input" +shift-home = "/input move_beginning_of_input" +shift-left = "/input move_previous_char" +shift-right = "/input move_next_char" +shift-tab = "/input complete_previous" +shift-up = "/input move_previous_line" +tab = "/input complete_next" +up = "/input history_previous" [key_search] -ctrl-I = "/input search_switch_where" -ctrl-J = "/input search_stop" -ctrl-M = "/input search_stop" -ctrl-Q = "/input search_stop" -ctrl-R = "/input search_switch_regex" -meta2-A = "/input search_previous" -meta2-B = "/input search_next" +ctrl-q = "/input search_stop" +ctrl-r = "/input search_switch_regex" +down = "/input search_next" meta-c = "/input search_switch_case" +return = "/input search_stop_here" +tab = "/input search_switch_where" +up = "/input search_previous" + +[key_histsearch] +ctrl-o = "/input history_use_get_next" +ctrl-q = "/input search_stop" +ctrl-r = "/input search_previous" +ctrl-s = "/input search_next" +ctrl-x = "/input search_switch_regex" +down = "/input search_next" +meta-c = "/input search_switch_case" +return = "/input search_stop_here" +tab = "/input search_switch_where" +up = "/input search_previous" [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" @chat(python.*):D = "hsignal:slack_cursor_delete" @chat(python.*):L = "hsignal:slack_cursor_linkarchive" @chat(python.*):M = "hsignal:slack_cursor_message" @chat(python.*):R = "hsignal:slack_cursor_reply" @chat(python.*):T = "hsignal:slack_cursor_thread" +@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop" +@chat:l = "hsignal:chat_quote_focused_line;/cursor stop" +@chat:m = "hsignal:chat_quote_message;/cursor stop" +@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop" @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" +down = "/cursor move down" +left = "/cursor move left" +meta-down = "/cursor move area_down" +meta-left = "/cursor move area_left" +meta-right = "/cursor move area_right" +meta-up = "/cursor move area_up" +return = "/cursor stop" +right = "/cursor move right" +up = "/cursor move up" [key_mouse] +@*:button3 = "/cursor go ${_x},${_y}" @bar(buflist):ctrl-wheeldown = "hsignal:buflist_mouse" @bar(buflist):ctrl-wheelup = "hsignal:buflist_mouse" @bar(input):button2 = "/input grab_mouse_area" @@ -694,19 +864,30 @@ meta2-D = "/cursor move left" @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" +@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%" +@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%" @chat(fset.fset):button1 = "/window ${_window_number};/fset -go ${_chat_line_y}" @chat(fset.fset):button2* = "hsignal:fset_mouse" @chat(fset.fset):wheeldown = "/fset -down 5" @chat(fset.fset):wheelup = "/fset -up 5" -@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(irc.list_*):button1 = "/window ${_window_number};/list -go ${_chat_line_y}" +@chat(irc.list_*):button2* = "hsignal:irc_list_mouse" +@chat(irc.list_*):wheeldown = "/list -down 5" +@chat(irc.list_*):wheelup = "/list -up 5" @chat(python.*):button2 = "hsignal:slack_mouse" @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" +@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};/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}" @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}" @@ -718,15 +899,7 @@ meta2-D = "/cursor move left" @item(buflist2):button2* = "hsignal:buflist_mouse" @item(buflist3):button1* = "hsignal:buflist_mouse" @item(buflist3):button2* = "hsignal:buflist_mouse" -@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}" +@item(buflist4):button1* = "hsignal:buflist_mouse" +@item(buflist4):button2* = "hsignal:buflist_mouse" +@item(buflist5):button1* = "hsignal:buflist_mouse" +@item(buflist5):button2* = "hsignal:buflist_mouse" diff --git a/weechat/.weechat/xfer.conf b/weechat/.weechat/xfer.conf index 63efc61..1bbf8d9 100644 --- a/weechat/.weechat/xfer.conf +++ b/weechat/.weechat/xfer.conf @@ -6,7 +6,7 @@ # # Use commands like /set or /fset to change settings in WeeChat. # -# For more info, see: https://weechat.org/doc/quickstart/ +# For more info, see: https://weechat.org/doc/weechat/quickstart/ # [look] @@ -17,7 +17,7 @@ pv_tags = "notify_private" [color] status_aborted = lightred status_active = lightblue -status_connecting = 130 +status_connecting = yellow status_done = lightgreen status_failed = lightred status_waiting = lightcyan @@ -28,7 +28,7 @@ text_selected = white [network] blocksize = 65536 fast_send = on -own_ip = "167.114.7.65" +own_ip = "198.108.77.243" port_range = "42069" send_ack = on speed_limit_recv = 0