@@ -0,0 +1,50 @@
1+diff --git a/applicationsUtils.js b/applicationsUtils.js
2+index 728223b..aa9f291 100644
3+--- a/applicationsUtils.js
4++++ b/applicationsUtils.js
5+@@ -44,27 +44,24 @@ var Search = new Lang.Class({
6+ * @return {Void}
7+ */
8+ _init: function () {
9+- let dir = [
10+- "/usr/share/applications",
11+- GLib.get_home_dir() + "/.local/share/applications",
12+- ];
13+-
14+- // listen object - file/monitor list
15+- this._listen = dir.map((path) => {
16+- let file = Gio.File.new_for_path(path);
17+- let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null);
18+-
19+- // refresh on each directory change
20+- monitor.connect(
21+- "changed",
22+- Lang.bind(this, this._handleMonitorChanged)
23+- );
24+-
25+- return {
26+- file: file,
27+- monitor: monitor,
28+- };
29+- });
30++ this._listen = [...new Set(GLib.get_system_data_dirs())]
31++ .filter((path) => path.endsWith("/share"))
32++ .map((path) => Gio.File.new_for_path(path + "/applications"))
33++ .filter((file) => file.query_exists(null))
34++ .map((file) => {
35++ let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null);
36++
37++ // refresh on each directory change
38++ monitor.connect(
39++ "changed",
40++ Lang.bind(this, this._handleMonitorChanged)
41++ );
42++
43++ return {
44++ file: file,
45++ monitor: monitor,
46++ };
47++ });
48+ this._interval = null;
49+ this._data = {};
50+