diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper
index ecab5a97..913bb7bf 100755
--- a/data_from_portwine/scripts/functions_helper
+++ b/data_from_portwine/scripts/functions_helper
@@ -2263,12 +2263,22 @@ dgVoodooWatermark                   = false" > "${WINEPREFIX}/drive_c/windows/sy
         var_winedlloverride_update "xinput1_1,xinput1_2,xinput1_3,xinput9_1_0=b;dinput="
     fi
 
-    if [[ "${PW_DISABLE_SDL}" == "1" ]] ; then
-        ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
-        "${WINELOADER}" reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus" /v "DisableHidraw" /t REG_DWORD /d 0 /f
-        ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
-        "${WINELOADER}" reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus" /v "Enable SDL" /t REG_DWORD /d 0 /f
-    else
+    HIDRAW_VAR="$(grep "DisableHidraw" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg")"
+    SDL_VAR="$(grep "Enable SDL" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg")"
+    if [[ "$HIDRAW_VAR" ]] \
+    && [[ "$SDL_VAR" ]] ; then
+        if [[ ! "${HIDRAW_VAR: -1}" = "1" && "${PW_ENABLE_SDL}" = "1" ]] ; then
+            sed -i "s/${HIDRAW_VAR}/${HIDRAW_VAR%?}1/" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg"
+        elif [[ ! "${HIDRAW_VAR: -1}" = "0" && "${PW_ENABLE_SDL}" = "0" ]] ; then
+            sed -i "s/${HIDRAW_VAR}/${HIDRAW_VAR%?}0/" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg"
+        fi
+
+        if [[ ! "${SDL_VAR: -1}" = "1" && "${PW_ENABLE_SDL}" = "1" ]] ; then
+            sed -i "s/${SDL_VAR}/${SDL_VAR%?}1/" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg"
+        elif [[ ! "${SDL_VAR: -1}" = "0" && "${PW_ENABLE_SDL}" = "0" ]] ; then
+            sed -i "s/${SDL_VAR}/${SDL_VAR%?}0/" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg"
+        fi
+    elif [[ "${PW_ENABLE_SDL}" = "1" ]] ; then
         ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
         "${WINELOADER}" reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus" /v "DisableHidraw" /t REG_DWORD /d 1 /f
         ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
@@ -2291,6 +2301,22 @@ dgVoodooWatermark                   = false" > "${WINEPREFIX}/drive_c/windows/sy
         fi
     fi
 
+    if [[ "${PW_DISABLE_COMPOSITING}" == "1" ]] \
+    && ! check_gamescope_session
+    then
+        if [[ "${DESKTOP_SESSION}" =~ "plasma" ]] ; then
+            qdbus org.kde.KWin /Compositor suspend
+        elif [[ "${DESKTOP_SESSION}" =~ "mate" ]] ; then
+            gsettings set org.mate.Marco.general compositing-manager false
+        elif [[ "${DESKTOP_SESSION}" =~ "xfce" ]] ; then
+            xfconf-query -c xfwm4 -p /general/use_compositing -s false
+        elif [[ "${DESKTOP_SESSION}" =~ "cinnamon" ]] ; then
+            gsettings set org.cinnamon.muffin unredirect-fullscreen-windows true
+        elif [[ "${DESKTOP_SESSION}" =~ "deepin" ]] ; then
+            dbus-send --session --dest=com.deepin.WMSwitcher --type=method_call /com/deepin/WMSwitcher com.deepin.WMSwitcher.RequestSwitchWM
+        fi
+    fi
+
     pw_mangohud_check
     pw_vkbasalt_check
 }