Linux app launcher does not handle removed environments
 ## Description
Script `app_launcher.py` does not remove environments that are not passed with `"env"` key which cause that if prelaunch hook removes a key from environment it will not be propagated to application.

[cuID:OP-2591]
diff --git a/openpype/hosts/hiero/__init__.py b/openpype/hosts/hiero/__init__.py
index 15bd10fdb0..2d674b3fa7 100644
--- a/openpype/hosts/hiero/__init__.py
+++ b/openpype/hosts/hiero/__init__.py
@@ -18,6 +18,7 @@ def add_implementation_envs(env, _app):
             new_hiero_paths.append(norm_path)
 
     env["HIERO_PLUGIN_PATH"] = os.pathsep.join(new_hiero_paths)
+    env.pop("QT_AUTO_SCREEN_SCALE_FACTOR", None)
 
     # Try to add QuickTime to PATH
     quick_time_path = "C:/Program Files (x86)/QuickTime/QTSystem"
diff --git a/openpype/lib/applications.py b/openpype/lib/applications.py
index a704c3ae68..4227195235 100644
--- a/openpype/lib/applications.py
+++ b/openpype/lib/applications.py
@@ -1040,10 +1040,19 @@ class ApplicationLaunchContext:
         # Prepare data that will be passed to midprocess
         # - store arguments to a json and pass path to json as last argument
         # - pass environments to set
+        app_env = self.kwargs.pop("env", {})
         json_data = {
             "args": self.launch_args,
-            "env": self.kwargs.pop("env", {})
+            "env": app_env
         }
+        if app_env:
+            # Filter environments of subprocess
+            self.kwargs["env"] = {
+                key: value
+                for key, value in os.environ.items()
+                if key in app_env
+            }
+
         # Create temp file
         json_temp = tempfile.NamedTemporaryFile(
             mode="w", prefix="op_app_args", suffix=".json", delete=False
['openpype/lib/applications.py', 'openpype/hosts/hiero/__init__.py']