summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core.py3
-rw-r--r--src/plugin_manager.py16
2 files changed, 15 insertions, 4 deletions
diff --git a/src/core.py b/src/core.py
index 719d0f56..b2f5a398 100644
--- a/src/core.py
+++ b/src/core.py
@@ -2032,6 +2032,9 @@ class Core(object):
elif option == 'plugins_dir':
path = os.path.expanduser(value)
self.plugin_manager.on_plugins_dir_change(path)
+ elif option == 'plugins_conf_dir':
+ path = os.path.expanduser(value)
+ self.plugin_manager.on_plugins_conf_dir_change(path)
self.call_for_resize()
self.information(info, "Info")
diff --git a/src/plugin_manager.py b/src/plugin_manager.py
index 5f848ec2..a8c651e9 100644
--- a/src/plugin_manager.py
+++ b/src/plugin_manager.py
@@ -25,10 +25,13 @@ plugins_dir = plugins_dir or\
'poezio', 'plugins')
plugins_dir = os.path.expanduser(plugins_dir)
-config_home = os.environ.get("XDG_CONFIG_HOME")
-if not config_home:
- config_home = os.path.join(os.environ.get('HOME'), '.config')
-plugins_conf_dir = os.path.join(config_home, 'poezio', 'plugins')
+plugins_conf_dir = config.get('plugins_conf_dir', '')
+if not plugins_conf_dir:
+ config_home = os.environ.get('XDG_CONFIG_HOME')
+ if not config_home:
+ config_home = os.path.join(os.environ.get('HOME'), '.config')
+ plugins_conf_dir = os.path.join(config_home, 'poezio', 'plugins')
+plugins_conf_dir = os.path.expanduser(plugins_conf_dir)
try:
os.makedirs(plugins_dir)
@@ -39,6 +42,7 @@ try:
os.makedirs(plugins_conf_dir)
except OSError:
pass
+
default_plugin_path = path.join(path.dirname(path.dirname(__file__)), 'plugins')
sys.path.append(default_plugin_path)
@@ -283,3 +287,7 @@ class PluginManager(object):
sys.path.remove(plugins_dir)
sys.path.append(new_value)
plugins_dir = new_value
+
+ def on_plugins_conf_dir_change(self, new_value):
+ global plugins_conf_dir
+ plugins_conf_dir = new_value