diff --git a/build.rs b/build.rs
index aa2bec5..d512a42 100644
--- a/build.rs
+++ b/build.rs
@@ -26,7 +26,7 @@ fn setup_po() -> Result<()> {
             && extension == "po"
             && let Some(po_lang) = path.file_stem()
         {
-            let mo_dir = po_dir.join(po_lang).join("LC_MESSAGES");
+            let mo_dir = Path::new("@out@/share/locale").join(po_lang).join("LC_MESSAGES");
 
             fs::create_dir_all(&mo_dir)?;
 
@@ -46,7 +46,7 @@ fn setup_po() -> Result<()> {
 fn setup_schemas(filename: &str) -> Result<()> {
     println!("cargo:rerun-if-changed={DATA_DIR}");
 
-    let out_dir = dirs::data_dir().expect("Failed to get data dir");
+    let out_dir = Path::new("@out@/share");
     let out_dir = out_dir.join("glib-2.0/schemas");
 
     fs::create_dir_all(&out_dir)?;
diff --git a/data/com.stremio.Stremio.service b/data/com.stremio.Stremio.service
index 7cfb139..7491969 100644
--- a/data/com.stremio.Stremio.service
+++ b/data/com.stremio.Stremio.service
@@ -1,3 +1,3 @@
 [D-BUS Service]
 Name=com.stremio.Stremio
-Exec=/app/bin/stremio --gapplication-service
+Exec=@out@/bin/stremio --gapplication-service
diff --git a/data/stremio.sh b/data/stremio.sh
index 161bada..37373b0 100644
--- a/data/stremio.sh
+++ b/data/stremio.sh
@@ -5,4 +5,4 @@ if ls /dev/nvidia0 &>/dev/null 2>&1; then
     export GSK_RENDERER=opengl
 fi
 
-exec /app/libexec/stremio/stremio "$@"
\ No newline at end of file
+exec @out@/libexec/stremio/stremio "$@"
