From f5871ef77cc0d4157a0cde6947612636f58afd2f Mon Sep 17 00:00:00 2001 From: Malte Brandy Date: Tue, 9 Nov 2021 18:02:34 +0100 Subject: [PATCH] Update Weechat config --- home-manager/roles/weechat/default.nix | 13 +- .../plugins/python/autoload/buffer_autoset.py | 1 - .../weechat/plugins/python/buffer_autoset.py | 350 ------------------ 3 files changed, 2 insertions(+), 362 deletions(-) delete mode 120000 home-manager/roles/weechat/plugins/python/autoload/buffer_autoset.py delete mode 100644 home-manager/roles/weechat/plugins/python/buffer_autoset.py diff --git a/home-manager/roles/weechat/default.nix b/home-manager/roles/weechat/default.nix index 79ca944e..5405f923 100644 --- a/home-manager/roles/weechat/default.nix +++ b/home-manager/roles/weechat/default.nix @@ -22,17 +22,6 @@ in target = ".weechat/perl"; source = ./plugins/perl; }; - buffer_autoset = { - target = ".weechat/buffer_autoset.conf"; - text = '' - [look] - timer = 1000 - - [buffer] - python.maralorn.de.*.highlight_words = "" - python.maralorn.de.*.highlight_regex = ".*maralorn([^\.].*|\.|\.[^d].*|)$" - ''; - }; buflist = { target = ".weechat/buflist.conf"; text = '' @@ -46,6 +35,8 @@ in [look] buffer_notify_default = "highlight" jump_current_to_previous_buffer = off + highlight_words = "" + highlight_regex = ".*maralorn([^\.].*|\.|\.[^d].*|)$" [key] meta-g = "/go" diff --git a/home-manager/roles/weechat/plugins/python/autoload/buffer_autoset.py b/home-manager/roles/weechat/plugins/python/autoload/buffer_autoset.py deleted file mode 120000 index cdcf0db3..00000000 --- a/home-manager/roles/weechat/plugins/python/autoload/buffer_autoset.py +++ /dev/null @@ -1 +0,0 @@ -../buffer_autoset.py \ No newline at end of file diff --git a/home-manager/roles/weechat/plugins/python/buffer_autoset.py b/home-manager/roles/weechat/plugins/python/buffer_autoset.py deleted file mode 100644 index 38dbc4b7..00000000 --- a/home-manager/roles/weechat/plugins/python/buffer_autoset.py +++ /dev/null @@ -1,350 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2010-2017 Sébastien Helleu -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -# -# Auto-set buffer properties when a buffer is opened. -# (this script requires WeeChat 1.0 or newer) -# -# History: -# -# 2018-04-14, Kim B. Heino: -# version 1.1: on startup apply settings to already opened buffers -# 2017-06-21, Sébastien Helleu : -# version 1.0: rename command /autosetbuffer to /buffer_autoset -# 2015-09-28, Simmo Saan : -# version 0.9: instantly apply properties -# 2015-07-12, Sébastien Helleu : -# version 0.8: add option buffer_autoset.look.timer to add a small timer -# before setting buffer properties -# 2015-04-05, Nils Görs : -# version 0.7: increase priority of hook_signal('buffer_opened') -# 2012-12-09, Nils Görs : -# version 0.6: add support of core buffer -# 2012-03-09, Sébastien Helleu : -# version 0.5: fix reload of config file -# 2012-01-03, Sébastien Helleu : -# version 0.4: make script compatible with Python 3.x -# 2010-12-02, Sébastien Helleu : -# version 0.3: "no_highlight_nicks" replaced by "hotlist_max_level_nicks" -# 2010-10-11, Sébastien Helleu : -# version 0.2: add example in /help autosetbuffer with new buffer -# property "no_highlight_nicks" -# 2010-04-19, Sébastien Helleu : -# version 0.1: initial release -# - -SCRIPT_NAME = "buffer_autoset" -SCRIPT_AUTHOR = "Sébastien Helleu " -SCRIPT_VERSION = "1.1" -SCRIPT_LICENSE = "GPL3" -SCRIPT_DESC = "Auto-set buffer properties when a buffer is opened" - -SCRIPT_COMMAND = SCRIPT_NAME - -import_ok = True - -try: - import weechat -except ImportError: - print("This script must be run under WeeChat.") - print("Get WeeChat now at: http://www.weechat.org/") - import_ok = False - -CONFIG_FILE_NAME = "buffer_autoset" - -# config file / options -bas_config_file = "" -bas_options = {} - - -# =================================[ config ]================================= - -def bas_config_init(): - """ - Initialization of configuration file. - Sections: buffer. - """ - global bas_config_file, bas_options - bas_config_file = weechat.config_new(CONFIG_FILE_NAME, - "bas_config_reload_cb", "") - if bas_config_file == "": - return - - # section "look" - section_look = weechat.config_new_section( - bas_config_file, "look", 0, 0, "", "", "", "", "", "", "", "", "", "") - if not section_look: - weechat.config_free(bas_config_file) - return - - # options in section "look" - bas_options["look_timer"] = weechat.config_new_option( - bas_config_file, section_look, "timer", "integer", - "Timer used to delay the set of properties (in milliseconds, " - "0 = don't use a timer)", - "", 0, 2147483647, "1", "1", 0, "", "", "", "", "", "") - - bas_options["look_instant"] = weechat.config_new_option( - bas_config_file, section_look, "instant", "boolean", - "Instantly apply properties to buffers affected", - "", 0, 0, "on", "on", 0, "", "", "", "", "", "") - - # section "buffer" - section_buffer = weechat.config_new_section( - bas_config_file, "buffer", 1, 1, "", "", "", "", "", "", - "bas_config_buffer_create_option_cb", "", "", "") - if not section_buffer: - weechat.config_free(bas_config_file) - return - - -def bas_config_buffer_create_option_cb(data, config_file, section, option_name, - value): - option = weechat.config_search_option(config_file, section, option_name) - if option: - return weechat.config_option_set(option, value, 1) - else: - option = weechat.config_new_option(config_file, section, option_name, - "string", "", "", 0, 0, "", - value, 0, "", "", "", "", "", "") - if not option: - return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR - return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE - - -def bas_config_reload_cb(data, config_file): - """Reload configuration file.""" - return weechat.config_reload(config_file) - - -def bas_config_read(): - """Read configuration file.""" - global bas_config_file - return weechat.config_read(bas_config_file) - - -def bas_config_write(): - """Write configuration file.""" - global bas_config_file - return weechat.config_write(bas_config_file) - - -# ================================[ command ]================================= - -def bas_cmd(data, buffer, args): - """Callback for /buffer_autoset command.""" - args = args.strip() - if args == "": - weechat.command("", "/set %s.buffer.*" % CONFIG_FILE_NAME) - return weechat.WEECHAT_RC_OK - argv = args.split(None, 3) - if len(argv) > 0: - if argv[0] == "add": - if len(argv) < 4: - weechat.command("", "/help %s" % SCRIPT_COMMAND) - return weechat.WEECHAT_RC_OK - weechat.command("", "/set %s.buffer.%s.%s \"%s\"" - % (CONFIG_FILE_NAME, argv[1], argv[2], argv[3])) - elif argv[0] == "del": - if len(argv) < 2: - weechat.command("", "/help %s" % SCRIPT_COMMAND) - return weechat.WEECHAT_RC_OK - weechat.command("", "/unset %s.buffer.%s" - % (CONFIG_FILE_NAME, argv[1])) - else: - weechat.command("", "/help %s" % SCRIPT_COMMAND) - return weechat.WEECHAT_RC_OK - return weechat.WEECHAT_RC_OK - - -def bas_completion_current_buffer_cb(data, completion_item, buffer, - completion): - """ - Complete with current buffer name (plugin.name), - for command '/buffer_autoset'. - """ - name = "%s.%s" % (weechat.buffer_get_string(buffer, "plugin"), - weechat.buffer_get_string(buffer, "name")) - weechat.hook_completion_list_add(completion, name, - 0, weechat.WEECHAT_LIST_POS_BEGINNING) - return weechat.WEECHAT_RC_OK - - -def bas_completion_options_cb(data, completion_item, buffer, completion): - """Complete with config options, for command '/buffer_autoset'.""" - options = weechat.infolist_get("option", "", - "%s.buffer.*" % CONFIG_FILE_NAME) - if options: - while weechat.infolist_next(options): - weechat.hook_completion_list_add( - completion, - weechat.infolist_string(options, "option_name"), - 0, weechat.WEECHAT_LIST_POS_SORT) - weechat.infolist_free(options) - return weechat.WEECHAT_RC_OK - - -# ==========================[ timer/signal/option ]=========================== - -def bas_apply_options_for_buffer(buffer): - full_name = weechat.buffer_get_string(buffer, "full_name") - options = weechat.infolist_get("option", "", - "%s.buffer.*" % CONFIG_FILE_NAME) - if not options: - return - - while weechat.infolist_next(options): - option = weechat.infolist_string(options, "option_name") - value = weechat.infolist_string(options, "value") - if option: - pos = option.rfind(".") - if pos > 0: - buffer_mask = option[0:pos] - property = option[pos+1:] - if buffer_mask and property: - if weechat.string_match(full_name, buffer_mask, 1): - weechat.buffer_set(buffer, property, value) - - weechat.infolist_free(options) - - -def bas_timer_buffer_opened_cb(data, remaining_calls): - full_name = data - buffer = weechat.buffer_search("==", full_name) - if not buffer: - return weechat.WEECHAT_RC_OK - bas_apply_options_for_buffer(buffer) - return weechat.WEECHAT_RC_OK - - -def bas_signal_buffer_opened_cb(data, signal, signal_data): - global bas_options - buffer = signal_data - timer = weechat.config_integer(bas_options["look_timer"]) - if timer == 0: - bas_apply_options_for_buffer(buffer) - else: - weechat.hook_timer(timer, 0, 1, - "bas_timer_buffer_opened_cb", - weechat.buffer_get_string(buffer, "full_name")) - return weechat.WEECHAT_RC_OK - - -def bas_config_option_cb(data, option, value): - if not weechat.config_boolean(bas_options["look_instant"]): - return weechat.WEECHAT_RC_OK - - if not weechat.config_get(option): # option was deleted - return weechat.WEECHAT_RC_OK - - option = option[len("%s.buffer." % CONFIG_FILE_NAME):] - - pos = option.rfind(".") - if pos > 0: - buffer_mask = option[0:pos] - property = option[pos+1:] - if buffer_mask and property: - buffers = weechat.infolist_get("buffer", "", buffer_mask) - - if not buffers: - return weechat.WEECHAT_RC_OK - - while weechat.infolist_next(buffers): - buffer = weechat.infolist_pointer(buffers, "pointer") - weechat.buffer_set(buffer, property, value) - - weechat.infolist_free(buffers) - - return weechat.WEECHAT_RC_OK - - -# ==================================[ main ]================================== - -if __name__ == "__main__" and import_ok: - if weechat.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, - SCRIPT_LICENSE, SCRIPT_DESC, "bas_unload_script", ""): - version = weechat.info_get("version_number", "") or 0 - if int(version) < 0x01000000: - weechat.prnt("", "%s%s: WeeChat 1.0 is required for this script." - % (weechat.prefix("error"), SCRIPT_NAME)) - else: - bas_config_init() - bas_config_read() - weechat.hook_command( - SCRIPT_COMMAND, - "Auto-set buffer properties when a buffer is opened", - "[add buffer property value] | [del option]", - " add: add a buffer/property/value in configuration file\n" - " del: delete an option from configuration file\n" - " buffer: name of a buffer (can start or end with \"*\" as " - "wildcard)\n" - "property: buffer property\n" - " value: value for property\n" - " option: name of option from configuration file\n\n" - "Examples:\n" - " disable timestamp on channel #weechat:\n" - " /" + SCRIPT_COMMAND + " add irc.freenode.#weechat " - "time_for_each_line 0\n" - " add word \"weechat\" in highlight list on channel " - "#savannah:\n" - " /" + SCRIPT_COMMAND + " add irc.freenode.#savannah " - "highlight_words_add weechat\n" - " disable highlights from nick \"mike\" on freenode server, " - "channel #weechat (requires WeeChat >= 0.3.4):\n" - " /" + SCRIPT_COMMAND + " add irc.freenode.#weechat " - "hotlist_max_level_nicks_add mike:2\n" - " disable hotlist changes for nick \"bot\" on freenode " - "server (all channels) (requires WeeChat >= 0.3.4):\n" - " /" + SCRIPT_COMMAND + " add irc.freenode.* " - "hotlist_max_level_nicks_add bot:-1", - "add %(buffers_plugins_names)|" - "%(buffer_autoset_current_buffer) " - "%(buffer_properties_set)" - " || del %(buffer_autoset_options)", - "bas_cmd", "") - weechat.hook_completion( - "buffer_autoset_current_buffer", - "current buffer name for buffer_autoset", - "bas_completion_current_buffer_cb", "") - weechat.hook_completion( - "buffer_autoset_options", - "list of options for buffer_autoset", - "bas_completion_options_cb", "") - weechat.hook_signal("9000|buffer_opened", - "bas_signal_buffer_opened_cb", "") - weechat.hook_config("%s.buffer.*" % CONFIG_FILE_NAME, - "bas_config_option_cb", "") - - # apply settings to all already opened buffers - buffers = weechat.infolist_get("buffer", "", "") - if buffers: - while weechat.infolist_next(buffers): - buffer = weechat.infolist_pointer(buffers, "pointer") - bas_signal_buffer_opened_cb("", "", buffer) - weechat.infolist_free(buffers) - - -# ==================================[ end ]=================================== - -def bas_unload_script(): - """ Function called when script is unloaded. """ - global bas_config_file - - if bas_config_file: - bas_config_write() - return weechat.WEECHAT_RC_OK