diff --git a/app/createThumbnail.js b/app/createThumbnail.js
index 56875b5..3216e79 100755
--- a/app/createThumbnail.js
+++ b/app/createThumbnail.js
@@ -1,4 +1,4 @@
-#!/usr/bin/gjs
+#!@gjs@/bin/gjs
 
 /* DING: Desktop Icons New Generation for GNOME Shell
  *
diff --git a/app/ding.js b/app/ding.js
index 6bf7309..923e0b6 100755
--- a/app/ding.js
+++ b/app/ding.js
@@ -1,4 +1,4 @@
-#!/usr/bin/env gjs
+#!@gjs@/bin/gjs

 /* DING: Desktop Icons New Generation for GNOME Shell
  *
diff --git a/app/fileItemMenu.js b/app/fileItemMenu.js
index 4fae9ef..5127eff 100644
--- a/app/fileItemMenu.js
+++ b/app/fileItemMenu.js
@@ -520,7 +520,7 @@ var FileItemMenu = class {
             return;
         }
         let xdgEmailCommand = [];
-        xdgEmailCommand.push('xdg-email');
+        xdgEmailCommand.push('@xdg_utils@/bin/xdg-email');
         for (let fileItem of this._desktopManager.getCurrentSelection(false)) {
             fileItem.unsetSelected();
             xdgEmailCommand.push('--attach');
diff --git a/app/preferences.js b/app/preferences.js
index 94ec3c7..823dd5c 100644
--- a/app/preferences.js
+++ b/app/preferences.js
@@ -46,9 +46,11 @@ var prefsWindow;
  */
 function init(path) {
     const schemaSource = GioSSS.get_default();
-    const schemaGtk = schemaSource.lookup(Enums.SCHEMA_GTK, true);
+    const schemaSourceGtk = Gio.SettingsSchemaSource.new_from_directory('@gtk3_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true);
+    let schemaGtk = schemaSourceGtk.lookup(Enums.SCHEMA_GTK, true);
     gtkSettings = new Gio.Settings({settings_schema: schemaGtk});
-    const schemaObj = schemaSource.lookup(Enums.SCHEMA_NAUTILUS, true);
+    const schemaSourceNautilus = Gio.SettingsSchemaSource.new_from_directory('@nautilus_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true);
+    const schemaObj = schemaSourceNautilus.lookup(Enums.SCHEMA_NAUTILUS, true);
     if (!schemaObj) {
         nautilusSettings = null;
     } else {
@@ -56,7 +59,7 @@ function init(path) {
         nautilusSettings.connect('changed', _onNautilusSettingsChanged);
         _onNautilusSettingsChanged();
     }
-    const compressionSchema = schemaSource.lookup(Enums.SCHEMA_NAUTILUS_COMPRESSION, true);
+    const compressionSchema = schemaSourceNautilus.lookup(Enums.SCHEMA_NAUTILUS_COMPRESSION, true);
     if (!compressionSchema) {
         nautilusCompression = null;
     } else {
diff --git a/extension.js b/extension.js
index d6cb19c..ea9a93a 100644
--- a/extension.js
+++ b/extension.js
@@ -297,9 +297,9 @@ export default class DING extends Extension {
                     contents += String.fromCharCode(readData[i]);
                 }
             }
-            let path = `gjs ${GLib.build_filenamev([this.path, 'app', 'ding.js'])}`;
+            let path = `@gjs@/bin/gjs ${GLib.build_filenamev([this.path, 'app', 'ding.js'])}`;
             if (contents.startsWith(path)) {
-                let proc = new Gio.Subprocess({ argv: ['/bin/kill', filename] });
+                let proc = new Gio.Subprocess({ argv: ['@util_linux@/bin/kill', filename] });
                 proc.init(null);
                 proc.wait(null);
             }
