X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/8c794ed6ed5364ef9c50454ad6c3aedf98bee718..6daeefa282d1077adb5ac915cd289beca94e873b:/weechat/python/buffer_autoset.py diff --git a/weechat/python/buffer_autoset.py b/weechat/python/buffer_autoset.py index 305bd6b..38dbc4b 100644 --- a/weechat/python/buffer_autoset.py +++ b/weechat/python/buffer_autoset.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2010-2015 Sébastien Helleu +# 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 @@ -22,6 +22,10 @@ # # 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 : @@ -46,11 +50,11 @@ SCRIPT_NAME = "buffer_autoset" SCRIPT_AUTHOR = "Sébastien Helleu " -SCRIPT_VERSION = "0.9" +SCRIPT_VERSION = "1.1" SCRIPT_LICENSE = "GPL3" SCRIPT_DESC = "Auto-set buffer properties when a buffer is opened" -SCRIPT_COMMAND = "autosetbuffer" +SCRIPT_COMMAND = SCRIPT_NAME import_ok = True @@ -143,7 +147,7 @@ def bas_config_write(): # ================================[ command ]================================= def bas_cmd(data, buffer, args): - """Callback for /autosetbuffer command.""" + """Callback for /buffer_autoset command.""" args = args.strip() if args == "": weechat.command("", "/set %s.buffer.*" % CONFIG_FILE_NAME) @@ -172,7 +176,7 @@ def bas_completion_current_buffer_cb(data, completion_item, buffer, completion): """ Complete with current buffer name (plugin.name), - for command '/autosetbuffer'. + for command '/buffer_autoset'. """ name = "%s.%s" % (weechat.buffer_get_string(buffer, "plugin"), weechat.buffer_get_string(buffer, "name")) @@ -182,7 +186,7 @@ def bas_completion_current_buffer_cb(data, completion_item, buffer, def bas_completion_options_cb(data, completion_item, buffer, completion): - """Complete with config options, for command '/autosetbuffer'.""" + """Complete with config options, for command '/buffer_autoset'.""" options = weechat.infolist_get("option", "", "%s.buffer.*" % CONFIG_FILE_NAME) if options: @@ -240,11 +244,12 @@ def bas_signal_buffer_opened_cb(data, signal, signal_data): 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 + if not weechat.config_get(option): # option was deleted return weechat.WEECHAT_RC_OK option = option[len("%s.buffer." % CONFIG_FILE_NAME):] @@ -267,6 +272,7 @@ def bas_config_option_cb(data, option, value): return weechat.WEECHAT_RC_OK + # ==================================[ main ]================================== if __name__ == "__main__" and import_ok: @@ -324,8 +330,13 @@ if __name__ == "__main__" and import_ok: weechat.hook_config("%s.buffer.*" % CONFIG_FILE_NAME, "bas_config_option_cb", "") - # core buffer is already open on script startup, check manually! - bas_signal_buffer_opened_cb("", "", weechat.buffer_search_main()) + # 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 ]===================================