diff --git a/applicationsUtils.js b/applicationsUtils.js index 728223b..aa9f291 100644 --- a/applicationsUtils.js +++ b/applicationsUtils.js @@ -44,27 +44,24 @@ var Search = new Lang.Class({ * @return {Void} */ _init: function () { - let dir = [ - "/usr/share/applications", - GLib.get_home_dir() + "/.local/share/applications", - ]; - - // listen object - file/monitor list - this._listen = dir.map((path) => { - let file = Gio.File.new_for_path(path); - let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null); - - // refresh on each directory change - monitor.connect( - "changed", - Lang.bind(this, this._handleMonitorChanged) - ); - - return { - file: file, - monitor: monitor, - }; - }); + this._listen = [...new Set(GLib.get_system_data_dirs())] + .filter((path) => path.endsWith("/share")) + .map((path) => Gio.File.new_for_path(path + "/applications")) + .filter((file) => file.query_exists(null)) + .map((file) => { + let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null); + + // refresh on each directory change + monitor.connect( + "changed", + Lang.bind(this, this._handleMonitorChanged) + ); + + return { + file: file, + monitor: monitor, + }; + }); this._interval = null; this._data = {};