diff --git a/lib/PlugsManager.vala b/lib/PlugsManager.vala index 4ca6e71c..d19be705 100644 --- a/lib/PlugsManager.vala +++ b/lib/PlugsManager.vala @@ -36,8 +36,23 @@ public class Switchboard.PlugsManager : GLib.Object { private PlugsManager () { plugs = new Gee.LinkedList (); - var base_folder = File.new_for_path (Build.PLUGS_DIR); - find_plugins (base_folder); + + string[] prefixes = { + "/usr", + "/usr/local" + }; + string[] plugin_paths = {}; + foreach (unowned string prefix in prefixes) { + var plugin_dir = Path.build_filename (prefix, Build.LIB_DIR, "switchboard-3") + "/"; + if (FileUtils.test (plugin_dir, FileTest.EXISTS)) { + debug ("Found plugin directory: %s", plugin_dir); + plugin_paths += plugin_dir ; + } + } + + foreach (unowned string path in plugin_paths) { + find_plugins (File.new_for_path (path)); + } } private void load (string path) { diff --git a/lib/config.vapi b/lib/config.vapi index cdbd47e4..2613d9f6 100644 --- a/lib/config.vapi +++ b/lib/config.vapi @@ -1,4 +1,5 @@ [CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "config.h")] namespace Build { public const string PLUGS_DIR; + public const string LIB_DIR; } diff --git a/lib/meson.build b/lib/meson.build index 5f5f733e..5f1454b8 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -2,6 +2,7 @@ config_vapi = meson.get_compiler('vala').find_library('config', dirs: meson.curr config_data = configuration_data() config_data.set_quoted('PLUGS_DIR', plugs_dir) +config_data.set_quoted('LIB_DIR', get_option('libdir')) config_header = configure_file( configuration: config_data,